Commit Graph

127880 Commits

Author SHA1 Message Date
Marek Polacek
f04dda3093 re PR c/58346 (ICE with SIGFPE at -O1 and above on x86_64-linux-gnu (affecting trunk, 4.8, 4.7, and 4.6))
PR c/58346
c-family/
	* c-common.c (pointer_to_zero_sized_aggr_p): New function.
	* c-common.h: Declare it.
cp/
	* typeck.c (pointer_diff): Give an error on arithmetic on pointer to
	an empty aggregate.
c/
	* c-typeck.c (pointer_diff): Give an error on arithmetic on pointer to
	an empty aggregate.
testsuite/
	* c-c++-common/pr58346-1.c: New test.
	* c-c++-common/pr58346-2.c: New test.
	* c-c++-common/pr58346-3.c: New test.

From-SVN: r207004
2014-01-23 19:18:49 +00:00
Marek Polacek
789eadcd54 re PR c/59871 (No unused value warning for comma expression)
PR c/59871
c/
	* c-typeck.c (build_compound_expr): Warn even for right-hand operand
	of a comma expression.
	(emit_side_effect_warnings): Likewise.
libdecnumber/
	* decNumberLocal.h (UBFROMUS, UBFROMUI): Remove last argument.
testsuite/
	* gcc.dg/20020220-2.c: Adjust dg-warning message.
	* gcc.dg/pr59871.c: New test.

From-SVN: r207002
2014-01-23 19:04:29 +00:00
Jason Merrill
20f18c3ce1 re PR c++/55189 (enable -Wreturn-type by default)
PR c++/55189
	* cp-tree.h (struct language_function): Add infinite_loop and
	infinite_loops.
	(current_function_infinite_loop): New.
	* semantics.c (begin_maybe_infinite_loop, end_maybe_infinite_loop)
	(break_maybe_infinite_loop): New.
	(finish_while_stmt_cond, finish_while_stmt, begin_do_stmt)
	(finish_do_stmt, finish_for_cond, finish_for_stmt)
	(begin_range_for_stmt): Use them.
	* decl.c (finish_function): Don't warn about missing return
	if current_function_infinite_loop.
	* pt.c (instantiate_decl): Copy current_function_infinite_loop.
	* parser.c (cp_parser_jump_statement): Call break_maybe_infinite_loop.

From-SVN: r207001
2014-01-23 13:54:08 -05:00
Jason Merrill
928d850fcd call.c (build_op_delete_call): Use make_tree_vector and release_tree_vector.
* call.c (build_op_delete_call): Use make_tree_vector and
	release_tree_vector.

From-SVN: r207000
2014-01-23 13:53:50 -05:00
Jonathan Wakely
6a5839c841 re PR libstdc++/59872 (Cannot move std::map with move-only mapped_type)
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
2014-01-23 17:17:04 +00:00
Arnaud Charlet
ea0f1fc8e4 [multiple changes]
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
2014-01-23 18:06:29 +01:00
Arnaud Charlet
19992053df [multiple changes]
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
2014-01-23 18:03:41 +01:00
Balaji V. Iyer
40f14e9f10 re PR c/59825 (Many cilkplus test failures)
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
2014-01-23 09:00:53 -08:00
Arnaud Charlet
c733429f54 [multiple changes]
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
2014-01-23 17:58:46 +01:00
Arnaud Charlet
7e97e1742a Minor editing.
From-SVN: r206989
2014-01-23 17:56:32 +01:00
Bob Duff
8bdc02c237 gnat_ugn.texi: Document the new "--&pp off" feature of gnatpp.
2014-01-23  Bob Duff  <duff@adacore.com>

	* gnat_ugn.texi: Document the new "--&pp off" feature of gnatpp.

