Commit graph

117143 commits

Author SHA1 Message Date
Joseph Myers
aba6f2c2a9 * doc/include/texinfo.tex: Update to version 2012-05-16.16.
From-SVN: r187956
2012-05-29 14:39:54 +01:00
Richard Guenther
a502e67779 tree-dfa.c (find_vars_r): Do not call add_referenced_vars for globals.
2012-05-29  Richard Guenther  <rguenther@suse.de>

	* tree-dfa.c (find_vars_r): Do not call add_referenced_vars
	for globals.
	(add_referenced_var_1): Re-organize.  Assert we are not
	called for globals.
	(remove_referenced_var): Likewise.
	* varpool.c (add_new_static_var): Use create_tmp_var_raw.
	* tree-mudflap.c (execute_mudflap_function_ops): Do not
	call add_referenced_var on globals.
	* matrix-reorg.c (transform_access_sites): Likewise.

From-SVN: r187955
2012-05-29 12:48:34 +00:00
Steven Bosscher
9ff3c7caa8 alias.c (reg_known_value): Make this a VEC.
* alias.c (reg_known_value): Make this a VEC.
	(reg_known_equiv_p): Make this an sbitmap.
	(reg_known_value_size): Remove.
	(get_reg_known_value, set_reg_known_value, get_reg_known_equiv_p,
	set_reg_known_equiv_p): Update for reg_known_value and
	reg_known_value_size data structure change.
	(init_alias_analysis, end_alias_analysis): Likewise.

From-SVN: r187953
2012-05-29 11:37:21 +00:00
Jakub Jelinek
92b05e72ea re PR middle-end/53510 (OOM while compile some code)
PR middle-end/53510
	* input.c (read_line): Use XRESIZEVEC instead of XNEWVEC
	to avoid leaking memory.  No need to handle memory allocation
	failure.  Double string_len on each reallocation instead of
	adding 2.
	* gcov.c (read_line): Likewise.

From-SVN: r187952
2012-05-29 13:34:38 +02:00
Manuel López-Ibáñez
4f7f7aca35 c.opt (Wmissing-braces): Use LangEnabledBy(C ObjC,Wall).
2012-05-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c.opt (Wmissing-braces): Use LangEnabledBy(C ObjC,Wall).
	* c-opts.c (c_common_handle_option): Remove code handling
	warn_missing_braces.

From-SVN: r187948
2012-05-29 10:09:51 +00:00
Dodji Seketeli
53a103d304 PR bootstrap/53459 - unused local typedef when building on altivec
PR bootstrap/53459
	* lex.c (search_line_fast): Avoid unused local typedefs to simulate
	a static assertion.

From-SVN: r187947
2012-05-29 11:42:39 +02:00
Dodji Seketeli
6de6b1ec5f Revert "PR bootstrap/53459 - unused local typedef when building on altivec"
This reverts commit r187853

From-SVN: r187946
2012-05-29 11:42:28 +02:00
Dodji Seketeli
828a7f76c7 PR preprocessor/53229 - Fix diagnostics location when pasting tokens
As stated in the audit trail of this problem report, consider this
test case:

    $ cat test.c
	 1	struct x {
	 2	  int i;
	 3	};
	 4	struct x x;
	 5
	 6	#define TEST(X) x.##X
	 7
	 8	void foo (void)
	 9	{
	10	  TEST(i) = 0;
	11	}
    $

    $ cc1 -quiet test.c
    test.c: In function 'foo':
    test.c:10:1: error: pasting "." and "i" does not give a valid preprocessing token
       TEST(i) = 0;
     ^
    $

So, when pasting tokens, the error diagnostic uses the global and
imprecise input_location variable, leading to an imprecise output.

To properly fix this, I think libcpp should keep the token of the
pasting operator '##', instead of representing it with flag on the LHS
operand's token.  That way, it could use its location.  Doing that
would be quite intrusive though.  So this patch just uses the location
of the LHS of the pasting operator, for now.  It's IMHO better than
the current situation.

