[Bug c++/101603] [meta-bug] pointer to member functions issues
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101603 Bug 101603 depends on bug 90780, which changed state. Bug 90780 Summary: references to pmf types mess up https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90780 What|Removed |Added Status|NEW |RESOLVED Resolution|--- |DUPLICATE
[Bug c++/70097] Cannot assign ref-qualified non-static member function
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70097 Andrew Pinski changed: What|Removed |Added CC||language.lawyer at gmail dot com --- Comment #2 from Andrew Pinski --- *** Bug 90780 has been marked as a duplicate of this bug. ***
[Bug c++/90780] references to pmf types mess up
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90780 Andrew Pinski changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |DUPLICATE --- Comment #3 from Andrew Pinski --- This is a dup of bug 70097. *** This bug has been marked as a duplicate of bug 70097 ***
[Bug c++/90780] references to pmf types mess up
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90780 Andrew Pinski changed: What|Removed |Added Summary|GCC loses ref-qualifiers|references to pmf types ||mess up Blocks||101603 --- Comment #2 from Andrew Pinski --- Reduced testcase: using abominable = void() &; struct s { abominable f; }; abominable s::* ptr = ::f; Referenced Bugs: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101603 [Bug 101603] [meta-bug] pointer to member functions issues
[Bug c++/67491] [meta-bug] concepts issues
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67491 Bug 67491 depends on bug 78802, which changed state. Bug 78802 Summary: ICE with auto placeholder concept in synthesize_implicit_template_parm https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78802 What|Removed |Added Status|NEW |RESOLVED Resolution|--- |DUPLICATE
[Bug c++/82768] ICE in synthesize_implicit_template_parm, at cp/parser.c:39338
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82768 Andrew Pinski changed: What|Removed |Added CC||pkeir at outlook dot com --- Comment #5 from Andrew Pinski --- *** Bug 78802 has been marked as a duplicate of this bug. ***
[Bug c++/78802] ICE with auto placeholder concept in synthesize_implicit_template_parm
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78802 Andrew Pinski changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |DUPLICATE --- Comment #3 from Andrew Pinski --- Dup of bug 82768. *** This bug has been marked as a duplicate of bug 82768 ***
[Bug c++/89642] gcc rejects valid implicit typename context in cast
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89642 --- Comment #3 from Andrew Pinski --- GCC, ICC, clang and MSVC all reject this at -std=c++20 (or /std:c++latest for MSVC).
[Bug c++/68138] "operator== is ambiguous" when comparing a tuple containing values with one containing refs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68138 --- Comment #4 from Andrew Pinski --- The original testcase and the one in comment #2 started to work in GCC 11+.
[Bug c++/87327] [8 Regression] Calling member functions on captured constexpr variables "is not a constant expression"
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87327 Andrew Pinski changed: What|Removed |Added CC||rcc.dark at gmail dot com --- Comment #7 from Andrew Pinski --- *** Bug 89643 has been marked as a duplicate of this bug. ***
[Bug c++/89643] [8 Regression] constexpr capture not working inside expression
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89643 Andrew Pinski changed: What|Removed |Added Resolution|--- |DUPLICATE Status|NEW |RESOLVED --- Comment #1 from Andrew Pinski --- This was a regression in 8.1.0-8.3.0 and was fixed for 8.4.0. This is a dup of bug 87327. *** This bug has been marked as a duplicate of bug 87327 ***
[Bug c++/67491] [meta-bug] concepts issues
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67491 Bug 67491 depends on bug 82768, which changed state. Bug 82768 Summary: ICE in synthesize_implicit_template_parm, at cp/parser.c:39338 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82768 What|Removed |Added Status|NEW |RESOLVED Resolution|--- |DUPLICATE
[Bug c++/71543] [concepts] ICE on ill-formed declaration of a parameter with a constrained-type-specifier in a requires expression
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71543 Andrew Pinski changed: What|Removed |Added CC||gomboc at cs dot ucr.edu --- Comment #6 from Andrew Pinski --- *** Bug 82768 has been marked as a duplicate of this bug. ***
[Bug c++/82768] ICE in synthesize_implicit_template_parm, at cp/parser.c:39338
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82768 Andrew Pinski changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |DUPLICATE --- Comment #4 from Andrew Pinski --- Dup of bug 71543. *** This bug has been marked as a duplicate of bug 71543 ***
[Bug c++/67491] [meta-bug] concepts issues
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67491 Bug 67491 depends on bug 78511, which changed state. Bug 78511 Summary: ICE on using concept name as a "requires" parameter https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78511 What|Removed |Added Status|NEW |RESOLVED Resolution|--- |DUPLICATE
[Bug c++/71543] [concepts] ICE on ill-formed declaration of a parameter with a constrained-type-specifier in a requires expression
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71543 Andrew Pinski changed: What|Removed |Added CC||gcc-bugzilla at minijackson dot 33 ||mail.com --- Comment #5 from Andrew Pinski --- *** Bug 78511 has been marked as a duplicate of this bug. ***
[Bug c++/78511] ICE on using concept name as a "requires" parameter
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78511 Andrew Pinski changed: What|Removed |Added Resolution|--- |DUPLICATE Status|NEW |RESOLVED --- Comment #2 from Andrew Pinski --- Dup so closing as such. *** This bug has been marked as a duplicate of bug 71543 ***
[Bug c++/89085] call of overload is ambiguous with parameter packs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89085 Andrew Pinski changed: What|Removed |Added Known to work||10.2.0, 10.3.0, 11.1.0, ||11.2.0 Known to fail||10.1.0, 9.4.0 --- Comment #1 from Andrew Pinski --- Seems fixed in GCC 10.3 and GCC 11+.
[Bug c++/88694] constexpr isn't captured correctly in lambda
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88694 Andrew Pinski changed: What|Removed |Added Known to fail||10.3.0 Known to work||11.1.0 --- Comment #5 from Andrew Pinski --- Seems fixed in GCC 11+.
[Bug libstdc++/88736] nullptr_t available without namespace qualification
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88736 Andrew Pinski changed: What|Removed |Added Keywords|accepts-invalid | See Also||https://gcc.gnu.org/bugzill ||a/show_bug.cgi?id=54249 Component|c++ |libstdc++ --- Comment #2 from Andrew Pinski --- GCC's gcc/ginclude/stddef.h has: #if defined(__cplusplus) && __cplusplus >= 201103L #ifndef _GXX_NULLPTR_T #define _GXX_NULLPTR_T typedef decltype(nullptr) nullptr_t; #endif #endif /* C++11. */ Which was added for PR 54249. It looks like it is still needed but I think could pull that into libstdc++/include/c_compatibility/stddef.h instead.
[Bug c++/86669] [7 regression] Complete object constructor clone omits length for a c++11 braced initialiser
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86669 Andrew Pinski changed: What|Removed |Added CC||jengelh at inai dot de --- Comment #13 from Andrew Pinski --- *** Bug 88517 has been marked as a duplicate of this bug. ***
[Bug c++/88517] Virtual-base class class constructor with for-loop with initializer list referencing local variable not executed
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88517 Andrew Pinski changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |DUPLICATE Target Milestone|--- |7.5 --- Comment #3 from Andrew Pinski --- This is fixed in GCC 7.5.0, GCC 8.3.0 and 9+. THis is actually a dup of bug 86669. *** This bug has been marked as a duplicate of bug 86669 ***
[Bug c++/94619] String literals as non-type template parameter fails to compile with partial specialization of calling function
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94619 Andrew Pinski changed: What|Removed |Added Known to work||10.3.0, 11.1.0 Known to fail||10.2.0 --- Comment #3 from Andrew Pinski --- Seems to be fixed in GCC 10.3.0 and 11+.
[Bug c++/86369] constexpr const char* comparison fails
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86369 --- Comment #3 from Andrew Pinski --- GCC accepts both with GCC 10+.
[Bug c++/82204] G++ doesn't connect friend and extern declarations
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82204 --- Comment #3 from Andrew Pinski --- Seems fixed in GCC 11+.
[Bug c++/85612] ADL lookup with parameter pack and defaulted argument not considered ambiguous
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85612 --- Comment #1 from Andrew Pinski --- GCC, ICC, clang and MSVC all reject this code the same way.
[Bug c++/54367] [meta-bug] lambda expressions
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54367 Bug 54367 depends on bug 81700, which changed state. Bug 81700 Summary: Unresolved function type when taking address of operator() of generic lambda https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81700 What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED
[Bug c++/81700] Unresolved function type when taking address of operator() of generic lambda
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81700 Andrew Pinski changed: What|Removed |Added Target Milestone|--- |9.4 Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #2 from Andrew Pinski --- Fixed in 9.4, 10.3.0 and 11+. Most likely by the patch which fixed PR 95675.
[Bug c++/43064] improve location and text of diagnostics in constructor initializer lists
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43064 Andrew Pinski changed: What|Removed |Added Target Milestone|--- |9.0
[Bug c++/85514] g++ accepts invalid template code
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85514 --- Comment #2 from Andrew Pinski --- clang started to accept this code in clang 5.0.0. ICC started to accept it between 13 and 16. MSVC started to accept it in v19.23 (19.23.28105.4). So I think this one can be closed as invalid.
[Bug c++/101786] P1143R2 constinit implementation is incomplete (joining with thread_local)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101786 Andrew Pinski changed: What|Removed |Added Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Last reconfirmed||2021-08-05 --- Comment #2 from Andrew Pinski --- Confirmed. We most likely could get rid of the check in this case. It is a missed optimization only really.
[Bug c++/101786] P1143R2 constinit implementation is incomplete (joining with thread_local)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101786 Andrew Pinski changed: What|Removed |Added Keywords||missed-optimization Severity|normal |minor --- Comment #1 from Andrew Pinski --- _ZTH1x must have been declared as weak.
[Bug c++/66839] g++ accepts NSDMI with -std=c++98 when the intializer is a macro defined in a standard header
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66839 Andrew Pinski changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2021-08-05 Ever confirmed|0 |1 --- Comment #2 from Andrew Pinski --- Confirmed.
[Bug c++/101786] New: P1143R2 constinit implementation is incomplete (joining with thread_local)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101786 Bug ID: 101786 Summary: P1143R2 constinit implementation is incomplete (joining with thread_local) Product: gcc Version: 10.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: jpegqs at gmail dot com CC: mpolacek at gcc dot gnu.org Target Milestone: --- The paper says: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1143r2.html > constinit can also be useful to compilers for non-initializing declarations > of thread_local variables: > > extern thread_local constinit x; > int f() { return x; } > > Without constinit, runtime code must be executed to perform a check of a > guard variable and conditionally initialize x each time it is used. (Other > techniques exist, but this approach is common.) If the variable is known to > have constant initialization, this can be avoided. Let's fix the missing type for x and try: extern thread_local constinit int x; int f() { return x; } In case of compilation, GCC does not remove the TLS wrapper function as it should according to this paper: _ZTW1x: pushrbp mov rbp, rsp mov eax, OFFSET FLAT:_ZTH1x testrax, rax je .L2 call_ZTH1x .L2: mov rdx, QWORD PTR fs:0 mov rax, QWORD PTR x@gottpoff[rip] add rax, rdx pop rbp ret _Z1fv: pushrbp mov rbp, rsp call_ZTW1x mov eax, DWORD PTR [rax] pop rbp ret The code it should produce should look like this: _Z1fv: pushrbp mov rbp, rsp mov rax, QWORD PTR x@gottpoff[rip] mov eax, DWORD PTR fs:[rax] pop rbp ret What I can get now is only by replacing "thread_local constinit" with "__thread". Clang implements this feature.
[Bug c++/61543] static_cast(static_cast(enum_value)) doesn't get an error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61543 Andrew Pinski changed: What|Removed |Added Status|NEW |RESOLVED Target Milestone|--- |9.0 Known to work||9.1.0 Resolution|--- |FIXED --- Comment #5 from Andrew Pinski --- GCC 8+ rejects the first "// accepted" in the reduced testcase. GCC 9+ rejects both. Note both are only with C++11 standard (or greater). Because in C++98 the constant expression which evulates to 0 is considered a null pointer :).
[Bug c++/80651] Non-type template argument deduction fails
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80651 --- Comment #1 from Andrew Pinski --- Seems fixed in GCC 11.
[Bug c++/88092] class nontype template deduction failed when providing type to class
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88092 Andrew Pinski changed: What|Removed |Added Target Milestone|--- |10.0
[Bug c++/57466] [DR 1584] Argument deduction fails for 'const T*' when T is function type
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57466 --- Comment #19 from Andrew Pinski --- (In reply to Jonathan Wakely from comment #17) > Fine by me. > > EDG agrees with GCC, but Clang accepts the original example. I guess they'll > change when 1584 gets resolved. clang started to reject in clang 7.0.0. Is there anything else that needs to be done?
[Bug c++/81051] virtual base access during construction crashes
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81051 --- Comment #3 from Andrew Pinski --- The vtable is not set until after the call of the constructor of B::B which is after the call to f(this). When is the vtable supposed to be put in the this object?
[Bug c++/79416] Internal compiler error for recursive template expansion
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79416 Andrew Pinski changed: What|Removed |Added Keywords||compile-time-hog, ||memory-hog Severity|normal |minor Target Milestone|5.5 |---
[Bug c++/79735] C++14: syntax error in attribute deprecated silently ignored
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79735 Andrew Pinski changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2021-08-05 Ever confirmed|0 |1 --- Comment #3 from Andrew Pinski --- Confirmed.
[Bug c++/18296] Misleading diagnostic for recursive template instantiation
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=18296 Bug 18296 depends on bug 15538, which changed state. Bug 15538 Summary: Misleading diagnostic for recursive template instantiation https://gcc.gnu.org/bugzilla/show_bug.cgi?id=15538 What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED
[Bug c++/15538] Misleading diagnostic for recursive template instantiation
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=15538 Andrew Pinski changed: What|Removed |Added Resolution|--- |FIXED Status|NEW |RESOLVED --- Comment #10 from Andrew Pinski --- Fixed by r7-4510.
[Bug c++/15538] Misleading diagnostic for recursive template instantiation
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=15538 Andrew Pinski changed: What|Removed |Added Target Milestone|--- |7.0 --- Comment #9 from Andrew Pinski --- (In reply to Martin Sebor from comment #8) > No change in GCC 7.0. > t.C: In instantiation of ‘struct A >’: > t.C:5:8: required from ‘struct H’ > t.C:7:9: required from here > t.C:2:26: error: invalid use of incomplete type ‘struct H’ > struct A { typename D::Q r;}; > ^ > t.C:5:8: note: declaration of ‘struct H’ > struct H : A > { typedef G* Q; }; > ^ No that is what we want. Before it was "no type named 'Q' in 'struct H'".
[Bug c++/55004] [meta-bug] constexpr issues
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55004 Bug 55004 depends on bug 86607, which changed state. Bug 86607 Summary: constexpr function does not treat function pointers with external linkage as constexpr https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86607 What|Removed |Added Status|NEW |RESOLVED Resolution|--- |DUPLICATE
[Bug c++/77911] Comparing function pointers in a constexpr function can produce an error.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77911 Andrew Pinski changed: What|Removed |Added CC||tadeus.prastowo at unitn dot it --- Comment #5 from Andrew Pinski --- *** Bug 86607 has been marked as a duplicate of this bug. ***
[Bug c++/86607] constexpr function does not treat function pointers with external linkage as constexpr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86607 Andrew Pinski changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |DUPLICATE --- Comment #1 from Andrew Pinski --- This is a dup of bug 77911. *** This bug has been marked as a duplicate of bug 77911 ***
[Bug c++/77911] Comparing function pointers in a constexpr function can produce an error.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77911 Andrew Pinski changed: What|Removed |Added Last reconfirmed||2021-08-05 Depends on||69681 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW --- Comment #4 from Andrew Pinski --- Confirmed, I suspect this is the same problem as PR 69681. Referenced Bugs: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69681 [Bug 69681] C/C++ FEs do not consider comparisons of distinct function pointers to be constant expressions
[Bug c++/77815] access to destructor via decltype-specifier
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77815 Andrew Pinski changed: What|Removed |Added CC||xmh970252187 at gmail dot com --- Comment #2 from Andrew Pinski --- *** Bug 99262 has been marked as a duplicate of this bug. ***
[Bug c++/99262] The decltype-specifier that denotes a destructor in a function call is rejected by GCC
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99262 Andrew Pinski changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |DUPLICATE --- Comment #1 from Andrew Pinski --- This is a dup of bug 77815. *** This bug has been marked as a duplicate of bug 77815 ***
[Bug c++/101603] [meta-bug] pointer to member functions issues
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101603 Bug 101603 depends on bug 74744, which changed state. Bug 74744 Summary: Fails to select overridden function when determined by template parameter https://gcc.gnu.org/bugzilla/show_bug.cgi?id=74744 What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED
[Bug c++/74744] Fails to select overridden function when determined by template parameter
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=74744 Andrew Pinski changed: What|Removed |Added Resolution|--- |FIXED Status|NEW |RESOLVED See Also||https://gcc.gnu.org/bugzill ||a/show_bug.cgi?id=83137 --- Comment #2 from Andrew Pinski --- Fixed in GCC 8+.
[Bug c++/88538] parse error with class nontype template parameter
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88538 Andrew Pinski changed: What|Removed |Added Target Milestone|--- |9.0
[Bug c++/70585] Bogus 'ambiguous template instantiation' error with partial specializations involving a pack expansion
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70585 Andrew Pinski changed: What|Removed |Added Keywords||rejects-valid --- Comment #1 from Andrew Pinski --- GCC and ICC reject it with a similar error message. Clang and MSVC both accept it.
[Bug c++/70983] False ambiguity on member function rvalue overload using auto
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70983 Andrew Pinski changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED Target Milestone|--- |6.0 --- Comment #2 from Andrew Pinski --- Fixed in GCC 6+.
[Bug c++/70737] Invalid C++ code compiles when using explicit template conversions
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70737 Andrew Pinski changed: What|Removed |Added Resolution|--- |FIXED Status|NEW |RESOLVED Target Milestone|--- |6.4 --- Comment #3 from Andrew Pinski --- Fixed in GCC 6.4.0 and 7+.
[Bug c++/71267] [C++14] recursive metafunction won't compile: no type named 'type'
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71267 Andrew Pinski changed: What|Removed |Added Known to fail||10.3.0, 11.1.0 Known to work||11.2.0 --- Comment #2 from Andrew Pinski --- Looks fixed in GCC 11.2.0 and GCC12+.
[Bug c++/71502] Fold expression unpacks (I < ...) the wrong way
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71502 Andrew Pinski changed: What|Removed |Added Resolution|--- |INVALID Status|UNCONFIRMED |RESOLVED --- Comment #4 from Andrew Pinski --- Invalid as explained.
[Bug c++/84464] Pack expansion in mem-initializer-list with expression-list
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84464 Andrew Pinski changed: What|Removed |Added See Also||https://gcc.gnu.org/bugzill ||a/show_bug.cgi?id=97819 --- Comment #2 from Andrew Pinski --- This looks fixed on the trunk.
[Bug c++/69957] Ambiguous overload due to incorrect partial ordering of V<> and V
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69957 Andrew Pinski changed: What|Removed |Added Last reconfirmed||2021-08-05 Keywords||rejects-valid Ever confirmed|0 |1 Status|UNCONFIRMED |NEW --- Comment #1 from Andrew Pinski --- GCC and MSVC reject this for similar reasons. Clang and ICC accept this.
[Bug sanitizer/101744] [12 regression] hwasan new failures since r12-2424
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101744 --- Comment #6 from Hongtao.liu --- (In reply to Martin Liška from comment #5) > > > ``` > > Just want to clarify that it's our developping lam version which is at > > https://gitlab.com/x86-gcc/gcc/-/tree/users/intel/lam/master > > What can you see for a vanilla GCC compiler? hwasan is not enabled by x86 on the trunk which means there must be no impact for a vanilla x86 GCC compiler.
[Bug c++/97819] Pack expansion in member initializer lists nested with their parameter list got rejected.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97819 Andrew Pinski changed: What|Removed |Added See Also||https://gcc.gnu.org/bugzill ||a/show_bug.cgi?id=65422 Known to fail||11.1.0 --- Comment #2 from Andrew Pinski --- This looks fixed on the trunk
[Bug c++/65422] [C++11] Rejected valid double expansion packs.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65422 Andrew Pinski changed: What|Removed |Added Known to fail||10.1.0, 11.1.0, 11.2.0, ||8.1.0 --- Comment #1 from Andrew Pinski --- Looks like this is fixed on the trunk.
[Bug c++/69372] GCC allows array and function types to be caught by reference.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69372 Andrew Pinski changed: What|Removed |Added Ever confirmed|0 |1 Last reconfirmed||2021-08-05 Status|UNCONFIRMED |NEW Keywords|accepts-invalid |wrong-code --- Comment #2 from Andrew Pinski --- Confirmed. ICC and clang does not assert in both cases.
[Bug c++/80176] [5/6 Regression] cannot bind reference to static member function using object access expression
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80176 --- Comment #8 from Andrew Pinski --- *** Bug 68386 has been marked as a duplicate of this bug. ***
[Bug c++/68386] error: invalid initialization of reference of type 'void (&&)()' from expression of type 'void()'
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68386 Andrew Pinski changed: What|Removed |Added Resolution|--- |DUPLICATE Known to work||6.4.0, 7.1.0 Status|NEW |RESOLVED Target Milestone|--- |6.4 --- Comment #3 from Andrew Pinski --- Fixed in GCC 6.4.0 and GCC7+. This is a dup of bug 80176. *** This bug has been marked as a duplicate of bug 80176 ***
[Bug c++/69302] parentheses cause address of register variable to be requested (c++1y)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69302 Andrew Pinski changed: What|Removed |Added Status|NEW |RESOLVED Target Milestone|--- |8.0 Resolution|--- |FIXED --- Comment #7 from Andrew Pinski --- Fixed in GCC 8+. Note GCC11+ default to C++17 and register storage class is rejected.
[Bug target/101785] aarch64-linux-android is not supported
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101785 --- Comment #3 from Andrew Pinski --- *** Bug 99964 has been marked as a duplicate of this bug. ***
[Bug libgcc/99964] android(bionic) cannot find crti.o and crtn.o on aarch64
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99964 Andrew Pinski changed: What|Removed |Added Resolution|--- |DUPLICATE Status|UNCONFIRMED |RESOLVED --- Comment #10 from Andrew Pinski --- There is really no support for aarch64-linux-android included. The target headers for aarch64 don't include any support at all. *** This bug has been marked as a duplicate of bug 101785 ***
[Bug c++/68077] Namespace having the same name as contained class should not compile
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68077 Andrew Pinski changed: What|Removed |Added See Also||https://gcc.gnu.org/bugzill ||a/show_bug.cgi?id=68188 Keywords||accepts-invalid Ever confirmed|0 |1 Last reconfirmed||2021-08-05 Status|UNCONFIRMED |NEW --- Comment #1 from Andrew Pinski --- Confirmed. related to PR 68188.
[Bug sanitizer/101784] __NR_newfstatat is not defined on aarch64-linux-android
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101784 --- Comment #8 from Andrew Pinski --- (In reply to Andrew Pinski from comment #7) > (In reply to cqwrteur from comment #6) > > (In reply to Andrew Pinski from comment #5) > > > Dup of bug 101785 really. There is no supported at all included. > > > > > > *** This bug has been marked as a duplicate of bug 101785 *** > > > > but i am sure __NR_newfstatat does not exist on linux kernel header files > > for aarch64 anymore. > > It does. > asm-generic/unistd.h: > > #define __NR3264_fstatat 79 > __SC_3264(__NR3264_fstatat, sys_fstatat64, sys_newfstatat) > > > #define __NR_newfstatat __NR3264_fstatat This is 4.14's headers but I really doubt they have changed that much since then.
[Bug sanitizer/101784] __NR_newfstatat is not defined on aarch64-linux-android
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101784 --- Comment #7 from Andrew Pinski --- (In reply to cqwrteur from comment #6) > (In reply to Andrew Pinski from comment #5) > > Dup of bug 101785 really. There is no supported at all included. > > > > *** This bug has been marked as a duplicate of bug 101785 *** > > but i am sure __NR_newfstatat does not exist on linux kernel header files > for aarch64 anymore. It does. asm-generic/unistd.h: #define __NR3264_fstatat 79 __SC_3264(__NR3264_fstatat, sys_fstatat64, sys_newfstatat) #define __NR_newfstatat __NR3264_fstatat
[Bug sanitizer/101784] __NR_newfstatat is not defined on aarch64-linux-android
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101784 --- Comment #6 from cqwrteur --- (In reply to Andrew Pinski from comment #5) > Dup of bug 101785 really. There is no supported at all included. > > *** This bug has been marked as a duplicate of bug 101785 *** but i am sure __NR_newfstatat does not exist on linux kernel header files for aarch64 anymore.
[Bug target/101785] aarch64-linux-android is not supported
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101785 --- Comment #2 from Andrew Pinski --- *** Bug 101784 has been marked as a duplicate of this bug. ***
[Bug sanitizer/101784] __NR_newfstatat is not defined on aarch64-linux-android
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101784 Andrew Pinski changed: What|Removed |Added Resolution|--- |DUPLICATE Status|UNCONFIRMED |RESOLVED --- Comment #5 from Andrew Pinski --- Dup of bug 101785 really. There is no supported at all included. *** This bug has been marked as a duplicate of bug 101785 ***
[Bug sanitizer/101784] __NR_newfstatat is not defined on aarch64-linux-android
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101784 --- Comment #4 from cqwrteur --- (In reply to Andrew Pinski from comment #3) > This is a bug in android headers. > > I really doubt anyone really cares enough about gcc support for android > these days. I also really double anyone has really ported aarch64 android > support to gcc. Google moved over to clang/llvm around the same time as > moving to armv8. I do care tbh. Google does not care that is their fault.
[Bug target/101785] Android macro is not defined for aarch64-linux-android
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101785 Andrew Pinski changed: What|Removed |Added Severity|normal |enhancement Keywords||build --- Comment #1 from Andrew Pinski --- ANDROID_TARGET_OS_CPP_BUILTINS is not called from TARGET_OS_CPP_BUILTINS in config/aarch64/aarch64-linux.h . That is there is no support for android for aarch64 at all.
[Bug sanitizer/101784] __NR_newfstatat is not defined on aarch64-linux-android
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101784 --- Comment #3 from Andrew Pinski --- This is a bug in android headers. I really doubt anyone really cares enough about gcc support for android these days. I also really double anyone has really ported aarch64 android support to gcc. Google moved over to clang/llvm around the same time as moving to armv8.
[Bug c++/101785] New: Android macro is not defined for aarch64-linux-android
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101785 Bug ID: 101785 Summary: Android macro is not defined for aarch64-linux-android Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: unlvsur at live dot com Target Milestone: --- int main() { #if defined(__ANDROID__) || defined(__BIONIC__) || defined(ANDROID) dgdsg; #endif } aarch64-linux-android-g++ -c a.cc compilation success. ANDROID macro is not defined
[Bug sanitizer/101784] __NR_newfstatat is not defined on aarch64-linux-android
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101784 --- Comment #2 from cqwrteur --- Created attachment 51264 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=51264=edit more errors
[Bug sanitizer/101784] __NR_newfstatat is not defined on aarch64-linux-android
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101784 --- Comment #1 from cqwrteur --- Created attachment 51263 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=51263=edit log file
[Bug sanitizer/101784] New: __NR_newfstatat is not defined on aarch64-linux-android
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101784 Bug ID: 101784 Summary: __NR_newfstatat is not defined on aarch64-linux-android Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: sanitizer Assignee: unassigned at gcc dot gnu.org Reporter: unlvsur at live dot com CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org, jakub at gcc dot gnu.org, kcc at gcc dot gnu.org, marxin at gcc dot gnu.org Target Milestone: --- Created attachment 51262 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=51262=edit error message ../../../../../gcc/libsanitizer/sanitizer_common/sanitizer_syscall_linux_aarch64.inc:13:23: error: '__NR_newfstatat' was not declared in this scope 13 | #define SYSCALL(name) __NR_ ## name | ^ ../../../../../gcc/libsanitizer/sanitizer_common/sanitizer_syscall_linux_aarch64.inc:80:24: note: in definition of macro '__internal_syscall4' 80 | (__internal_syscall)(n, (u64)(a1), (long)(a2), (long)(a3), (long)(a4)) |^
[Bug c++/101782] [12 regression] Excess errors in g++.dg/cpp2a/concepts-pr67774.C after r12-2729
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101782 --- Comment #2 from Jonathan Wakely --- I think we can probably do this to stop the test failing: --- a/gcc/testsuite/g++.dg/cpp2a/concepts-pr67774.C +++ b/gcc/testsuite/g++.dg/cpp2a/concepts-pr67774.C @@ -1,5 +1,4 @@ // { dg-do compile { target c++20 } } -// { dg-additional-options "-fconcepts-ts" } #include #include Because that flag was present to enable concepts support, but concepts are always enabled for c++20 now, and it gets run with -std=c++2a But the FE bug still needs to be fixed.
[Bug tree-optimization/94356] Missed optimisation: useless multiplication generated for pointer comparison
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94356 --- Comment #6 from Marc Glisse --- (In reply to Andrew Pinski from comment #5) > Hmm, the following is worse: That looks like a separate issue. We have fold_comparison for GENERIC, and match.pd has related patterns for integers, or for pointers with ==, but not for pointers with <. Strange, I thought I had added those, possibly together with pointer_diff since the behavior is similar.
[Bug c++/101782] [12 regression] Excess errors in g++.dg/cpp2a/concepts-pr67774.C after r12-2729
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101782 Jonathan Wakely changed: What|Removed |Added Keywords||rejects-valid Assignee|redi at gcc dot gnu.org|unassigned at gcc dot gnu.org Status|ASSIGNED|NEW Component|testsuite |c++ --- Comment #1 from Jonathan Wakely --- This is a C++ FE bug. This valid C++20 code: template concept foo = true; template requires foo [[nodiscard]] int bar(T) { return 1; } is rejected with the -fconcepts-ts flag (as both C++20 and C++17): conc.C:4:1: error: two consecutive ‘[’ shall only introduce an attribute before ‘[’ token 4 | [[nodiscard]] | ^ For C++17 mode, -fconcepts-ts defines __cpp_concepts=201507L so we could use that to suppress the [[nodiscard]] attributes when the flag is given. But we can't detect it for C++20 mode (which is when the testsuite errors happen) because C++20 defines __cpp_concepts=201907L and -fconcepts-ts doesn't change that. So I'm not sure what we can do, other than not apply the attribute to constrained functions with a requires-clause.
[Bug c++/53660] function pointer conversion function template with nested-name-specifier ignored
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53660 --- Comment #2 from David Krauss --- (In reply to Andrew Pinski from comment #1) > I don't think this is a bug. Right, the behavior looks correct. As for a nested-name-specifier working in this context, it works if it's not dependent. As for the declaration being a function template, it works as long as the conversion-type-id is not dependent. Oddly, a dependent conversion-type-id *is* allowed when the function is not templated. Anyway, the standard says to inspect the conversion function declarations and find the ones referring to function (-pointer, -reference) types. That doesn't admit application of template default arguments, as implicit or explicit conversion does.
[Bug analyzer/101570] [12 Regression] ICE in maybe_reconstruct_from_def_stmt, at analyzer/analyzer.cc:133
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101570 David Malcolm changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #3 from David Malcolm --- Should be fixed by the above commit.
[Bug analyzer/101570] [12 Regression] ICE in maybe_reconstruct_from_def_stmt, at analyzer/analyzer.cc:133
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101570 --- Comment #2 from CVS Commits --- The master branch has been updated by David Malcolm : https://gcc.gnu.org/g:ded2c2c068f6f2825474758cb03a05070a5837e8 commit r12-2749-gded2c2c068f6f2825474758cb03a05070a5837e8 Author: David Malcolm Date: Wed Aug 4 18:21:21 2021 -0400 analyzer: initial implementation of asm support [PR101570] gcc/ChangeLog: PR analyzer/101570 * Makefile.in (ANALYZER_OBJS): Add analyzer/region-model-asm.o. gcc/analyzer/ChangeLog: PR analyzer/101570 * analyzer.cc (maybe_reconstruct_from_def_stmt): Add GIMPLE_ASM case. * analyzer.h (class asm_output_svalue): New forward decl. (class reachable_regions): New forward decl. * complexity.cc (complexity::from_vec_svalue): New. * complexity.h (complexity::from_vec_svalue): New decl. * engine.cc (feasibility_state::maybe_update_for_edge): Handle asm stmts by calling on_asm_stmt. * region-model-asm.cc: New file. * region-model-manager.cc (region_model_manager::maybe_fold_asm_output_svalue): New. (region_model_manager::get_or_create_asm_output_svalue): New. (region_model_manager::log_stats): Log m_asm_output_values_map. * region-model.cc (region_model::on_stmt_pre): Handle GIMPLE_ASM. * region-model.h (visitor::visit_asm_output_svalue): New. (region_model_manager::get_or_create_asm_output_svalue): New decl. (region_model_manager::maybe_fold_asm_output_svalue): New decl. (region_model_manager::asm_output_values_map_t): New typedef. (region_model_manager::m_asm_output_values_map): New field. (region_model::on_asm_stmt): New. * store.cc (binding_cluster::on_asm): New. * store.h (binding_cluster::on_asm): New decl. * svalue.cc (svalue::cmp_ptr): Handle SK_ASM_OUTPUT. (asm_output_svalue::dump_to_pp): New. (asm_output_svalue::dump_input): New. (asm_output_svalue::input_idx_to_asm_idx): New. (asm_output_svalue::accept): New. * svalue.h (enum svalue_kind): Add SK_ASM_OUTPUT. (svalue::dyn_cast_asm_output_svalue): New. (class asm_output_svalue): New. (is_a_helper ::test): New. (struct default_hash_traits): New. gcc/testsuite/ChangeLog: PR analyzer/101570 * gcc.dg/analyzer/asm-x86-1.c: New test. * gcc.dg/analyzer/asm-x86-lp64-1.c: New test. * gcc.dg/analyzer/asm-x86-lp64-2.c: New test. * gcc.dg/analyzer/pr101570.c: New test. * gcc.dg/analyzer/torture/asm-x86-linux-array_index_mask_nospec.c: New test. * gcc.dg/analyzer/torture/asm-x86-linux-cpuid-paravirt-1.c: New test. * gcc.dg/analyzer/torture/asm-x86-linux-cpuid-paravirt-2.c: New test. * gcc.dg/analyzer/torture/asm-x86-linux-cpuid.c: New test. * gcc.dg/analyzer/torture/asm-x86-linux-rdmsr-paravirt.c: New test. * gcc.dg/analyzer/torture/asm-x86-linux-rdmsr.c: New test. * gcc.dg/analyzer/torture/asm-x86-linux-wfx_get_ps_timeout-full.c: New test. * gcc.dg/analyzer/torture/asm-x86-linux-wfx_get_ps_timeout-reduced.c: New test. Signed-off-by: David Malcolm
[Bug c++/67048] [9/10/11/12 Regression] GCC rejects well-formed program using empty anonymous enum specifier in a variable declaration
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67048 Andrew Pinski changed: What|Removed |Added Known to work||4.8.5 Target Milestone|--- |9.5 Known to fail||10.1.0, 11.1.0, 4.9.0, ||9.4.0 Summary|GCC rejects well-formed |[9/10/11/12 Regression] GCC |program using empty |rejects well-formed program |anonymous enum specifier in |using empty anonymous enum |a variable declaration |specifier in a variable ||declaration --- Comment #1 from Andrew Pinski --- This was almost definitely caused by PR 54216 .
[Bug target/101611] AVX2 vector arithmetic shift lowered to scalar unnecessarily
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101611 Andrew Pinski changed: What|Removed |Added Target Milestone|--- |12.0
[Bug c++/67777] unsigned wchar_t and signed wchar_t should cause compiler errors but do not.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=6 Andrew Pinski changed: What|Removed |Added Keywords||diagnostic Resolution|--- |FIXED See Also||https://gcc.gnu.org/bugzill ||a/show_bug.cgi?id=84701 Status|UNCONFIRMED |RESOLVED Target Milestone|--- |9.0 --- Comment #3 from Andrew Pinski --- This changed in GCC9+ to always reject. Most likely by the patch which fixed PR 84701.
[Bug c++/97475] An unnamed class with a typedef name for linkage purposes having a method.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97475 Andrew Pinski changed: What|Removed |Added Depends on||46589 --- Comment #1 from Andrew Pinski --- I think this is a dup of bug 46589. Referenced Bugs: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46589 [Bug 46589] struct member function not declared global
[Bug c++/31584] [DR502] nested enum not considered dependent
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=31584 --- Comment #12 from Andrew Pinski --- GCC, ICC, clang and MSVC all accept the testcase in comment #11.
[Bug c++/60705] ill-formed member access in alias template ignored
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60705 Andrew Pinski changed: What|Removed |Added Last reconfirmed|2014-03-29 00:00:00 |2021-8-4 --- Comment #3 from Andrew Pinski --- Clang and GCC both accept it. ICC and MSVC both reject it. ICC error message: (8): error #308: class "A::B" (declared at line 4) is inaccessible using C = A::B; // Already the declaration of this alias template is ill-formed ^ detected during instantiation of type "C" at line 12 (8): error #308: class "A::B" (declared at line 4) is inaccessible using C = A::B; // Already the declaration of this alias template is ill-formed ^ detected during instantiation of type "C" at line 13 (14): warning #1: last line of file ends without a newline } ^ MSVC error message: (8): error C2248: 'A::B': cannot access private struct declared in class 'A' (4): note: see declaration of 'A::B' (2): note: see declaration of 'A' Compiler returned: 2
[Bug c++/66698] Multiple inheritance from instantiations of template class and what about access to member functions
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66698 Andrew Pinski changed: What|Removed |Added Resolution|--- |FIXED Status|UNCONFIRMED |RESOLVED --- Comment #2 from Andrew Pinski --- Also fixed in GCC 7+.
[Bug c++/66698] Multiple inheritance from instantiations of template class and what about access to member functions
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66698 Andrew Pinski changed: What|Removed |Added Known to fail||6.1.0, 6.4.0 Target Milestone|--- |7.0 Known to work||7.1.0, 8.1.0 --- Comment #1 from Andrew Pinski --- More self contained testcase (rather than the code snipit in comment #0): #include #include template class S { public: void add (C c) { ++cnt; } size_t size () const { return cnt; } private: size_t cnt {}; }; struct Foo1 {}; struct Foo2 {}; struct Foo3 {}; class Z : public S, public S, public S { public: using S::add; using S::add; using S::add; using S::size;// (1) using S::size;// (2) using S::size;// (3) }; int main(void) { Z z; z.add (Foo1 {}); z.add (Foo1 {}); z.add (Foo2 {}); std::cout << z.size () << std::endl; }
[Bug c++/66484] Exception specification can declare a pointer to incomplete type, which is against C++ standard section 15.1
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66484 Andrew Pinski changed: What|Removed |Added Keywords||diagnostic --- Comment #3 from Andrew Pinski --- We have been erroring out with -pedantic-errors since at least GCC 5.1.0. The question becomes do we want to turn this into a non-pedwarn and do we care enough about throw() since they are deprecated in C++11 and the default C++ standard in GCC11+ is C++17 where throw() is no longer supported?
[Bug testsuite/101782] [12 regression] Excess errors in g++.dg/cpp2a/concepts-pr67774.C after r12-2729
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101782 Jonathan Wakely changed: What|Removed |Added Last reconfirmed||2021-08-04 Assignee|unassigned at gcc dot gnu.org |redi at gcc dot gnu.org Ever confirmed|0 |1 Status|UNCONFIRMED |ASSIGNED Target Milestone|--- |12.0
[Bug fortran/101350] ICE in build_function_decl, at fortran/trans-decl.c:2376
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101350 --- Comment #2 from kargl at gcc dot gnu.org --- (In reply to kargl from comment #1) > diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c > index 45c3ad387ac..897cfde3ed3 100644 > --- a/gcc/fortran/resolve.c > +++ b/gcc/fortran/resolve.c > @@ -15307,6 +15308,15 @@ resolve_symbol (gfc_symbol *sym) > return; >sym->resolve_symbol_called = 1; > > + /* Symbol cannot have an external attribute and be a contained procedure. > */ > + if (sym->attr.external && sym->attr.contained) > +{ > + gfc_error ("Contained procedure %qs at %L conflicts with " > + "a previously declared EXTERNAL procedure", > + sym->name, >declared_at); > + return; > +} > + >/* No symbol will ever have union type; only components can be unions. > Union type declaration symbols have type BT_UNKNOWN but flavor FL_UNION > (just like derived type declaration symbols have flavor FL_DERIVED). */ This patch works to fix the reported problem. It, however, causes a number regressions, which can be traced to confusing and conflicting settings of attributes. In particular, attr.external=1 is often set when attr.proc=PROC_MODULE or attr.module_procedure=1 occur. This should not happen as an external procedure can never be a module procedure.
[Bug c++/65869] Incorrect overload resolution in function return statement
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65869 Andrew Pinski changed: What|Removed |Added See Also||https://gcc.gnu.org/bugzill ||a/show_bug.cgi?id=80452, ||https://gcc.gnu.org/bugzill ||a/show_bug.cgi?id=91427 --- Comment #5 from Andrew Pinski --- Some interesting history here: GCC7.5.0 and before accepted the code in C++11, C++14 and C++17 modes GCC8+ reject the code in C++11, C++14, and C++17 modes with the following error message: : In function 'Derived foo()': :14:10: error: cannot bind rvalue reference of type 'Base&&' to lvalue of type 'Base' return result; ^~ :9:5: note: initializing argument 1 of 'Derived::Derived(Base&&)' Derived(Base&&); ^~~ GCC11+ started to accept the code in C++20 mode. GCC8 change was due to PR 80452. GCC11 in C++20 mode seems most likely due to PR 91427. The patch for PR 91427, made it sound like it was defect report for earlier versions of the C++ standards too: For the time being I'm limiting the new semantics to C++20 mode; since it was moved as a DR, we will probably want to apply the change to other standard modes as well once we have a better sense of the impact on existing code, probably in GCC 12.