From-SVN: r206988
2014-01-23 17:55:46 +01:00
Arnaud Charlet
e949ee225e [multiple changes]
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
2014-01-23 17:54:50 +01:00
Robert Dewar
545d3e65ad gnatlink.adb (Gnatlink): Check for suspicious executable file names on windows.
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
2014-01-23 17:53:34 +01:00
Vincent Celier
cc55f9bee5 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
2014-01-23 17:52:00 +01:00
Vincent Celier
225a0c5c56 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
2014-01-23 17:39:02 +01:00
Arnaud Charlet
bdd6d80ab5 Minor reformatting.
From-SVN: r206983
2014-01-23 17:38:09 +01:00
Pat Haugen
0a4f04e52e 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
2014-01-23 16:37:39 +00:00
Ed Schonberg
8925374285 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
2014-01-23 17:37:31 +01:00
Arnaud Charlet
53c53f6dc8 [multiple changes]
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
2014-01-23 17:36:41 +01:00
Paolo Carlini
ea15e254ea re PR c++/58980 (ICE with invalid enum declaration)
/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
2014-01-23 16:31:52 +00:00
Alex Velenko
f9a4c9a613 [PATCH][AArch64] Vector shift by 64 fix
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
2014-01-23 16:24:13 +00:00
Nick Clifton
949ad9715a msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
* 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
2014-01-23 16:16:33 +00:00
Balaji V. Iyer
74558dd9af Added support for Cilk Plus SIMD-enabled functions for C++.
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
2014-01-23 07:21:42 -08:00
James Greenhalgh
d5ecead940 [AArch64_BE 4/4] Big-Endian lane numbering fix
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
2014-01-23 14:59:20 +00:00
James Greenhalgh
1dd055a27d [AArch64_BE 3/4] Big-Endian lane numbering fix
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
2014-01-23 14:56:50 +00:00
Alex Velenko
dafb9b6489 [AArch64_BE 2/4] Big-Endian lane numbering fix
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
2014-01-23 14:48:40 +00:00
Alex Velenko
89b4515c8c [AArch64_BE 1/4] Big-Endian lane numbering fix
[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
2014-01-23 14:46:31 +00:00
David Holsgrove
f3eeb82c28 microblaze.md: Add trap insn and attribute
2014-01-23  David Holsgrove <david.holsgrove@xilinx.com>

	* config/microblaze/microblaze.md: Add trap insn and attribute

From-SVN: r206967
2014-01-23 14:37:44 +00:00
Yury Gribov
4a7eaf5f94 re PR sanitizer/57316 (build failure in libsanitizer)
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
2014-01-23 14:32:05 +00:00
Jakub Jelinek
652fea3922 re PR middle-end/58809 (ICE with complex variable in OpenMP reduction clause)
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
2014-01-23 14:32:19 +01:00
Dominique d'Humieres
7fd841e250 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
2014-01-23 14:48:25 +02:00
Jonathan Wakely
1f0affcecc faq.xml (a-how_to_set_paths): Expand FAQ answer.
* 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
2014-01-23 12:29:40 +00:00
Kirill Yukhin
2196a8859b avx512fintrin.h (_mm512_kmov): New.
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
2014-01-23 09:25:11 +00:00
Dodji Seketeli
7ecc3eb9e6 PR preprocessor/58580 - preprocessor goes OOM with warning for zero literals
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
2014-01-23 10:13:08 +01:00
Kirill Yukhin
70473c6346 avx512fintrin.h (_mm512_loadu_si512): Rename.
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
2014-01-23 09:11:09 +00:00
Richard Sandiford
f9ae4df84e re PR target/52125 (Problems with LO16 asm operands on MIPS)
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
2014-01-23 08:24:38 +00:00
David Holsgrove
e50f5f2e0d microblaze.md: Correct bswaphi2 insn.
2014-01-22  David Holsgrove <david.holsgrove@xilinx.com>

	* config/microblaze/microblaze.md: Correct bswaphi2 insn.

From-SVN: r206952
2014-01-23 01:29:15 +00:00
GCC Administrator
8a14526c43 Daily bump.
From-SVN: r206950
2014-01-23 00:16:31 +00:00
Jan Hubicka
33b6443869 x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS): Enable for generic and recent AMD targets.
* config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
	Enable for generic and recent AMD targets.

