- 28 Feb, 2018 26 commits
-
-
PR c++/83871 PR c++/83503 * pt.c (INCLUDE_STRING): Remove define. (warn_spec_missing_attributes): Use pretty_printer instead of std::string. Fix up inform call so that the list of attributes is in %s argument. From-SVN: r258079
Jakub Jelinek committed -
gimple-ssa-warn-restrict.c (maybe_diag_overlap): Use warning_n instead of warning_at with conditional singular and plural... * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Use warning_n instead of warning_at with conditional singular and plural messages where possible. From-SVN: r258078
Jakub Jelinek committed -
gcc/cp/ChangeLog: * decl.c (duplicate_decls): Fully merge attributes const, pure, and malloc. gcc/testsuite/ChangeLog: * g++.dg/ext/attr-malloc-3.C: New test. * g++.dg/ext/attr-const.C: Adjust. Xfail assertions failing due to pre-existing problems. * g++.dg/ext/attr-pure.C: Same. From-SVN: r258077
Martin Sebor committed -
2018-02-28 Paul Thomas <pault@gcc.gnu.org> PR fortran/83901 * trans-stmt.c (trans_associate_var): Make sure that the se expression is a pointer type before converting it to the symbol backend_decl type. 2018-02-28 Paul Thomas <pault@gcc.gnu.org> PR fortran/83901 * gfortran.dg/associate_37.f90: New test. PR fortran/83344 * gfortran.dg/associate_36.f90: Add Steve Kargl as contributer. From-SVN: r258076
Paul Thomas committed -
PR target/52991 * stor-layout.c (update_alignment_for_field): For targetm.ms_bitfield_layout_p (rli->t), if !is_bitfield && !DECL_PACKED (field), do the alignment update, just use only desired_align instead of MAX (type_align, desired_align) as the alignment. (place_field): Don't do known_align < desired_align handling early if targetm.ms_bitfield_layout_p (rli->t) and rli->prev_field is non-NULL, instead do it after rli->prev_field handling and only if not within a bitfield word. For DECL_PACKED (field) use type_align of BITS_PER_UNIT. * gcc.dg/bf-ms-layout.c: Revert 2012-04-26 changes. * gcc.dg/bf-ms-layout-2.c: Revert 2012-02-23 changes. * gcc.dg/bf-ms-layout-4.c: New test. * gcc.dg/bf-ms-layout-5.c: New test. From-SVN: r258075
Jakub Jelinek committed -
* config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Remove superfluous parentheses and trailing spaces. From-SVN: r258074
Eric Botcazou committed -
Revision 258001 doesn't change config/i386/i386.opt. From-SVN: r258073
H.J. Lu committed -
PR target/83399 * gcc.target/powerpc/pr83399.c: Only run on Linux. From-SVN: r258071
Peter Bergner committed -
2018-02-28 Richard Biener <rguenther@suse.de> PR tree-optimization/84584 * graphite-scop-detection.c (scop_detection::add_scop): Discard SCoPs with fake exit edge. * gcc.dg/graphite/pr84584.c: New testcase. From-SVN: r258070
Richard Biener committed -
gcc/testsuite: PR preprocessor/84517 * g++.dg/cpp0x/udlit-macros.C: Expect a warning for ""__FILE__. libcpp: PR preprocessor/84517 * lex.c (is_macro_not_literal_suffix): New function. (lex_raw_string, lex_string): Use is_macro_not_literal_suffix to decide when to issue -Wliteral-suffix warnings. From-SVN: r258069
Jonathan Wakely committed -
ada/ * libgnat/i-cexten.ads (Float_128): New type. c-family/ * c-ada-spec.c (dump_ada_node) <NULLPTR_TYPE>: New case. <REAL_TYPE>: Deal specifically with _Float128/__float128. From-SVN: r258068
Eric Botcazou committed -
* c-ada-spec.c (dump_ada_double_name) <ENUMERAL_TYPE>: New case. (is_char_array): Take a type instead of a declaration. (dump_ada_array_type): Likewise. (is_simple_enum): Minor tweak. (dump_ada_enum_type): New function extracted from... (dump_ada_node) <ENUMERAL_TYPE>: ...here. Invoke it. <INTEGER_TYPE>: Remove unreachable code. <RECORD_TYPE>: Likewise. Minor tweaks. (dump_nested_type) <ARRAY_TYPE>: Adjust to above changes. <ENUMERAL_TYPE>: New case. <RECORD_TYPE>: Factor out common code. (dump_ada_declaration) <ARRAY_TYPE>: Adjust to above changes. Minor tweaks. Deal with enumeral types. (dump_ada_structure): Minor tweaks. From-SVN: r258067
Eric Botcazou committed -
* c-ada-spec.c (dump_ada_node) <POINTER_TYPE>: Do not use generic address for incomplete structures. (dump_forward_type): Do not bail out for incomplete structures. (dump_ada_declaration): Do not special-case incomplete structures for subtypes. Dump them as null records for types. From-SVN: r258066
Eric Botcazou committed -
* c-ada-spec.c (dump_ada_import): Use boolean and fix formatting. (is_char_array): Fix formatting. (dump_template_types): Likewise. (dump_generic_ada_node): Rename into... (dump_ada_node): ...this. <POINTER_TYPE>: Remove superfluous space. Use generic address for incomplete structures and not for empty structures. Do not use it when forward declarations are needed. (dump_forward_type): New function. (dump_nested_types): Remove FORWARD parameter. Do not consider TREE_VISITED and do not generate a forward declaration. Only dump original nested types for nested declaration. (dump_nested_type) <POINTER_TYPE>: Call dump_forward_type. <ARRAY_TYPE>: Likewise if the component type is an anonymous pointer. <RECORD_TYPE>: Do not consider TREE_VISITED. (dump_ada_declaration): Use booleans and fix formatting throughout. <TYPE_DECL>: Skip incomplete structures and not empty structures. Call dump_forward_type instead of dump_nested_types for a typedef. Remove superfluous check and adjust call to dump_nested_types. <POINTER_TYPE>: Call dump_forward_type and fall through. (dump_ada_struct_decl): Rename into... (dump_ada_structure): ...this. Do not special-case empty structures. From-SVN: r258064
Eric Botcazou committed -
2018-02-28 Martin Liska <mliska@suse.cz> PR testsuite/84597 * timevar.c (timer::print): Fix format to properly print 100% values. 2018-02-28 Martin Liska <mliska@suse.cz> PR testsuite/84597 * g++.dg/ext/timevar1.C: Fix pruned patterns. * g++.dg/ext/timevar2.C: Likewise. From-SVN: r258063
Martin Liska committed -
* c-ada-spec.c (dump_ada_import): Use boolean and fix formatting. (is_char_array): Fix formatting. (dump_template_types): Likewise. (dump_generic_ada_node): Rename into... (dump_ada_node): ...this. <POINTER_TYPE>: Remove superfluous space. Use generic address for incomplete structures and not for empty structures. Do not use it when forward declarations are needed. (dump_forward_type): New function. (dump_nested_types): Remove FORWARD parameter. Do not consider TREE_VISITED and do not generate a forward declaration. Only dump original nested types for nested declaration. (dump_nested_type) <POINTER_TYPE>: Call dump_forward_type. <ARRAY_TYPE>: Likewise if the component type is an anonymous pointer. <RECORD_TYPE>: Do not consider TREE_VISITED. (dump_ada_declaration): Use booleans and fix formatting throughout. <TYPE_DECL>: Skip incomplete structures and not empty structures. Call dump_forward_type instead of dump_nested_types for a typedef. Remove superfluous check and adjust call to dump_nested_types. <POINTER_TYPE>: Call dump_forward_type and fall through. (dump_ada_struct_decl): Rename into... (dump_ada_structure): ...this. Do not special-case empty structures. From-SVN: r258062
Eric Botcazou committed -
2018-02-28 Richard Biener <rguenther@suse.de> PR middle-end/84607 * genmatch.c (capture_info::walk_match): Do not mark captured expressions without operands as expr_p given they act more like predicates and should be subject to "lost tail" side-effect preserving. * gcc.dg/pr84607.c: New testcase. From-SVN: r258061
Richard Biener committed -
https://gcc.gnu.org/ml/gcc-patches/2018-02/msg01577.html PR c++/84602 * name-lookup.h (search_anon_aggr): Add defaulted WANT_TYPE arg. * name-lookup.c (fields_linear_search): Look in an anon-aggr regardless of want_type. (search_anon_aggr): Just use get_class_binding_direct. PR c++/84602 * g++.dg/lookup/pr84602.C: New. From-SVN: r258060
Nathan Sidwell committed -
PR c++/83871 PR c++/83503 * g++.dg/ext/attr-warning.C: Remove -fdump-tree-optimized from dg-options. * g++.dg/ext/attr-nonnull.C: Likewise. * g++.dg/ext/attr-noinline.C: Fix syntax in scan-tree-dump-not directives. * g++.dg/ext/attr-noinline-2.C: Likewise. * g++.dg/ext/attr-noreturn-2.C: Use -fdump-tree-optimized instead of -fdump-tree-eh in dg-options. From-SVN: r258059
Jakub Jelinek committed -
* decl.c (cp_finish_decomp): Don't adjust eltscnt when calling inform_n. From-SVN: r258058
Jakub Jelinek committed -
re PR debug/83917 (with -mcall-ms2sysv-xlogues, stepping into x86 tail-call restore stub gives bad backtrace) PR debug/83917 * configure.ac (AS_HIDDEN_DIRECTIVE): AC_DEFINE_UNQUOTED this to $asm_hidden_op if visibility ("hidden") attribute works. (HAVE_AS_CFI_SECTIONS): New AC_DEFINE. * config/i386/i386-asm.h: Don't include auto-host.h. (PACKAGE_VERSION, PACKAGE_NAME, PACKAGE_STRING, PACKAGE_TARNAME, PACKAGE_URL): Don't undefine. (USE_GAS_CFI_DIRECTIVES): Don't use nor define this macro, instead guard cfi_startproc only on ifdef __GCC_HAVE_DWARF2_CFI_ASM. (FN_HIDDEN): Change guard from #ifdef HAVE_GAS_HIDDEN to #ifdef AS_HIDDEN_DIRECTIVE, use AS_HIDDEN_DIRECTIVE macro in the definition instead of hardcoded .hidden. * config/i386/cygwin.S: Include i386-asm.h first before .cfi_sections directive. Use #ifdef HAVE_AS_CFI_SECTIONS rather than #ifdef HAVE_GAS_CFI_SECTIONS_DIRECTIVE to guard .cfi_sections. (USE_GAS_CFI_DIRECTIVES): Don't define. * configure: Regenerated. * config.in: Likewise. From-SVN: r258057
Jakub Jelinek committed -
GNU ld error messages have changed to comply with the GNU coding standards. * lib/prune.exp (prune_gcc_output): Match lower case "in function" GNU ld message. * g++.dg/other/anon5.C: Match lower case "bad value" GNU ld message. From-SVN: r258054
Alan Modra committed -
When the addressing modes available on the machine don't allow offsets in addresses, odds are that post-increments will be represented in trees and RTL as: y <= x + 1 ... *(x) ... x <= y so deal with it by turning such RTL as: (set y (plus x n)) ... (mem x) ... without intervening uses of y into (set y x) ... (mem (post_add y n)) ... so as to create auto-inc addresses that we'd otherwise miss. for gcc/ChangeLog PR rtl-optimization/81611 * auto-inc-dec.c (attempt_change): Move dead note from mem_insn if it's the next use of regno (find_address): Take address use of reg holding non-incremented value. Add parm to limit search to the named reg only. (merge_in_block): Attempt to use a mem insn that is the next use of the original regno. From-SVN: r258053
Alexandre Oliva committed -
Reviewed-on: https://go-review.googlesource.com/97357 From-SVN: r258052
Ian Lance Taylor committed -
Reviewed-on: https://go-review.googlesource.com/97517 From-SVN: r258051
Ian Lance Taylor committed -
From-SVN: r258050
GCC Administrator committed
-
- 27 Feb, 2018 14 commits
-
-
From-SVN: r258046
Martin Sebor committed -
PR c++/83871 - wrong code for attribute const and pure on distinct template specializations PR c++/83503 - [8 Regression] bogus -Wattributes for const and pure on function template specialization gcc/ChangeLog: PR c++/83871 * gcc/doc/invoke.texi (-Wmissing-attributes): New option. * gcc/print-tree.c (print_node): Handle DECL_UNINLINABLE. gcc/c-family/ChangeLog: PR c++/83871 * c.opt (-Wmissing-attributes): New option. gcc/cp/ChangeLog: PR c++/83871 PR c++/83503 * cp-tree.h (warn_spec_missing_attributes): New function. ((check_explicit_specialization): Add an argument. Call the above function. * decl.c (duplicate_decls): Avoid applying primary function template's attributes to its explicit specializations. cp/pt.c (warn_spec_missing_attributes): Define. gcc/testsuite/ChangeLog: PR c++/83871 PR c++/83503 * g++.dg/Wmissing-attributes.C: New test. * g++.dg/ext/attr-const-pure.C: New test. * g++.dg/ext/attr-const.C: New test. * g++.dg/ext/attr-deprecated-2.C: New test. * g++.dg/ext/attr-malloc-2.C: New test. * g++.dg/ext/attr-malloc.C: New test. * g++.dg/ext/attr-noinline-2.C: New test. * g++.dg/ext/attr-noinline.C: New test. * g++.dg/ext/attr-nonnull.C: New test. * g++.dg/ext/attr-noreturn-2.C: New test. * g++.dg/ext/attr-noreturn.C: New test. * g++.dg/ext/attr-nothrow-2.C: New test. * g++.dg/ext/attr-nothrow.C: New test. * g++.dg/ext/attr-optimize.C: New test. * g++.dg/ext/attr-pure.C: New test. * g++.dg/ext/attr-returns-nonnull.C: New test. * g++.dg/ext/attr-warning.C: New test. From-SVN: r258045
Martin Sebor committed -
gcc/ChangeLog: PR translation/84207 * diagnostic-core.h (warning_n, error_n, inform_n): Change n argument to unsigned HOST_WIDE_INT. * diagnostic.c (warning_n, error_n, inform_n): Ditto. (diagnostic_n_impl): Ditto. Handle arguments in excess of LONG_MAX. * gimple-ssa-sprintf.c (format_directive): Simplify inform_n call. * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Use warning_n. From-SVN: r258044
Martin Sebor committed -
* parser.c (cp_parser_lambda_introducer): Clear scope after each lambda capture. From-SVN: r258043
Håkon Sandsmark committed -
https://gcc.gnu.org/ml/gcc-patches/2018-02/msg01529.html PR c++/84426 * name-lookup.h (get_member_slot): Rename ... (find_member_slot): ... here. (add_member_slot): New. * name-lookup.c (member_vec_linear_search): No need to check for NULL slot. (get_member_slot): Rename ... (find_member_slot): ... here. Don't add slot for incomplete class. (add_member_slot): New. * class.c (add_method): Adjust get_member_slot rename. Bail out if push_class_level_binding fails. Create slot and grok properties once we're committed to insertion. PR c++/84426 * g++.dg/lookup/pr84426.C: New. From-SVN: r258042
Nathan Sidwell committed -
From-SVN: r258040
Jason Merrill committed -
* pt.c (type_unification_real): Handle early substitution failure. From-SVN: r258039
Jason Merrill committed -
2018-02-27 Richard Biener <rguenther@suse.de> PR tree-optimization/84512 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Do not use the estimate returned from record_stmt_cost for the scalar iteration cost but sum properly using add_stmt_cost. * gcc.dg/tree-ssa/pr84512.c: New testcase. From-SVN: r258036
Richard Biener committed -
2018-02-27 Richard Biener <rguenther@suse.de> PR tree-optimization/84466 * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p): Adjust last change to less strictly validate use operands. From-SVN: r258035
Richard Biener committed -
2018-02-27 Martin Liska <mliska@suse.cz> PR gcov-profile/84548 * gcov.c (process_file): Allow partial overlap and consider it also as group functions. (output_lines): Properly calculate range of lines for a group. 2018-02-27 Martin Liska <mliska@suse.cz> PR gcov-profile/84548 * g++.dg/gcov/pr84548.C: New test. From-SVN: r258033
Martin Liska committed -
* include/std/any (any_cast(const any&)): Add static_assert. (any_cast(any&)): Likewise. (any_cast(any&&)): Likewise, and remove the handling for copyable-but-not-movable type. * testsuite/20_util/any/misc/any_cast.cc: Adjust. * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise, and add new tests. From-SVN: r258031
Ville Voutilainen committed -
PR target/84575 * gcc.target/i386/pr84309.c: Add -mno-avx2 to dg-options. From-SVN: r258030
Jakub Jelinek committed -
2018-02-27 Martin Liska <mliska@suse.cz> * timevar.c (timer::print_row): Remove 'usr', 'sys', 'wall' and 'ggc' suffixes. Change first column width. (timer::print): Fix formatting of the column. From-SVN: r258029
Martin Liska committed -
This patch stops preserving scope blocks just because they are inlined function scopes, when cleaning up unused scope blocks. This change was introduced along with IEPM, but it preserved lots of blocks, and output debug information for them, although no code from the inlined function remained after optimization. The additional preserved blocks took up compile-time memory, and significant disk space and link time, in some cases more than 25%. This is deemed excessive, compared with the reasonably small benefit of allowing one to single-step into an inlined function using a view-capable debugger. There was another way of marking inlined function scopes as unused, based on the markers referencing them during stmt scanning, but that still preserved too much. So, this patch restores the pre-IEPM logic of preservation of scopes. Should a scope block referenced by an inline entry marker be found to be unused in remove_unused_scope_block_p, the marker will be cleaned up right after that, in clear_unused_block_pointer, so we won't keep a dangling reference to a dropped block. for gcc/ChangeLog * tree-ssa-live.c (remove_unused_scope_block_p): Do not preserve inline entry blocks for the sake of debug inline entry point markers alone. (remove_unused_locals): Suggest in comments a better place to force the preservation of inline entry blocks that are otherwise unused, but do not preserve them. From-SVN: r258026
Alexandre Oliva committed
-