120915 Commits

Author SHA1 Message Date
Paolo Carlini
094484e72e tree.c (build_aggr_init_expr): Remove tsubst_flags_t parameter.
2012-12-07  Paolo Carlini  <paolo.carlini@oracle.com>

	* tree.c (build_aggr_init_expr): Remove tsubst_flags_t parameter.
	(build_cplus_new): Adjust.
	* cp-tree.h: Adjust declaration.
	* init.c (build_value_init): Adjust.

From-SVN: r194312
2012-12-07 23:17:14 +00:00
Sriraman Tallam
6757fd34bc toplev.c (process_options): Do not warn when -ffunction-sections and -fprofile are used together.
2012-12-07  Sriraman Tallan  <tmsriram@google.com>

	* toplev.c (process_options): Do not warn when -ffunction-sections
	and -fprofile are used together.

From-SVN: r194311
2012-12-07 22:46:35 +00:00
Steven Bosscher
8a1239acfc * ree.c (struct ext_cand): Remove GTY markers.
From-SVN: r194310
2012-12-07 22:29:01 +00:00
Mike Stump
9b1baeef25 discr38.adb: Don't use ^M line endings.
2012-12-07  Mike Stump  <mikestump@comcast.net>

	    * gnat.dg/discr38.adb: Don't use ^M line endings.
	    gnat.dg/loop_optimization13.adb: Likewise.
	    gnat.dg/loop_optimization13.ads: Likewise.
	    gnat.dg/discr36_pkg.adb: Likewise.
	    gnat.dg/discr36_pkg.ads: Likewise.
	    gnat.dg/loop_optimization11_pkg.ads: Likewise.
	    gnat.dg/discr36.ads: Likewise.
	    gnat.dg/loop_optimization11.adb: Likewise.

From-SVN: r194309
2012-12-07 21:26:20 +00:00
Vladimir Makarov
9011b0f6b7 re PR rtl-optimization/55141 (wrong code with -fno-split-wide-types)
2012-12-07  Vladimir Makarov  <vmakarov@redhat.com>

	testsuite/gcc.target/i386/pr55141.c
	* lra-constraints.c (lra_constraints): Use biggest mode for
	df_set_regs_ever_live.

2012-12-07  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/55141
	* gcc.target/i386/pr55141.c: New.

From-SVN: r194308
2012-12-07 21:06:38 +00:00
Dodji Seketeli
62defc56c5 PR c++/54401 - Confusing diagnostics about type-alias at class scope
Consider this invalid example given in the PR, where T is not defined:

     1	template<typename>
     2	struct X {
     3	    using type = T;
     4	};

g++ yields the confusing diagnostics:

test.cc:3:10: error: expected nested-name-specifier before 'type'
    using type = T;
          ^
test.cc:3:10: error: using-declaration for non-member at class scope
test.cc:3:15: error: expected ';' before '=' token
    using type = T;
               ^
test.cc:3:15: error: expected unqualified-id before '=' token

I think this is because in cp_parser_member_declaration we tentatively
parse an alias declaration; we then have a somewhat meaningful
diagnostic which alas is not emitted because we are parsing
tentatively.  As the parsing didn't succeed (because the input is
invalid) we try to parse a using declaration, which fails as well; but
then the diagnostic emitted is the one for the failed attempt at
parsing a using declaration, not an alias declaration.  Oops.

The idea of this patch is to commit the tentative parse when we see
the '=' token in the alias-declaration.  That way any error encounter
after that token is reported to the user.

We are now getting the following output:

    test.cc:3:18: erreur: expected type-specifier before ‘T’
	 using type = T;
		      ^
    test.cc:3:18: erreur: ‘T’ does not name a type

I don't really like the "before 'T'" there, but I think we maybe could
revisit the format of what cp_parser_error emits in general, now that
we have caret diagnostics;  We could maybe do away with the "before T"
altogether?

In the mean time, it seems to me that this patch brings an improvement
over what we already have in trunk, and the issue above could be
addressed separately.

Tested on x86_64-unknown-linux-gnu against trunk.

gcc/cp/

	* parser.c (cp_parser_alias_declaration): Commit to tentative
	parse when see the '=' token.  Get out if the type-id is invalid.
	Update function comment.
	(cp_parser_member_declaration): Don't try to parse a using
	declaration if we know that we expected an alias declaration; that
	is, if we see the '=' token after the identifier.