The patch makes paste_tokens take a location parameter that is used in
the diagnostics.  This change can still be useful later when we can
use the location of the pasting operator, because paste_tokens will
just be passed the new, more precise location.

Incidentally, it appeared that when getting tokens from within
preprocessor directives (like what is done in gcc.dg/cpp/paste12.c),
with -ftrack-macro-expansion disabled, the location of the expansion
point of macros was being lost because
cpp_reader::set_invocation_location wasn't being properly set.  It's
because when cpp_get_token_1 calls enter_macro_context, there is a
little period of time between the beginning of that later function and
when the macro is really pushed (and thus when the macro is really
expanded) where we wrongly consider that we are not expanding the
macro because macro_of_context is still NULL.  In that period of time,
in the occurrences of indirect recursive calls to cpp_get_token_1,
this later function wrongly sets cpp_reader::invocation_location
because cpp_reader::set_invocation_location is not being properly set.

To avoid that confusion the patch does away with
cpp_reader::set_invocation_location and introduces a new flag
cpp_reader::about_to_expand_macro_p that is set in the small time
interval exposed earlier.  A new in_macro_expansion_p is introduced as
well, so that cpp_get_token_1 can now accurately detect when we are in
the process of expanding a macro, and thus correctly collect the
location of the expansion point.

People seem to like screenshots.

Thus, after the patch, we now have:

    $ cc1 -quiet test.c
    test.c: In function 'foo':
    test.c:6:18: error: pasting "." and "i" does not give a valid preprocessing token
     #define TEST(X) x.##X
		      ^
    test.c:10:3: note: in expansion of macro 'TEST'
       TEST(i) = 0;
       ^
    $

Bootstrapped and tested on x86_64-unknown-linux-gnu against trunk.

libcpp/

	PR preprocessor/53229
	* internal.h (cpp_reader::set_invocation_location): Remove.
	(cpp_reader::about_to_expand_macro_p): New member flag.
	* directives.c (do_pragma):  Remove Kludge as
	pfile->set_invocation_location is no more.
	* macro.c (cpp_get_token_1): Do away with the use of
	cpp_reader::set_invocation_location.  Just collect the macro
	expansion point when we are about to expand the top-most macro.
	Do not override cpp_reader::about_to_expand_macro_p.
	This fixes gcc.dg/cpp/paste12.c by making get_token_no_padding
	properly handle locations of expansion points.
	(cpp_get_token_with_location): Adjust, as
	cpp_reader::set_invocation_location is no more.
	(paste_tokens): Take a virtual location parameter for
	the LHS of the pasting operator.  Use it in diagnostics.  Update
	comments.
	(paste_all_tokens): Tighten the assert.  Propagate the location of
	the expansion point when no virtual locations are available.
	Pass the virtual location to paste_tokens.
	(in_macro_expansion_p): New static function.
	(enter_macro_context): Set the cpp_reader::about_to_expand_macro_p
	flag until we really start expanding the macro.

gcc/testsuite/

	PR preprocessor/53229
	* gcc.dg/cpp/paste6.c: Force to run without
	-ftrack-macro-expansion.
	* gcc.dg/cpp/paste8.c: Likewise.
	* gcc.dg/cpp/paste8-2.c: New test, like paste8.c but run with
	-ftrack-macro-expansion.
	* gcc.dg/cpp/paste12.c: Force to run without
	-ftrack-macro-expansion.
	* gcc.dg/cpp/paste12-2.c: New test, like paste12.c but run with
	-ftrack-macro-expansion.
	* gcc.dg/cpp/paste13.c: Likewise.
	* gcc.dg/cpp/paste14.c: Likewise.
	* gcc.dg/cpp/paste14-2.c: New test, like paste14.c but run with
	-ftrack-macro-expansion.
	* gcc.dg/cpp/paste18.c: New test.

