Commit Graph

143399 Commits

Author SHA1 Message Date
Martin Sebor
7585d94ffe PR c/68868 - atomic_init emits an unnecessary fence
gcc/ChangeLog
	* ginclude/stdatomic.h (atomic_init): Use atomic_store instead
	of plain assignment.
gcc/testsuite/ChangeLog
	* testsuite/gcc.dg/atomic/stdatomic-init.c: New test.

From-SVN: r231733
2015-12-16 18:33:41 -07:00
Michael Meissner
9393bc31a2 re PR target/68805 (ICE while var-tracking in simplify_binary_operation_1 with -g and -mvsx-timode)
[gcc]
2015-12-15  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/68805
	* config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use ROTATE
	instead of VEC_SELECT for TImode.

	* config/rs6000/vsx.md (VSX_LE): Move TImode from VSX_LE to
	VSX_LE_128, so that we use ROTATE to swap the 64-bit words instead
	of using VEC_SELECT.
	(VSX_LE_128): Likewise.
	(define_peephole2): Add peephole to eliminate double xxpermdi when
	copying TImode.

[gcc/testsuite]
2015-12-15  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/68805
	* gcc.target/powerpc/pr68805.c: New test.

From-SVN: r231732
2015-12-17 01:01:24 +00:00
GCC Administrator
b880bd5dab Daily bump.
From-SVN: r231731
2015-12-17 00:16:12 +00:00
John David Anglin
ad7e0b44ae re PR target/68779 (HPPA/PARISC 32-bit Linux kernel build triggers multiple ICEs)
PR target/68779
	* config/pa/pa.md (atomic_loaddi): Honor -mdisable-fpregs.
	(atomic_loaddi_1): Likewise.
	(atomic_storedi): Likewise.
	(atomic_storedi_1): Likewise.
	(atomic_loaddf): Likewise.
	(atomic_loaddf_1): Likewise.
	(atomic_storedf): Likewise.
	(atomic_storedf_1): Likewise.
	Move all atomic patterns to end of file.

From-SVN: r231727
2015-12-17 00:11:55 +00:00
Martin Sebor
f3b5cf3ddc PR objc++/68932 - FAIL: obj-c++.dg/property/at-property-23.mm -fgnu-runtime
PR objc++/68932  - FAIL: obj-c++.dg/property/at-property-23.mm -fgnu-runtime
                   (internal compiler error)

cp/
	* decl.c (grokdeclarator): Avoid assuming ctype is non-null when
	checking the validity of a flexible array member.

testsuite/
	* obj-c++.dg/property/at-property-23.mm: Remove check for
	an error message.

From-SVN: r231726
2015-12-16 16:56:27 -07:00
Abderrazek Zaafrani
9625f2a27c attach schedule tree to the scop
we used to translate the just computed schedule tree into a union_map,
and then in the code generation it would be translated back to a schedule tree
just before generating AST code.

From-SVN: r231725
2015-12-16 23:40:06 +00:00
Paolo Carlini
6cb6583c5f pt.c (comp_template_args): Remove.
2015-12-16  Paolo Carlini  <paolo.carlini@oracle.com>

	* pt.c (comp_template_args): Remove.
	(comp_template_args_with_info): Rename to comp_template_args;
	not static.
	(add_pending_template): Adjust call.
	* cp-tree.h (comp_template_args): Add default arguments.

From-SVN: r231723
2015-12-16 21:45:14 +00:00
Nathan Sidwell
f95ff97f09 ipa-visibility.c (can_replace_by_local_alias): Make static, check ASM_OUTPUT_DEF.
* ipa-visibility.c (can_replace_by_local_alias): Make static,
	check ASM_OUTPUT_DEF.
	(can_replace_by_local_alias_in_vtable): Make static.
	(function_and_variable_visibility): Reformat overlong comment.

From-SVN: r231721
2015-12-16 21:05:39 +00:00
Jeff Law
60b5526fd6 ree.c (add_removable_extension): Use reg_overlap_mentioned_p rather than testing hard register #s.
* ree.c (add_removable_extension): Use reg_overlap_mentioned_p
	rather than testing hard register #s.

