aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2017-10-02tree-dfa.c (get_ref_base_and_extent): Set *pmax_size to -1 if *poffset + ↵Jakub Jelinek4-1/+36
*pmax_size overflows in HOST_WIDE_INT. * tree-dfa.c (get_ref_base_and_extent): Set *pmax_size to -1 if *poffset + *pmax_size overflows in HOST_WIDE_INT. Set *poffset to 0 and *psize and *pmax_size to -1 if *poffset + *psize overflows in HOST_WIDE_INT. * gcc.dg/pr82389.c: New test. From-SVN: r253357
2017-10-02re PR tree-optimization/82387 (wrong code at -O1 and -Os on x86_64-linux-gnu ↵Jakub Jelinek6-2/+76
in 64-bit mode) PR tree-optimization/82387 PR tree-optimization/82388 PR tree-optimization/82389 * tree-ssa-dse.c (dse_classify_store): Test byte_tracking_enabled instead of live_bytes non-NULL. * gcc.c-torture/compile/pr82389.c: New test. * gcc.c-torture/execute/pr82387.c: New test. * gcc.c-torture/execute/pr82388.c: New test. From-SVN: r253356
2017-10-02re PR c++/79180 (Nested lambda-capture causes segfault for parameter pack)Paolo Carlini4-0/+89
2017-10-02 Paolo Carlini <paolo.carlini@oracle.com> PR c++/79180 * g++.dg/cpp0x/lambda/lambda-nested8.C: New. * g++.dg/torture/pr79180.C: Likewise. PR c++/71386 * g++.dg/cpp1y/lambda-generic-nested1.C: New. From-SVN: r253350
2017-10-02re PR target/41076 ([avr] pessimal code for logical OR of 8-bit fields)Georg-Johann Lay2-3/+9
PR target/41076 * confg/avr/avr.md (*iorhi3.ashift8-ext.zerox): Add "r,r,0" alternative. From-SVN: r253343
2017-10-02graphite-isl-ast-to-gimple.c (set_codegen_error): With -fchecking and ↵Richard Biener20-14/+83
--param graphite-allow-codegen-errors=0 ICE. 2017-10-02 Richard Biener <rguenther@suse.de> * graphite-isl-ast-to-gimple.c (set_codegen_error): With -fchecking and --param graphite-allow-codegen-errors=0 ICE. * params.def (PARAM_GRAPHITE_ALLOW_CODEGEN_ERRORS): New param. * gcc.dg/graphite/graphite.exp: Add -fdump-tree-graphite-details. * gcc.dg/graphite/id-15.c: Adjust for existing codegen errors. * gcc.dg/graphite/id-16.c: Likewise. * gcc.dg/graphite/pr46168.c: Likewise. * gcc.dg/graphite/pr68756.c: Likewise. * gcc.dg/graphite/pr69728.c: Likewise. * gcc.dg/graphite/pr71575-2.c: Likewise. * gcc.dg/graphite/pr77362.c: Likewise. * gcc.dg/graphite/pr81373.c: Likewise. * gcc.dg/graphite/run-id-pr67700-1.c: Likewise. * gfortran.dg/graphite/interchange-1.f: Likewise. * gfortran.dg/graphite/pr29581.f90: Likewise. * gfortran.dg/graphite/pr42334-1.f: Likewise. * gfortran.dg/graphite/pr42393-1.f90: Likewise. * gfortran.dg/graphite/pr42393.f90: Likewise. * gfortran.dg/graphite/pr47019.f: Likewise. From-SVN: r253342
2017-10-02Fix mismatched precisions in tree arithmeticRichard Sandiford11-16/+49
The tree wi:: decompose routine wasn't asserting that the requested precision matched the tree's precision. This could make a difference for unsigned trees that are exactly N HWIs wide and that have the upper bit set, since we then need an extra zero HWI when extending it to wider precisions (as for wi::to_widest). This patch adds the assert and fixes the fallout shown by the testsuite. Go seems to be unaffected. 2017-10-02 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * tree.h (wi::int_traits <const_tree>::decompose): Assert that the requested precision matches the type's. * calls.c (alloc_max_size): Calculate the new candidate size as a widest_int and use wi::to_widest when comparing it with the current candidate size. * gimple-ssa-warn-alloca.c (pass_walloca::execute): Compare with zero rather than integer_zero_node. * match.pd: Check for a no-op conversion before using wi::add rather than after. Use tree_to_uhwi when summing small shift counts into an unsigned int. gcc/c-family/ * c-warn.c (warn_tautological_bitwise_comparison): Use wi::to_widest when combining the original unconverted comparison operands. gcc/cp/ * constexpr.c (cxx_eval_store_expression): Use wi::to_widest when comparing the array bounds with an ARRAY_REF index. gcc/ada/ * gcc-interface/decl.c (annotate_value): Use wi::to_widest when handling the form (plus/mult (convert @0) @1). From-SVN: r253341
2017-10-02re PR c++/69977 (internal compiler error: Segmentation fault when using ↵Paolo Carlini2-0/+28
generic lambdas) 2017-10-02 Paolo Carlini <paolo.carlini@oracle.com> PR c++/69977 * g++.dg/cpp1y/lambda-generic-69977.C: New. From-SVN: r253340
2017-10-02re PR c++/59991 (Recursive lambda capture in C++1y constexpr function ↵Paolo Carlini2-0/+18
template causes internal compiler error) 2017-10-02 Paolo Carlini <paolo.carlini@oracle.com> PR c++/59991 * g++.dg/cpp0x/lambda/lambda-ice23.C: New. From-SVN: r253339
2017-10-02Require nonlocal_goto for gcc.c-torture/compile/pr82337.cTom de Vries2-0/+7
2017-10-02 Tom de Vries <tom@codesourcery.com> * gcc.c-torture/compile/pr82337.c: Add dg-require-effective-target nonlocal_goto. From-SVN: r253338
2017-10-02[AArch64] PR71307: Define union class of POINTER+FPRichard Sandiford5-2/+22
ALL_REGS doesn't function as a union class of POINTER_REGS and FP_REGS since it includes the CC register as well. REGNO_REG_CLASS (CC_REGNUM) is NO_REGS, but of course NO_REGS rightly doesn't include CC_REGNUM. Adding a union class for POINTER+FP allows the RA to use it as the preferred or alternative class of a pseudo. It also works as a union class of GENERAL+FP for modes that aren't allowed in SP. This is also needed for the SVE port, which adds predicate registers to the mix. 2017-09-15 Richard Sandiford <richard.sandiford@linaro.org> Alan Hayward <alan.hayward@arm.com> David Sherwood <david.sherwood@arm.com> gcc/ PR target/71307 * config/aarch64/aarch64.h (POINTER_AND_FP_REGS): New reg class. (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly. * config/aarch64/aarch64.c (aarch64_class_max_nregs): Handle POINTER_AND_FP_REGS. gcc/testsuite/ PR target/71307 * gcc.target/aarch64/vect_copy_lane_1.c: Remove XFAIL. Co-Authored-By: Alan Hayward <alan.hayward@arm.com> Co-Authored-By: David Sherwood <david.sherwood@arm.com> From-SVN: r253337
2017-10-02re PR tree-optimization/82355 (ICE in outermost_loop_in_sese, at sese.c:301)Richard Biener9-35/+88
2017-10-02 Richard Biener <rguenther@suse.de> PR tree-optimization/82355 * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build a mapping for the enclosing loop but avoid generating one for the loop tree root. (copy_bb_and_scalar_dependences): Remove premature codegen error on PHIs in blocks duplicated into multiple places. * graphite-scop-detection.c (scop_detection::stmt_has_simple_data_refs_p): For a loop not in the region use it as loop and nest to analyze the DR in. (try_generate_gimple_bb): Likewise. * graphite-sese-to-poly.c (extract_affine_chrec): Adjust. (add_loop_constraints): For blocks in a loop not in the region create a dimension with a single iteration. * sese.h (gbb_loop_at_index): Remove assert. * gcc.dg/graphite/fuse-1.c: Adjust. * gcc.dg/graphite/fuse-2.c: Likewise. * gcc.dg/graphite/pr82355.c: New testcase. From-SVN: r253336
2017-10-02omp-expand.c (adjust_context_scope): New function.Kevin Buettner2-0/+43
* omp-expand.c (adjust_context_scope): New function. (expand_parallel_call): Call adjust_context_scope. From-SVN: r253335
2017-10-02Daily bump.GCC Administrator1-1/+1
From-SVN: r253334
2017-10-01tree-ssa-dom.c (optimize_stmt): Make this a method within the ↵Jeff Law4-26/+163
dom_opt_dom_walker class with direct access to... * tree-ssa-dom.c (optimize_stmt): Make this a method within the dom_opt_dom_walker class with direct access to private members. Add comments. Call test_for_singularity. (dom_opt_dom_walker::before_dom_children): Corresponding changes. (dom_opt_dom_walker::after_dom_children): Do not lazily initialize m_dummy_cond anymore. (class dom_opt_dom_walker): Initialize m_dummy_cond member in the class ctor. (pass_dominator:execute): Build the dummy_cond here and pass it to the dom_opt_dom_walker ctor. (test_for_singularity): New function. * gcc.dg/tree-ssa/ssa-dom-simplify-1.c: New test. 2017-09-30 Paolo Carlini <paolo.carlini@oracle.com> From-SVN: r253329
2017-10-01re PR fortran/61450 (ICE in gfc_global_used())Dominique d'Humieres4-6/+41
2017-10-01 Dominique d'Humieres <dominiq@lps.ens.fr> PR fortran/61450 * parse.c (gfc_global_used): Replace the gfc_internal_error with an error. 2017-10-01 Dominique d'Humieres <dominiq@lps.ens.fr> PR fortran/61450 * gfortran.dg/binding_label_tests_28.f90: New test. From-SVN: r253328
2017-10-01Daily bump.GCC Administrator1-1/+1
From-SVN: r253327
2017-09-30config.gcc (*-*-netbsd*): New variable nbsd_tm_file containing netbsd.h, ↵Krister Walfridsson3-12/+52
netbsd-stdint.h, and netbsd-elf.h. 2017-09-30 Krister Walfridsson <krister.walfridsson@gmail.com> Maya Rashish <coypu@sdf.org> * config.gcc (*-*-netbsd*): New variable nbsd_tm_file containing netbsd.h, netbsd-stdint.h, and netbsd-elf.h. (alpha*-*-netbsd*) Use nbsd_tm_file. (arm*-*-netbsdelf*) Likewise. (i[34567]86-*-netbsdelf*) Likewise. (x86_64-*-netbsd*) Likewise. (mips*-*-netbsd*) Likewise. (powerpc-*-netbsd*) Likewise. (sh*-*-netbsd*) Likewise. (sparc-*-netbsdelf*) Likewise. (sparc64-*-netbsd*) Likewise. (m68k*-*-netbsdelf*) Use nbsd_tm_file and add CHAR_FAST8/SHORT_FAST16 to tm_defines. (vax-*-netbsdelf*) Likewise. * config/netbsd-stdint.h (INT_FAST8_TYPE): Check CHAR_FAST8. (UINT_FAST8_TYPE) Likewise. (INT_FAST16_TYPE) Check CHAR_FAST16. (UINT_FAST16_TYPE) Likewise. Co-Authored-By: Maya Rashish <coypu@sdf.org> From-SVN: r253323
2017-09-30re PR c++/65949 (Compiler can not deduce auto type in lambda)Paolo Carlini2-0/+66
2017-09-30 Paolo Carlini <paolo.carlini@oracle.com> PR c++/65949 * g++.dg/cpp1y/lambda-generic-variadic5.C: New. From-SVN: r253322
2017-09-30re PR c++/68754 (Explicitly defaulted constexpr assignment operator fails to ↵Paolo Carlini5-10/+24
compile) /cp 2017-09-30 Paolo Carlini <paolo.carlini@oracle.com> PR c++/68754 * method.c (defaulted_late_check): Early return if the defaulted declaration does not match the expected signature. /testsuite 2017-09-30 Paolo Carlini <paolo.carlini@oracle.com> PR c++/68754 * g++.dg/cpp1y/constexpr-68754.C: Move... * g++.dg/cpp0x/constexpr-68754.C: ... here, adjust. From-SVN: r253321
2017-09-30re PR target/82361 (Useless "mov eax, eax" in generated code)Jakub Jelinek6-4/+514
PR target/82361 * config/i386/i386.md (TARGET_USE_8BIT_IDIV zext divmodsi4 splitter): New define_split. (divmodsi4_zext_1, divmodsi4_zext_2, *divmodsi4_zext_1, *divmodsi4_zext_2): New define_insn_and_split. (*divmodsi4_noext_zext_1, *divmodsi4_noext_zext_2): New define_insn. (TARGET_USE_8BIT_IDIV zext udivmodsi4 splitter): New define_split. (udivmodsi4_zext_1, udivmodsi4_zext_2, *udivmodsi4_zext_1, *udivmodsi4_zext_2, *udivmodsi4_pow2_zext_1, *udivmodsi4_pow2_zext_2): New define_insn_and_split. (*udivmodsi4_noext_zext_1, *udivmodsi4_noext_zext_2): New define_insn. * config/i386/i386.c (ix86_split_idivmod): Handle operands[0] or operands[1] having DImode when mode is SImode. * gcc.target/i386/pr82361-1.c: New test. * gcc.target/i386/pr82361-2.c: New test. From-SVN: r253317
2017-09-30i386.c (ix86_split_idivmod): Use mode instead of always SImode for DIV and ↵Jakub Jelinek2-4/+9
MOD in REG_EQUAL notes. * config/i386/i386.c (ix86_split_idivmod): Use mode instead of always SImode for DIV and MOD in REG_EQUAL notes. From-SVN: r253316
2017-09-30Daily bump.GCC Administrator1-1/+1
From-SVN: r253315
2017-09-30Order some filenames in a changelog entry.Segher Boessenkool1-11/+11
From-SVN: r253311
2017-09-29c-attribs.c (handle_noipa_attribute): Don't add "stack_protect" attribute.Jakub Jelinek2-4/+5
* c-attribs.c (handle_noipa_attribute): Don't add "stack_protect" attribute. From-SVN: r253308
2017-09-29re PR middle-end/82319 (ICE in generic_simplify_148, at generic-match.c:6436)Yury Gribov4-1/+23
2017-09-29 Yury Gribov <tetra2005@gmail.com> PR middle-end/82319 gcc/ * match.pd: Fix handling of NaNs in pattern. gcc/testsuite/ * c-c++/common/pr57371-4.c: Test NaN comparisons. From-SVN: r253307
2017-09-29c-ada-spec.c (to_ada_name): Add index parameter.Eric Botcazou4-24/+148
* c-ada-spec.c (to_ada_name): Add index parameter. (pp_ada_tree_identifier): Likewise. (dump_ada_macros): Adjust call to to_ada_name. (struct overloaded_name_hash): New type. (struct overloaded_name_hasher): Likewise. (overloaded_names): New hash table. (compute_overloading_index): New function. (dump_ada_decl_name): Call it and pass the result to pp_ada_tree_identifier. (dump_ada_double_name): Adjust calls to pp_ada_tree_identifier. (dump_ada_function_declaration): Likewise. (dump_generic_ada_node): Likewise. (print_constructor): Likewise. (print_destructor): Likewise. (dump_ada_specs): Delete overloaded_names table. From-SVN: r253306
2017-09-29sbitmap.c (bitmap_bit_in_range_p): New function.Jeff Law6-0/+152
* sbitmap.c (bitmap_bit_in_range_p): New function. * sbitmap.h (bitmap_bit_in_range_p): Prototype. * tree-ssa-dse.c (live_bytes_read): New function. (dse_classify_store): Ignore reads of dead bytes. * testsuite/gcc.dg/tree-ssa/ssa-dse-26.c: New test. From-SVN: r253305
2017-09-29c-ada-spec.c (max_ada_macros): Move around.Eric Botcazou2-261/+226
* c-ada-spec.c (max_ada_macros): Move around. (store_ada_macro_index): Likewise. (source_file): Rename into... (macro_source_file): ...this. (count_ada_macro): Move around. (store_ada_macro): Likewise. (compare_macro): Likewise. (print_ada_macros): Merge in... (dump_ada_macros): ...this. (source_file_base): Rename into... (current_source_file): ...this. (print_comment): Move around. (dump_ada_nodes): Call dump_ada_declaration directly. (struct with): Change type of limited field to bool. (append_withs): Change type of limited_access parameter to bool. (pp_ada_tree_identifie): Likewise. (dump_ada_decl_nam): Likewise. (dump_generic_ada_node): Likewise. Do not print the return type. (to_ada_name): Change type of space_found parameter to bool. (dump_ada_function_declaration): Return void and change type of parameters to bool. Also print the return type for a function. (print_ada_methods): Rename into... (dump_ada_methods): ...this. (print_ada_declaration): Rename into ... (dump_ada_declaration): ...this. Do not print the return type. (print_ada_struct_decl): Rename into... (dump_ada_struct_decl): ...this. From-SVN: r253304
2017-09-29i386.c (ix86_adjust_stack_and_probe_stack_clash): Fix typos and whitespace ↵Jeff Law4-5/+12
errors. * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): Fix typos and whitespace errors. * config/i386/predicates.md (address_no_seg_operand): Likewise. * config/s390/s390.c (s390_emit_prologue): Likewise. From-SVN: r253303
2017-09-29P0683R1 - default member initializers for bit-fieldsJakub Jelinek11-38/+284
P0683R1 - default member initializers for bit-fields cp/ * cp-tree.h (grokbitfield): Add INIT parameter. * parser.c (cp_parser_constant_expression): Add STRICT_P argument, if true, parse a conditional-expression rather than assignment-expression. (cp_parser_member_declaration): For C++11 and later pass true as STRICT_P to cp_parser_constant_expression. Parse C++2A bitfield NSDMIs. Adjust grokbitfield caller. Handle DECL_INITIAL also for DECL_C_BIT_FIELDs. (cp_parser_objc_class_ivars): Adjust grokbitfield caller. * class.c (check_field_decl): Recurse even for DECL_C_BIT_FIELDs. (check_field_decls): Call check_field_decl even for DECL_C_BIT_FIELDs. * decl2.c (grokbitfield): Add INIT parameter, pass it to cp_finish_decl. * pt.c (tsubst_decl): Handle DECL_INITIAL for all FIELD_DECLs, not just non-bitfields. testsuite/ * g++.dg/ext/bitfield6.C: New test. * g++.dg/cpp2a/bitfield1.C: New test. * g++.dg/cpp2a/bitfield2.C: New test. * g++.dg/cpp2a/bitfield3.C: New test. From-SVN: r253302
2017-09-29c-attribs.c (handle_packed_attribute): Test DECL_C_BIT_FIELD rather than ↵Jakub Jelinek10-21/+61
DECL_INITIAL. c-family/ * c-attribs.c (handle_packed_attribute): Test DECL_C_BIT_FIELD rather than DECL_INITIAL. (common_handle_aligned_attribute): Likewise. c/ * c-decl.c (grokfield): Use SET_DECL_C_BIT_FIELD here if width is non-NULL. (finish_struct): Test DECL_C_BIT_FIELD instead of DECL_INITIAL, don't SET_DECL_C_BIT_FIELD here. cp/ * class.c (check_bitfield_decl): Retrieve and clear width from DECL_BIT_FIELD_REPRESENTATIVE rather than DECL_INITIAL. (check_field_decls): Test DECL_BIT_FIELD_REPRESENTATIVE rather than DECL_INITIAL. (remove_zero_width_bit_fields): Adjust comment. * decl2.c (grokbitfield): Stash width into DECL_BIT_FIELD_REPRESENTATIVE rather than DECL_INITIAL. * pt.c (tsubst_decl): For DECL_C_BIT_FIELD, tsubst_expr DECL_BIT_FIELD_REPRESENTATIVE rather than DECL_INITIAL for width. objc/ * objc-act.c (check_ivars, gen_declaration): For OBJCPLUS look at DECL_BIT_FIELD_REPRESENTATIVE rather than DECL_INITIAL. From-SVN: r253301
2017-09-29re PR target/81481 (Spills %xmm to stack in glibc strspn SSE 4.2 variant)Vladimir Makarov4-1/+33
2017-09-29 Vladimir Makarov <vmakarov@redhat.com> PR target/81481 * ira-costs.c (scan_one_insn): Don't take into account PIC equiv with a symbol for LRA. 2017-09-29 Vladimir Makarov <vmakarov@redhat.com> PR target/81481 * gcc.target/i386/pr81481.c: New. From-SVN: r253300
2017-09-29re PR rtl-optimization/82338 (valgrind error in inherit_in_ebb)Vladimir Makarov2-0/+6
2017-09-29 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/82338 * lra-constraints.c (inherit_in_ebb): Check usage_insns check. From-SVN: r253299
2017-09-29[BRIGFE] Fix crash with calls with more than 4 args.Henry Linjamäki2-2/+11
Also fix a misexecution issue with kernels that have both unexpanded ID functions and calls to subfunctions. From-SVN: r253298
2017-09-29swaps-p8-30.c: Exchange the order of dg-do and dg-require-effective-target ↵Kelvin Nilsen19-18/+41
directives to... gcc/testsuite/ChangeLog: 2017-09-29 Kelvin Nilsen <kelvin@gcc.gnu.org> * gcc.target/powerpc/swaps-p8-30.c: Exchange the order of dg-do and dg-require-effective-target directives to correct testing behavior. * gcc.target/powerpc/swaps-p8-32.c: Likewise. * gcc.target/powerpc/swaps-p8-41.c: Likewise. * gcc.target/powerpc/swaps-p8-34.c: Likewise. * gcc.target/powerpc/swaps-p8-43.c: Likewise. * gcc.target/powerpc/swaps-p8-36.c: Likewise. * gcc.target/powerpc/swaps-p8-45.c: Likewise. * gcc.target/powerpc/swaps-p8-29.c: Likewise. * gcc.target/powerpc/swaps-p8-38.c: Likewise. * gcc.target/powerpc/swaps-p8-31.c: Likewise. * gcc.target/powerpc/swaps-p8-40.c: Likewise. * gcc.target/powerpc/swaps-p8-33.c: Likewise. * gcc.target/powerpc/swaps-p8-42.c: Likewise. * gcc.target/powerpc/swaps-p8-35.c: Likewise. * gcc.target/powerpc/swaps-p8-44.c: Likewise. * gcc.target/powerpc/swaps-p8-28.c: Likewise. * gcc.target/powerpc/swaps-p8-37.c: Likewise. * gcc.target/powerpc/swaps-p8-39.c: Likewise. From-SVN: r253296
2017-09-29qsort comparator consistency checkingAlexander Monakov4-1/+112
* genmodes.c (calc_wider_mode): Suppress qsort macro. * system.h [CHECKING_P] (qsort): Redirect to qsort_chk. (qsort_chk): Declare. * vec.c [CHECKING_P] (qsort_chk_error): New static function. (qsort_chk): New function. From-SVN: r253295
2017-09-29[multiple changes]Pierre-Marie de Rodat25-71/+159
2017-09-29 Bob Duff <duff@adacore.com> * exp_ch6.adb (Expand_Call_Helper): Replace with code more similar to what we had before. (Make_Build_In_Place_Call_In_Object_Declaration): Back out previous change. Set the Etype in the class-wide case. This fixes a regression in the libadalang test suite. 2017-09-29 Joel Brobecker <brobecker@adacore.com> * doc/gnat_ugn/building_executable_programs_with_gnat.rst, doc/gnat_ugn/the_gnat_compilation_model.rst: Avoid use of single colon in comment markup. * gnat_ugn.texi: Regenerate. 2017-09-29 Justin Squirek <squirek@adacore.com> * ali-util.adb, comperr.adb, cprint.adb, errout.adb, fmap.adb, fname-sf.adb, frontend.adb, lib-xref-spark_specific.adb, gnat1drv.adb, gnatls.adb, lib.adb, lib-load.adb, lib-writ.adb, prepcomp.adb, sinput-d.adb, sinput-l.adb, sprint.adb, targparm.adb: Update comparison for checking source file status and error message and/or call to Read_Source_File. * libgnat/s-os_lib.ads: Add new potential value constant for uninitialized file descriptors. * osint.adb, osint.ads (Read_Source_File): Add extra parameter to return result of IO to encompass a read access failure in addition to a file-not-found error. From-SVN: r253294
2017-09-29re PR tree-optimization/82337 (ICE: SSA corruption at tree-ssa-coalesce.c:1010)Bill Schmidt4-1/+45
[gcc] 2017-09-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com> PR tree-optimization/82337 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a phi definition if the PHI result appears in an abnormal PHI. (find_basis_for_base_expr): Don't record a basis if the LHS of the basis appears in an abnormal PHI. [gcc] 2017-09-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com> PR tree-optimization/82337 * gcc.c-torture/compile/pr82337.c: New file. From-SVN: r253293
2017-09-29debug/elf: support 32-bit SPARC relocsIan Lance Taylor1-1/+1
Patch by Rainer Orth. Reviewed-on: https://go-review.googlesource.com/67111 From-SVN: r253292
2017-09-29mksysinfo: strip locale structsIan Lance Taylor1-1/+1
We don't need them, and this fixes the build when using uClibc-ng 1.0.26 as originally reported at https://gcc.gnu.org/ml/gcc-patches/2017-09/msg01930.html Reviewed-on: https://go-review.googlesource.com/67110 From-SVN: r253291
2017-09-29exp_ch6.adb (Expand_Call_Helper): Handle case of build-in-place functions ↵Bob Duff15-278/+356
returning nonlimited types. 2017-09-29 Bob Duff <duff@adacore.com> * exp_ch6.adb (Expand_Call_Helper): Handle case of build-in-place functions returning nonlimited types. Allow for qualified expressions and type conversions. (Expand_N_Extended_Return_Statement): Correct the computation of Func_Bod to allow for child units. (Expand_Simple_Function_Return): Remove assumption that b-i-p implies limited (initialization of In_Place_Expansion), and implies >= Ada 2005. (Is_Build_In_Place_Result_Type): New function to accompany Is_Build_In_Place_Function and Is_Build_In_Place_Function_Call, because sometimes we just have the type on our hands, not the function. For now, does the same thing as the old version, so build-in-place is disabled for nonlimited types, except that you can use -gnatd.9 to enable it. * exp_ch6.ads (Is_Build_In_Place_Result_Type): New function to accompany Is_Build_In_Place_Function and Is_Build_In_Place_Function_Call, because sometimes we just have the type on our hands, not the function. (Make_Build_In_Place_Call_In_...): Handle nonlimited build-in-place cases. (Make_Build_In_Place_Call_In_Object_Declaration): Remove the questionable code at the end that was setting the Etype. * exp_aggr.adb (Is_Build_In_Place_Aggregate_Return): New function to determine whether "return (...agg...);" is returning from a build-in-place function. (Initialize_Ctrl_Array_Component, Initialize_Ctrl_Record_Component): Remove assumption that b-i-p implies limited (initialization of In_Place_Expansion). (Build_Record_Aggr_Code): AI-287: fix comment; it can't be wrapped in an unchecked conversion. Add assertions. (Convert_Aggr_In_Object_Decl): Establish_Transient_Scope -- no need for secondary stack here, just because the type needs finalization. That code is obsolete. (Convert_To_Assignments): Only set Unc_Decl if Nkind (N) = N_Aggregate. For "return (...agg...);" don't assume b-i-p implies limited. Needs_Finalization does not imply secondary stack. (Expand_Array_Aggregate): Named notation. Reverse the sense of Component_OK_For_Backend -- more readability with fewer double negatives. * exp_attr.adb (Expand_N_Attribute_Reference): Remove assumptions that b-i-p implies >= Ada 2005. * exp_ch3.adb (Expand_N_Object_Declaration): Remove assumptions that b-i-p implies >= Ada 2005. Remove Adjust if we're building the return object of an extended return statement in place. * exp_ch4.adb (Expand_Allocator_Expression, Expand_N_Indexed_Component, Expand_N_Selected_Component, Expand_N_Slice): Remove assumptions that b-i-p implies >= Ada 2005. * exp_ch5.adb (Expand_N_Assignment_Statement): Remove assumption that b-i-p implies >= Ada 2005. * exp_ch7.adb: Comment fix. * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Remove assumptions that b-i-p implies >= Ada 2005. * exp_disp.adb (Expand_Interface_Actuals): Remove assumptions that b-i-p implies >= Ada 2005. * exp_util.adb (Build_Allocate_Deallocate_Proc): Look at Storage_Pool (Expr), in case Pool_Id is not set. (Initialized_By_Aliased_BIP_Func_Call): Handle case where the call is qualified or converted. (Is_Secondary_Stack_BIP_Func_Call): Don't check if Nkind (Selector_Name (Param)) = N_Identifier; that's all it could be. * sinfo.ads: Comment fixes. * snames.ads-tmpl: Comment fixes. * debug.adb: Add flag gnatd.9, to enable the build-in-place machinery. From-SVN: r253290
2017-09-29Add missing ChangeLog entries for previous commitJavier Miranda1-0/+8
From-SVN: r253289
2017-09-29[multiple changes]Pierre-Marie de Rodat8-16/+115
2017-09-29 Justin Squirek <squirek@adacore.com> * sem_ch8.adb (Analyze_Use_Package): Add sanity check to avoid circularities in the use-clause chain. 2017-09-29 Javier Miranda <miranda@adacore.com> * sem_ch3.adb (Replace_Components): Update references to discriminants located in variant parts inherited from the parent type. 2017-09-29 Javier Miranda <miranda@adacore.com> * exp_ch5.adb (Expand_Assign_Record): Do not generate code to copy discriminants if the target is an Unchecked_Union record type. 2017-09-29 Ed Schonberg <schonberg@adacore.com> * sem_aggr.adb (Resolve_Record_Aggregate): Reject the use of an iterated component association in an aggregate for a record type. 2017-09-29 Piotr Trojanek <trojanek@adacore.com> * make.adb: Minor whitespace fixes. * libgnat/s-resfil.ads: Minor reformatting. From-SVN: r253288
2017-09-29re PR fortran/25071 (dummy argument larger than actual argument)Dominique d'Humieres11-42/+57
2017-09-29 Dominique d'Humieres <dominiq@lps.ens.fr> PR fortran/25071 * gfortran.dg/argument_checking_3.f90: Change warnings to errors. * gfortran.dg/argument_checking_4.f90: Likewise. * gfortran.dg/argument_checking_5.f90: Likewise. * gfortran.dg/argument_checking_6.f90: Likewise. * gfortran.dg/argument_checking_10.f90: Likewise. * gfortran.dg/argument_checking_13.f90: Likewise. * gfortran.dg/argument_checking_15.f90: Likewise. * gfortran.dg/argument_checking_18.f90: Likewise. * gfortran.dg/gomp/udr8.f90: Likewise. * gfortran.dg/warn_argument_mismatch_1.f90: Add -std=legacy to the dg-options. From-SVN: r253287
2017-09-29re PR fortran/25071 (dummy argument larger than actual argument)Dominique d'Humieres2-5/+21
2017-09-29 Dominique d'Humieres <dominiq@lps.ens.fr> PR fortran/25071 * interface.c (compare_actual_formal): Change warnings to errors when "Actual argument contains too few elements for dummy argument", unless -std=legacy is used. From-SVN: r253286
2017-09-29[multiple changes]Pierre-Marie de Rodat9-23/+61
2017-09-29 Justin Squirek <squirek@adacore.com> * sem_ch8.adb (Mark_Use_Clauses): Add recursive call to properly handle all cases related to marking entity identifiers. 2017-09-29 Vasiliy Fofanov <fofanov@adacore.com> * adaint.c (win32_wait): Properly handle error and take into account the WIN32 limitation on the number of simultaneous wait objects. 2017-09-29 Vasiliy Fofanov <fofanov@adacore.com> * cal.c: Minor proofreading. 2017-09-29 Vasiliy Fofanov <fofanov@adacore.com> * doc/gnat_ugn/gnat_utility_programs.rst: Minor formatting fix. * gnat_ugn.texi: Regenerate. 2017-09-29 Bob Duff <duff@adacore.com> * lib-xref.ads: Comment fix. 2017-09-29 Bob Duff <duff@adacore.com> * exp_aggr.adb: Remove calls to Set_No_Ctrl_Actions for discriminants. Discriminants can't need finalization. 2017-09-29 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Analyze_Expression_Function): Do not emit freeze nodes for types in expression if the function is within a generic unit. * sem_res.adb (Resolve): In a generic context do not freeze an expression, unless it is an entity. This exception is solely for the purpose of detecting illegal uses of deferred constants in generic units. * sem_res.adb: Minor reformatting. From-SVN: r253285
2017-09-29[multiple changes]Pierre-Marie de Rodat6-6/+27
2017-09-29 Justin Squirek <squirek@adacore.com> * sem_ch8.adb (Note_Redundant_Use): Add guard to protect against false redundant warnings. 2017-09-29 Yannick Moy <moy@adacore.com> * sinput-c.adb: Remove unused with-clause on Ada.Unchecked_Conversion. 2017-09-29 Eric Botcazou <ebotcazou@adacore.com> * doc/gnat_rm/representation_clauses_and_pragmas.rst: Minor rewording. * doc/gnat_rm/implementation_defined_pragmas.rst (Optimize_Alignment): Document the effect of pragma Optimize_Alignment (Space) on non-packed record types. * gnat_rm.texi: Regenerate. From-SVN: r253284
2017-09-292017-09-29 Richard Biener <rguenther@suse.de>Richard Biener2-23/+40
* graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple::set_codegen_error): New function. (binary_op_to_tree): Use it. (get_rename_from_scev): Likewise. (copy_loop_phi_nodes): Likewise. (copy_bb_and_scalar_dependences): Likewise. (translate_pending_phi_nodes): Likewise. From-SVN: r253282
2017-09-29parser.c (cp_parser_member_declaration): Parse attributes before colon of a ↵Jakub Jelinek6-11/+85
bitfield in addition to after colon. cp/ * parser.c (cp_parser_member_declaration): Parse attributes before colon of a bitfield in addition to after colon. testsuite/ * g++.dg/ext/bitfield7.C: New test. * g++.dg/ext/bitfield8.C: New test. * g++.dg/ext/bitfield9.C: New test. From-SVN: r253281
2017-09-29re PR c/82340 (volatile ignored in compound literal)Jakub Jelinek4-3/+24
PR c/82340 * c-decl.c (build_compound_literal): Use c_apply_type_quals_to_decl instead of trying to set just TREE_READONLY manually. * gcc.dg/tree-ssa/pr82340.c: New test. From-SVN: r253280