From-SVN: r187945
2012-05-29 11:36:29 +02:00
Hans-Peter Nilsson
0de9dab58d trap-1.c, [...]: New tests.
* gcc.target/cris/torture/trap-1.c,
	gcc.target/cris/torture/trap-2.c,
	gcc.target/cris/torture/trap-3.c,
	gcc.target/cris/torture/trap-v0.c,
	gcc.target/cris/torture/trap-v3.c: New tests.

From-SVN: r187943
2012-05-29 01:54:09 +00:00
Hans-Peter Nilsson
64f5af47c5 cris.h (TARGET_HAS_BREAK, [...]): New macros.
* config/cris/cris.h (TARGET_HAS_BREAK, TARGET_TRAP_USING_BREAK8):
	New macros.
	* config/cris/cris.md ("trap"): Define, enabled for
	TARGET_TRAP_USING_BREAK8.
	* config/cris/cris.opt (mtrap-using-break8): New option.

From-SVN: r187942
2012-05-29 01:52:16 +00:00
GCC Administrator
3d383eb787 Daily bump.
From-SVN: r187941
2012-05-29 00:17:51 +00:00
Paolo Carlini
4a792f9b95 re PR c++/25137 (Warning "missing braces around initializer" causing problems with tr1::array)
/c-family
2012-05-28  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/25137
	* c-opts.c (c_common_handle_option): For C++ -Wall doesn't enable
	-Wmissing_braces.

2012-05-28  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/25137
	* doc/invoke.texi: Document -Wmissing-braces not enabled by -Wall
	for C++.

/testsuite
2012-05-28  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/25137
	* g++.dg/warn/Wbraces3.C: New.
	* g++.dg/warn/Wbraces4.C: Likewise.

From-SVN: r187937
2012-05-28 17:42:29 +00:00
Hans-Peter Nilsson
b492210558 Fix grammo in last CL entry.
From-SVN: r187936
2012-05-28 16:05:36 +00:00
Hans-Peter Nilsson
c29c10301d * doc/md.texi (Standard Names): Fix typos in documentation for atomic patterns.
From-SVN: r187935
2012-05-28 16:04:14 +00:00
Hans-Peter Nilsson
e9d3ef3b2d md.texi (stack_protect_test): Remove negation of branch to label.
* doc/md.texi (stack_protect_test): Remove negation of
        branch to label.

From-SVN: r187934
2012-05-28 15:43:42 +00:00
Jakub Jelinek
512d321def re PR c++/53505 (bitfield with bool type generated broken object file)
PR tree-optimization/53505
	* c-c++-common/torture/pr53505.c: New test.

From-SVN: r187931
2012-05-28 16:28:00 +02:00
Paolo Carlini
5d497b05fe re PR c++/53503 ([C++0x] unexpected AST of kind ltgt_expr)
gcc/cp
2012-05-28  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/53503
	* semantics.c (potential_constant_expression_1): Handle LTGT_EXPR.

libstdc++-v3
2012-05-28  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/53503
	* testsuite/26_numerics/headers/cmath/53503.cc: New.

From-SVN: r187928
2012-05-28 12:09:01 +00:00
GCC Administrator
fa1fd5cefa Daily bump.
From-SVN: r187927
2012-05-28 00:17:55 +00:00
Nathan Sidwell
253cbc5f37 tree.c (build_constructor): Propagate TREE_SIDE_EFFECTS.
* tree.c (build_constructor): Propagate TREE_SIDE_EFFECTS.
testsuite/
	* gcc.dg/stmt-expr-4.c: New.

From-SVN: r187923
2012-05-27 16:25:58 +00:00
Janne Blomqvist
1ca8bef021 Minor timing cleanups.
2012-05-27  Janne Blomqvist  <jb@gcc.gnu.org>

	* intrinsics/time_1.h (gf_cputime): Don't reevaluate HZ expression
	for times fallback, clarify operation ordering for times and clock
	fallbacks.
	(gf_gettime): Fix comment typo.