gcc/testsuite/

	* g++.dg/cpp0x/alias-decl-28.C: New test.
	* g++.dg/cpp0x/alias-decl-16.C: Update.

From-SVN: r194306
2012-12-07 18:05:19 +01:00
Jan Hubicka
0588ac84f7 tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Add UPPER_BOUND parameter.
* tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Add UPPER_BOUND
 	parameter.
 	(try_unroll_loop_completely) Update.

From-SVN: r194305
2012-12-07 17:02:20 +00:00
Jakub Jelinek
0bd0d3bc95 re PR fortran/55395 (libgfortran bootstrap failure on powerpc-linux-gnu and arm-linux-gnueabi)
PR fortran/55395
	* varpool.c (varpool_remove_node): Don't drop DECL_INITIAL
	for -g for any kind of debug info.

From-SVN: r194304
2012-12-07 17:04:26 +01:00
Jakub Jelinek
a58dfde08d re PR bootstrap/54926 (Bootstrap comparison failure for various files in libbacktrace)
PR bootstrap/54926
	* Makefile.am (AM_CFLAGS): Add -frandom-seed=$@.
	* Makefile.in: Regenerated.

From-SVN: r194303
2012-12-07 15:14:25 +01:00
Richard Biener
2b91f098af re PR tree-optimization/54886 (FAIL: gcc.dg/graphite/pr(42521|42771).c (internal compiler error) due to revision 192219)
2012-12-07  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/54886
	* graphite-sese-to-poly.c (build_loop_iteration_domains): Properly
	free all memory.

From-SVN: r194302
2012-12-07 13:16:28 +00:00
Martin Jambor
d250540a66 re PR middle-end/55078 (FAIL: g++.dg/torture/pr46154.C)
2012-12-07  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/55078
	* ipa-inline-transform.c (inline_call): Turn #if 0 to #ifdef
	ENABLE_CHECKING.
	* ipa-prop.c (try_make_edge_direct_simple_call): Use
	ipa_value_from_jfunc.
	(try_make_edge_direct_virtual_call): Likewise.
	(update_indirect_edges_after_inlining): Lookup new_root_info and pass
	it to the functions above.

From-SVN: r194301
2012-12-07 14:05:52 +01:00
Martin Jambor
4bd7b70b89 re PR tree-optimization/55590 (SRA still produces unnecessarily unaligned memory accesses)
2012-12-07  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/55590
	* tree-sra.c (build_ref_for_offset): Use get_object_alignment_1 to
	get base alignment.

	* testsuite/gcc.target/i386/pr55590-1.c: New test.
	* testsuite/gcc.target/i386/pr55590-2.c: Likewise.

From-SVN: r194300
2012-12-07 13:50:43 +01:00
Uros Bizjak
a09b3c50dd * config/i386/i386.c (legitimize_tls_address): Reorganize a tiny bit.
From-SVN: r194299
2012-12-07 12:02:37 +01:00
Paolo Carlini
6fe61543c7 re PR c++/54975 (cv-qualifiers of typedef-name are ignored in lambda expression)
2012-12-07  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/54975
	* g++.dg/cpp0x/lambda/lambda-typedef.C: New.

From-SVN: r194297
2012-12-07 09:53:04 +00:00
Jason Merrill
0ed4ab44f6 re PR c++/54325 (C++11 uniform initialization syntax for argument-less abstract base class constructor fails)
PR c++/54325
	* tree.c (build_aggr_init_expr): Don't check for abstract class.

From-SVN: r194284
2012-12-06 23:54:27 -05:00
Jason Merrill
c7dd75fb5c add PR 55245 marker
From-SVN: r194283
2012-12-06 23:54:12 -05:00
Jason Merrill
3e243cfced re PR c++/55058 (Unexpected invalid type conversion error)
PR c++/55058
	* pt.c (tsubst): Keep the quals when looking through a typedef.

From-SVN: r194282
2012-12-06 23:53:59 -05:00
Jason Merrill
01290963d1 re PR c++/55249 (Multiple copy constructors for template class lead to link errors)
PR c++/55249
	* tree.c (build_vec_init_elt): Use the type of the initializer.