From-SVN: r206947
2014-01-23 00:12:56 +00:00
Jonathan Wakely
d9dcda6f48 PR libstdc++/58764 (again)
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
2014-01-22 23:50:58 +00:00
Marek Polacek
f34f1c878f 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
2014-01-22 22:15:12 +00:00
Jan Hubicka
77b7a218bb 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
2014-01-22 22:05:23 +00:00
Jeff Law
bb50b870a4 re PR tree-optimization/59597 (Performance degradation on Coremark after r205074)
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
2014-01-22 14:27:38 -07:00
Jonathan Wakely
c3cdd71f45 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
2014-01-22 19:46:44 +00:00
Vladimir Makarov
df2980beb3 re PR rtl-optimization/59477 (ICE: in assign_by_spills, at lra-assigns.c:1281 with -O)
2014-01-22  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/59477
	* lra-constraints.c (inherit_in_ebb): Process call for living hard
	regs.  Update reloads_num and potential_reload_hard_regs for all
	insns.

2014-01-22  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/59477
	* g++.dg/pr59477.C: New.

From-SVN: r206938
2014-01-22 19:38:47 +00:00
Ian Lance Taylor
f56c5dd19c libgo/configure: Test for gold with gccgo -Wl,--help, not ld --help.
From-SVN: r206937
2014-01-22 19:10:47 +00:00
Richard Sandiford
88d7c4b9c3 pr44194-1.c: Match "insn " and "insn:", but not "insn/f".
gcc/testsuite/
	* gcc.dg/pr44194-1.c: Match "insn " and "insn:", but not "insn/f".

From-SVN: r206936
2014-01-22 18:45:05 +00:00
Ville Voutilainen
32ab58b2a0 re PR c++/59482 (A friend class cannot inherit a private nested class)
/cp
2014-01-22  Ville Voutilainen  <ville.voutilainen@gmail.com>

	PR c++/59482
	* parser.c (cp_parser_class_head): Push the class before parsing
	the base-clause, pop after it.

/testsuite
2014-01-22  Ville Voutilainen  <ville.voutilainen@gmail.com>

	PR c++/59482
	* g++.dg/pr59482.C: New.

From-SVN: r206933
2014-01-22 18:08:01 +00:00
Tom Tromey
1bb9990010 i386-interix.h (i386_pe_unique_section): Don't use PARAMS.
* config/i386/i386-interix.h (i386_pe_unique_section): Don't use
	PARAMS.
	* config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.

From-SVN: r206932
2014-01-22 17:10:10 +00:00
Arnaud Charlet
3b8056a559 [multiple changes]
2014-01-22  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): A subprogram
	body generated for an expression function within a protected body
	needs a set of renaming declarations if the expression function
	comes from source.

2014-01-22  Ed Schonberg  <schonberg@adacore.com>

	* lib-xref.adb (Get_Type_Reference): In semantics-only mode,
	list interface progenitor of a tagged concurrent type, for better
	source navigation.

2014-01-22  Robert Dewar  <dewar@adacore.com>

	* lib.adb (In_Extended_Main_Code_Unit): Return False for
	Standard_Location.
	(In_Extended_Main_Source_Unit): Return False for Standard_Location.
	* lib.ads (In_Extended_Main_Code_Unit): Add documentation on
	treatment of Slocs No_Location and Standard_Location.
	* restrict.adb (Check_Restriction_No_Dependence): Explicitly
	check for entity with Standard_Location Sloc, rather than relying
	on Lib routines to do that.
	* sem_res.adb (Resolve_Call): Implement SPARK_05 restriction
	that a call cannot occur before a later occuring body within
	the same unit.

From-SVN: r206931
2014-01-22 18:04:57 +01:00