[Bug c++/95158] [10/11 Regression] Templates + Diamond Inheritance + Final = Pure Virtual Function Call
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95158 --- Comment #2 from Paolo Carlini --- That the issue goes away when templates are not involved seems an useful hint: are we trying to optimize too early? Sorry, for the time being I don't feel like assigning the bug to me, I'm in the middle of too many other things...
[Bug c++/90320] [8/9/10 Regression] Explicit constructor called implicitly
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90320 --- Comment #5 from Paolo Carlini --- Thanks Marek.
[Bug c++/90448] [8/9/10 Regression] decltype-based lambda parameter pack is rejected
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90448 --- Comment #3 from Paolo Carlini --- This is already fixed in trunk: I'm adding the testcase and removingg the 10 Regression marker.
[Bug c++/94034] [10 Regression] Broken diagnostic: 'result_decl' not supported by dump_expr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94034 Paolo Carlini changed: What|Removed |Added Status|ASSIGNED|NEW Assignee|paolo.carlini at oracle dot com|unassigned at gcc dot gnu.org --- Comment #4 from Paolo Carlini --- Not actively. I'm unassigning myself.
[Bug c++/88826] ICE (segfault) when compiling invalid C++ code with -std=c++2a
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88826 Paolo Carlini changed: What|Removed |Added Known to work||9.1.0 Resolution|--- |WORKSFORME Target Milestone|9.4 |9.0 Status|ASSIGNED|RESOLVED --- Comment #6 from Paolo Carlini --- Released 9.1.0 is not affected.
[Bug c++/94186] [10 Regression] compiler incorrectly accepts a requires clause with predicate of non-bool type
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94186 --- Comment #4 from Paolo Carlini --- To wit: diff --git a/gcc/cp/constraint.cc b/gcc/cp/constraint.cc index 697ed6726b8..59b43a31274 100644 --- a/gcc/cp/constraint.cc +++ b/gcc/cp/constraint.cc @@ -2543,8 +2543,7 @@ satisfy_atom (tree t, tree args, subst_info info) return cache.save (error_mark_node); if (!same_type_p (TREE_TYPE (result), boolean_type_node)) { - if (info.noisy ()) - error_at (loc, "constraint does not have type %"); + error_at (loc, "constraint does not have type %"); return cache.save (error_mark_node); } passes testing. Since currently we don't have an accurate location for the constraint we could also pretty print it with %qE (ie, what we did in 9).
[Bug c++/94186] [10 Regression] compiler incorrectly accepts a requires clause with predicate of non-bool type
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94186 Paolo Carlini changed: What|Removed |Added CC||paolo.carlini at oracle dot com --- Comment #3 from Paolo Carlini --- Isn't this fixable by simply tweaking satisfy_atom to unconditionally issue the error?
[Bug c++/94034] [10 Regression] Broken diagnostic: 'result_decl' not supported by dump_expr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94034 Paolo Carlini changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |paolo.carlini at oracle dot com --- Comment #2 from Paolo Carlini --- Mine.
[Bug c++/93314] [8/9/10 Regression] Invalid use of non-static data member causes ICE in gimplify_expr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93314 --- Comment #4 from Paolo Carlini --- Related to c++/84939
[Bug c++/89404] [8/9 Regression] ICE in build_value_init_noctor, at cp/init.c:467
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89404 Paolo Carlini changed: What|Removed |Added Summary|[8/9/10 Regression] ICE in |[8/9 Regression] ICE in |build_value_init_noctor, at |build_value_init_noctor, at |cp/init.c:467 |cp/init.c:467 --- Comment #4 from Paolo Carlini --- Already fixed in trunk.
[Bug c++/89913] [8/9 Regression] ICE with invalid using declaration
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89913 Paolo Carlini changed: What|Removed |Added CC|paolo.carlini at oracle dot com| Summary|[8/9/10 Regression] ICE |[8/9 Regression] ICE with |with invalid using |invalid using declaration |declaration | --- Comment #6 from Paolo Carlini --- Let's remove the regression marker for trunk.
[Bug c++/90338] [9/10 Regression] member function pointer non-type template parameter compile fail while matching
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90338 Paolo Carlini changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2020-01-30 Ever confirmed|0 |1 --- Comment #2 from Paolo Carlini --- Note, this requires -std=c++2a to reproduce. Current trunk is fine, I think I'll add the testcase and remove the 10 Regression marker.
[Bug c++/90915] [9/10 Regression] ICE in has_attribute, at c-family/c-attribs.c:4221
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90915 Paolo Carlini changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |paolo.carlini at oracle dot com --- Comment #3 from Paolo Carlini --- Mine.
[Bug c++/67491] [meta-bug] concepts issues
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67491 Bug 67491 depends on bug 92804, which changed state. Bug 92804 Summary: [10 Regression] ICE trying to use concept as a nested-name-specifier https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92804 What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED
[Bug c++/92804] [10 Regression] ICE trying to use concept as a nested-name-specifier
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92804 Paolo Carlini changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #5 from Paolo Carlini --- Fixed.
[Bug c++/92804] [10 Regression] ICE trying to use concept as a nested-name-specifier
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92804 Paolo Carlini changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |paolo.carlini at oracle dot com --- Comment #3 from Paolo Carlini --- Seems doable.
[Bug c++/92593] [10 Regression] ICE with CTAD using undeclared constraint
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92593 --- Comment #4 from Paolo Carlini --- Another testcase: template struct ref_view { ref_view(T) { }; }; ref_view r{1};
[Bug c++/92536] [10 Regression] ICE when trying to using deduction guide following unknown type error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92536 Paolo Carlini changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #4 from Paolo Carlini --- Done.
[Bug c++/92536] [10 Regression] ICE when trying to using deduction guide following unknown type error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92536 Paolo Carlini changed: What|Removed |Added CC||paolo.carlini at oracle dot com --- Comment #2 from Paolo Carlini --- Seems already fixed.
[Bug c++/92542] [10 Regression] ICE with class template argument deduction following typo
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92542 Paolo Carlini changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED CC|paolo.carlini at oracle dot com| Resolution|--- |FIXED --- Comment #5 from Paolo Carlini --- Thanks Jon.
[Bug c++/92542] [10 Regression] ICE with class template argument deduction following typo
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92542 Paolo Carlini changed: What|Removed |Added CC||paolo.carlini at oracle dot com --- Comment #1 from Paolo Carlini --- Seems already fixed. If so I will add the testcases and resolve the bug.
[Bug c++/92804] [10 Regression] ICE trying to use concept as a nested-name-specifier
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92804 Paolo Carlini changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2020-01-17 Ever confirmed|0 |1 --- Comment #2 from Paolo Carlini --- Confirmed.
[Bug c++/91073] [9 Regression] if constexpr no longer works directly with Concepts
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91073 Paolo Carlini changed: What|Removed |Added Status|NEW |ASSIGNED CC|paolo at gcc dot gnu.org | Assignee|unassigned at gcc dot gnu.org |paolo.carlini at oracle dot com Summary|[9/10 Regression] if|[9 Regression] if constexpr |constexpr no longer works |no longer works directly |directly with Concepts |with Concepts --- Comment #12 from Paolo Carlini --- Fixed in trunk for now.
[Bug c++/91073] [9/10 Regression] if constexpr no longer works directly with Concepts
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91073 --- Comment #10 from Paolo Carlini --- I have been making progress on this (I'm in contact with Jason about that) but unfortunately the issue requires additional analysis for the simple reason that if I remove/amend my r260482 changes then in C++17 mode the testcases are accepted again, but in C++2a they are rejected anyway with a different error: "expected ‘auto’ or ‘decltype(auto)’ after ‘HasInit’" for the first testcase, for example. Likewise for the second testcase.
[Bug c++/91073] [9/10 Regression] if constexpr no longer works directly with Concepts
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91073 --- Comment #5 from Paolo Carlini --- You are right.
[Bug c++/85535] bogus code in decl2.c:decl_needed_p
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85535 --- Comment #13 from Paolo Carlini --- Any news about this?
[Bug c++/85137] [concepts] ICE with undeclared concept
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85137 Paolo Carlini changed: What|Removed |Added Status|ASSIGNED|NEW Assignee|paolo.carlini at oracle dot com|unassigned at gcc dot gnu.org
[Bug preprocessor/48839] #error should terminate compilation - similar to missing #include
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48839 --- Comment #10 from Paolo Carlini --- Hi Eric (In reply to Eric Gallager from comment #9) > (In reply to Paolo Carlini from comment #8) > > Hi. As you can see, the patch itself seems simple, but a while ago I noticed > > that quite a few testcases would need adjusting and that made me a little > > nervous. In particular those testcases (both C and C++) which are doing more > > than one check and would have to be split, because the compilation ends > > after the first #error. > > Which testcases are these? Eric, It’s been a while, and I’m in the middle of a few other things, but you can apply the patchlet (I’m pretty sure that it still applies as-is or with minor variants) and see yourself! By the way, if you feel like immediately pursuing the thing yourself, thus patch + testsuite tweaks + sending the whole package to the mailing list for comments, by all means reassign the bug to yourself and go ahead!
[Bug c++/91073] [9/10 Regression] if constexpr no longer works directly with Concepts
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91073 --- Comment #2 from Paolo Carlini --- In principle the issue is rather simple. The cp_parser_maybe_commit_to_declaration at the beginning of cp_parser_condition since r260482 thinks erroneously that the just parsed HasInit must be a declaration. In practice, I'm still not sure which is the best way to solve this... well, I'm not even sure we are supposed to actively work now on relatively minor concept-related issues.
[Bug c++/66999] Missing comma in lambda capture causes internal compiler error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66999 Paolo Carlini changed: What|Removed |Added CC||paolo.carlini at oracle dot com --- Comment #6 from Paolo Carlini --- Unfortunately we still issue two errors for the original testcase.
[Bug c++/65143] [C++11] missing devirtualization for virtual base in "final" classes
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65143 Paolo Carlini changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED Target Milestone|--- |10.0 --- Comment #11 from Paolo Carlini --- Should be completely fixed.
[Bug c++/67184] Missed optimization with C++11 final specifier
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67184 Paolo Carlini changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #18 from Paolo Carlini --- Finally should be completely fixed without regressions.
[Bug c++/65143] [C++11] missing devirtualization for virtual base in "final" classes
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65143 --- Comment #9 from Paolo Carlini --- Jason's r272656 fixes the testcases here too. Again, I suspect that corresponding testcases involving user-defined operators are not fixed. If nobody beats me to it I will add fixed testcases and add an example of the latter.
[Bug c++/90995] [8/9/10 Regression] ICE in grokdeclarator, at cp/decl.c:12024
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90995 --- Comment #4 from Paolo Carlini --- To wit: bool f () { enum : int a; } we don't ICE on it but we accept it, we should reject it.
[Bug c++/90995] [8/9/10 Regression] ICE in grokdeclarator, at cp/decl.c:12024
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90995 --- Comment #3 from Paolo Carlini --- By the way, in general terms, I'm not sure I agree that a snippet which was accepts-invalid before a given date and ice-on-invalid-code after qualifies as a proper regression. You see, even the Bugzilla fields don't make much sense: 7.4.0 isn't known to work!
[Bug c++/90995] [8/9/10 Regression] ICE in grokdeclarator, at cp/decl.c:12024
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90995 Paolo Carlini changed: What|Removed |Added Keywords||ice-on-invalid-code --- Comment #2 from Paolo Carlini --- As far as I can see, before r256821, say in gcc-7, we simply accepted the snippet, thus it was an accepts-invalid, and that's why it regressed, we completely miss an appropriate diagnostic and the gcc_assert (seen_error ()) triggers.
[Bug c++/67184] Missed optimization with C++11 final specifier
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67184 --- Comment #15 from Paolo Carlini --- With Jason's r272656 remains to be handled what I had as other/final4.C. final.3.C and final5.C are fine, I'm probably going to add those two to the testsuite.
[Bug c++/67184] Missed optimization with C++11 final specifier
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67184 Paolo Carlini changed: What|Removed |Added Status|REOPENED|ASSIGNED Assignee|unassigned at gcc dot gnu.org |paolo.carlini at oracle dot com --- Comment #14 from Paolo Carlini --- Let's look a bit more into this (with Jason' help)
[Bug c++/67184] Missed optimization with C++11 final specifier
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67184 Paolo Carlini changed: What|Removed |Added Status|RESOLVED|REOPENED Resolution|FIXED |--- Assignee|paolo.carlini at oracle dot com|unassigned at gcc dot gnu.org --- Comment #13 from Paolo Carlini --- Unfortunately I have to re-open this: the fix, as-is, caused c++/90909.
[Bug c++/90909] [10 Regression] call devirtualized to pure virtual
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90909 Paolo Carlini changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED Assignee|paolo.carlini at oracle dot com|unassigned at gcc dot gnu.org --- Comment #6 from Paolo Carlini --- Fixed by reverting completely (for the time being) the offending change.
[Bug c++/90909] [10 Regression] call devirtualized to pure virtual
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90909 Paolo Carlini changed: What|Removed |Added Status|NEW |ASSIGNED CC|paolo.carlini at oracle dot com| Assignee|unassigned at gcc dot gnu.org |paolo.carlini at oracle dot com --- Comment #3 from Paolo Carlini --- Mine.
[Bug c++/90909] [10 Regression] call devirtualized to pure virtual
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90909 --- Comment #2 from Paolo Carlini --- I think the below tweak of r271490 should be fine, it considers the bases only when the fn isn't pure virtual: Index: call.c === --- call.c (revision 272410) +++ call.c (working copy) @@ -8244,7 +8244,9 @@ build_over_call (struct z_candidate *cand, int fla /* See if the function member or the whole class type is declared final and the call can be devirtualized. */ if (DECL_FINAL_P (fn) - || CLASSTYPE_FINAL (TREE_TYPE (argtype))) + || CLASSTYPE_FINAL (TYPE_METHOD_BASETYPE (TREE_TYPE (fn))) + || (CLASSTYPE_FINAL (TREE_TYPE (argtype)) + && !DECL_PURE_VIRTUAL_P (fn))) flags |= LOOKUP_NONVIRTUAL; /* [class.mfct.nonstatic]: If a nonstatic member function of a class
[Bug target/90871] [10 regression] g++.dg/ext/altivec-15.C fails after r272236
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90871 Paolo Carlini changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED Target Milestone|--- |10.0 --- Comment #2 from Paolo Carlini --- Should be fixed.
[Bug target/90871] [10 regression] g++.dg/ext/altivec-15.C fails after r272236
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90871 Paolo Carlini changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2019-06-13 Component|other |target Ever confirmed|0 |1
[Bug c++/54080] [C++11] g++ crashes when compiling the following file
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54080 --- Comment #6 from Paolo Carlini --- I should spend again some time on this. I must say, my old idea still makes sense to me, at some point I will probably refresh it, rebase the patch and send it again to the mailing list: I don't think the active C++ front-end maintainers ever commented.
[Bug c++/89875] [7/8/9 Regression] invalid typeof reference to a member of an incomplete struct accepted at function scope
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89875 Paolo Carlini changed: What|Removed |Added Summary|[7/8/9/10 Regression] |[7/8/9 Regression] invalid |invalid typeof reference to |typeof reference to a |a member of an incomplete |member of an incomplete |struct accepted at function |struct accepted at function |scope |scope --- Comment #5 from Paolo Carlini --- Fixed in trunk so far.
[Bug c++/67184] Missed optimization with C++11 final specifier
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67184 Paolo Carlini changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED Target Milestone|--- |10.0 --- Comment #10 from Paolo Carlini --- Fixed.
[Bug c++/67184] Missed optimization with C++11 final specifier
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67184 Paolo Carlini changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |paolo.carlini at oracle dot com --- Comment #7 from Paolo Carlini --- Seems doable.
[Bug preprocessor/90382] [10 Regression] ICE in linemap_macro_map_loc_to_exp_point, at libcpp/line-map.c:1061
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90382 --- Comment #7 from Paolo Carlini --- Beautiful, thanks Martin.
[Bug c++/89875] [7/8/9/10 Regression] invalid typeof reference to a member of an incomplete struct accepted at function scope
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89875 Paolo Carlini changed: What|Removed |Added Status|NEW |ASSIGNED CC|paolo at gcc dot gnu.org | Assignee|unassigned at gcc dot gnu.org |paolo.carlini at oracle dot com --- Comment #3 from Paolo Carlini --- I think we want something along the lines (only lightly tested so far, but appears to work as expected): Index: parser.c === --- parser.c(revision 271035) +++ parser.c(working copy) @@ -28998,7 +28998,11 @@ cp_parser_sizeof_operand (cp_parser* parser, enum /* If the type-id production did not work out, then we must be looking at the unary-expression production. */ if (!expr) -expr = cp_parser_unary_expression (parser); +{ + cp_parser_commit_to_tentative_parse (parser); + + expr = cp_parser_unary_expression (parser); +} /* Go back to evaluating expressions. */ --cp_unevaluated_operand;
[Bug c++/89875] [7/8/9/10 Regression] invalid typeof reference to a member of an incomplete struct accepted at function scope
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89875 --- Comment #2 from Paolo Carlini --- If we compare the testcase to a modified version using __decltype, for the latter by the time we reach the place in cp_parser_init_declarator which I changed in r213952 we have already issued an "expected primary-expression before" error. I think that is the way to go.
[Bug preprocessor/90382] [10 Regression] ICE in linemap_macro_map_loc_to_exp_point, at libcpp/line-map.c:1061
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90382 Paolo Carlini changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #4 from Paolo Carlini --- Done. Somebody should however look into linemap_location_before_p & co a bit more, because frankly my patchlet should not have caused a problem, likely it just uncovered a latent issue of some sort: it simply uses min_location, which, in turn, only calls linemap_location_before_p when both the passed locations are != UNKNOWN_LOCATION, thus safe AFAICS.
[Bug preprocessor/90382] [10 Regression] ICE in linemap_macro_map_loc_to_exp_point, at libcpp/line-map.c:1061
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90382 --- Comment #2 from Paolo Carlini --- Oh my, let's immediately remove that little tweak, I have no idea how it could have caused a regression but isn't worth the trouble. Maybe another time...
[Bug c++/90173] [9 Regression] ICE: Segmentation fault (in strip_declarator_types)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90173 Paolo Carlini changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED Assignee|paolo.carlini at oracle dot com|unassigned at gcc dot gnu.org --- Comment #8 from Paolo Carlini --- Fixed for 9.2.0 too.
[Bug c++/90173] [9 Regression] ICE: Segmentation fault (in strip_declarator_types)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90173 Paolo Carlini changed: What|Removed |Added Summary|[9/10 Regression] ICE: |[9 Regression] ICE: |Segmentation fault (in |Segmentation fault (in |strip_declarator_types) |strip_declarator_types) --- Comment #4 from Paolo Carlini --- Fixed in trunk so far.
[Bug c++/90173] [9 Regression] ICE: Segmentation fault (in strip_declarator_types)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90173 Paolo Carlini changed: What|Removed |Added Status|NEW |ASSIGNED CC|paolo.carlini at oracle dot com| Assignee|unassigned at gcc dot gnu.org |paolo.carlini at oracle dot com Target Milestone|--- |9.0 --- Comment #2 from Paolo Carlini --- Mine.
[Bug c++/90173] [9 Regression] ICE: Segmentation fault (in strip_declarator_types)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90173 Paolo Carlini changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2019-04-22 CC||paolo.carlini at oracle dot com Ever confirmed|0 |1 --- Comment #1 from Paolo Carlini --- I believe we can cut it short and simply do (passes testing): Index: decl.c === --- decl.c (revision 270483) +++ decl.c (working copy) @@ -10973,6 +10973,7 @@ grokdeclarator (const cp_declarator *declarator, error_at (typespec_loc, "template placeholder type %qT must be followed " "by a simple declarator-id", type); inform (DECL_SOURCE_LOCATION (tmpl), "%qD declared here", tmpl); + return error_mark_node; } staticp = 0;
[Bug c++/90178] [9 Regression] Missed optimization: duplicated terminal basic block with -mavx
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90178 --- Comment #7 from Paolo Carlini --- The Component field is wrong, right?
[Bug c++/90172] [9 Regression] ICE: Segmentation fault (in contains_struct_check)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90172 Paolo Carlini changed: What|Removed |Added Keywords||rejects-valid Status|UNCONFIRMED |NEW Last reconfirmed||2019-04-21 CC||paolo.carlini at oracle dot com Ever confirmed|0 |1 --- Comment #1 from Paolo Carlini --- I think this is also a rejects-valid.
[Bug c++/89900] [9 Regression] ICE: Segmentation fault (in check_instantiated_arg)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89900 Paolo Carlini changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #9 from Paolo Carlini --- Fixed.
[Bug c++/89900] [9 Regression] ICE: Segmentation fault (in check_instantiated_arg)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89900 Paolo Carlini changed: What|Removed |Added Status|NEW |ASSIGNED CC|paolo.carlini at oracle dot com| Assignee|unassigned at gcc dot gnu.org |paolo.carlini at oracle dot com --- Comment #7 from Paolo Carlini --- Mine.
[Bug c++/89900] [9 Regression] ICE: Segmentation fault (in check_instantiated_arg)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89900 Paolo Carlini changed: What|Removed |Added Priority|P4 |P1 --- Comment #6 from Paolo Carlini --- It's ICE on valid too, unfortunately.
[Bug c++/89900] [9 Regression] ICE: Segmentation fault (in check_instantiated_arg)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89900 Paolo Carlini changed: What|Removed |Added CC||paolo.carlini at oracle dot com --- Comment #4 from Paolo Carlini --- Clearly, an important difference between sfinae65.C (the test added in r269965 for c++/86932) and the new testcase is that here we have a type parameter pack, which, as such, cannot refer to another parameter. Thus I'm wondering if restricting the fix for c++/86932 like: Index: pt.c === --- pt.c(revision 270223) +++ pt.c(working copy) @@ -8475,7 +8475,8 @@ coerce_template_parms (tree parms, arg = NULL_TREE; if (template_parameter_pack_p (TREE_VALUE (parm)) - && (arg || !(complain & tf_partial)) + && (arg || !(complain & tf_partial) + || TREE_CODE (TREE_VALUE (parm)) == TYPE_DECL) && !(arg && ARGUMENT_PACK_P (arg))) { /* Some arguments will be placed in the would not go a long way toward resolving the problem. Passes testing, seems a safe change to me.
[Bug c++/89900] [9 Regression] ICE: Segmentation fault (in check_instantiated_arg)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89900 Paolo Carlini changed: What|Removed |Added Keywords||ice-on-valid-code Priority|P4 |P1 --- Comment #3 from Paolo Carlini --- Uhm, unfortunately a tiny modification of the original testcase uncovers an ICE on valid: template void fk (XE..., int/*SW*/); void w9 (void) { fk (0); }
[Bug c++/89914] [9 Regression] ICE in nothrow_spec_p, at cp/except.c:1238
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89914 Paolo Carlini changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #6 from Paolo Carlini --- Fixed.
[Bug c++/89914] [9 Regression] ICE in nothrow_spec_p, at cp/except.c:1238
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89914 Paolo Carlini changed: What|Removed |Added Status|NEW |ASSIGNED CC|paolo.carlini at oracle dot com| Assignee|unassigned at gcc dot gnu.org |paolo.carlini at oracle dot com --- Comment #4 from Paolo Carlini --- Mine.
[Bug c++/65608] [meta-bug] friend issues
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65608 Bug 65608 depends on bug 65619, which changed state. Bug 65619 Summary: friend declaration with template template parameter not recognized https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65619 What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED
[Bug c++/65619] friend declaration with template template parameter not recognized
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65619 Paolo Carlini changed: What|Removed |Added Status|NEW |RESOLVED CC||paolo.carlini at oracle dot com Resolution|--- |FIXED --- Comment #3 from Paolo Carlini --- Done.
[Bug c++/65608] [meta-bug] friend issues
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65608 Bug 65608 depends on bug 61327, which changed state. Bug 61327 Summary: Problem with friend template object https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61327 What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED
[Bug c++/61327] Problem with friend template object
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61327 Paolo Carlini changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #5 from Paolo Carlini --- Done.
[Bug c++/56643] Failure to match noexcept specifier of friend template function in template class
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56643 Paolo Carlini changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED Target Milestone|--- |9.0 --- Comment #6 from Paolo Carlini --- Done.
[Bug c++/65608] [meta-bug] friend issues
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65608 Bug 65608 depends on bug 56643, which changed state. Bug 56643 Summary: Failure to match noexcept specifier of friend template function in template class https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56643 What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED
[Bug c++/56643] Failure to match noexcept specifier of friend template function in template class
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56643 --- Comment #4 from Paolo Carlini --- This is fixed in trunk, I'm adding the testcase and closing the bug.
[Bug c++/89900] [9 Regression] ICE: Segmentation fault (in check_instantiated_arg)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89900 --- Comment #2 from Paolo Carlini --- I think that ultimately this boils down to this code in grokdeclarator: if (type_was_error_mark_node && template_parm_flag) /* FIXME we should be able to propagate the error_mark_node as is for other contexts too. */ type = error_mark_node; else type = integer_type_node; where we use integer_type_node as a catch-all type in case of error. Certainly using error_mark_node avoids this ICE, and many other I suppose, but we are not ready yet to resolve the FIXME (what about GCC-10?!?). We may want to fix this specific ICE in a different way, for the time being.
[Bug c++/89914] [9 Regression] ICE in nothrow_spec_p, at cp/except.c:1238
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89914 --- Comment #3 from Paolo Carlini --- This is what I meant in code. Passes testing. Index: semantics.c === --- semantics.c (revision 270062) +++ semantics.c (working copy) @@ -9548,8 +9548,8 @@ classtype_has_nothrow_assign_or_copy_p (tree type, if (copy_fn_p (fn) > 0) { saw_copy = true; - maybe_instantiate_noexcept (fn); - if (!TYPE_NOTHROW_P (TREE_TYPE (fn))) + if (maybe_instantiate_noexcept (fn) + && !TYPE_NOTHROW_P (TREE_TYPE (fn))) return false; } } @@ -9591,8 +9591,8 @@ trait_expr_value (cp_trait_kind kind, tree type1, return (trait_expr_value (CPTK_HAS_TRIVIAL_CONSTRUCTOR, type1, type2) || (CLASS_TYPE_P (type1) && (t = locate_ctor (type1)) - && (maybe_instantiate_noexcept (t), - TYPE_NOTHROW_P (TREE_TYPE (t); + && maybe_instantiate_noexcept (t) + && TYPE_NOTHROW_P (TREE_TYPE (t; case CPTK_HAS_TRIVIAL_CONSTRUCTOR: type1 = strip_array_types (type1);
[Bug c++/89914] [9 Regression] ICE in nothrow_spec_p, at cp/except.c:1238
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89914 --- Comment #2 from Paolo Carlini --- There are a couple of places in semantics.c where we call maybe_instantiate_noexcept and then, without checking that it returns true, we proceed to use TYPE_NOTHROW_P, which expands to nothrow_spec_p. I think we need a fall-back, probably false, consistently with r269746. Doing that certainly avoids this kind of ICE.
[Bug c++/62207] [7/8 Regression] ICE: tree check: expected tree that contains 'decl minimal' structure, have 'overload' in tsubst_copy, at cp/pt.c
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62207 Paolo Carlini changed: What|Removed |Added Summary|[7/8/9 Regression] ICE: |[7/8 Regression] ICE: tree |tree check: expected tree |check: expected tree that |that contains 'decl |contains 'decl minimal' |minimal' structure, have|structure, have 'overload' |'overload' in tsubst_copy, |in tsubst_copy, at cp/pt.c |at cp/pt.c | --- Comment #9 from Paolo Carlini --- Fixed in trunk so far.
[Bug c++/62207] [7/8/9 Regression] ICE: tree check: expected tree that contains 'decl minimal' structure, have 'overload' in tsubst_copy, at cp/pt.c
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62207 Paolo Carlini changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |paolo.carlini at oracle dot com --- Comment #7 from Paolo Carlini --- Looking into it.
[Bug c++/81506] Invalid declaration with decltype accepted
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81506 --- Comment #4 from Paolo Carlini --- Thanks Martin. This reminds me that we should tell David that in some cases the "waves" following the caret don't go on far enough. Or maybe he already knows or maybe we should do that instead ;)
[Bug c++/84598] [8 Regression] internal compiler error: Segmentation fault (cp_default_conversion())
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84598 Paolo Carlini changed: What|Removed |Added CC|vegard.nossum at gmail dot com | Summary|[8/9 Regression] internal |[8 Regression] internal |compiler error: |compiler error: |Segmentation fault |Segmentation fault |(cp_default_conversion()) |(cp_default_conversion()) --- Comment #6 from Paolo Carlini --- This is fixed in trunk. I added the testcase and removing the regression marker. Note: there are duplicate diagnostics issues, but are well known.
[Bug c++/85013] [7/8 Regression] :1:41: internal compiler error: in wide_int_to_tree_1, at tree.c:1567 0x4097e2b wide_int_to_tree_1
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85013 Paolo Carlini changed: What|Removed |Added Summary|[7/8/9 Regression] |[7/8 Regression] |:1:41: internal |:1:41: internal |compiler error: in |compiler error: in |wide_int_to_tree_1, at |wide_int_to_tree_1, at |tree.c:1567 0x4097e2b |tree.c:1567 0x4097e2b |wide_int_to_tree_1 |wide_int_to_tree_1 --- Comment #4 from Paolo Carlini --- Fixed in trunk so far.
[Bug c++/84661] [7/8 Regression] internal compiler error: Segmentation fault (strip_array_types())
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84661 Paolo Carlini changed: What|Removed |Added Summary|[7/8/9 Regression] internal |[7/8 Regression] internal |compiler error: |compiler error: |Segmentation fault |Segmentation fault |(strip_array_types()) |(strip_array_types()) --- Comment #7 from Paolo Carlini --- Fixed in trunk so far.
[Bug c++/84661] [7/8/9 Regression] internal compiler error: Segmentation fault (strip_array_types())
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84661 Paolo Carlini changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |paolo.carlini at oracle dot com --- Comment #5 from Paolo Carlini --- Mine.
[Bug c++/85013] [7/8/9 Regression] :1:41: internal compiler error: in wide_int_to_tree_1, at tree.c:1567 0x4097e2b wide_int_to_tree_1
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85013 Paolo Carlini changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |paolo.carlini at oracle dot com --- Comment #2 from Paolo Carlini --- Mine.
[Bug c++/89512] [7/8/9 Regression] ICE in get_expr_operands, at tree-ssa-operands.c:882
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89512 Paolo Carlini changed: What|Removed |Added Status|NEW |ASSIGNED CC|jakub at gcc dot gnu.org | Assignee|unassigned at gcc dot gnu.org |jakub at gcc dot gnu.org
[Bug c++/80559] Duplicate "template argument x is invalid" diagnostics
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80559 Paolo Carlini changed: What|Removed |Added Keywords|error-recovery, |diagnostic |ice-on-invalid-code | Target Milestone|7.5 |--- Summary|[7/8/9 Regression] |Duplicate "template |Segmentation fault on |argument x is invalid" |invalid initializer list|diagnostics |template arguments |
[Bug c++/80559] [7/8/9 Regression] Segmentation fault on invalid initializer list template arguments
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80559 Paolo Carlini changed: What|Removed |Added CC||paolo.carlini at oracle dot com --- Comment #6 from Paolo Carlini --- The ICE cannot be reproduced in trunk. Apparently it got fixed for 8.1.0 and the fix backported to 7.2.0 too. Thus I think we can close this completely or maybe remove the regression markers and change it to a pure diagnostic enhancement issue, because certainly the series of four identical error messages about template argument 2 doesn't make any sense. Barring different opinions I'm going to do the latter in a day or so.
[Bug c++/78645] [7/8/9 Regression] ICE on invalid code (Segmentation fault, cxx_eval_call_expression)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78645 --- Comment #6 from Paolo Carlini --- This is fixed in trunk. I'm adding a testcase and removing the regression marker.
[Bug c++/89571] [9 Regression] ICE in nothrow_spec_p, at cp/except.c:1238
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89571 Paolo Carlini changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #12 from Paolo Carlini --- Fixed.
[Bug c++/89571] [9 Regression] ICE in nothrow_spec_p, at cp/except.c:1238
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89571 Paolo Carlini changed: What|Removed |Added CC||paolo.carlini at oracle dot com --- Comment #10 from Paolo Carlini --- For error-recovery sake, I think that we can just skip the functions with eh_spec == error_mark_node and continue the loop: Index: method.c === --- method.c(revision 269783) +++ method.c(working copy) @@ -2274,6 +2274,9 @@ after_nsdmi_defaulted_late_checks (tree t) continue; tree eh_spec = get_defaulted_eh_spec (fn); + if (eh_spec == error_mark_node) + continue; + if (!comp_except_specs (TYPE_RAISES_EXCEPTIONS (TREE_TYPE (fn)), eh_spec, ce_normal)) DECL_DELETED_FN (fn) = true; What do you think, Jason?
[Bug c++/89571] [9 Regression] ICE in nothrow_spec_p, at cp/except.c:1238
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89571 --- Comment #9 from Paolo Carlini --- The new ICE in Comment #6 is not fixed by Jason's patch, thus we can't close this one, unless we file a separate bug for that.
[Bug c++/85014] [7/8 Regression] internal compiler error: in lookup_base, at cp/search.c:185
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85014 Paolo Carlini changed: What|Removed |Added Summary|[7/8/9 Regression] internal |[7/8 Regression] internal |compiler error: in |compiler error: in |lookup_base, at |lookup_base, at |cp/search.c:185 |cp/search.c:185 --- Comment #7 from Paolo Carlini --- Fixed in trunk so far.
[Bug c++/85014] [7/8/9 Regression] internal compiler error: in lookup_base, at cp/search.c:185
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85014 Paolo Carlini changed: What|Removed |Added Status|NEW |ASSIGNED --- Comment #4 from Paolo Carlini --- Looking into it.
[Bug c++/85014] [7/8/9 Regression] internal compiler error: in lookup_base, at cp/search.c:185
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85014 --- Comment #5 from Paolo Carlini --- Looking into it.
[Bug c++/67164] ICE: tree check: expected class ‘expression’, have ‘exceptional’ (argument_pack_select) in tree_operand_check, at tree.h:3356
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67164 Paolo Carlini changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #15 from Paolo Carlini --- Let's close it, then.
[Bug c++/80604] internal compiler error: Internal compiler error in tsubst_decl, at cp/pt.c:11749
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80604 Paolo Carlini changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED Target Milestone|--- |7.4 --- Comment #1 from Paolo Carlini --- Fixed in 7.4.0.
[Bug c++/79651] ICE on invalid c++ code in lambda_expr_this_capture in lambda.c:718
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79651 Paolo Carlini changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #2 from Paolo Carlini --- AFAICS this got fixed for the released 7.1.0 and the fix even backported to 6.4.0. Please double check and, in case, reopen.
[Bug c++/67398] Segfault when template static references another template
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67398 Paolo Carlini changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED Target Milestone|--- |6.0 --- Comment #7 from Paolo Carlini --- All fixed long time ago, in 6.1.0.
[Bug c++/63508] ICE when using bracketed initializer on pointer to member function of a templated class
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63508 Paolo Carlini changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED Target Milestone|--- |8.0 --- Comment #5 from Paolo Carlini --- Fixed in 8.1.0.
[Bug c++/85558] ICE in make_rtl_for_nonlocal_decl when using static member of template class
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85558 Paolo Carlini changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED Target Milestone|--- |9.0 --- Comment #5 from Paolo Carlini --- Fixed in trunk.