From-SVN: r187922
2012-05-27 10:09:15 +03:00
GCC Administrator
f51a04db53 Daily bump.
From-SVN: r187921
2012-05-27 00:17:50 +00:00
Paolo Carlini
982058cbc9 re PR c++/53491 (ICE in build_target_expr_with_type, at cp/tree.c:587)
/cp
2012-05-26  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/53491
	* tree.c (stabilize_expr): Handle exp of void type.

/testsuite
2012-05-26  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/53491
	* g++.dg/parse/crash60.C: New.

From-SVN: r187917
2012-05-26 21:20:38 +00:00
Jason Merrill
1f37c58399 re PR c++/53220 (g++ mis-compiles compound literals)
PR c++/53220
gcc/
	* c-typeck.c (array_to_pointer_conversion): Give -Wc++-compat warning
	about array compound literals.
gcc/cp/
	* call.c (convert_like_real) [ck_list]: Take array address directly.
	* typeck.c (decay_conversion): Reject decay of an array compound
	literal.

From-SVN: r187916
2012-05-26 17:13:23 -04:00
Eric Botcazou
c4c57c9cbe re PR ada/50294 (ICE in output_constructor_regular_field)
PR ada/50294
	* gnat.dg/array21.adb: New test.

From-SVN: r187914
2012-05-26 13:25:55 +00:00
Eric Botcazou
9be9422751 cfgcleanup.c (try_optimize_cfg): Do not delete forwarder blocks if CLEANUP_NO_INSN_DEL.
* cfgcleanup.c (try_optimize_cfg): Do not delete forwarder blocks
	if CLEANUP_NO_INSN_DEL.
	* cfgrtl.c (unique_locus_on_edge_between_p): New function extracted
	from cfg_layout_merge_blocks.
	(emit_nop_for_unique_locus_between): New function.
	(rtl_merge_blocks): Invoke emit_nop_for_unique_locus_between.
	(cfg_layout_merge_blocks): Likewise.

From-SVN: r187913
2012-05-26 12:05:24 +00:00
Eric Botcazou
60ba49d019 * gnat.dg/renaming5.adb: Adjust dg-final directive.
From-SVN: r187912
2012-05-26 11:46:53 +00:00
Dimitrios Apostolou
c5ebdc251f df-scan.c (df_def_record_1): Assert a parallel must contain an EXPR_LIST at this point.
2012-05-26  Dimitrios Apostolou  <jimis@gmx.net>
	    Paolo Bonzini  <bonzini@gnu.org>

	* df-scan.c (df_def_record_1): Assert a parallel must contain an
	EXPR_LIST at this point.  Receive the LOC and move its extraction...
	(df_defs_record): ... here. Change if-else to a switch statement.
	(df_find_hard_reg_defs, df_find_hard_reg_defs_1): New.
	(df_get_call_refs): Changed defs_generated from bitmap to HARD_REG_SET
	and compute it from df_find_hard_reg_defs(). Record DF_REF_BASE
	DEFs in REGNO order. Use HARD_REG_SET instead of bitmap for
	regs_invalidated_by_call.
	(df_insn_refs_collect): Record DF_REF_REGULAR DEFs after
	df_get_call_refs().


Co-Authored-By: Paolo Bonzini <bonzini@gnu.org>

From-SVN: r187911
2012-05-26 11:44:50 +00:00
Eric Botcazou
82ea8185b8 decl.c (variant_desc): Rename 'record' to 'new_type'.
* gcc-interface/decl.c (variant_desc): Rename 'record' to 'new_type'.
	(build_variant_list): Adjust to above renaming.
	(gnat_to_gnu_entity) <E_Record_Subtype>: Likewise.  Give a unique name
	to the type of the variant containers.
	(create_variant_part_from): Likewise.  Give a unique name to the type
	of the variant part.