From-SVN: r231719
2015-12-16 13:34:31 -07:00
Nathan Sidwell
5563d5c09a nvptx.h (OUTGOING_STATIC_CHAIN_REGNUM): Remove.
* config/nvptx/nvptx.h (OUTGOING_STATIC_CHAIN_REGNUM): Remove.
	(REGISTER_NAMES): Adjust.
	* config/nvptx/nvptx.c (nvptx_pass_by_reference): Avoid long line.
	(nvptx_static_hain): Delete.
	(write_arg_mode): Don't emit initializer if argno < 0.
	(write_arg_type): Fix whitespace.
	(init_frame): Initialize reg to zero if frame is zero-sized.
	(nvptx_declare_function_name):  Use write_arg_type to emit chain
	decl.
	(nvptx_output_call_insn): Adjust static chain emission.
	(nvptx_goacc_reduction): Make static.
	(TARGET_STATIC_CHAIN): Don't override.

From-SVN: r231718
2015-12-16 20:02:02 +00:00
Jeff Law
7ee2e7f6ef * gcc.dg/tree-ssa/pr68619-4.c: Change size of code bitfield.
From-SVN: r231717
2015-12-16 11:53:25 -07:00
Jason Merrill
4793cbbaa5 re PR c++/68309 (ICE: Segmentation fault)
PR c++/68309
	* pt.c (instantiate_decl): Revert earlier change.

From-SVN: r231714
2015-12-16 13:22:23 -05:00
Jason Merrill
65016251f6 re PR c++/63628 ([c++1y] cannot use decltype on captured arg-pack)
PR c++/63628
	* pt.c (tsubst_pack_expansion): Also make dummy decls if
	retrieve_local_specialization fails.

From-SVN: r231713
2015-12-16 13:22:17 -05:00
David Malcolm
de67c4c379 Better error recovery for merge-conflict markers
gcc/c-family/ChangeLog:
	* c-common.h (conflict_marker_get_final_tok_kind): New prototype.
	* c-lex.c (conflict_marker_get_final_tok_kind): New function.

gcc/c/ChangeLog:
	* c-parser.c (struct c_parser): Expand array "tokens_buf" from 2
	to 4.
	(c_parser_peek_nth_token): New function.
	(c_parser_peek_conflict_marker): New function.
	(c_parser_error): Detect conflict markers and report them as such.

gcc/cp/ChangeLog:
	* parser.c (cp_lexer_peek_conflict_marker): New function.
	(cp_parser_error): Detect conflict markers and report them as
	such.

gcc/testsuite/ChangeLog:
	* c-c++-common/conflict-markers-1.c: New testcase.
	* c-c++-common/conflict-markers-2.c: Likewise.
	* c-c++-common/conflict-markers-3.c: Likewise.
	* c-c++-common/conflict-markers-4.c: Likewise.
	* c-c++-common/conflict-markers-5.c: Likewise.
	* c-c++-common/conflict-markers-6.c: Likewise.
	* c-c++-common/conflict-markers-7.c: Likewise.
	* c-c++-common/conflict-markers-8.c: Likewise.
	* c-c++-common/conflict-markers-9.c: Likewise.
	* c-c++-common/conflict-markers-10.c: Likewise.
	* c-c++-common/conflict-markers-11.c: Likewise.
	* g++.dg/conflict-markers-1.C: Likewise.

From-SVN: r231712
2015-12-16 18:15:01 +00:00
Aditya Kumar
8a69b85903 Add missing changelog entry
From-SVN: r231710
2015-12-16 17:35:48 +00:00
David Malcolm
a10704e17a C FE: fix range of primary-expression in c_parser_postfix_expression
gcc/c/ChangeLog:
	* c-parser.c (c_parser_postfix_expression): Use EXPR_LOC_OR_LOC
	to preserve range information for the primary expression
	in the call to c_parser_postfix_expression_after_primary.

gcc/testsuite/ChangeLog:
	* gcc.dg/cast-function-1.c (bar): Update column numbers.
	* gcc.dg/diagnostic-range-bad-called-object.c: New test case.

