aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2018-07-20re PR debug/86585 (ICE in gen_member_die, at dwarf2out.c:24935)Richard Biener7-5/+80
2018-07-20 Richard Biener <rguenther@suse.de> PR debug/86585 * dwarf2out.c (dwarf2out_die_ref_for_decl): Test in_lto_p to cover -flto-partition=none. lto/ * lto.c (unify_scc): Before we throw away an SCC see if we can amend prevailing single-entry SCC with debug refs. * g++.dg/lto/pr86585_0.C: New testcase. * g++.dg/lto/pr86585_1.C: Likewise. From-SVN: r262901
2018-07-20Remove unused code.Martin Liska2-10/+5
2018-07-20 Martin Liska <mliska@suse.cz> * tree.h (DECL_LOCATION_RANGE): Remove unused macro. (get_decl_source_range): Remove unused function. From-SVN: r262900
2018-07-20tree-ssa-sccvn.h (struct vn_nary_op_s): Add next member.Richard Biener3-90/+110
2018-07-20 Richard Biener <rguenther@suse.de> * tree-ssa-sccvn.h (struct vn_nary_op_s): Add next member. (struct vn_phi_s): Likewise. (struct vn_reference_s): Likewise. * tree-ssa-sccvn.c (vn_nary_op_hasher::equal): Add shortcut for searching the slot of an entry known to be in the hash itself. (vn_phi_hasher::equal): Likewise. (vn_reference_hasher::equal): Likewise. (last_inserted_ref, last_inserted_phi, last_inserted_nary): New globals. (optimistic_info, current_info): Remove, keeping only valid_info. (vn_reference_lookup_1): Remove fallback lookup. (vn_reference_lookup_2): Likewise. (vn_nary_op_lookup_1): Likewise. (vn_phi_lookup): Likewise. (vn_nary_build_or_lookup_1): Make sure to not chain the built hash element. (vn_reference_insert): Adjust, chain the inserted hash element at last_inserted_ref. (vn_reference_insert_pieces): Likewise. (visit_reference_op_call): Likewise. (vn_nary_op_insert_into): Chain the inserted hash element at last_inserted_nary. (vn_nary_op_insert_pieces): Adjust. (vn_nary_op_insert): Likewise. (vn_nary_op_insert_stmt): Likewise. (vn_phi_insert): Adjust, chain the inserted hash element at last_inserted_phi. (process_scc): Remove clearing and copying the optimistic table. Instead remove elements inserted during an optimistic iteration from the single table we maintain. (init_scc_vn): Adjust. (free_scc_vn): Likewise. (sccvn_dom_walker::record_cond): Likewise. (sccvn_dom_walker::after_dom_children): Likewise. From-SVN: r262899
2018-07-20Daily bump.GCC Administrator1-1/+1
From-SVN: r262897
2018-07-19PR tree-optimization/84047 - missing -Warray-bounds on an out-of-bounds ↵Martin Sebor7-3/+1065
index into an array PR tree-optimization/84047 - missing -Warray-bounds on an out-of-bounds index into an array PR tree-optimization/83776 - missing -Warray-bounds indexing past the end of a string literal gcc/ChangeLog: PR tree-optimization/84047 PR tree-optimization/83776 * tree-vrp.c (vrp_prop::check_mem_ref): New function. (check_array_bounds): Call it. gcc/testsuite/ChangeLog: PR tree-optimization/83776 PR tree-optimization/84047 * gcc.dg/Warray-bounds-29.c: New test. * gcc.dg/Warray-bounds-30.c: New test. * gcc.dg/Warray-bounds-31.c: New test. * gcc.dg/Warray-bounds-32.c: New test. From-SVN: r262893
2018-07-19align.h (align_flags): Use member initialization.Martin Sebor2-2/+8
gcc/ChangeLog: * align.h (align_flags): Use member initialization. From-SVN: r262892
2018-07-19Add "optinfo" frameworkDavid Malcolm8-66/+1274
This patch implements a way to consolidate dump_* calls into optinfo objects, as enabling work towards being able to write out optimization records to a file. The patch adds the support for building optinfo instances from dump_* calls, but leaves implementing any *users* of them to followup patches. gcc/ChangeLog: * Makefile.in (OBJS): Add optinfo.o. * coretypes.h (class symtab_node): New forward decl. (struct cgraph_node): New forward decl. (class varpool_node): New forward decl. * dump-context.h: New file. * dumpfile.c: Include "optinfo.h", "dump-context.h", "cgraph.h", "tree-pass.h". (refresh_dumps_are_enabled): Use optinfo_enabled_p. (set_dump_file): Call dumpfile_ensure_any_optinfo_are_flushed. (set_alt_dump_file): Likewise. (dump_context::~dump_context): New dtor. (dump_gimple_stmt): Move implementation to... (dump_context::dump_gimple_stmt): ...this new member function. Add the stmt to any pending optinfo, creating one if need be. (dump_gimple_stmt_loc): Move implementation to... (dump_context::dump_gimple_stmt_loc): ...this new member function. Start a new optinfo and add the stmt to it. (dump_gimple_expr): Move implementation to... (dump_context::dump_gimple_expr): ...this new member function. Add the stmt to any pending optinfo, creating one if need be. (dump_gimple_expr_loc): Move implementation to... (dump_context::dump_gimple_expr_loc): ...this new member function. Start a new optinfo and add the stmt to it. (dump_generic_expr): Move implementation to... (dump_context::dump_generic_expr): ...this new member function. Add the tree to any pending optinfo, creating one if need be. (dump_generic_expr_loc): Move implementation to... (dump_context::dump_generic_expr_loc): ...this new member function. Add the tree to any pending optinfo, creating one if need be. (dump_printf): Move implementation to... (dump_context::dump_printf_va): ...this new member function. Add the text to any pending optinfo, creating one if need be. (dump_printf_loc): Move implementation to... (dump_context::dump_printf_loc_va): ...this new member function. Start a new optinfo and add the stmt to it. (dump_dec): Move implementation to... (dump_context::dump_dec): ...this new member function. Add the value to any pending optinfo, creating one if need be. (dump_context::dump_symtab_node): New member function. (dump_context::get_scope_depth): New member function. (dump_context::begin_scope): New member function. (dump_context::end_scope): New member function. (dump_context::ensure_pending_optinfo): New member function. (dump_context::begin_next_optinfo): New member function. (dump_context::end_any_optinfo): New member function. (dump_context::s_current): New global. (dump_context::s_default): New global. (dump_scope_depth): Delete global. (dumpfile_ensure_any_optinfo_are_flushed): New function. (dump_symtab_node): New function. (get_dump_scope_depth): Reimplement in terms of dump_context. (dump_begin_scope): Likewise. (dump_end_scope): Likewise. (selftest::temp_dump_context::temp_dump_context): New ctor. (selftest::temp_dump_context::~temp_dump_context): New dtor. (selftest::verify_item): New function. (ASSERT_IS_TEXT): New macro. (ASSERT_IS_TREE): New macro. (ASSERT_IS_GIMPLE): New macro. (selftest::test_capture_of_dump_calls): New test. (selftest::dumpfile_c_tests): Call it. * dumpfile.h (dump_printf, dump_printf_loc, dump_basic_block) (dump_generic_expr_loc, dump_generic_expr, dump_gimple_stmt_loc) (dump_gimple_stmt, dump_dec): Gather these related decls and add a descriptive comment. (dump_function, print_combine_total_stats, enable_rtl_dump_file) (dump_node, dump_bb): Move these unrelated decls. (class dump_manager): Add leading comment. * optinfo.cc: New file. * optinfo.h: New file. From-SVN: r262891
2018-07-19aarch64.md (subv<GPI>4, [...]): New patterns.Michael Collison18-21/+922
2018-07-19 Michael Collison <michael.collison@arm.com> Richard Henderson <rth@redhat.com> * config/aarch64/aarch64.md (subv<GPI>4, usubv<GPI>4): New patterns. (subti): Handle op1 zero. (subvti4, usub4ti4): New. (*sub<GPI>3_compare1_imm): New. (sub<GPI>3_carryinCV): New. (*sub<GPI>3_carryinCV_z1_z2, *sub<GPI>3_carryinCV_z1): New. (*sub<GPI>3_carryinCV_z2, *sub<GPI>3_carryinCV): New. 2018-07-19 Michael Collison <michael.collison@arm.com> Richard Henderson <rth@redhat.com> * config/aarch64/aarch64.md: (addv<GPI>4, uaddv<GPI>4): New. (addti3): Create simpler code if low part is already known to be 0. (addvti4, uaddvti4): New. (*add<GPI>3_compareC_cconly_imm): New. (*add<GPI>3_compareC_cconly): New. (*add<GPI>3_compareC_imm): New. (*add<GPI>3_compareC): Rename from add<GPI>3_compare1; do not handle constants within this pattern.. (*add<GPI>3_compareV_cconly_imm): New. (*add<GPI>3_compareV_cconly): New. (*add<GPI>3_compareV_imm): New. (add<GPI>3_compareV): New. (add<GPI>3_carryinC, add<GPI>3_carryinV): New. (*add<GPI>3_carryinC_zero, *add<GPI>3_carryinV_zero): New. (*add<GPI>3_carryinC, *add<GPI>3_carryinV): New. ((*add<GPI>3_compareC_cconly_imm): Replace 'ne' operator with 'comparison' operator. (*add<GPI>3_compareV_cconly_imm): Ditto. (*add<GPI>3_compareV_cconly): Ditto. (*add<GPI>3_compareV_imm): Ditto. (add<GPI>3_compareV): Ditto. (add<mode>3_carryinC): Ditto. (*add<mode>3_carryinC_zero): Ditto. (*add<mode>3_carryinC): Ditto. (add<mode>3_carryinV): Ditto. (*add<mode>3_carryinV_zero): Ditto. (*add<mode>3_carryinV): Ditto. 2018-07-19 Michael Collison <michael.collison@arm.com> Richard Henderson <rth@redhat.com> * config/aarch64/aarch64-modes.def (CC_V): New. * config/aarch64/aarch64-protos.h (aarch64_addti_scratch_regs): Declare (aarch64_subvti_scratch_regs): Declare. (aarch64_expand_subvti): Declare. (aarch64_gen_unlikely_cbranch): Declare * config/aarch64/aarch64.c (aarch64_select_cc_mode): Test for signed overflow using CC_Vmode. (aarch64_get_condition_code_1): Handle CC_Vmode. (aarch64_gen_unlikely_cbranch): New function. (aarch64_addti_scratch_regs): New function. (aarch64_subvti_scratch_regs): New function. (aarch64_expand_subvti): New function. 2018-07-19 Michael Collison <michael.collison@arm.com> Richard Henderson <rth@redhat.com> * gcc.target/aarch64/builtin_sadd_128.c: New testcase. * gcc.target/aarch64/builtin_saddl.c: New testcase. * gcc.target/aarch64/builtin_saddll.c: New testcase. * gcc.target/aarch64/builtin_uadd_128.c: New testcase. * gcc.target/aarch64/builtin_uaddl.c: New testcase. * gcc.target/aarch64/builtin_uaddll.c: New testcase. * gcc.target/aarch64/builtin_ssub_128.c: New testcase. * gcc.target/aarch64/builtin_ssubl.c: New testcase. * gcc.target/aarch64/builtin_ssubll.c: New testcase. * gcc.target/aarch64/builtin_usub_128.c: New testcase. * gcc.target/aarch64/builtin_usubl.c: New testcase. * gcc.target/aarch64/builtin_usubll.c: New testcase. Co-Authored-By: Richard Henderson <rth@redhat.com> From-SVN: r262890
2018-07-19revert: [multiple changes]Paolo Carlini11-111/+35
2018-07-19 Paolo Carlini <paolo.carlini@oracle.com> Revert fix for c++/59480 (and testsuite followup) /testsuite 2018-07-19 Paolo Carlini <paolo.carlini@oracle.com> * g++.old-deja/g++.mike/p784.C: Add -fpermissive. /cp 2019-07-18 Paolo Carlini <paolo.carlini@oracle.com> PR c++/59480, DR 136 * decl.c (check_no_redeclaration_friend_default_args): New. (duplicate_decls): Use the latter; also check that a friend declaration specifying default arguments is a definition. /testsuite 2019-07-18 Paolo Carlini <paolo.carlini@oracle.com> PR c++/59480, DR 136 * g++.dg/other/friend8.C: New. * g++.dg/other/friend9.C: Likewise. * g++.dg/other/friend10.C: Likewise. * g++.dg/other/friend11.C: Likewise. * g++.dg/other/friend12.C: Likewise. * g++.dg/parse/defarg4.C: Compile with -fpermissive -w. * g++.dg/parse/defarg8.C: Likewise. From-SVN: r262883
2018-07-19[PATCH, GCC, AARCH64] Add support for +profile extensionAndre Vieira6-0/+24
This patch adds support for the Statistical Profiling Extension (SPE) on AArch64. Even though the compiler will not generate code any differently given this extension, it will need to pass it on to the assembler in order to let it correctly assemble inline asm containing accesses to the extension's system registers. The same applies when using the preprocessor on an assembly file as this first must pass through cc1. I left the hwcaps string for SPE empty as the kernel does not define a feature string for this extension. The current effect of this is that driver will disable profile feature bit in GCC. This is OK though because we don't, nor do we ever, enable this feature bit, as codegen is not affect by the SPE support and more importantly the driver will still pass the extension down to the assembler regardless. gcc/ChangeLog 2018-07-19 Andre Vieira <andre.simoesdiasvieira@arm.com> * config/aarch64/aarch64-option-extensions.def: New entry for profile extension. * config/aarch64/aarch64.h (AARCH64_FL_PROFILE): New. * doc/invoke.texi (aarch64-feature-modifiers): New entry for profile extension. gcc/testsuite/ChangeLog 2018-07-19 Andre Vieira <andre.simoesdiasvieira@arm.com> * gcc.target/aarch64/profile.c: New test. From-SVN: r262882
2018-07-19[AArch64][PATCH 2/2] PR target/83009: Relax strict address checking for storeAndre Vieira4-4/+37
pair lanes gcc/ChangeLog 2018-07-19 Andre Vieira <andre.simoesdiasvieira@arm.com> PR target/83009 * config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): Make address check not strict. gcc/testsuite/ChangeLog 2018-07-19 Andre Vieira <andre.simoesdiasvieira@arm.com> PR target/83009 * gcc/target/aarch64/store_v2vec_lanes.c: Add extra tests. From-SVN: r262881
2018-07-19[AArch64][PATCH 1/2] Fix addressing printing of LDP/STPAndre Vieira6-32/+50
gcc/ChangeLog 2018-07-19 Andre Vieira <andre.simoesdiasvieira@arm.com> * config/aarch64/aarch64-simd.md (aarch64_simd_mov<VQ:mode>): Replace Umq with Umn. (store_pair_lanes<mode>): Likewise. * config/aarch64/aarch64-protos.h (aarch64_addr_query_type): Add new enum value 'ADDR_QUERY_LDP_STP_N'. * config/aarch64/aarch64.c (aarch64_addr_query_type): Likewise. (aarch64_print_address_internal): Add declaration. (aarch64_print_ldpstp_address): Remove. (aarch64_classify_address): Adapt mode for 'ADDR_QUERY_LDP_STP_N'. (aarch64_print_operand): Change printing of 'y'. * config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): Use new enum value 'ADDR_QUERY_LDP_STP_N', don't hardcode mode and use 'true' rather than '1'. * gcc/config/aarch64/constraints.md (Uml): Likewise. (Uml): Rename to Umn. (Umq): Remove. From-SVN: r262880
2018-07-19tree-ssa-sccvn.h (struct vn_phi_s): Make phiargs member a trailing array.Richard Biener3-131/+130
2018-07-19 Richard Biener <rguenther@suse.de> * tree-ssa-sccvn.h (struct vn_phi_s): Make phiargs member a trailing array. * tree-ssa-sccvn.c: Remove alloc-pool.h use. (vn_phi_hasher): Derive from nofree_ptr_hash and remove remove method. (vn_reference_hasher): Likewise. (struct vn_tables_s): Remove obstack and alloc-pool members. (vn_tables_obstack, vn_tables_insert_obstack): New global obstacks. (vn_nary_build_or_lookup_1): Manually build in vn_tables_insert_obstack. (vn_reference_insert): Allocate from obstack instead of from alloc-pool. (vn_reference_insert_pieces): Likewise. (alloc_vn_nary_op_noinit): Adjust. (vn_nary_op_insert_stmt): Allocate phiargs in-place. (vn_phi_eq): Adjust. (shared_lookup_phiargs): Remove. (vn_phi_lookup): Allocate temporary vn_phi_s on the stack. (vn_phi_insert): Allocate from obstack instead of from alloc-pool. (visit_reference_op_call): Likewise. (copy_nary, copy_phi, copy_reference): Remove. (process_scc): Rewind the obstack when iterating. Do not copy the elements to valid_info but just move them from one hashtable to the other. (allocate_vn_table): Adjust. (free_vn_table): Likewise. (init_scc_vn): Likewise. (free_scc_vn): Likewise. From-SVN: r262879
2018-07-19i386: Test __has_attribute (__indirect_return__)H.J. Lu3-0/+48
The new indirect_return attribute is intended to mark swapcontext in <ucontext.h>. Test __has_attribute (__indirect_return__) so that it can be backported to GCC 8. PR target/86560 * gcc.target/i386/pr86560-4.c: New test. * gcc.target/i386/pr86560-5.c: Likewise. --- gcc/testsuite/gcc.target/i386/pr86560-4.c | 21 +++++++++++++++++++++ gcc/testsuite/gcc.target/i386/pr86560-5.c | 21 +++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 gcc/testsuite/gcc.target/i386/pr86560-4.c create mode 100644 gcc/testsuite/gcc.target/i386/pr86560-5.c diff --git a/gcc/testsuite/gcc.target/i386/pr86560-4.c b/gcc/testsuite/gcc.target/i386/pr86560-4.c new file mode 100644 index 00000000000..a623e3dcbeb --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr86560-4.c @@ -0,0 +1,21 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fcf-protection" } */ +/* { dg-final { scan-assembler-times {\mendbr} 2 } } */ + +struct ucontext; + +extern int (*bar) (struct ucontext *) +#ifdef __has_attribute +# if __has_attribute (indirect_return) + __attribute__((__indirect_return__)) +# endif +#endif +; + +extern int res; + +void +foo (struct ucontext *oucp) +{ + res = bar (oucp); +} diff --git a/gcc/testsuite/gcc.target/i386/pr86560-5.c b/gcc/testsuite/gcc.target/i386/pr86560-5.c new file mode 100644 index 00000000000..33b0f6424c2 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr86560-5.c @@ -0,0 +1,21 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fcf-protection" } */ +/* { dg-final { scan-assembler-times {\mendbr} 2 } } */ + +struct ucontext; + +extern int (*bar) (struct ucontext *) +#ifdef __has_attribute +# if __has_attribute (__indirect_return__) + __attribute__((__indirect_return__)) +# endif +#endif +; + +extern int res; + +void +foo (struct ucontext *oucp) +{ + res = bar (oucp); +} -- 2.17.1 From-SVN: r262878
2018-07-19i386: Change indirect_return to function type attributeH.J. Lu7-10/+83
In struct ucontext; typedef struct ucontext ucontext_t; extern int (*bar) (ucontext_t *__restrict __oucp, const ucontext_t *__restrict __ucp) __attribute__((__indirect_return__)); extern int res; void foo (ucontext_t *oucp, ucontext_t *ucp) { res = bar (oucp, ucp); } bar() may return via indirect branch. This patch changes indirect_return to type attribute to allow indirect_return attribute on variable or type of function pointer so that ENDBR can be inserted after call to bar(). gcc/ PR target/86560 * config/i386/i386.c (rest_of_insert_endbranch): Lookup indirect_return as function type attribute. (ix86_attribute_table): Change indirect_return to function type attribute. * doc/extend.texi: Update indirect_return attribute. gcc/testsuite/ PR target/86560 * gcc.target/i386/pr86560-1.c: New test. * gcc.target/i386/pr86560-2.c: Likewise. * gcc.target/i386/pr86560-3.c: Likewise. From-SVN: r262877
2018-07-19[Fortran] Use MIN/MAX_EXPR or IFN_FMIN/MAX for min/max intrinsics when possibleKyrylo Tkachov6-34/+113
* trans-intrinsic.c: (gfc_conv_intrinsic_minmax): Emit MIN_MAX_EXPR or IFN_FMIN/FMAX sequence to calculate the min/max when possible. * gfortran.dg/max_fmax_aarch64.f90: New test. * gfortran.dg/min_fmin_aarch64.f90: Likewise. * gfortran.dg/minmax_integer.f90: Likewise. From-SVN: r262876
2018-07-19p784.C: Add -fpermissive.Paolo Carlini2-1/+5
2018-07-19 Paolo Carlini <paolo.carlini@oracle.com> * g++.old-deja/g++.mike/p784.C: Add -fpermissive. From-SVN: r262875
2018-07-19wide-int.h (widest2_int): New.Aldy Hernandez6-210/+236
* wide-int.h (widest2_int): New. * gimple-fold.c (arith_overflowed_p): Use it. * tree.h (widest2_int_cst): New. * tree-vrp.c (wide_int_binop_overflow): Rename from vrp_int_const_binop. Rewrite to work on trees. (extract_range_from_multiplicative_op_1): Abstract code to... (wide_int_range_min_max): ...here. (wide_int_range_cross_product): ...and here. (extract_range_from_binary_expr_1): Abstract overflow code to... (wide_int_range_cross_product_wrapping): ...here. * tree-vrp.h (wide_int_range_cross_product): New. (wide_int_range_cross_product_wrapping): New. From-SVN: r262874
2018-07-19x86-tune-costs.h (skylake_memcpy, [...]): Replace rep_prefix with unrolling ↵Andrew Senkevich2-2/+8
for size 512. * config/i386/x86-tune-costs.h (skylake_memcpy, skylake_memset): Replace rep_prefix with unrolling for size 512. Co-Authored-By: Julia Koval <julia.koval@intel.com> From-SVN: r262871
2018-07-19Daily bump.GCC Administrator1-1/+1
From-SVN: r262870
2018-07-18re PR tree-optimization/86544 (Popcount detection generates different code ↵Kugan Vivekanandarajah4-11/+41
on C and C++) gcc/ChangeLog: 2018-07-18 Kugan Vivekanandarajah <kuganv@linaro.org> PR middle-end/86544 * tree-ssa-phiopt.c (cond_removal_in_popcount_pattern): Handle comparision with EQ_EXPR in last stmt. gcc/testsuite/ChangeLog: 2018-07-18 Kugan Vivekanandarajah <kuganv@linaro.org> PR middle-end/86544 * g++.dg/tree-ssa/pr86544.C: New test. From-SVN: r262864
2018-07-18extend.texi (PowerPC AltiVec Built-in Functions): Rename this subsection to ↵Kelvin Nilsen2-54/+88
"PowerPC AltiVec/VSX Built-in Functions". gcc/ChangeLog: 2018-07-18 Kelvin Nilsen <kelvin@gcc.gnu.org> * doc/extend.texi (PowerPC AltiVec Built-in Functions): Rename this subsection to "PowerPC AltiVec/VSX Built-in Functions". (PowerPC AltiVec/VSX Built-in Functions): New name for subsection previously known as "PowerPC AltiVec Built-in Functions". Move some material to new subsubsections "PowerPC AltiVec Built-in Functions on ISA 2.06" and "PowerPC AltiVec Built-in Functions on ISA 2.07". (PowerPC Altivec Built-in Functions on ISA 2.05): New subsubsection. (PowerPC Altivec Built-in Functions on ISA 2.06): Likewise. (PowerPC Altivec Built-in Functions on ISA 2.07): Likewise. (PowerPC Altivec Built-in Functions on ISA 3.0): Likewise. From-SVN: r262863
2018-07-18re PR c++/86550 (Lambda parsing allows arbitrary types in decl-specifier-seq)Jakub Jelinek4-0/+23
PR c++/86550 * parser.c (cp_parser_decl_specifier_seq): Diagnose invalid type specifier if CP_PARSER_FLAGS_ONLY_MUTABLE_OR_CONSTEXPR. * g++.dg/cpp0x/lambda/lambda-86550.C: New test. From-SVN: r262862
2018-07-18re PR c/69558 (glib2 warning pragmas stopped working)Bernd Edlinger7-18/+43
libcpp: 2018-07-18 Bernd Edlinger <bernd.edlinger@hotmail.de> PR 69558 * macro.c (enter_macro_context): Change the location info for builtin macros and _Pragma from location of the closing parenthesis to location of the macro expansion point. testsuite: 2018-07-18 Bernd Edlinger <bernd.edlinger@hotmail.de> PR 69558 * c-c++-common/cpp/diagnostic-pragma-2.c: New test. * c-c++-common/pr69558.c: Remove xfail. * gcc.dg/cpp/builtin-macro-1.c: Adjust test expectations. * gcc.dg/pr61817-1.c: Likewise. * gcc.dg/pr61817-2.c: Likewise. * g++.dg/plugin/pragma_plugin.c: Warn at expansion_point_location. From-SVN: r262861
2018-07-18re PR fortran/85599 (warn about short-circuiting of logical expressions for ↵Janus Weil11-24/+192
non-pure functions) 2018-07-18 Janus Weil <janus@gcc.gnu.org> Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/85599 * dump-parse-tree.c (show_attr): Add handling of implicit_pure. * frontend-passes.c (do_warn_function_elimination): Do not warn for pure functions. * gfortran.h: Add prototypes for gfc_pure_function and gfc_implicit_pure_function. * gfortran.texi: Add chapter on evaluation of logical expressions. * invoke.texi: Mention that -Wfunction-elimination is implied by -Wextra. * lang.opt: Make -Wextra imply -Wfunction-elimination. * resolve.c (pure_function): Rename to gfc_pure_function. (gfc_implicit_pure_function): New function. (check_pure_function): Use it here. (impure_function_callback): New function. (resolve_operator): Call it via gfc_expr_walker. 2018-07-18 Janus Weil <janus@gcc.gnu.org> PR fortran/85599 * gfortran.dg/function_optimize_5.f90: Add option '-faggressive-function-elimination' and update dg-warning clauses. * gfortran.dg/short_circuiting.f90: New test. Co-Authored-By: Thomas Koenig <tkoenig@gcc.gnu.org> From-SVN: r262860
2018-07-18PR c++/86190 - bogus -Wsign-conversion warningMarek Polacek5-4/+45
PR c++/86190 - bogus -Wsign-conversion warning * typeck.c (cp_build_binary_op): Fix formatting. Add a warning sentinel. * g++.dg/warn/Wsign-conversion-3.C: New test. * g++.dg/warn/Wsign-conversion-4.C: New test. From-SVN: r262855
2018-07-18re PR target/86557 (missed vectorization with std::vector compared to icc 18)Richard Biener2-1/+9
2018-07-18 Richard Biener <rguenther@suse.de> PR tree-optimization/86557 * tree-vect-patterns.c (vect_recog_divmod_pattern): Also handle EXACT_DIV_EXPR. From-SVN: r262854
2018-07-182018-07-18 Paolo Carlini <paolo.carlini@oracle.com>Paolo Carlini2-2/+2
* Fix typos in ChangeLog entries. From-SVN: r262852
2018-07-18re PR c++/59480 (Missing error diagnostic: friend declaration specifying a ↵Paolo Carlini19-32/+174
default argument must be a definition) /cp 2018-07-18 Paolo Carlini <paolo.carlini@oracle.com> * class.c (note_name_declared_in_class): Prefer permerror + inform to a pair of permerrors; use DECL_SOURCE_LOCATION. /testsuite 2018-07-18 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/ext/uow-3.C: Adjust. * g++.dg/ext/uow-4.C: Likewise. * g++.dg/lookup/name-clash11.C: Likewise. * g++.dg/lookup/name-clash7.C: Likewise. * g++.dg/lookup/redecl1.C: Likewise. * g++.dg/warn/changes-meaning.C: Likewise. * g++.old-deja/g++.jason/scoping8.C: Likewise. * g++.old-deja/g++.law/nest1.C: Likewise. /cp 2019-07-18 Paolo Carlini <paolo.carlini@oracle.com> PR c++/59480, DR 136 * decl.c (check_no_redeclaration_friend_default_args): New. (duplicate_decls): Use the latter; also check that a friend declaration specifying default arguments is a definition. /testsuite 2019-07-18 Paolo Carlini <paolo.carlini@oracle.com> PR c++/59480, DR 136 * g++.dg/other/friend8.C: New. * g++.dg/other/friend9.C: Likewise. * g++.dg/other/friend10.C: Likewise. * g++.dg/other/friend11.C: Likewise. * g++.dg/other/friend12.C: Likewise. * g++.dg/parse/defarg4.C: Compile with -fpermissive -w. * g++.dg/parse/defarg8.C: Likewise. From-SVN: r262851
2018-07-18S/390: Add CFI for mcount call sequencesIlya Leoshkevich2-1/+22
2018-07-18 Ilya Leoshkevich <iii@linux.ibm.com> * config/s390/s390.c (s390_function_profiler): Generate CFI. From-SVN: r262850
2018-07-18re PR debug/86523 (ICE in gen_member_die, at dwarf2out.c:24933 starting from ↵Richard Biener4-3/+38
r262560) 2018-07-18 Richard Biener <rguenther@suse.de> PR debug/86523 cp/ * decl2.c (c_parse_final_cleanups): Call write_out_vars before start_static_storage_duration_function sets current_function_decl. * g++.dg/lto/pr86523-3_0.C: New testcase. From-SVN: r262849
2018-07-17arm.c (get_label_padding): Update for recent changes to label_to_alignment.Jeff Law2-1/+4
* config/arm/arm.c (get_label_padding): Update for recent changes to label_to_alignment. From-SVN: r262848
2018-07-18Daily bump.GCC Administrator1-1/+1
From-SVN: r262846
2018-07-17re PR tree-optimization/86010 (redundant memset with smaller size not ↵Jeff Law2-1/+4
eliminated) PR tree-optimization/86010 * tree-ssa-dse.c (compute_trims): Fix typo/thinko. From-SVN: r262841
2018-07-17mips.c (vr4130_align_insns): Update for recent changes to label_to_alignment.Jeff Law2-1/+4
* config/mips/mips.c (vr4130_align_insns): Update for recent changes to label_to_alignment. From-SVN: r262838
2018-07-17frv.c (frv_label_align): Update for recent changes to label_to_alignment.Jeff Law2-1/+4
* config/frv/frv.c (frv_label_align): Update for recent changes to label_to_alignment. From-SVN: r262837
2018-07-17nios2.c (nios2_label_align): Update for recent changes which dropped ↵Jeff Law2-2/+7
ALIGN_LABELS_LOG. * config/nios2/nios2.c (nios2_label_align): Update for recent changes which dropped ALIGN_LABELS_LOG. From-SVN: r262836
2018-07-17Fix invalid cc_status after [const_][us]mulsi3_highpartAndreas Schwab4-4/+33
* config/m68k/m68k.md (umulsi3_highpart+1, const_umulsi3_highpart) (smulsi3_highpart+1, const_smulsi3_highpart): Add CC_STATUS_INIT. testsuite/: * gcc.target/m68k/mulsi_highpart.c: New test. From-SVN: r262835
2018-07-17compiler: don't set btype_ too early for alias typeIan Lance Taylor2-3/+5
CL 123362 introduced a bug in creating alias type's backend representation. A type's btype_ should not be set before named types are converted if it is a placeholder. For alias type, it is set too early. This may result in unresolved placeholders. This CL fixes it. Reviewed-on: https://go-review.googlesource.com/123975 From-SVN: r262833
2018-07-17lex.c (_cpp_lex_direct): Use CPP_DL_NOTE instead of CPP_DL_PEDWARN...Jakub Jelinek5-3/+22
* lex.c (_cpp_lex_direct): Use CPP_DL_NOTE instead of CPP_DL_PEDWARN, CPP_DL_WARNING or CPP_DL_ERROR for note that diagnostics for C++ style comments is reported only once per file and guard those calls on the preceding cpp_error returning true. * gcc.dg/cpp/pr61854-c90.c (foo): Expect a note, rather than error. * gcc.dg/cpp/pr61854-c94.c (foo): Likewise. * gcc.dg/cpp/pr61854-4.c (foo): Likewise. * gcc.dg/cpp/pr61854-8.c: New test. From-SVN: r262832
2018-07-17* gcc.target/powerpc/pr85456.c: Require longdouble128.David Edelsohn2-0/+5
From-SVN: r262831
2018-07-17compiler: connect the concrete type and the placeholder for circular typesIan Lance Taylor3-24/+5
Previously, when creating the backend representation of a circular type, we resolve the placeholder to a circular_pointer_type. The backend doesn't know what the concrete type is. This CL changes it to resolve the placeholder to the concrete type instead, so the backend may have better knowledge of the concrete type. Reviewed-on: https://go-review.googlesource.com/123738 From-SVN: r262830
2018-07-17re PR fortran/83184 (Out of memory or ICE with option -fdec)Fritz Reese2-3/+8
2018-07-17 Fritz Reese <fritzoreese@gmail.com> gcc/testsuite/ChangeLog: PR fortran/83184 * gfortran.dg/dec_structure_23.f90: Oops, "un-fix" error messages. From-SVN: r262828
2018-07-17fold-vec-unpack-char.c: New.Will Schmidt6-0/+161
[testsuite] 2018-07-06 Will Schmidt <will_schmidt@vnet.ibm.com> * gcc.target/powerpc/fold-vec-unpack-char.c: New. * gcc.target/powerpc/fold-vec-unpack-float.c: New. * gcc.target/powerpc/fold-vec-unpack-int.c: New. * gcc.target/powerpc/fold-vec-unpack-pixel.c: New. * gcc.target/powerpc/fold-vec-unpack-short.c: New. From-SVN: r262827
2018-07-17pr57150.c: Require longdouble128.David Edelsohn3-0/+7
* gcc.target/powerpc/pr57150.c: Require longdouble128. * gcc.target/powerpc/pr79916.c: Require dfp. From-SVN: r262826
2018-07-17PR c++/86480 - nested variadic lambda and constexpr if.Jason Merrill4-1/+54
* pt.c (find_parameter_packs_r) [IF_STMT]: Don't walk into IF_STMT_EXTRA_ARGS. * tree.c (cp_walk_subtrees) [DECLTYPE_TYPE]: Set cp_unevaluated_operand. [ALIGNOF_EXPR] [SIZEOF_EXPR] [NOEXCEPT_EXPR]: Likewise. From-SVN: r262825
2018-07-17[ARC] Don't use deprecated align_labels_log variable.Claudiu Zissulescu2-4/+10
2018-07-17 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.c (arc_label_align): Use alogn_labels instead of deprecated align_labels_log. From-SVN: r262820
2018-07-17re PR debug/86456 (Segfault in switch_to_section at gcc/varasm.c:7353 since ↵Richard Biener4-3/+35
r259317) 2018-07-17 Richard Biener <rguenther@suse.de> PR lto/86456 * dwarf2out.c (init_sections_and_labels): Always generate a debug_line_str_section for early LTO debug. (dwarf2out_finish): Reset debug_line_str_hash output early. Bump counter for extra dwarf5 .debug_loc labels to not conflict with fat LTO part. (dwarf2out_early_finish): Output debug_line_str. * g++.dg/debug/dwarf2/pr86456.C: New testcase. From-SVN: r262819
2018-07-17S/390: Do not use LA with index register on z196 or newer.Robin Dapp2-5/+10
gcc/ChangeLog: 2018-07-17 Robin Dapp <rdapp@linux.ibm.com> * config/s390/s390.c (preferred_la_operand_p): Do not use LA with index register on z196 or later. From-SVN: r262818
2018-07-17S/390: Set default function alignment to 16.Robin Dapp6-0/+95
gcc/ChangeLog: 2018-07-17 Robin Dapp <rdapp@linux.ibm.com> * config/s390/s390.c (s390_default_align): Set default function alignment to 16. (s390_override_options_after_change): Call s390_default align. (s390_option_override_internal): Call s390_default_align. (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define. gcc/testsuite/ChangeLog: 2018-07-17 Robin Dapp <rdapp@linux.ibm.com> * gcc.target/s390/function-align1.c: New test. * gcc.target/s390/function-align2.c: New test. * gcc.target/s390/function-align3.c: New test. From-SVN: r262817