From-SVN: r194281
2012-12-06 23:53:46 -05:00
GCC Administrator
2c340383f0 Daily bump.
From-SVN: r194278
2012-12-07 00:18:45 +00:00
Uros Bizjak
5858fcd997 re PR middle-end/55597 (internal compiler error: in plus_constant, at explow.c:88)
PR target/55597
	* config/i386/i386.c (legitimize_tls_address): Zero-extend x to Pmode,
	before using it as insn or call equivalent.

testsuite/ChangeLog:

	PR target/55597
	* gcc.target/i386/pr55597.c: New test.

From-SVN: r194274
2012-12-06 23:05:21 +01:00
Peter Bergner
957fee09af configure.tgt: Enable build on powerpc*-linux.
libsanitizer/
	* configure.tgt: Enable build on powerpc*-linux.

gcc/
	* config/rs6000/sysv4.h (TARGET_ASAN_SHADOW_OFFSET): Define.
	* config/rs6000/rs6000.c (rs6000_asan_shadow_offset): New function.
	* config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Disable if using ASAN.

From-SVN: r194273
2012-12-06 15:53:36 -06:00
Jakub Jelinek
789b6d0559 re PR fortran/55395 (libgfortran bootstrap failure on powerpc-linux-gnu and arm-linux-gnueabi)
PR fortran/55395
	* varpool.c (varpool_remove_node): Don't drop DECL_INITIAL
	if -g and emitting DWARF2+.

From-SVN: r194272
2012-12-06 21:34:55 +01:00
Pat Haugen
6c64e50fc8 rs6000.c (rs6000_option_override_internal): Set default loop peeling limits.
* config/rs6000/rs6000.c (rs6000_option_override_internal): Set
	default loop peeling limits.

From-SVN: r194271
2012-12-06 20:32:37 +00:00
Jason Merrill
5cd5a78c9b re PR c++/54744 (internal compiler error: Segmentation fault, by dependent base, member typedef and ctor-initializer)
PR c++/54744
	* pt.c (resolve_typename_type): Check TYPENAME_IS_RESOLVING_P on scope.
	* init.c (expand_member_init): Check for being in a template first.
	* parser.c (cp_parser_mem_initializer_list): Only check class types
	for equivalence to the current class.

From-SVN: r194267
2012-12-06 15:21:08 -05:00
Jason Merrill
1e8671f733 re PR c++/54913 (qualified lookup in ctor of class template fails to find static member of reference type)
PR c++/54913
	* semantics.c (finish_qualified_id_expr): convert_from_reference
	after building a SCOPE_REF.

From-SVN: r194266
2012-12-06 15:20:52 -05:00
Jason Merrill
0fe4913b32 re PR c++/55032 (Internal compiler error: in strip_typedefs, at cp/tree.c:1199)
PR c++/55032
	* tree.c (build_array_type_1): Re-layout if we found it in the
	hash table.