From-SVN: r231709
2015-12-16 17:34:27 +00:00
Aditya Kumar
0f7a02a32f Remove individial dependence pointers and add a scop::dependence to contain all the dependence.
Removed the member variables which are only used in scop_get_dependence. Instead
only maintaining the overall dependence. Passes regtest and bootstrap.

gcc/ChangeLog:

2015-12-15  hiraditya  <hiraditya@msn.com>

        * graphite-dependences.c (scop_get_dependences): Use local pointers.
        * graphite-isl-ast-to-gimple.c(translate_isl_ast_to_gimple::scop_to_isl_ast):
          Use scop->dependence.
        * graphite-optimize-isl.c (optimize_isl): Same.
        * graphite-poly.c (new_scop): Remove initialization of removed members.
        (free_scop): Same.
        * graphite.h (struct scop): Remove individial dependence pointers and
        add a scop::dependence to contain all the dependence.

From-SVN: r231708
2015-12-16 17:33:07 +00:00
Aditya Kumar
0ddb9c8d78 Use refs instead of values.
Passes bootstrap and regtest.

gcc/ChangeLog:

2015-12-15  hiraditya  <hiraditya@msn.com>

        * graphite-sese-to-poly.c (build_poly_sr): Use refs.

From-SVN: r231707
2015-12-16 17:33:00 +00:00
Aditya Kumar
560d18d3ed update required isl version
we check for a the isl compute timeout function added in isl 0.13.
That means GCC could still be configured with isl 0.13, 0.14, and 0.15.

	* config/isl.m4 (ISL_CHECK_VERSION): Check for
	isl_ctx_get_max_operations.
	* configure: Regenerate.

	gcc/
	* config.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Remove checks for functions that exist in isl 0.13 or
	later.
	* graphite-isl-ast-to-gimple.c: Remove #ifdefs and code for isl 0.12.
        * graphite-optimize-isl.c: Same.
	* graphite-poly.c: Same.
	* graphite-sese-to-poly.c: Same.
	* graphite.h: Add comment for isl 0.14.
	* toplev.c (print_version): Print isl version.

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r231706
2015-12-16 17:27:57 +00:00
Jan Hubicka
2994ab20f1 ipa-cp.c (ipa_get_indirect_edge_target_1): Use can_refer; do not speculate to impossible targets.
* ipa-cp.c (ipa_get_indirect_edge_target_1): Use can_refer; do not
	speculate to impossible targets.
	* ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.

From-SVN: r231705
2015-12-16 17:26:20 +00:00
David Malcolm
8062bca66d C FE: use correct location range for static assertions
gcc/c/ChangeLog:
	* c-parser.c (c_parser_static_assert_declaration_no_semi): Use the
	expression location, falling back on the first token location,
	rather than always using the latter.

gcc/testsuite/ChangeLog:
	* gcc.dg/diagnostic-range-static-assert.c: New test case.

From-SVN: r231704
2015-12-16 17:25:45 +00:00
Aditya Kumar
040b0c97c4 add more dumps on data dependence graph
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r231703
2015-12-16 17:24:25 +00:00
Marek Polacek
d06f8b75bd re PR c/64637 (Incorrect location for -Wunused-value warnings in for-loop)
PR c/64637
	* c-typeck.c (c_process_expr_stmt): Use location of the expression if
	available.

	* gcc.dg/pr64637.c: New test.

From-SVN: r231700
2015-12-16 16:50:07 +00:00
Nathan Sidwell
bc32563724 * gcc.dg/sibcall-9.c: Xfail for nvptx.
From-SVN: r231699
2015-12-16 16:47:05 +00:00
Kyrylo Tkachov
283b6c8543 [AArch64] Properly cost zero_extend+ashift forms of ubfi[xz]
* config/aarch64/aarch64.c (aarch64_extend_bitfield_pattern_p):
	New function.
	(aarch64_rtx_costs, ZERO_EXTEND, SIGN_EXTEND cases): Use the above
	to handle extend+shift rtxes.

From-SVN: r231698
2015-12-16 15:49:42 +00:00
Bernd Edlinger
077067a5f3 unwind-generic.h (_Unwind_GetTextRelBase): Call __builtin_abort instead of abort to avoid dependency on stdlib.h.
2015-12-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * unwind-generic.h (_Unwind_GetTextRelBase): Call __builtin_abort
        instead of abort to avoid dependency on stdlib.h.

