Commit Graph

147641 Commits

Author SHA1 Message Date
David Malcolm 52ed68f71a C++ FE: handle misspelled identifiers and typenames
gcc/cp/ChangeLog:
	PR c/70339
	PR c/71858
	* name-lookup.c: Include gcc-rich-location.h, spellcheck-tree.h,
	and parser.h.
	(suggest_alternatives_for): If no candidates are found, try
	lookup_name_fuzzy and report if if finds a suggestion.
	(consider_binding_level): New function.
	(lookup_name_fuzzy) New function.
	* parser.c: Include gcc-rich-location.h.
	(cp_lexer_next_token_is_decl_specifier_keyword): Move most of
	logic into...
	(cp_keyword_starts_decl_specifier_p): ...this new function.
	(cp_parser_diagnose_invalid_type_name): When issuing
	"does not name a type" errors, attempt to make a suggestion using
	lookup_name_fuzzy.
	* parser.h (cp_keyword_starts_decl_specifier_p): New prototype.
	* search.c (lookup_field_fuzzy_info::fuzzy_lookup_field): Reject
	types that are not CLASS_TYPE_P, rather than rejecting individual
	tree codes.

gcc/testsuite/ChangeLog:
	PR c/70339
	PR c/71858
	* g++.dg/spellcheck-identifiers.C: New test case, based on
	gcc.dg/spellcheck-identifiers.c.
	* g++.dg/spellcheck-identifiers-2.C: New test case, based on
	gcc.dg/spellcheck-identifiers-2.c.
	* g++.dg/spellcheck-typenames.C: New test case, based on
	gcc.dg/spellcheck-typenames.c

From-SVN: r238538
2016-07-20 18:42:11 +00:00
Andreas Krebbel 1397e16301 S/390: Remove mode size check in encode_section_info.
With the last change the not-aligned symbol ref markers are always set
for modes with size zero.  This is wrong since for larl the size of
the access does not matter.  This patch removes that check entirely
from s390_encode_section_info.  Modes with a size of 0 get rejected in
s390_check_symref_alignment which is used for the load/store relative
instructions to check for natural alignment.

Bootstrapped and regression tested on s390 and s390x with
--with-arch=z900 and --with-arch=z13.

gcc/ChangeLog:

2016-07-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_encode_section_info): Remove mode size
	check.