From-SVN: r194265
2012-12-06 15:20:34 -05:00
Jakub Jelinek
84fd832c03 re PR c++/54207 ([C++0x] ICE in build_noexcept_spec when bool is #defined/typedef'd)
PR c++/54207
	* except.c (build_noexcept_spec): Avoid direct comparison
	with boolean_true_node or boolean_false_node, instead use
	operand_equal_p and/or INTEGER_CST check.
	* pt.c (tsubst_exception_specification): Likewise.
	* typeck2.c (merge_exception_specifiers): Likewise.

	* g++.dg/cpp0x/noexcept18.C: New test.

From-SVN: r194263
2012-12-06 19:55:48 +01:00
Jakub Jelinek
947f720f7d re PR c++/55573 (ICE in adjust_temp_type, at cp/semantics.c:6454)
PR c++/55573
	* semantics.c (adjust_temp_type): Handle VECTOR_CST.

	* g++.dg/cpp0x/constexpr-55573.C: New test.

From-SVN: r194262
2012-12-06 19:54:25 +01:00
Jack Howarth
3157880f53 Fix PR55599/sanitizer by disabling static libasan on darwin
From-SVN: r194257
2012-12-06 14:49:44 +00:00
Jason Merrill
9e04d8a2a0 re PR c++/54947 ([C++11] lambda cannot capture-by-copy inside braced-init-list)
PR c++/54947
	* parser.c (cp_parser_initializer_list): Don't require an
	expression in [] to be constant until we know it's a C99
	designator.

From-SVN: r194256
2012-12-06 09:45:11 -05:00
Kostya Serebryany
695edbac5c [libsanitizer] merge from upstream r169392
From-SVN: r194255
2012-12-06 14:43:11 +00:00
Jakub Jelinek
c8211767c5 re PR middle-end/43631 (var-tracking inserts notes with non-NULL BLOCK_FOR_INSN in between basic blocks)
PR middle-end/43631
	* var-tracking.c (emit_note_insn_var_location, emit_notes_in_bb):
	Clear BLOCK_FOR_INSN on notes emitted in between basic blocks,
	don't adjust BB_END when inserting note after BB_END of some bb.

From-SVN: r194252
2012-12-06 15:37:59 +01:00
Jason Merrill
7d9fe08e13 re PR c++/55015 (Lambda functions not found at link time when declared in an inline function)
PR c++/55015
	PR c++/53821
	* semantics.c (maybe_add_lambda_conv_op): Revert earlier change.
	* decl.c (start_preparsed_function): Make local class methods comdat
	in templates, too.

From-SVN: r194251
2012-12-06 09:37:13 -05:00
Jakub Jelinek
5442fe4818 re PR c++/55137 (Unexpected static structure initialization)
PR c++/55137
	* fold-const.c (fold_binary_loc) <associate>: Don't introduce
	TREE_OVERFLOW through reassociation.  If type doesn't have defined
	overflow, but one or both of the operands do, use the wrapping type
	for reassociation and only convert to type at the end.

	* g++.dg/opt/pr55137.C: New test.
	* gcc.c-torture/execute/pr55137.c: New test.

From-SVN: r194250
2012-12-06 15:37:09 +01:00
Jason Merrill
d8169a0d2a re PR c++/54653 (tsubst_template_parms ICE)
PR c++/54653
	* parser.c (cp_parser_class_head): A partial specialization scope
	counts as a template.
	* pt.c (tsubst_template_parms): Handle template template parm parms.
	(tsubst_decl) [TEMPLATE_DECL]: Handle getting a template template
	argument back.

From-SVN: r194249
2012-12-06 09:37:04 -05:00
Jason Merrill
5128e01493 re PR c++/55564 (internal error using decltype of a template type parameter for late-specified function result type)
PR c++/55564
	* pt.c (unify) [ARRAY_TYPE]: Unify the element type before the bounds.

From-SVN: r194248
2012-12-06 09:36:55 -05:00
Richard Biener
37376165be gimple-fold.c (fold_stmt_1): Remove code handling folding stmts away.
2012-12-06  Richard Biener  <rguenther@suse.de>

	* gimple-fold.c (fold_stmt_1): Remove code handling folding
	stmts away.

From-SVN: r194247
2012-12-06 11:00:23 +00:00
Kyrylo Tkachov
71aa66e4fd sourcebuild.texi: Document arm_v8_neon_ok.
2012-12-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	gcc/
	* doc/sourcebuild.texi: Document arm_v8_neon_ok.

	gcc/testsuite/
	* lib/target-supports.exp (check_effective_target_arm_v8_neon_ok):
	New procedure.
	(add_options_for_arm_v8_neon): Likewise.

From-SVN: r194245
2012-12-06 10:07:41 +00:00
Kyrylo Tkachov
7973996540 arm.c (neon_itype): Define NEON_RINT enum element.
2012-12-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.c (neon_itype): Define NEON_RINT enum element.
	(neon_builtin_data): Register vrintn, vrinta, vrintp, vrintm,
	vrintz,	vrintx neon builtins.
	(arm_init_neon_builtins): Handle NEON_RINT.
	(arm_expand_neon_builtin): Likewise.
	* config/arm/unspecs.md: New file.
	* config/arm/arm.md ("unspec"): Move to unspecs.md.
	* config/arm/iterators.md (NEON_VRINT): New int iterator.
	(nvrint_variant): New int attribute.
	* config/arm/neon.md 
	(neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): New pattern.
	("unspec"): Move to unspecs.md.
	* config/arm/iwmmxt2.md ("unspec"): Move to unspecs.md.

From-SVN: r194244
2012-12-06 09:55:45 +00:00
Uros Bizjak
4f2b3dc2b4 sfp-machine.h (FP_EX_ALL): Define.
* config/i386/sfp-machine.h (FP_EX_ALL): Define.
	(FP_TRAPPING_EXCEPTIONS): Define.
	* config/i386/32/sfp-machine.h (FP_EX_SHIFT): Define.
	* config/i386/64/sfp-machine.h (FP_EX_SHIFT): Ditto.

From-SVN: r194243
2012-12-06 10:49:43 +01:00
Ian Lance Taylor
cb0a70cac9 compiler: Correct test for whether go/defer arg is parenthesized.
From-SVN: r194240
2012-12-06 04:11:54 +00:00
Ian Lance Taylor
4d901dd735 os: Clean up directory reading code.
From-SVN: r194237
2012-12-06 02:00:13 +00:00
John David Anglin
d698104260 pa.md: Use "const_int 0" instead of match_test to simplify opaque cond in all call insns.
* config/pa/pa.md: Use "const_int 0" instead of match_test to simplify
	opaque cond in all call insns.

From-SVN: r194235
2012-12-06 01:38:00 +00:00
GCC Administrator
955948756e Daily bump.
From-SVN: r194234
2012-12-06 00:18:38 +00:00
Steven Bosscher
2412b9b097 * g++.dg/pr55604.C: New test.
From-SVN: r194231
2012-12-05 23:57:17 +00:00
Steven Bosscher
85f9ce675d re PR rtl-optimization/55604 (ICE while dumping in remove_some_program_points_and_update_live_ranges)
PR rtl-optimization/55604
	* lra-lives.c (lra_create_live_ranges): If there are no referenced
	pseudos left, do not compute live ranges.

From-SVN: r194230
2012-12-05 23:55:28 +00:00
Steven Bosscher
aeb9f7cf3c tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Update documentation.
* doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Update documentation.
	* doc/tm.texi: Regenerate.
	* regs.h (REG_LIVE_LENGTH): Update comments to not refer to no longer
	existing files global.c and local-alloc.c.
	* regmove.c (copy_src_to_dest): Likewise.
	* function.h (struct rtl_data): Likewise.
	* ira-color.c (allocno_priority_compare_func): Likewise.
	* regstat.c (regstat_compute_ri): Likewise.
	* config/epiphany/epiphany.h, config/vax/vax.h, config/cris/cris.h,
	config/h8300/h8300.h, config/alpha/alpha.h, config/sparc/sparc.h,
	config/rs6000/rs6000.h, config/pdp11/pdp11.h, config/pa/pa.h,
	config/v850/v850.h, config/mn10300/mn10300.h, config/m32r/m32r.h,
	config/i386/i386.h, config/mcore/mcore.h, config/sh/sh.h,
	config/arm/arm.h (REGNO_OK_FOR_BASE_P): Likewise.

From-SVN: r194229
2012-12-05 23:16:52 +00:00
Aldy Hernandez
833fe7dadc re PR target/54160 (gcc should not define __OBJC2__ when lang is not set to ObjC (gcc 4.6 and later))
PR target/54160
	* config/t-darwin (darwin-c.o): Depend on $(CPP_INTERNAL_H).
	* config/darwin-c.c (darwin_cpp_builtins): Only set __OBJC2__
	when in obj mode.
	Include libcpp/internal.h.

From-SVN: r194227
2012-12-05 21:10:18 +00:00
Michael Eager
b08c12cb46 re PR rtl-optimization/54739 (FAIL: gcc.dg/lower-subreg-1.c scan-rtl-dump subreg1 "Splitting reg")
PR rtl-optimization/54739
	* config/microblaze/microblaze.md: (anddi3, iordi3, xordi3): Delete patterns.

From-SVN: r194226
2012-12-05 17:27:05 +00:00
Tobias Burnus
d07e82f92b resolve.c (generate_component_assignments): Fix memleak.
2012-12-05  Tobias Burnus  <burnus@net-b.de>

        * resolve.c (generate_component_assignments): Fix memleak.

From-SVN: r194225
2012-12-05 16:45:32 +01:00