From-SVN: r231697
2015-12-16 15:24:52 +00:00
Kyrylo Tkachov
3297949ea9 [AArch64] PR target/68696 FAIL: gcc.target/aarch64/vbslq_u64_1.c scan-assembler-times bif\tv 1
PR target/68696
        * config/aarch64/aarch64-simd.md (*aarch64_simd_bsl<mode>_alt):
        New pattern.
        (aarch64_simd_bsl<mode>_internal): Update comment to reflect
        the above.

From-SVN: r231696
2015-12-16 15:03:44 +00:00
Richard Biener
7b5ab0cdc1 re PR middle-end/68870 (ICE on valid code at -O1, -O2 and -O3 on x86_64-linux-gnu)
2015-12-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68870
	* tree-cfgcleanup.c (cleanup_control_expr_graph): Add first_p
	parameter, if set only perform trivial constant folding.
	Queue other blocks with conditions for later processing.
	(cleanup_control_flow_bb): Add first_p parameter and pass it through.
	(cleanup_tree_cfg_1): Pass true for the first iteration
	cleanup_control_expr_graph.

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

From-SVN: r231695
2015-12-16 14:56:10 +00:00
Nathan Sidwell
44c068aecb nvptx-protos.h (nvptx_hard_regno_mode_ok): Delete.
* config/nvptx/nvptx-protos.h (nvptx_hard_regno_mode_ok): Delete.
	* config/nvptx/nvptx.h (struct machine_function):
	Reimplement. Adjust all users.
	* config/nvptx/nvptx.c (nvptx_declare_function_name): Move stack
	and frame array generation earlier.
	(nvptx_call_args): Reimplement.
	(nvptx_expand_call): Adjust.
	(nvptx_hard_reno_mode_ok): Delete.
	(nvptx_reorg): Revert scan of hard regs.

From-SVN: r231691
2015-12-16 13:51:36 +00:00
Tom de Vries
597a8ab9c6 Add pass_oacc_ipa
2015-12-16  Tom de Vries  <tom@codesourcery.com>

	* opts.c (default_options_optimization): Set fipa-pta on by default for
	fopenacc.
	* passes.def: Move kernels pass group to pass_ipa_oacc.
	* tree-pass.h (make_pass_oacc_kernels2): Remove.
	(make_pass_ipa_oacc, make_pass_ipa_oacc_kernels): Declare.
	* tree-ssa-loop.c (pass_oacc_kernels2, make_pass_oacc_kernels2): Remove.
	(pass_ipa_oacc, pass_ipa_oacc_kernels): New pass.
	(make_pass_ipa_oacc, make_pass_ipa_oacc_kernels): New function.
	* tree-ssa-structalias.c (pass_ipa_pta::clone): New function.

	* g++.dg/ipa/devirt-37.C: Update for new fre2 pass.
	* g++.dg/ipa/devirt-40.C: Same.
	* g++.dg/tree-ssa/pr61034.C: Same.
	* gcc.dg/ipa/ipa-pta-1.c: Update for new pta1 pass.
	* gcc.dg/ipa/ipa-pta-10.c: Same.
	* gcc.dg/ipa/ipa-pta-11.c: Same.
	* gcc.dg/ipa/ipa-pta-14.c: Same.
	* gcc.dg/ipa/ipa-pta-16.c: Same.
	* gcc.dg/ipa/ipa-pta-2.c: Same.
	* gcc.dg/ipa/ipa-pta-5.c: Same.
	* gcc.dg/ipa/ipa-pta-6.c: Same.
	* gcc.dg/torture/ipa-pta-1.c: Same.
	* gcc.dg/ipa/ipa-pta-13.c: Update for new fre2 and pta1 pass.
	* gcc.dg/ipa/ipa-pta-3.c: Same.
	* gcc.dg/ipa/ipa-pta-4.c: Same.

From-SVN: r231690
2015-12-16 13:49:07 +00:00
Richard Biener
f47cda2457 re PR tree-optimization/68861 (FAIL: libgomp.fortran/vla8.f90 -O3 -g execution test)
2015-12-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68861
	* tree-vect-slp.c (vect_build_slp_tree): Properly handle
	duplicate stmts when applying swapping to stmts.