From-SVN: r238536
2016-07-20 18:33:30 +00:00
Jonathan Wakely 09a855ae3c Document LWG DR 2684 status and regenerate libstdc++ manual
* doc/xml/manual/intro.xml: Document DR 2684 status.
	* doc/html/*: Regenerate.

From-SVN: r238535
2016-07-20 19:22:05 +01:00
Jonathan Wakely e87b7d52c3 LWG 2441 Provide exact-width atomic typedefs
* include/std/atomic (atomic_int8_t, atomic_uint8_t, atomic_int16_t)
	(atomic_uint16_t, atomic_int32_t, atomic_uint32_t, atomic_int64_t)
	(atomic_uint64_t): Define (LWG 2441).
	* testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc: Remove empty
	lines.
	* testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Test for
	the new types.
	* doc/xml/manual/intro.xml: Document DR 2441 status.

From-SVN: r238534
2016-07-20 19:21:59 +01:00
Jonathan Wakely 07c772ed4e LWG 2328 Rvalue stream extraction should use perfect forwarding
* include/std/istream (operator>>(basic_istream&&, _Tp&)): Adjust
	to use perfect forwarding (LWG 2328).
	* testsuite/27_io/rvalue_streams.cc: Test perfect forwarding.
	* doc/xml/manual/intro.xml: Document DR 2328 status.

From-SVN: r238533
2016-07-20 19:21:53 +01:00
Jonathan Wakely 18407bfb2c Use static pointer to member when catching nullptr
libstdc++-v3:

	* libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Use
	static objects for catching nullptr as pointer to member types.

gcc/testsuite:

	* g++.dg/cpp0x/nullptr35.C: Change expected result for catching as
	pointer to member function and also test catching by reference.

From-SVN: r238532
2016-07-20 19:21:48 +01:00
Dominik Vogt 4c07fd98b8 S/390: Fix pr67443.c.
The attached patch rewrites the pr67443.c testcase in a different way
so that the test still works with the changed allocation of globals
pinned to registers.  The test ist hopefully more robust now.

gcc/testsuite/ChangeLog:

2016-07-20  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* gcc.target/s390/pr67443.c: Fix test case.

From-SVN: r238531
2016-07-20 17:11:37 +00:00
Dominik Vogt fee21d65c0 S/390: Xfail some tests in insv-[12].c.
The attached patch XFAILs some of the "insv" testcases as
discussed internally.  Tested on s390x biarch and s390.

gcc/testsuite/ChangeLog:

2016-07-20  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* gcc.target/s390/insv-1.c: Xfail some tests.
	* gcc.target/s390/insv-2.c: Likewise.

From-SVN: r238530
2016-07-20 17:09:03 +00:00
Uros Bizjak dd4786fe81 cse.c: Use HOST_WIDE_INT_M1 instead of ~(HOST_WIDE_INT) 0.
* cse.c: Use HOST_WIDE_INT_M1 instead of ~(HOST_WIDE_INT) 0.
	* combine.c: Use HOST_WIDE_INT_M1U instead of
	~(unsigned HOST_WIDE_INT) 0.
	* double-int.h: Ditto.
	* dse.c: Ditto.
	* dwarf2asm.c:Ditto.
	* expmed.c: Ditto.
	* genmodes.c: Ditto.
	* match.pd: Ditto.
	* read-rtl.c: Ditto.
	* tree-ssa-loop-ivopts.c: Ditto.
	* tree-ssa-loop-prefetch.c: Ditto.
	* tree-vect-generic.c: Ditto.
	* tree-vect-patterns.c: Ditto.
	* tree.c: Ditto.

From-SVN: r238529
2016-07-20 17:47:33 +02:00
Georg-Johann Lay dbe9dfdd50 avr.c (avr_legitimize_address): Force constant addresses outside [0,0xc0] into a register.
gcc/
	* gcc/config/avr.c (avr_legitimize_address) [AVR_TINY]: Force
	constant addresses outside [0,0xc0] into a register.
	(avr_out_movhi_r_mr_reg_no_disp_tiny): Pass insn.  And handle
	cases where the base address register is unused after.
	(avr_out_movhi_r_mr_reg_disp_tiny): Same.
	(avr_out_movhi_mr_r_reg_disp_tiny): Same.
	(avr_out_store_psi_reg_disp_tiny): Same.

gcc/testsuite/
	* gcc.target/avr/torture/get-mem.c: New test.
	* gcc.target/avr/torture/set-mem.c: New test.

From-SVN: r238528
2016-07-20 14:46:57 +00:00
Georg-Johann Lay c25e1d82bf Implement attribute progmem on reduced Tiny cores by adding flash offset 0x4000 to respective symbols.
gcc/
	Implement attribute progmem on reduced Tiny cores by adding
	flash offset 0x4000 to respective symbols.

	PR target/71948
	* doc/extend.texi (AVR Variable Attributes) [progmem]: Add
	documentation how it works on reduced Tiny cores.
	(AVR Named Address Spaces): No support for reduced Tiny.
	* config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): New macro.
	(avr_address_tiny_pm_p): New static function.
	(avr_print_operand_address) [AVR_TINY]: Add AVR_TINY_PM_OFFSET
	if the address is in progmem.
	(avr_assemble_integer): Same.
	(avr_encode_section_info) [AVR_TINY]: Set AVR_SYMBOL_FLAG_TINY_PM
	for symbol_ref in progmem.
	* config/avr/avr.h (AVR_TINY_PM_OFFSET): New macro.
	* config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it instead of
	magic 0x4000 when built-in def'ing __AVR_TINY_PM_BASE_ADDRESS__.
gcc/testsuite/
	PR target/71948
	* gcc.target/avr/torture/tiny-progmem.c: New test.

From-SVN: r238525
2016-07-20 14:12:16 +00:00
Patrick Palka 25e08379b8 Build libbackend.a as a thin archive if possible
gcc/ChangeLog:

	* configure.ac (thin_archive_support): New variable.  AC_SUBST it.
	* configure: Regenerate.
	* Makefile.in (THIN_ARCHIVE_SUPPORT): New variable.
	(USE_THIN_ARCHIVES): New variable.
	(libbackend.a): If USE_THIN_ARCHIVES then pass T to ar to build
	this archive as a thin archive.

From-SVN: r238524
2016-07-20 14:09:20 +00:00
David Malcolm 7c8f7eaa75 Enabling work for C++ handling of misspelled identifiers and typenames
gcc/c/ChangeLog:
	* c-decl.c (struct edit_distance_traits<cpp_hashnode *>): Move to
	spellcheck-tree.h
	(best_macro_match): Likewise, converting from a typedef to a
	subclass.
	(find_closest_macro_cpp_cb): Move to spellcheck-tree.c.
	(lookup_name_fuzzy): Update for change of best_macro_match to a
	subclass with a ctor that calls cpp_forall_identifiers.

gcc/ChangeLog:
	* diagnostic-show-locus.c (diagnostic_show_locus): If this is the
	same location as last time, don't skip if we have fix-it hints.
	Clarify the skipping logic by converting it from one "if" clause
	to repeated "if" clauses.
	* spellcheck-tree.c: Include "cpplib.h".
	(find_closest_macro_cpp_cb): Move here from c/c-decl.c.
	(best_macro_match::best_macro_match): New constructor.
	* spellcheck-tree.h (struct edit_distance_traits<cpp_hashnode *>):
	Move here from c/c-decl.c.
	(class best_macro_match): Move here from c/c-decl.c, converting
	from a typedef to a subclass, gaining a ctor.

From-SVN: r238522
2016-07-20 14:03:03 +00:00
Jakub Jelinek 7419f4417a re PR c++/71909 (g++ accepts an unreachable function catch block that lacks a corresponding try)
PR c++/71909
	* parser.c (cp_parser_save_member_function_body): Consume
	__transaction_relaxed or __transaction_atomic with optional
	attribute.  Only skip catch with block if try keyword is seen.

	* g++.dg/parse/pr71909.C: New test.
	* g++.dg/tm/pr71909.C: New test.

From-SVN: r238521
2016-07-20 16:01:30 +02:00
Jakub Jelinek 109d2197c3 re PR middle-end/50060 (intrinsics not folded by the middle-end)
PR c++/50060
	* constexpr.c (cxx_eval_builtin_function_call): Pass false as lval
	when evaluating call arguments.  Use fold_builtin_call_array instead
	of fold_build_call_array_loc, return t if it returns NULL.  Otherwise
	check the result with potential_constant_expression and call
	cxx_eval_constant_expression on it.

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

From-SVN: r238520
2016-07-20 16:00:02 +02:00
Georg-Johann Lay 2d06ca74a2 avr-protos.h (avr_addr_space_supported_p): New prototype.
gcc/
	* config/avr/avr-protos.h (avr_addr_space_supported_p): New prototype.
	* config/avr/avr.c (TARGET_ADDR_SPACE_DIAGNOSE_USAGE): New hook
	define...
	(avr_addr_space_diagnose_usage): ...and implementation.
	(avr_addr_space_supported_p): New function.
	(avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Only
	report bad address space usage if that space is supported.
	(avr_insert_attributes): Same.  No more complain about unsupported
	address spaces.
	* config/avr/avr-c.c (tm_p.h): Include it.
	(avr_cpu_cpp_builtins):	Only define addr-space related built-in
	macro if avr_addr_space_supported_p.

From-SVN: r238519
2016-07-20 13:50:31 +00:00
Alexander Monakov b25ea150b6 nvptx: do not implicitly enable -ftoplevel-reorder
* config/nvptx/nvptx.c (nvptx_option_override): Do not set
flag_toplevel_reorder.

From-SVN: r238518
2016-07-20 16:47:12 +03:00
David Malcolm de6a69eea8 C: convert return type of lookup_name_fuzzy from tree to const char *
gcc/c-family/ChangeLog:
	* c-common.h (lookup_name_fuzzy): Convert return type from tree to
	const char *.

gcc/c/ChangeLog:
	* c-decl.c (implicit_decl_warning): Update for conversion of
	return type of lookup_name_fuzzy to const char *.
	(undeclared_variable): Likewise.
	(lookup_name_fuzzy): Convert return type from tree to
	const char *.
	* c-parser.c (c_parser_declaration_or_fndef): Update for
	conversion of return type of lookup_name_fuzzy to const char *.
	(c_parser_parameter_declaration): Likewise.

gcc/ChangeLog:
	* gcc-rich-location.c
	(gcc_rich_location::add_fixit_misspelled_id): New overload, taking
	a const char *.
	* gcc-rich-location.h
	(gcc_rich_location::add_fixit_misspelled_id): Likewise.

From-SVN: r238517
2016-07-20 13:42:51 +00:00
Georg-Johann Lay ffc2284012 target.def (addr_space): Add new diagnose_usage to hook vector.
gcc/
	* target.def (addr_space): Add new diagnose_usage to hook vector.
	* targhooks.c (default_addr_space_diagnose_usage): Add default
	implementation and...
	* targhooks.h (default_addr_space_diagnose_usage): ... its prototype.
	* c/c-parser.c (c_lex_one_token) [CPP_NAME]: If the token
	is some address space, call targetm.addr_space.diagnose_usage.
	* doc/tm.texi.in (Named Address Spaces): Add anchor for
	TARGET_ADDR_SPACE_DIAGNOSE_USAGE documentation.
	* doc/tm.texi: Regenerate.

From-SVN: r238514
2016-07-20 13:07:43 +00:00
Martin Liska 144530cf63 Properly handly PHI stmts in later_of_the_two (PR
PR middle-end/71898
	* graphite-isl-ast-to-gimple.c (later_of_the_two):
	Properly handly PHI stmts.
	* gfortran.dg/graphite/pr71898.f90: New test.

From-SVN: r238513
2016-07-20 11:16:47 +00:00
Bin Cheng 04ac4afa84 re PR tree-optimization/71503 (gcc ICE at -O3 on valid code on x86_64-linux-gnu in "gen_phi_arg_condition")
PR tree-optimization/71503
	PR tree-optimization/71683
	* tree-if-conv.c (gen_phi_arg_condition): Record true predicate
	and break.

	gcc/testsuite
	PR tree-optimization/71503
	PR tree-optimization/71683
	* gcc.dg/tree-ssa/ifc-pr71503.c: New test.
	* gcc.dg/tree-ssa/ifc-pr71683.c: New test.

From-SVN: r238512
2016-07-20 08:31:35 +00:00
Yan-Ting Lin 21f8810377 configure.ac (nds32*-*-*): Remove entry to enable gdb.
* configure.ac (nds32*-*-*): Remove entry to enable gdb.
    * configure: Regenerated.

From-SVN: r238511
2016-07-20 08:09:25 +00:00
Martin Liska 6e6fa605f8 Enhance documentation of -fipa-ra option.
* doc/invoke.texi (-fipa-ra): Document when the option is
	disabled. Fix a typo.

From-SVN: r238510
2016-07-20 07:02:09 +00:00
Martin Liska ba1a7a0f85 Add selftests for fibonacci_heap
* Makefile.in: Include fibonacci_heap.c
	* fibonacci_heap.c: New file.
	* fibonacci_heap.h (fibonacci_heap::insert): Use insert_node.
	(fibonacci_heap::union_with): Fix deletion of the second heap.
	* selftest-run-tests.c (selftest::run_tests): Incorporate
	fibonacci heap tests.
	* selftest.h: Declare fibonacci_heap_c_tests.

From-SVN: r238509
2016-07-20 07:01:48 +00:00
Martin Liska dcbdb17aeb Add sreal to selftests
* selftest-run-tests.c (selftest::run_tests): New function.
	* selftest.h (sreal_c_tests): Declare.
	* sreal.c (sreal_verify_basics): New function.
	(verify_aritmetics): Likewise.
	(sreal_verify_arithmetics): Likewise.
	(verify_shifting): Likewise.
	(sreal_verify_shifting): Likewise.
	(void sreal_c_tests): Likewise.
	* gcc.dg/plugin/plugin.exp: Remove sreal test.
	* gcc.dg/plugin/sreal-test-1.c: Remove.
	* gcc.dg/plugin/sreal_plugin.c: Remove.

From-SVN: r238508
2016-07-20 07:00:50 +00:00
Jason Merrill 43694e8bbb PR c++/67164 - clean up dead code
* pt.c (iterative_hash_template_arg, template_args_equal): Don't
	handle ARGUMENT_PACK_SELECT.

From-SVN: r238507
2016-07-20 01:06:52 -04:00
GCC Administrator 30bfa23492 Daily bump.
From-SVN: r238506
2016-07-20 00:16:18 +00:00
Thomas Koenig 6ed825558e re PR fortran/71902 (Unneeded temporary on reallocatable character assignment)
2016-07-19  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/71902
	* dependency.c (gfc_check_dependency): Use dep_ref.  Handle case
	if identical is true and two array element references differ.
	(gfc_dep_resovler):  Move most of the code to dep_ref.
	(dep_ref):  New function.
	* frontend-passes.c (realloc_string_callback):  Name temporary
	variable "realloc_string".

2016-07-19  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/71902
	* gfortran.dg/dependency_47.f90:  New test.

From-SVN: r238497
2016-07-19 21:25:33 +00:00
Jakub Jelinek 4833f5615e re PR rtl-optimization/71916 (ICE at -O3 on valid code on x86_64-linux-gnu in "maybe_record_trace_start")
PR rtl-optimization/71916
	* cfgrtl.c (contains_no_active_insn_p): Return false also for
	bb which have a single succ fake edge.

	* gcc.c-torture/compile/pr71916.c: New test.

From-SVN: r238490
2016-07-19 21:54:49 +02:00
Aldy Hernandez f36a3ff7f7 re PR debug/71855 (duplicate unspecified_parameters DIE in DWARF for functions with variable arguments)
PR debug/71855
	* dwarf2out.c (gen_subprogram_die): Only call
	gen_unspecified_parameters_die while dumping early dwarf.

From-SVN: r238488
2016-07-19 19:29:42 +00:00
Jakub Jelinek 4fda19ef2b re PR middle-end/71874 (memmove works wrong)
PR middle-end/71874
	* gimple-fold.c (fold_builtin_memory_op): Use
	get_addr_base_and_unit_offset instead of get_ref_base_and_extent.

	* g++.dg/torture/pr71874.C: New test.

From-SVN: r238484
2016-07-19 19:30:05 +02:00
Jakub Jelinek 13da0507f3 re PR middle-end/71734 (FAIL: libgomp.fortran/simd4.f90 -O3 -g execution test)
PR middle-end/71734
	* g++.dg/vect/pr70729.cc: Don't include string.h or xmmintrin.h.
	(my_alloc): Rewritten to use __builtin_posix_memalign and
	__SIZE_TYPE__.
	(my_free): Use __builtin_free instead of _mm_free.
	(Vec::operator=): Use __builtin_memcpy.

From-SVN: r238482
2016-07-19 18:47:30 +02:00
Uros Bizjak fecfbfa4a2 builtins.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1...
* builtins.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
	HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1,
	HOST_WIDE_INT_M1 instead of (HOST_WIDE_INT) -1 and
	HOST_WIDE_INT_M1U instead of (unsigned HOST_WIDE_INT) -1.
	* combine.c: Ditto.
	* cse.c: Ditto.
	* dojump.c: Ditto.
	* double-int.c: Ditto.
	* dse.c: Ditto.
	* dwarf2out.c: Ditto.
	* expmed.c: Ditto.
	* expr.c: Ditto.
	* fold-const.c: Ditto.
	* function.c: Ditto.
	* fwprop.c: Ditto.
	* genmodes.c: Ditto.
	* hwint.c: Ditto.
	* hwint.h: Ditto.
	* ifcvt.c: Ditto.
	* loop-doloop.c: Ditto.
	* loop-invariant.c: Ditto.
	* loop-iv.c: Ditto.
	* match.pd: Ditto.
	* optabs.c: Ditto.
	* real.c: Ditto.
	* reload.c: Ditto.
	* rtlanal.c: Ditto.
	* simplify-rtx.c: Ditto.
	* stor-layout.c: Ditto.
	* toplev.c: Ditto.
	* tree-ssa-loop-ivopts.c: Ditto.
	* tree-vect-generic.c: Ditto.
	* tree-vect-patterns.c: Ditto.
	* tree.c: Ditto.
	* tree.h: Ditto.
	* ubsan.c: Ditto.
	* varasm.c: Ditto.
	* wide-int-print.cc: Ditto.
	* wide-int.cc: Ditto.
	* wide-int.h: Ditto.

From-SVN: r238481
2016-07-19 18:40:55 +02:00
David Malcolm 5989388cdf selftest.c: gracefully handle NULL in assert_streq
gcc/ChangeLog:
	* selftest.c (selftest::assert_streq): Handle NULL values of
	val_actual and val_expected.

From-SVN: r238479
2016-07-19 16:16:18 +00:00
Nick Clifton 985a47b297 config.host (m32r): Add m32r/t-m32r to tmake_file.
* config.host (m32r): Add m32r/t-m32r to tmake_file.
	Add crtinit.o and crtfini.o to extra_parts.

From-SVN: r238478
2016-07-19 16:07:40 +00:00
Martin Jambor e7980addd0 re PR fortran/71688 (ICE in analyze, at cgraphunit.c:632 with -fcoarray=lib)
Fix PR fortran/71688

2016-07-19  Martin Jambor  <mjambor@suse.cz>

        PR fortran/71688
        * trans-decl.c (gfc_generate_function_code): Use cgraph_get_create_node
        rather than cgraph_create_node to get a call graph node.

testsuite/
        gfortran.dg/pr71688.f90: New test.

From-SVN: r238476
2016-07-19 17:40:43 +02:00
Richard Biener 13e889530d gimple-fold.c (get_base_constructor): Add VIEW_CONVERT case, handle all tcc_constant bases and valueize SSA names.
2016-07-19  Richard Biener  <rguenther@suse.de>

	* gimple-fold.c (get_base_constructor): Add VIEW_CONVERT case,
	handle all tcc_constant bases and valueize SSA names.
	* tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle
	tcc_constant bases.

	* c-c++-common/vector-subscript-6.c: New testcase.
	* c-c++-common/vector-subscript-7.c: Likewise.

From-SVN: r238475
2016-07-19 14:16:54 +00:00
Senthil Kumar Selvaraj 1caf048210 Fix failing test for targets with sizeof(int) != 4.
gcc/testsuite/

2016-07-19  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

	* gcc.dg/params/blocksort-part.c: Conditionally define Int32 
	and UInt32 based on __SIZEOF_INT__.

From-SVN: r238471
2016-07-19 13:16:32 +00:00
David Malcolm 00f06cd733 Fix copy&paste bug in function-tests.c
gcc/ChangeLog:
	* function-tests.c (selftest::verify_three_block_rtl_cfg): Verify
	the flags of the exit block and bb2, not just the entry block.

From-SVN: r238470
2016-07-19 13:04:32 +00:00
Fritz Reese 60d518829c MAINTAINERS (Write After Approval): Add myself.
2016-07-19  Fritz Reese  <fritzoreese@gmail.com>

	* MAINTAINERS (Write After Approval): Add myself.

From-SVN: r238469
2016-07-19 10:39:19 +00:00
Richard Biener cef5388d95 re PR tree-optimization/71901 (ice in find_or_generate_expression)
2016-07-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/71901
	* tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
	align member, group stuff with the bitfield.
	(vn_ref_op_align_unit): New inline.
	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): For ARRAY_REFs
	record element alignment and operand 3 unchanged.
	(ao_ref_init_from_vn_reference): Adjust.
	(valueize_refs_1): Likewise.
	* tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.

	* gcc.dg/torture/pr71901.c: New testcase.

From-SVN: r238468
2016-07-19 10:19:46 +00:00
Richard Biener 9a4cb9733d re PR tree-optimization/71908 (ICE at -Os and above in both 32-bit and 64-bit modes on x86_64-linux-gnu (get_constraint_for_component_ref))
2016-07-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/71908
	* tree-ssa-structalias.c (get_constraint_for_component_ref): Handle
	symbolic constants in a more reliable way.

	* gcc.dg/torture/pr71908.c: New testcase.

From-SVN: r238467
2016-07-19 10:18:25 +00:00
Ilya Enkovich d9157f1514 tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Update comment.
gcc/

	* tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Update
	comment.
	(vect_update_inits_of_drs): Likewise.
	(vect_create_cond_for_alias_checks): Likewise.
	* tree-vect-loop.c (vect_get_known_peeling_cost): Likewise.

From-SVN: r238466
2016-07-19 10:04:02 +00:00
Richard Biener f6918a8b63 re PR middle-end/71907 (missing buffer overflow warnings with -flto)
2016-07-19  Richard Biener  <rguenther@suse.de>

	PR lto/71907
	* lto-streamer-out.c (DFS::DFS_write_tree_body): For blocks
	with an abstract origin that is not an inlined function outer
	scope add a self-reference as abstract origin.
	* tree-streamer-out.c (write_ts_block_tree_pointers): Likewise.

From-SVN: r238456
2016-07-19 07:35:05 +00:00
Michael Meissner a8f7a89526 re PR target/71493 (accidental ABI change for structure return on PowerPC)
[gcc]
2016-07-18  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/71493
	* config/rs6000/rs6000.c (rs6000_function_value): Fix
	unintentional System V.4 structure return breakage for structures
	with a single floating point element.

[gcc/testsuite]
2016-07-18  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/71493
	* gcc.target/powerpc/pr71493-1.c: New test.
	* gcc.target/powerpc/pr71493-2.c: Likewise.

From-SVN: r238454
2016-07-19 03:31:48 +00:00
GCC Administrator 40d9a67476 Daily bump.
From-SVN: r238453
2016-07-19 00:16:18 +00:00
Jakub Jelinek e43ebb1268 re PR c++/70869 (internal compiler error: Segmentation fault on array of pointer to function members)
PR c++/70869
	PR c++/71054
	* cp-gimplify.c (cp_genericize_r): Revert the 2016-07-07 change.
	* tree.c (cp_walk_subtrees): For DECL_EXPR on DECL_ARTIFICIAL
	non-static VAR_DECL, walk the decl's DECL_INITIAL, DECL_SIZE and
	DECL_SIZE_UNIT.

From-SVN: r238444
2016-07-18 20:45:18 +02:00
Jakub Jelinek 99516432c2 re PR c++/71835 (ICE on invalid C++ code with ambiguous overloaded operators: tree check: expected tree that contains ‘decl minimal’ structure, have ‘pointer_type’ in convert_like_real, at cp/call.c:6549)
PR c++/71835
	* call.c (build_op_call_1): Use convert_like_with_context only
	if cand->fn is a decl.

	* g++.dg/conversion/ambig3.C: New test.

From-SVN: r238443
2016-07-18 20:44:51 +02:00
Jakub Jelinek 87713c6a50 re PR c++/71828 (ICE on valid C++11 code with constexpr __Complex int variable declaration: in operand_equal_p, at fold-const.c:2790)
PR c++/71828
	* constexpr.c (cxx_eval_constant_expression) <case REALPART_EXPR>:
	For lval don't use cxx_eval_unary_expression and instead recurse
	and if needed rebuild the reference.

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

From-SVN: r238442
2016-07-18 20:43:19 +02:00
Jakub Jelinek 7a7f16ca45 re PR c++/71826 (ICE on valid C++ code with ambiguous member lookup: tree check: expected baselink, have error_mark in tsubst_baselink, at cp/pt.c:13737)
PR c++/71826
	* pt.c (tsubst_baselink): Only set BASELINK_OPTYPE for BASELINK_P.

	* g++.dg/template/pr71826.C: New test.

From-SVN: r238441
2016-07-18 20:42:24 +02:00