1. 23 Jan, 2014 35 commits
    • re PR libstdc++/59872 (Cannot move std::map with move-only mapped_type) · 6a5839c8
      	PR libstdc++/59872
      	* include/bits/stl_map.h (map::operator=(map&&)): Fix comment.
      	* include/bits/stl_multimap.h (multimap::operator=(multimap&&)):
      	Likewise.
      	* include/bits/stl_multiset.h (multiset::operator=(multiset&&)):
      	Likewise.
      	* include/bits/stl_set.h (set::operator=(set&&)): Likewise.
      	* include/bits/stl_tree.h (_Rb_tree::_M_move_data): New overloaded
      	functions to perform moving or copying of elements from rvalue tree.
      	(_Rb_tree::_Rb_tree(_Rb_tree&&)): Use _M_move_data.
      	(_Rb_tree::_Rb_tree(_Rb_tree&&, _Node_allocator&&)): Likewise.
      	* testsuite/23_containers/map/59872.cc: New.
      	* testsuite/23_containers/map/56613.cc: Remove duplicate include.
      
      From-SVN: r206994
      Jonathan Wakely committed
    • [multiple changes] · ea0f1fc8
      2014-01-23  Robert Dewar  <dewar@adacore.com>
      
      	* opt.adb (Register_Opt_Config_Switches): Save SPARK_Mode_Pragma
      	setting.
      
      2014-01-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_util.adb (Is_Potentially_Unevaluated): Predicate only
      	applies to expressions that come from source.
      	* sem_attr.adb (Analyze_Attribute, case 'Old): Improve error
      	message.
      	(Analyze_Attribute, case 'Loop_Entry): Apply SPARK 2014 legality
      	rule regarding potentially unevaluated expressions, to prefix
      	of attribute.
      
      From-SVN: r206993
      Arnaud Charlet committed
    • [multiple changes] · 19992053
      2014-01-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_util.adb (Make_Invqriant_Call): If type of expression is
      	a private extension, get invariant from base type.
      
      2014-01-23  Robert Dewar  <dewar@adacore.com>
      
      	* sem_util.adb, sem_attr.adb: Minor reformatting.
      
      2014-01-23  Robert Dewar  <dewar@adacore.com>
      
      	* opt.adb (Save_Opt_Config_Switches): Save SPARK_Mode_Pragma
      	(Restore_Opt_Config_Switches): Restore SPARK_Mode_Pragma.
      	* sem.adb (Semantics): Remove save/restore of
      	SPARK_Mode[_Pragma]. Not needed since already done in
      	Save/Restore_Opt_Config_Switches.
      
      2014-01-23  Robert Dewar  <dewar@adacore.com>
      
      	* gnat_rm.texi, einfo.adb, einfo.ads, sem_prag.adb, gnat_ugn.texi,
      	freeze.adb, repinfo.adb, aspects.adb, aspects.ads, sem_ch13.adb:
      	Linker_Section enhancements.
      
      From-SVN: r206992
      Arnaud Charlet committed
    • re PR c/59825 (Many cilkplus test failures) · 40f14e9f
      Fix for PR c/59825.
      2014-01-23  Balaji V. Iyer  <balaji.v.iyer@intel.com>
      
              PR c/59825
              * c-array-notation.c (expand_array_notation_exprs): Rewrote this
              function to use walk_tree and moved a lot of its functionality to
              expand_array_notations.
              (expand_array_notations): New function.
      
      From-SVN: r206991
      Balaji V. Iyer committed
    • [multiple changes] · c733429f
      2014-01-23  Tristan Gingold  <gingold@adacore.com>
      
      	* gnat_rm.texi: Minor editing.
      
      2014-01-23  Robert Dewar  <dewar@adacore.com>
      
      	* opt.adb (Set_Opt_Config_Switches): Reset SPARK mode for
      	with'ed internal units.
      	* sem.adb (Semantics): Save and restore SPARK_Mode[_Pragma].
      
      2014-01-23  Javier Miranda  <miranda@adacore.com>
      
      	* lib-xref.adb (Generate_Reference): As part of processing the
      	"end-of-spec" reference generate an extra reference to the first
      	private entity of the package.
      	* xr_tabls.adb (Add_Reference): No action needed for the extra
      	'E' reference associated; similar to the processing of the
      	'e' reference.
      
      2014-01-23  Bob Duff  <duff@adacore.com>
      
      	* gnat_ugn.texi: Change "--&pp off" to "--!pp off".
      
      2014-01-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_util.ads, sem_util.adb (Is_Potentially_Unevaluated): new
      	predicate to implement rule given in 6.1.1 (20/3).
      	* sem_attr.adb (Analyze_Attribute, case 'Old): Reject prefix of
      	'Old in a postcondition, if it is potentially unevaluated and
      	it is not an entity name.
      
      From-SVN: r206990
      Arnaud Charlet committed
    • Minor editing. · 7e97e174
      From-SVN: r206989
      Arnaud Charlet committed
    • gnat_ugn.texi: Document the new "--&pp off" feature of gnatpp. · 8bdc02c2
      2014-01-23  Bob Duff  <duff@adacore.com>
      
      	* gnat_ugn.texi: Document the new "--&pp off" feature of gnatpp.
      
      From-SVN: r206988
      Bob Duff committed
    • [multiple changes] · e949ee22
      2014-01-23  Robert Dewar  <dewar@adacore.com>
      
      	* gnatlink.adb (Gnatlink): Fix problem of generating bad name
      	msg on VMS.
      
      2014-01-23  Bob Duff  <duff@adacore.com>
      
      	* g-dynhta.ads: Minor comment fix.
      
      2014-01-23  Yannick Moy  <moy@adacore.com>
      
      	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Inherit SPARK_Mode
      	from spec on body only when not already inherited on spec. Set
      	SPARK_Mode from context on body without previous spec.	*
      	* sem_prag.adb (Analyze_Pragma): Check placement of pragma on
      	library-level entities.  Correct retrieval of entity from
      	declaration, for cases where the declaration is not a unit.
      	* sem_ch12.adb (Instantiate_Object): Avoid
      	calling Is_Volatile_Object on an empty node.
      
      From-SVN: r206987
      Arnaud Charlet committed
    • gnatlink.adb (Gnatlink): Check for suspicious executable file names on windows. · 545d3e65
      2014-01-23  Robert Dewar  <dewar@adacore.com>
      
      	* gnatlink.adb (Gnatlink): Check for suspicious executable file
      	names on windows.
      
      2014-01-23  Robert Dewar  <dewar@adacore.com>
      
      	* a-ngelfu.ads: Remove bad uses of AND which should be AND THEN.
      	* sem_res.adb (Check_No_Direct_Boolean_Operators): Don't give
      	style errors in instances.
      	* g-dynhta.ads (Static_HTable): Comment updates.
      
      From-SVN: r206986
      Robert Dewar committed
    • prj-conf.adb (Get_Or_Create_Configuration_File): Do not attempt to find a… · cc55f9be
      prj-conf.adb (Get_Or_Create_Configuration_File): Do not attempt to find a configuration project file when...
      
      2014-01-23  Vincent Celier  <celier@adacore.com>
      
      	* prj-conf.adb (Get_Or_Create_Configuration_File): Do not attempt
      	to find a configuration project file when Config_File_Name is
      	No_Configuration_File.
      	* prj-conf.ads (No_Configuration_File): New constant String.
      	* prj-pars.adb (Parse): Call Get_Or_Create_Configuration_File
      	with Config_File_Name set to No_Configuration_File, so that
      	no existing configuration project file will be used, and the
      	configuration project will be only created in memory when
      	Add_Default_GNAT_Naming_Scheme is called.
      	* projects.texi: Minor reformatting.
      
      From-SVN: r206985
      Vincent Celier committed
    • prj-conf.adb (Get_Or_Create_Configuration_File): Never parse a config project… · 225a0c5c
      prj-conf.adb (Get_Or_Create_Configuration_File): Never parse a config project file if On_Load_Config is not null.
      
      2014-01-23  Vincent Celier  <celier@adacore.com>
      
      	* prj-conf.adb (Get_Or_Create_Configuration_File): Never parse
      	a config project file if On_Load_Config is not null.
      	* prj-pars.adb: Minor comment changes.
      
      From-SVN: r206984
      Vincent Celier committed
    • Minor reformatting. · bdd6d80a
      From-SVN: r206983
      Arnaud Charlet committed
    • rs6000.c (rs6000_option_override_internal): Don't force flag_ira_loop_pressure… · 0a4f04e5
      rs6000.c (rs6000_option_override_internal): Don't force flag_ira_loop_pressure if set via command line.
      
      	* config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
      	force flag_ira_loop_pressure if set via command line.
      
      From-SVN: r206982
      Pat Haugen committed
    • lib-xref.adb (Output_References): Output progenitors of synchronized tagged… · 89253742
      lib-xref.adb (Output_References): Output progenitors of synchronized tagged types, for source navigation.
      
      2014-01-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* lib-xref.adb (Output_References): Output progenitors of
      	synchronized tagged types, for source navigation.
      
      From-SVN: r206981
      Ed Schonberg committed
    • [multiple changes] · 53c53f6d
      2014-01-23  Robert Dewar  <dewar@adacore.com>
      
      	* exp_util.adb, sinfo.adb, sinfo.ads, sem.adb, sem_res.adb,
      	expander.adb, exp_ch11.adb, exp_ch11.ads, sem_ch11.adb, sem_ch11.ads,
      	sprint.adb, sprint.ads: Remove unused node N_Subprogram_Info.
      
      2014-01-23  Emmanuel Briot  <briot@adacore.com>
      
      	* prj-conf.adb (Get_Or_Create_Configuration_File): call
      	On_Load_Config later.
      
      2014-01-23  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch3.adb (Analyze_Declarations): Do not
      	generate the spec of the late primitive in ASIS mode. Add two
      	comments to explain the special cases when the expansion is
      	not performed.
      
      2014-01-23  Robert Dewar  <dewar@adacore.com>
      
      	* sem_util.adb (Note_Possible_Modification): Fix error of
      	misbehaving for implicit dereference cases in -gnatc mode.
      
      2014-01-23  Emmanuel Briot  <briot@adacore.com>
      
      	* prj-pars.adb: Minor reformatting.
      
      From-SVN: r206980
      Arnaud Charlet committed
    • re PR c++/58980 (ICE with invalid enum declaration) · ea15e254
      /cp
      2014-01-23  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/58980
      	* parser.c (cp_parser_enum_specifier): Handle TYPENAME_TYPE as
      	nested_name_specifier.
      
      /testsuite
      2014-01-23  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/58980
      	* g++.dg/parse/enum11.C: New.
      
      From-SVN: r206979
      Paolo Carlini committed
    • [PATCH][AArch64] Vector shift by 64 fix · f9a4c9a6
      gcc/
      
      	* config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
      	(ashr_simd): New builtin handling DI mode.
      	* config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
      	(aarch64_sshr_simddi): New match pattern.
      	* config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
      	(vshrd_n_s64): Likewise.
      	* config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
      
      gcc/testsuite/
      
      	* gcc.target/aarch64/sshr64_1.c: New testcase.
      
      From-SVN: r206978
      Alex Velenko committed
    • msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu. · 949ad971
      	* config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
      	(LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
      	favour of mcu specific scripts.
      	* config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
      	430x multilibs.
      
      From-SVN: r206977
      Nick Clifton committed
    • Added support for Cilk Plus SIMD-enabled functions for C++. · 74558dd9
      gcc/c/c-parser.c
      2014-01-23  Balaji V. Iyer  <balaji.v.iyer@intel.com>
      
              * c-parser.c (c_finish_omp_declare_simd): Made "cilk simd function"
              attribute an attribute without value.
      
      gcc/cp/ChangeLog
      2014-01-23  Balaji V. Iyer  <balaji.v.iyer@intel.com>
      
              * parser.c (cp_parser_direct_declarator): When Cilk Plus is enabled
              see if there is an attribute after function decl.  If so, then
              parse them now.
              (cp_parser_late_return_type_opt): Handle parsing of Cilk Plus SIMD
              enabled function late parsing.
              (cp_parser_gnu_attribute_list): Parse all the tokens for the vector
              attribute for a SIMD-enabled function.
              (cp_parser_omp_all_clauses): Skip parsing to the end of pragma when
              the function is used by SIMD-enabled function (indicated by NULL
              pragma token).   Added 3 new clauses: PRAGMA_CILK_CLAUSE_MASK,
              PRAGMA_CILK_CLAUSE_NOMASK and PRAGMA_CILK_CLAUSE_VECTORLENGTH
              (cp_parser_cilk_simd_vectorlength): Modified this function to handle
              vectorlength clause in SIMD-enabled function and #pragma SIMD's
              vectorlength clause.  Added a new bool parameter to differentiate
              between the two.
              (cp_parser_cilk_simd_fn_vector_attrs): New function.
              (is_cilkplus_vector_p): Likewise.
              (cp_parser_late_parsing_elem_fn_info): Likewise.
              (cp_parser_omp_clause_name): Added a check for "mask", "nomask"
              and "vectorlength" clauses when Cilk Plus is enabled.
              (cp_parser_omp_clause_linear): Added a new parameter of type bool
              and emit a sorry message when step size is a parameter.
              * parser.h (cp_parser::cilk_simd_fn_info): New field.
              * decl.c (grokfndecl): Added flag_enable_cilkplus along with
              flag_openmp.
              * pt.c (apply_late_template_attributes): Likewise.
      
      testsuite/ChangeLog
      2014-01-23  Balaji V. Iyer  <balaji.v.iyer@intel.com>
      
              * g++.dg/cilk-plus/cilk-plus.exp: Called the C/C++ common tests for
              SIMD enabled function.
              * g++.dg/cilk-plus/ef_test.C: New test.
              * c-c++-common/cilk-plus/ef_error3.c: Made certain messages C specific
              and added C++ ones.
              * c-c++-common/cilk-plus/vlength_errors.c: Added new dg-error tags
              to differenciate C error messages from C++ ones.
      
      From-SVN: r206975
      Balaji V. Iyer committed
    • [AArch64_BE 4/4] Big-Endian lane numbering fix · d5ecead9
      2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
      	    Alex Velenko  <Alex.Velenko@arm.com>
      
      	* config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
      	(vaddv_s16): Likewise.
      	(vaddv_s32): Likewise.
      	(vaddv_u8): Likewise.
      	(vaddv_u16): Likewise.
      	(vaddv_u32): Likewise.
      	(vaddvq_s8): Likewise.
      	(vaddvq_s16): Likewise.
      	(vaddvq_s32): Likewise.
      	(vaddvq_s64): Likewise.
      	(vaddvq_u8): Likewise.
      	(vaddvq_u16): Likewise.
      	(vaddvq_u32): Likewise.
      	(vaddvq_u64): Likewise.
      	(vaddv_f32): Likewise.
      	(vaddvq_f32): Likewise.
      	(vaddvq_f64): Likewise.
      	(vmaxv_f32): Likewise.
      	(vmaxv_s8): Likewise.
      	(vmaxv_s16): Likewise.
      	(vmaxv_s32): Likewise.
      	(vmaxv_u8): Likewise.
      	(vmaxv_u16): Likewise.
      	(vmaxv_u32): Likewise.
      	(vmaxvq_f32): Likewise.
      	(vmaxvq_f64): Likewise.
      	(vmaxvq_s8): Likewise.
      	(vmaxvq_s16): Likewise.
      	(vmaxvq_s32): Likewise.
      	(vmaxvq_u8): Likewise.
      	(vmaxvq_u16): Likewise.
      	(vmaxvq_u32): Likewise.
      	(vmaxnmv_f32): Likewise.
      	(vmaxnmvq_f32): Likewise.
      	(vmaxnmvq_f64): Likewise.
      	(vminv_f32): Likewise.
      	(vminv_s8): Likewise.
      	(vminv_s16): Likewise.
      	(vminv_s32): Likewise.
      	(vminv_u8): Likewise.
      	(vminv_u16): Likewise.
      	(vminv_u32): Likewise.
      	(vminvq_f32): Likewise.
      	(vminvq_f64): Likewise.
      	(vminvq_s8): Likewise.
      	(vminvq_s16): Likewise.
      	(vminvq_s32): Likewise.
      	(vminvq_u8): Likewise.
      	(vminvq_u16): Likewise.
      	(vminvq_u32): Likewise.
      	(vminnmv_f32): Likewise.
      	(vminnmvq_f32): Likewise.
      	(vminnmvq_f64): Likewise.
      
      Co-Authored-By: Alex Velenko <Alex.Velenko@arm.com>
      
      From-SVN: r206973
      James Greenhalgh committed
    • [AArch64_BE 3/4] Big-Endian lane numbering fix · 1dd055a2
      2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
      
      	* config/aarch64/aarch64-simd.md
      	(aarch64_dup_lane<mode>): Correct lane number on big-endian.
      	(aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
      	(*aarch64_mul3_elt<mode>): Likewise.
      	(*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
      	(*aarch64_mul3_elt_to_64v2df): Likewise.
      	(*aarch64_mla_elt<mode>): Likewise.
      	(*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
      	(*aarch64_mls_elt<mode>): Likewise.
      	(*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
      	(*aarch64_fma4_elt<mode>): Likewise.
      	(*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
      	(*aarch64_fma4_elt_to_64v2df): Likewise.
      	(*aarch64_fnma4_elt<mode>): Likewise.
      	(*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
      	(*aarch64_fnma4_elt_to_64v2df): Likewise.
      	(aarch64_sq<r>dmulh_lane<mode>): Likewise.
      	(aarch64_sq<r>dmulh_laneq<mode>): Likewise.
      	(aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
      	(aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
      	(aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
      	(aarch64_sqdmull_lane<mode>_internal): Likewise.
      	(aarch64_sqdmull2_lane<mode>_internal): Likewise.
      
      From-SVN: r206972
      James Greenhalgh committed
    • [AArch64_BE 2/4] Big-Endian lane numbering fix · dafb9b64
      2013-01-23  Alex Velenko  <Alex.Velenko@arm.com>
      
      	* config/aarch64/aarch64-simd.md
      	(aarch64_be_checked_get_lane<mode>): New define_expand.
      	* config/aarch64/aarch64-simd-builtins.def
      	(BUILTIN_VALL (GETLANE, be_checked_get_lane, 0):
      	New builtin definition.
      	* config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
      	Use new safe be builtin.
      
      From-SVN: r206970
      Alex Velenko committed
    • [AArch64_BE 1/4] Big-Endian lane numbering fix · 89b4515c
      [gcc/]
      2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
      
      	* config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
      	New define_insn.
      	(aarch64_be_st1<mode>): Likewise.
      	(aarch_ld1<VALL:mode>): Define_expand modified.
      	(aarch_st1<VALL:mode>): Likewise.
      	* config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
      	(UNSPEC_ST1): Likewise.
      
      [gcc/testsuite/]
      2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
      
      	* gcc.target/aarch64/vld1-vst1_1.c: New test_case.
      
      From-SVN: r206968
      Alex Velenko committed
    • microblaze.md: Add trap insn and attribute · f3eeb82c
      2014-01-23  David Holsgrove <david.holsgrove@xilinx.com>
      
      	* config/microblaze/microblaze.md: Add trap insn and attribute
      
      From-SVN: r206967
      David Holsgrove committed
    • re PR sanitizer/57316 (build failure in libsanitizer) · 4a7eaf5f
      2014-01-23  Yury Gribov  <y.gribov@samsung.com>
      	    Jakub Jelinek  <jakub@redhat.com>
      
      	PR sanitizer/57316
      	* configure.ac: Check for missing syscalls.
      	* Makefile.am: Likewise.
      	* configure: Regenerate.
      	* Makefile.in: Regenerate.
      
      Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
      
      From-SVN: r206966
      Yury Gribov committed
    • re PR middle-end/58809 (ICE with complex variable in OpenMP reduction clause) · 652fea39
      	PR middle-end/58809
      	* c-typeck.c (c_finish_omp_clause): Reject MIN_EXPR, MAX_EXPR,
      	BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs.
      
      	* semantics.c (finish_omp_reduction_clause): Reject
      	BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs.
      
      	* c-c++-common/gomp/pr58809.c: New test.
      
      From-SVN: r206962
      Jakub Jelinek committed
    • re PR testsuite/59897 (FAIL: c-c++-common/asan/use-after-return-1.c -O* output… · 7fd841e2
      re PR testsuite/59897 (FAIL: c-c++-common/asan/use-after-return-1.c  -O*  output pattern test, is 1: 0x2285020)
      
      2014-01-23  Dominique Dhumieres  <dominiq@lps.ens.fr>
      
              PR sanitizer/59897
              * c-c++-common/asan/use-after-return-1.c: Fixed
              to pass on darwin.
      
      From-SVN: r206961
      Dominique d'Humieres committed
    • faq.xml (a-how_to_set_paths): Expand FAQ answer. · 1f0affce
      	* doc/xml/faq.xml (a-how_to_set_paths): Expand FAQ answer.
      	* doc/xml/manual/abi.xml (abi.versioning.history): Correct symver.
      
      From-SVN: r206960
      Jonathan Wakely committed
    • avx512fintrin.h (_mm512_kmov): New. · 2196a885
      gcc/
      	* config/i386/avx512fintrin.h (_mm512_kmov): New.
      	* config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
      	(__builtin_ia32_kmov16): Ditto.
      	* config/i386/i386.md (UNSPEC_KMOV): New.
      	(kmovw): Ditto.
      
      testsuite/gcc/
      	* gcc.target/i386/avx512f-kmovw-1.c: New.
      
      
      Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
      
      From-SVN: r206958
      Kirill Yukhin committed
    • PR preprocessor/58580 - preprocessor goes OOM with warning for zero literals · 7ecc3eb9
      In this problem report, the compiler is fed a (bogus) translation unit
      in which some literals contain bytes whose value is zero.  The
      preprocessor detects that and proceeds to emit diagnostics for that
      king of bogus literals.  But then when the diagnostics machinery
      re-reads the input file again to display the bogus literals with a
      caret, it attempts to calculate the length of each of the lines it got
      using fgets.  The line length calculation is done using strlen.  But
      that doesn't work well when the content of the line can have several
      zero bytes.  The result is that the read_line never sees the end of
      the line because strlen repeatedly reports that the line ends before
      the end-of-line character; so read_line thinks its buffer for reading
      the line is too small; it thus increases the buffer, leading to a huge
      memory consumption and disaster.
      
      Here is what this patch does.
      
      location_get_source_line is modified to return the length of a source
      line that can now contain bytes with zero value.
      diagnostic_show_locus() is then modified to consider that a line can
      have characters of value zero, and so just shows a white space when
      instructed to display one of these characters.
      
      Additionally location_get_source_line is modified to avoid re-reading
      each and every line from the beginning of the file until it reaches
      the line number N that it is instructed to get; this was leading to
      annoying quadratic behaviour when reading adjacent lines near the end
      of (big) files.  So a cache is now associated to the file opened in
      text mode.  When the content of the file is read, that content is
      stashed in the file cache.  That file cache is searched for line
      delimiters.  A number of line positions are saved in the cache and a
      number of file caches are kept in memory.  That way when
      location_get_source_line is asked to read line N + 1, it just has to
      start reading from line N that it has already read.
      
      libcpp/ChangeLog:
      
      	* include/line-map.h (linemap_get_file_highest_location): Declare
      	new function.
      	* line-map.c (linemap_get_file_highest_location): Define it.
      
      gcc/ChangeLog:
      
      	* input.h (location_get_source_line): Take an additional line_size
      	parameter.
      	(void diagnostics_file_cache_fini): Declare new function.
      	* input.c (struct fcache): New type.
      	(fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
      	New static constants.
      	(diagnostic_file_cache_init, total_lines_num)
      	(lookup_file_in_cache_tab, evicted_cache_tab_entry)
      	(add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
      	(needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
      	(get_next_line, read_next_line, goto_next_line, read_line_num):
      	New static function definitions.
      	(diagnostic_file_cache_fini): New function.
      	(location_get_source_line): Take an additional output line_len
      	parameter.  Re-write using lookup_or_add_file_to_cache_tab and
      	read_line_num.
      	* diagnostic.c (diagnostic_finish): Call
      	diagnostic_file_cache_fini.
      	(adjust_line): Take an additional input parameter for the length
      	of the line, rather than calculating it with strlen.
      	(diagnostic_show_locus): Adjust the use of
      	location_get_source_line and adjust_line with respect to their new
      	signature.  While displaying a line now, do not stop at the first
      	null byte.  Rather, display the zero byte as a space and keep
      	going until we reach the size of the line.
      	* Makefile.in: Add vec.o to OBJS-libcommon
      
      gcc/testsuite/ChangeLog:
      
      	* c-c++-common/cpp/warning-zero-in-literals-1.c: New test file.
      
      Signed-off-by: Dodji Seketeli <dodji@seketeli.org>
      
      From-SVN: r206957
      Dodji Seketeli committed
    • avx512fintrin.h (_mm512_loadu_si512): Rename. · 70473c63
      gcc/
              * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
              (_mm512_storeu_si512): Ditto.
      
      testsuite/gcc/
              * gcc.target/i386/avx512f-vmovdqu32-1.c: Fix intrinsic name.
              * gcc.target/i386/avx512f-vmovdqu32-2.c: Ditto.
              * gcc.target/i386/avx512f-vpcmpd-2.c: Ditto.
              * gcc.target/i386/avx512f-vpcmpq-2.c: Ditto.
              * gcc.target/i386/avx512f-vpcmpud-2.c: Ditto.
              * gcc.target/i386/avx512f-vpcmpuq-2.c: Ditto.
      
      From-SVN: r206956
      Kirill Yukhin committed
    • re PR target/52125 (Problems with LO16 asm operands on MIPS) · f9ae4df8
      gcc/
      	PR target/52125
      	* rtl.h (get_referenced_operands): Declare.
      	* recog.c (get_referenced_operands): New function.
      	* config/mips/mips.c (mips_reorg_process_insns): Check which asm
      	operands have been referenced when recording LO_SUM references.
      
      gcc/testsuite/
      	PR target/52125
      	* gcc.dg/pr48774.c: Remove skip for mips_rel.
      	* gcc.target/mips/pr52125.c: New test.
      
      From-SVN: r206955
      Richard Sandiford committed
    • microblaze.md: Correct bswaphi2 insn. · e50f5f2e
      2014-01-22  David Holsgrove <david.holsgrove@xilinx.com>
      
      	* config/microblaze/microblaze.md: Correct bswaphi2 insn.
      
      From-SVN: r206952
      David Holsgrove committed
    • Daily bump. · 8a14526c
      From-SVN: r206950
      GCC Administrator committed
    • x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS): Enable for generic and recent AMD targets. · 33b64438
      	* config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
      	Enable for generic and recent AMD targets.
      
      From-SVN: r206947
      Jan Hubicka committed
  2. 22 Jan, 2014 5 commits
    • PR libstdc++/58764 (again) · d9dcda6f
      	PR libstdc++/58764 (again)
      	* include/bits/stl_list.h (list): Make default constructor's exception
      	specification conditional.
      	* include/bits/stl_vector.h (vector): Likewise.
      	* testsuite/util/testsuite_allocator.h (SimpleAllocator): Add noexcept
      	to default constructor.
      	* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
      	Adjust dg-error line number.
      	* testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
      	Likewise.
      	* testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc:
      	Likewise.
      	* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
      	Likewise.
      	* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
      	Likewise.
      	* testsuite/23_containers/vector/requirements/dr438/
      	constructor_1_neg.cc: Likewise.
      	* testsuite/23_containers/vector/requirements/dr438/
      	constructor_2_neg.cc: Likewise.
      	* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
      	Likewise.
      
      From-SVN: r206946
      Jonathan Wakely committed
    • re PR c/59891 (ICE on invalid code (with div-by-zero) at all optimization levels… · f34f1c87
      re PR c/59891 (ICE on invalid code (with div-by-zero) at all optimization levels on x86_64-linux-gnu)
      
      	PR c/59891
      c/
      	* c-typeck.c (build_conditional_expr): Call c_fully_fold instead
      	of remove_c_maybe_const_expr on op1 and op2.
      testsuite/
      	* gcc.dg/torture/pr59891.c: New test.
      
      From-SVN: r206944
      Marek Polacek committed
    • combine-stack-adj.c (combine_stack_adjustments_for_block): Remove ARG_SIZE note… · 77b7a218
      combine-stack-adj.c (combine_stack_adjustments_for_block): Remove ARG_SIZE note when adjustment was eliminated.
      
      	* combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
      	ARG_SIZE note when adjustment was eliminated.
      
      From-SVN: r206943
      Jan Hubicka committed
    • re PR tree-optimization/59597 (Performance degradation on Coremark after r205074) · bb50b870
      	PR tree-optimization/59597
      	* tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
      	in file.  Accept new argument REGISTERING and use it to modify
      	dump output appropriately.
      	(register_jump_thread): Corresponding changes.
      	(mark_threaded_blocks): Reinstate code to cancel unprofitable
      	thread paths involving joiner blocks.  Add code to dump cancelled
      	jump threading paths.
      
      	PR tree-optimization/59597
      	* gcc.dg/tree-ssa/pr59597.c: New test.
      
      From-SVN: r206941
      Jeff Law committed
    • re PR libstdc++/58764 ([lwg/2193] error: converting to ‘const… · c3cdd71f
      re PR libstdc++/58764 ([lwg/2193] error: converting to ‘const std::vector<std::basic_string<char> >’ from initializer list would use explicit constructor)
      
      	PR libstdc++/58764
      	* include/bits/stl_deque.h (deque::deque(const allocator_type&):
      	Split into separate default constructor and constructor taking
      	allocator.
      	* include/bits/stl_list.h (list::list(const allocator_type&): Likewise.
      	* include/bits/stl_vector.h (vector::vector(const allocator_type&):
      	Likewise.
      	* include/debug/deque (deque::deque(const allocator_type&)): Likewise.
      	* include/debug/list (list::list(const _Allocator&)): Likewise.
      	* include/debug/map.h (map::map(const _Compare&, const _Allocator&)):
      	Likewise.
      	* include/debug/multimap.h
      	(multimap::multimap(const _Compare&, const _Allocator&)): Likewise.
      	* include/debug/set.h (set::set(const _Compare&, const _Allocator&)):
      	Likewise.
      	* include/debug/multiset.h
      	(multiset::multiset(const _Compare&, const _Allocator&)): Likewise.
      	* include/debug/vector (vector::vector(const allocator_type&)):
      	Likewise.
      	* include/profile/deque (deque::deque(const _Allocator&)): Likewise.
      	* include/profile/list (list::list(const _Allocator&)): Likewise.
      	* include/profile/map.h
      	(map::map(const _Compare&, const _Allocator&)): Likewise.
      	* include/profile/multimap.h
      	(multimap::multimap(const _Compare&, const _Allocator&)): Likewise.
      	* include/profile/set.h
      	(set::set(const _Compare&, const _Allocator&)): Likewise.
      	* include/profile/multiset.h
      	(multiset::multiset(const _Compare&, const _Allocator&)): Likewise.
      	* include/profile/vector (vector::vector(const _Allocator&)):
      	Likewise.
      	* testsuite/23_containers/deque/58764.cc: New.
      	* testsuite/23_containers/list/58764.cc: New.
      	* testsuite/23_containers/map/58764.cc: New.
      	* testsuite/23_containers/multimap/58764.cc: New.
      	* testsuite/23_containers/set/58764.cc: New.
      	* testsuite/23_containers/multiset/58764.cc: New.
      	* testsuite/23_containers/vector/58764.cc: New.
      	* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
      	Adjust dg-error line number.
      	* testsuite/23_containers/deque/requirements/dr438/
      	constructor_1_neg.cc: Likewise.
      	* testsuite/23_containers/deque/requirements/dr438/
      	constructor_2_neg.cc: Likewise.
      	* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
      	Likewise.
      	* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
      	Likewise.
      	* testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
      	Likewise.
      	* testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc:
      	Likewise.
      	* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
      	Likewise.
      	* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
      	Likewise.
      	* testsuite/23_containers/vector/requirements/dr438/
      	constructor_1_neg.cc: Likewise.
      	* testsuite/23_containers/vector/requirements/dr438/
      	constructor_2_neg.cc: Likewise.
      	* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
      	Likewise.
      
      From-SVN: r206939
      Jonathan Wakely committed