From-SVN: r231689
2015-12-16 13:45:40 +00:00
Kirill Yukhin
36e24655dd i386-c.c (ix86_target_macros_internal): Remove duplicate check (__CLZERO__).
gcc/
	* config/i386/i386-c.c (ix86_target_macros_internal): Remove
	duplicate check (__CLZERO__).

From-SVN: r231688
2015-12-16 13:43:56 +00:00
Richard Biener
c11a5508fb re PR tree-optimization/68915 (gcc.dg/vect/pr46032.c FAILs)
2015-12-16  Richard Biener  <rguenther@suse.de>

	PR testsuite/68915
	* gcc.dg/vect/pr46032.c: Use dg-additional-options.

From-SVN: r231687
2015-12-16 12:37:02 +00:00
Matthew Wahab
f392980c83 [ARM] Add ACLE intrinsics vqrdmlah_lane and vqrdmlsh_lane
* config/arm/arm_neon.h (vqrdmlahq_lane_s16): New.
	(vqrdmlahq_lane_s32): New.
	(vqrdmlah_lane_s16): New.
	(vqrdmlah_lane_s32): New.
	(vqrdmlshq_lane_s16): New.
	(vqrdmlshq_lane_s32): New.
	(vqrdmlsh_lane_s16): New.
	(vqrdmlsh_lane_s32): New.
	* config/arm/arm_neon_builtins.def: Add "vqrdmlah_lane" and
	"vqrdmlsh_lane".

From-SVN: r231686
2015-12-16 12:21:47 +00:00
Matthew Wahab
7fcaba1a9a [ARM] Add ACLE intrinsics vqrdmlah and vqrdmlsh
* config/arm/arm_neon.h (vqrdmlah_s16, vqrdmlah_s32): New.
	(vqrdmlahq_s16, vqrdmlahq_s32): New.
	(vqrdmlsh_s16, vqrdmlsh_s32): New.
	(vqrdmlahq_s16, vqrdmlshq_s32): New.
	* config/arm/arm_neon_builtins.def: Add "vqrdmlah" and "vqrdmlsh".

From-SVN: r231685
2015-12-16 12:16:13 +00:00
Richard Biener
4c2e0828c1 re PR tree-optimization/68916 (gcc.dg/vect/slp-perm-4.c FAILs)
2015-12-16  Richard Biener  <rguenther@suse.de>

	PR testsuite/68916
	PR testsuite/68914
	* gcc.dg/vect/pr45752.c: Require vect_perm and adjust expected
	dump.
	* gcc.dg/vect/slp-perm-4.c: Likewise.

From-SVN: r231684
2015-12-16 12:13:05 +00:00
Matthew Wahab
07b140c2a2 [Testsuite] Support ARMv8.1 ARM tests.
testsuite/
	* lib/target-supports.exp (add_options_for_arm_v8_1a_neon): Update
	comment.  Use check_effective_target_arm_v8_1a_neon_ok to select
	the command line options.
	(check_effective_target_arm_v8_1a_neon_ok_nocache): Update initial
	test to allow ARM targets.  Select and record a working set of
	command line options.
	(check_effective_target_arm_v8_1a_neon_hw): Add tests for ARM
	targets.

	gcc/
	* doc/sourcebuild.texi (ARM-specific attributes): Add
	"arm_v8_1a_neon_ok" and "arm_v8_1a_neon_hw".

From-SVN: r231683
2015-12-16 12:10:59 +00:00
Matthew Wahab
c48083824a [ARM] Add ACLE feature macro for ARMv8.1 instructions.
* config/arm/arm-c.c (arm_cpu_builtins): Define
	__ARM_FEATURE_QRDMX.  Clean up some trailing whitespace.