From-SVN: r187908
2012-05-26 10:42:17 +00:00
GCC Administrator
083aa7444e Daily bump.
From-SVN: r187906
2012-05-26 00:18:49 +00:00
Paolo Carlini
6d199d3c08 re PR c++/32054 (Storage classes on anonymous unions in classes)
/cp
2012-05-25  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/32054
	* parser.c (cp_parser_member_declaration): A storage class is not
	allowed in a declaration of an anonymous aggregate in a class scope.

/testsuite
2012-05-25  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/32054
	* g++.dg/other/anon-union3.C: New.

From-SVN: r187902
2012-05-25 23:40:10 +00:00
Ian Lance Taylor
d4dc840de4 runtime: More efficient implementation of trampolines.
From-SVN: r187899
2012-05-25 21:51:39 +00:00
Ian Lance Taylor
40bb0243ec compiler: Don't create a closure if not needed.
From-SVN: r187897
2012-05-25 21:14:40 +00:00
Ian Lance Taylor
31a18a7e23 morestack.S (__morestack_non_split): Check whether caller is varargs and needs %bp to hold the stack frame on return.
libgcc/:
	* config/i386/morestack.S (__morestack_non_split): Check whether
	caller is varargs and needs %bp to hold the stack frame on return.
gcc/testsuite/:
	* gcc.dg/split-6.c: New test.

From-SVN: r187894
2012-05-25 20:48:19 +00:00
Eric Botcazou
37c59e691e re PR lto/52178 (Ada bootstrap failure in LTO mode)
PR lto/52178
	* tree-inline.c (remap_gimple_op_r): Fix handling of FIELD_DECL.
	* tree.c (RETURN_TRUE_IF_VAR): Do not return true for PLACEHOLDER_EXPR.

From-SVN: r187892
2012-05-25 20:26:11 +00:00
Michael Meissner
13af22d7a0 t-linux64: Delete the 32-bit multilib that uses software floating point emulation.
2012-05-25  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/t-linux64: Delete the 32-bit multilib that uses
	software floating point emulation.  No longer build the multilibs
	with -mstrict-align.

From-SVN: r187891
2012-05-25 20:00:58 +00:00
Ian Lance Taylor
e5159e6070 runtime: Fix cast error in print.c on 32-bit systems.
From-SVN: r187889
2012-05-25 18:22:01 +00:00
Uros Bizjak
b7d56bdfe9 re PR objc++/53441 (obj-c++.dg/ivar-invalid-type-1.mm ICE)
PR obj-c++/53441
	* decl.c (grokdeclarator): Check that current_class_type is non-NULL
	before calling constructor_name_p.

From-SVN: r187888
2012-05-25 19:29:33 +02:00
Aldy Hernandez
7be9eece4c re PR middle-end/53008 (abort in _ITM_getTMCloneSafe)
PR middle-end/53008
        * trans-mem.c (ipa_tm_create_version_alias): Output new_node if
        accessed indirectly.
        (ipa_tm_create_version): Same.

From-SVN: r187887
2012-05-25 17:14:25 +00:00
Uros Bizjak
305c089a9f * decl.c: Revert unwanted commit.
From-SVN: r187886
2012-05-25 17:09:49 +02:00
Uros Bizjak
a295fa90c3 re PR target/53474 (Solaris/x86 bootstrap with Sun as broken: j.e)
PR target/53474
	* config/i386/i386.c (ix86_print_operand) <case 'O'>: Print '.' here.
	<case 'C', case 'c', case 'F', case 'f'>: Print '.' only for C and c.

From-SVN: r187885
2012-05-25 17:07:02 +02:00
Alexander Ivchenko
0ba89f9bb1 re PR target/53435 ((ix86_expand_vec_perm) and (ix86_expand_vec_perm) do not pass arguments to avx2_permvar8s[f,i] correctly)
2012-05-21  Alexander Ivchenko  <alexander.ivchenko@intel.com>

       PR target/53435
       * config/i386/i386.c (ix86_expand_vec_perm): Use correct op.
       (ix86_expand_vec_perm): Use int mode instead of float.
       (expand_vec_perm_pshufb): Remove handling of useseless type
       conversion.