From-SVN: r231682
2015-12-16 12:02:15 +00:00
Matthew Wahab
5f2ca3b2fd [ARM] Add patterns for new instructions
* config/arm/iterators.md (VQRDMLH_AS): New.
	(neon_rdma_as): New.
	* config/arm/neon.md
	(neon_vqrdml<VQRDMLH_AS:neon_rdma_as>h<mode>): New.
	(neon_vqrdml<VQRDMLH_AS:neon_rdma_as>h_lane<mode>): New.
	* config/arm/unspecs.md (UNSPEC_VQRDMLAH): New.
	(UNSPEC_VQRDMLSH): New.

From-SVN: r231681
2015-12-16 11:56:21 +00:00
Matthew Wahab
df174ca360 [ARM] Multilib support for ARMv8.1.
* config/arm/t-aprofile: Make "armv8.1-a" and "armv8.1-a+crc"
	matches for "armv8-a".

From-SVN: r231680
2015-12-16 11:50:43 +00:00
Matthew Wahab
252e03b519 [ARM] Add support for ARMv8.1.
* config/arm/arm-arches.def: Add "armv8.1-a" and "armv8.1-a+crc".
	* config/arm/arm-protos.h (FL2_ARCH8_1): New.
	(FL2_FOR_ARCH8_1A): New.
	* config/arm/arm-tables.opt: Regenerate.
	* config/arm/arm.c (arm_arch8_1): New.
	(arm_option_override): Set arm_arch8_1.
	* config/arm/arm.h (TARGET_NEON_RDMA): New.
	(arm_arch8_1): Declare.
	* doc/invoke.texi (ARM Options, -march): Add "armv8.1-a" and
	"armv8.1-a+crc".
	(ARM Options, -mfpu): Fix a typo.

From-SVN: r231678
2015-12-16 11:45:25 +00:00
Jonathan Wakely
55089c2b5c libstdc++/68921 add timeout argument to futex(2)
PR libstdc++/68921
	* src/c++11/futex.cc
	(__atomic_futex_unsigned_base::_M_futex_wait_until): Use null pointer
	as timeout argument.

From-SVN: r231676
2015-12-16 10:40:04 +00:00
Kyrylo Tkachov
1408479363 [ARM] PR target/68648: Fold NOT of CONST_INT in andsi_iorsi3_notsi splitter
PR target/68648
	* config/arm/arm.md (*andsi_iorsi3_notsi): Try to simplify
	the complement of operands[3] during splitting.

	* gcc.c-torture/execute/pr68648.c: New test.

From-SVN: r231675
2015-12-16 10:01:48 +00:00
Richard Biener
8155f4d8cf re PR tree-optimization/68892 (Excessive dead loads produced by BB vectorization)
2015-12-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68892
	* tree-vect-slp.c (vect_analyze_slp_cost_1): Properly compute
	cost for permuted loads.

	* gcc.dg/vect/bb-slp-pr68892.c: New testcase.

From-SVN: r231674
2015-12-16 09:21:04 +00:00
Jakub Jelinek
8ec0963c81 re PR rtl-optimization/65980 (-fcompare-debug failure building Linux kernel)
PR rtl-optimization/65980
	* jump.c (rtx_renumbered_equal_p) <case LABEL_REF>: Use
	next_nonnote_nondebug_insn instead of next_real_insn and
	skip over CODE_LABELs too.

	* gcc.dg/pr65980.c: New test.

From-SVN: r231672
2015-12-16 09:04:31 +01:00
Jan Hubicka
3fddb2efc2 re PR middle-end/68878 (471.omnetpp in SPEC CPU 2006 is miscompiled with LTO)
PR lto/68878
	* lto-symtab.c (lto_symtab_prevailing_virtual_decl): New function.
	* lto-symtab.h (lto_symtab_prevailing_virtual_decl): Declare.
	(lto_symtab_prevailing_decl): Use it.

From-SVN: r231671
2015-12-16 04:58:13 +00:00
Jan Hubicka
f36932a2c7 symtab.c (symtab_node::fixup_same_cpp_alias_visibility): Do not copy DECL_VIRTUAL_P.
* symtab.c (symtab_node::fixup_same_cpp_alias_visibility):
	Do not copy DECL_VIRTUAL_P.