From-SVN: r187881
2012-05-25 13:03:18 +00:00
H.J. Lu
c7046906c3 Remove any .comment sections if the first cmp failed
PR bootstrap/53472
	* contrib/compare-debug (remove_comment): New function.
	Remove any .comment sections if the first cmp failed.

From-SVN: r187879
2012-05-25 04:47:05 -07:00
Eric Botcazou
619a69500d Fix formatting
From-SVN: r187875
2012-05-25 09:57:15 +00:00
Eric Botcazou
b993039f5b re PR ada/52362 (gnat.dg/lto8.adb FAILs with gas/gld)
PR ada/52362
	* config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Set gas and
	gnu_ld variables to yes.
	* configure.ac (HAVE_GNU_LD): Move to after config.gcc inclusion.
	(HAVE_GNU_AS): Likewise.
	* config.in: Regenerate.
	* configure: Likewise.
ada/
	* link.c (__gnat_object_file_option): Set to "-Wl,@" for GNU linker.
	(__gnat_using_gnu_linker): Delete.
	* gnatlink.adb (Gnatlink): Declare Object_File_Option_Ptr here...
	Declare Object_File_Option string constant and Using_GNU_response_file
	boolean constant.
	(Process_Binder_File): ...instead of here.  Delete Using_GNU_Linker,
	Opening and Closing local variables.  Do not handle the GNU linker
	specially.
	(Write_RF): New procedure to write into the response file.  Escape some
	characters if a GNU response file is used.  Keep track of error status.
	Invoke Write_RF to write into the response file.  Delete the file only
	if the link was successful.
	* mlib-utl.adb: Do not `with' package System.
	(Gcc): Likewise.  Declare Object_File_Option string constant and
	Using_GNU_response_file boolean constant.
	(Write_RF): Take a string instead of address and length.  Escape some
	characters if a GNU response file is used.
	Invoke Write_RF to write into the response file.  Delete the file only
	if the link was successful.  Do not warn if it cannot be deleted.

From-SVN: r187874
2012-05-25 09:24:08 +00:00
Tristan Gingold
4aa820fec7 i386.c (struct ix86_frame): Remove unused frame field.
gcc/
2012-05-25  Tristan Gingold  <gingold@adacore.com>

	* config/i386/i386.c (struct ix86_frame): Remove unused frame field.
	(ix86_compute_frame_layout): Fix type of stack_alignment_needed
	and preferred_alignment.

gcc/testsuite
2012-05-25  Tristan Gingold  <gingold@adacore.com>

	* gcc.target/i386/large-frame.c: New.

From-SVN: r187873
2012-05-25 08:58:25 +00:00
Tristan Gingold
d656c9c5bd ia64-common.c (ia64_except_unwind_info): Fix typo.
2012-05-25  Tristan Gingold  <gingold@adacore.com>

        * common/config/ia64/ia64-common.c (ia64_except_unwind_info): Fix typo.

From-SVN: r187872
2012-05-25 08:47:07 +00:00
Olivier Hainque
c57685107c tramp.S (trampoline_setup): Use a longcall sequence in the non pic case on VxWorks.
libgcc/
        * config/rs6000/vxworks/tramp.S (trampoline_setup): Use a longcall
        sequence in the non pic case on VxWorks.

From-SVN: r187871
2012-05-25 08:20:03 +00:00
Thomas Schwinge
489381473d fold-const.c (optimize_bit_field_compare): Abort early in the strict volatile bitfields case.
gcc/
	* fold-const.c (optimize_bit_field_compare): Abort early in the strict
	volatile bitfields case.

From-SVN: r187869
2012-05-25 10:04:28 +02:00
GCC Administrator
1746f5860b Daily bump.
From-SVN: r187865
2012-05-25 00:17:44 +00:00
Ian Lance Taylor
bac564c53e runtime: Make runtime.Stack actually work.
From-SVN: r187854
2012-05-24 21:07:18 +00:00