From-SVN: r231670
2015-12-16 04:56:34 +00:00
GCC Administrator
2e9208da3b Daily bump.
From-SVN: r231668
2015-12-16 00:16:13 +00:00
Martin Sebor
7e9a3ad300 struct-layout-1_generate.c: Avoid generating further fields after the first flexible array member.
gcc/testsuite/ChangeLog:
2015-12-15  Martin Sebor  <msebor@redhat.com>

	c++/42121
	c++/68478
	c++/68613
	c++/68689
	c++/68710
	* g++.dg/compat/struct-layout-1_generate.c: Avoid generating
	further fields after the first flexible array member.
	* g++.dg/ext/flexary2.C: Expect a sole flexible array member
	to be rejected.  Add a test case exercising zero-length array.
	* g++.dg/ext/flexary3.C: Expect a sole flexible array member
	to be rejected.
	* g++.dg/ext/flexary.h: New file.
	* g++.dg/ext/flexary4.C: New file.
	* g++.dg/ext/flexary5.C: New file.
	* g++.dg/ext/flexary6.C: New file.
	* g++.dg/ext/flexary7.C: New file.
	* g++.dg/ext/flexary8.C: New file.
	* g++.dg/other/dump-ada-spec-2.C: Adjust to reflect flexible
	array members.
	* g++.dg/parse/pr43765.C: Add a member to make a struct with
	a flexible array member valid.  Adjust expected error message.
	* g++.dg/torture/pr64280.C: Expect a sole flexible array member
	to be rejected.
	* g++.dg/torture/pr64312.C: Add a member to make a struct with
	a flexible array member valid.
	* g++.dg/ubsan/object-size-1.C: Adjust expected diagnostic.

gcc/cp/ChangeLog:
2015-12-15  Martin Sebor  <msebor@redhat.com>

	c++/42121
	c++/68478
	c++/68613
	c++/68689
	c++/68710
	* class.c (walk_subobject_offsets): Avoid assuming type domain
	is non-null or has an upper bound.
	(layout_class_type): Include type size in error message.
	(flexmems_t): New type.
	(field_nonempty_p, find_flexarrays, diagnose_flexarrays)
	(check_flexarrays): New	functions.
	(finish_struct_1): Call check_flexarrays.
	* decl.c (compute_array_index_type): Distinguish flexible array
	members from zero-length arrays.
	(grokdeclarator): Reject flexible array members in unions.  Avoid
	rejecting members of incomplete types that are flexible array members.
	* error.c (dump_type_suffix): Handle flexible array members with null
	upper bound.
	* init.c (perform_member_init): Same.
	* pt.c (instantiate_class_template_1): Allow flexible array members.
	(tsubst): Handle flexible array members with null upper bound.
	* typeck2.c (digest_init_r): Warn for initialization of flexible
	array members.
	(process_init_constructor_record): Handle flexible array members.

gcc/ChangeLog:
2015-12-15  Martin Sebor  <msebor@redhat.com>

	c++/42121
	* tree-chkp.c (chkp_find_bound_slots_1): Handle flexible array
	members.
	* tree.c (type_contains_placeholder_1): Avoid assuming type has
	a non-null domain or an upper bound to handle flexible array
	members.
	* varasm.c (output_constructor_regular_field):  Same.
	(output_constructor): Set min_index to integer_zero_node rather
	than null when a type has no domain to avoid crashing later.

From-SVN: r231665
2015-12-15 14:04:08 -07:00
Nathan Sidwell
1f0659546b nvptx.c (write_one_arg): Rename to ...
* config/nvptx/nvptx.c (write_one_arg): Rename to ...
	(write_arg_mode): ... here.  Update callers.
	(write_arg): Rename to ...
	(write__arg_type): ... here.  Update callers.
	(write_return_mode): New fn, broken out of ...
	(write_return): ... here.  Rename to ...
	(write_return_type): ... here.  Call it. Update callers.
	(write_fn_proto_from_insn): Use write_arg_mode and
	write_return_mode.
	(init_frame): New fn.
	(nvptx_declare_function_name): Call it for frame and varargs. Only
	emit outgoing static chain, if it's live.
	(nvptx_output_return): Use reg_names for return reg name.
	(nvptx_output_call_insn): Likewise.
	(nvptx_reorg): Mark unused hard regs too.

From-SVN: r231663
2015-12-15 20:46:37 +00:00