[Bug c++/115378] New: [ice-on-valid] code using friend injection is crashing gcc since 14

2024-06-06 Thread eric.niebler at gmail dot com via Gcc-bugs
Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- the following valid code crashes gcc-14 and gcc-trunk. clang accepts it, as does gcc-13. see https://godbolt.org/z/s9frvq3Pv

[Bug c++/115114] New: aggregate initialization with parens fails when there is a base class

2024-05-15 Thread eric.niebler at gmail dot com via Gcc-bugs
Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- I believe the following is valid C++20: struct get_answer {}; template struct with : Query { Value value

[Bug c++/114138] New: [c++2b] ICE on valid code using `auto(expr)` DECAY-COPY

2024-02-27 Thread eric.niebler at gmail dot com via Gcc-bugs
Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- Compile the following with -c++=2b: ``` namespace std { template T&& declval() noexcept requires true; template void

[Bug c++/111018] New: lexical interpretation of friendship rules depends on whether the friend function has a definition

2023-08-14 Thread eric.niebler at gmail dot com via Gcc-bugs
: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- Starting in gcc 12, transitive friendship is extended to friend functions that are defined

[Bug c++/110681] New: bogus warning -Wreturn-type for lambda in tparam list

2023-07-15 Thread eric.niebler at gmail dot com via Gcc-bugs
Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- The following valid C++20 code causes gcc trunk to erroneously warn about a missing return statement. template constexpr auto y = X; template using C

[Bug c++/110680] New: erroneous error "non-template type 'C' used as a template"

2023-07-15 Thread eric.niebler at gmail dot com via Gcc-bugs
ty: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- The following valid C++20 is rejected by gcc trunk: template struct S { auto f() { return X; } }; template

[Bug c++/110552] New: ICE on valid code in maybe_instantiate_noexcept

2023-07-04 Thread eric.niebler at gmail dot com via Gcc-bugs
: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- Created attachment 55469 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=55469=edit self-contained source file Compile the attached source with -std=c++20. Res

[Bug c++/110536] New: Bogus -Wstringop-overflow warning in std::transform

2023-07-03 Thread eric.niebler at gmail dot com via Gcc-bugs
Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- Compile the following with -O3 -std=c++17 -Wall <<<<< #include #include template std::vector make_type_param_vector(std::initializer_list c

[Bug libstdc++/110507] New: cannot initialize immovable type in a std::tuple

2023-06-30 Thread eric.niebler at gmail dot com via Gcc-bugs
: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- The following should work since C++17, when C++ got guaranteed copy elision. #include struct immovable { immovable() = default; immovable(immovable

[Bug c++/110441] New: c++17 deferred materialization of temporaries fails when calling class static with member syntax

2023-06-27 Thread eric.niebler at gmail dot com via Gcc-bugs
Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- struct immovable { immovable() = default; immovable(immovable &&) = delete; };

[Bug c++/109790] internal compiler error in write_member_name, at cp/mangle.cc:2992

2023-05-09 Thread eric.niebler at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109790 --- Comment #1 from Eric Niebler --- Possible dupe of https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100632

[Bug c++/109790] New: internal compiler error in write_member_name, at cp/mangle.cc:2992

2023-05-09 Thread eric.niebler at gmail dot com via Gcc-bugs
Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- Created attachment 55032 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=55032=edit the result of -freport-bug Comp

[Bug c++/109782] New: erroneous error "'auto' parameter not permitted in this context" for generic lambda in tparam list

2023-05-08 Thread eric.niebler at gmail dot com via Gcc-bugs
Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- template struct C {}; ...compiled with `-std=c++20` results in: :1:23: error: 'auto'

[Bug c++/109781] New: erroneous error "lambda-expression in template parameter type" for tparam lambda returning a lambda

2023-05-08 Thread eric.niebler at gmail dot com via Gcc-bugs
Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- template struct C {}; ... on trunk with `-std=c++20` results in: : In lambda funct

[Bug c++/105667] [C++20] lambas in template argument sometimes causes an ICE (seg fault)

2023-05-08 Thread eric.niebler at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105667 Eric Niebler changed: What|Removed |Added CC||eric.niebler at gmail dot com

[Bug c++/109754] New: [ICE] internal compiler error: in coerce_template_parms, at cp/pt.cc:9183

2023-05-05 Thread eric.niebler at gmail dot com via Gcc-bugs
: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- Created attachment 55012 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=55012=edit result of -freport-bug includ

[Bug c++/108848] New: Accessing class static member of non-dependent expression using member syntax in dependent context is rejected

2023-02-20 Thread eric.niebler at gmail dot com via Gcc-bugs
: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- Clang accepts the following, gcc thinks the expression in the line

[Bug libstdc++/97876] stop_token header doesn't compile on clang-8 with -std=c++20

2020-11-19 Thread eric.niebler at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97876 --- Comment #5 from Eric Niebler --- > Github's poor life choices should not be our problem ;-) I thought you'd say that. :-) > If clang-8 doesn't ship and doesn't work with GCC's > , I would interpret that as you can't test with >

[Bug libstdc++/97876] stop_token header doesn't compile on clang-8 with -std=c++20

2020-11-17 Thread eric.niebler at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97876 --- Comment #3 from Eric Niebler --- It seems like GitHub actions uses the latest libstdc++ by default when testing even with old (e.g., clang-4) toolsets. That seems busted, but regardless, this is now breaking _all_ my Linux clang tests for

[Bug libstdc++/97876] New: stop_token header doesn't compile on clang-8 with -std=c++20

2020-11-17 Thread eric.niebler at gmail dot com via Gcc-bugs
Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- Compiling header with clang-8 in C++20 mode results in this: In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/10

[Bug c++/94827] New: [ICE] [regression] crash on requires clause in tparam list

2020-04-28 Thread eric.niebler at gmail dot com
Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- Try the following code with -std=c++2a template void foo(T) {} The result: :20:44: internal compiler error: tree check: accessed elt 1

[Bug c++/94808] New: [ICE] [Regression] Segfault during diagnostics from concept check failure

2020-04-27 Thread eric.niebler at gmail dot com
: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- Created attachment 48385 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48385=edit Unreduced, preprocessed sou

[Bug c++/70790] Can't mangle noexcept expressions

2020-04-07 Thread eric.niebler at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70790 --- Comment #1 from Eric Niebler --- Still present on trunk, four years later.

[Bug libstdc++/93936] New: [ranges] std::ranges::split_view<...>::_OuterIter<...>::__current() is private within this context

2020-02-25 Thread eric.niebler at gmail dot com
ion: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- The following program fails to compile with -std=c++2a

[Bug c++/93895] ICE (segmentation fault) in use of __is_constructible intrinsic

2020-02-23 Thread eric.niebler at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93895 --- Comment #1 from Eric Niebler --- Here is the error: repro.cpp.i: In instantiation of ‘bool bf::{anonymous}::bb, false> >’: repro.cpp.i:158:67: required from ‘df::operator Container() [with Container = view_facade,

[Bug c++/93895] New: ICE (segmentation fault) in use of __is_constructible intrinsic

2020-02-23 Thread eric.niebler at gmail dot com
Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- Created attachment 47892 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=47892=edit result of creduce on the error Happ

[Bug c++/93741] New: [10 regression] ICE in incomplete concept definition

2020-02-14 Thread eric.niebler at gmail dot com
Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- The following (very invalid) code fragment causes gcc-trunk to ICE: template struct a { b({ concept c =

[Bug c++/93667] [10 regression] ICE in esra with nested [[no_unique_address]] field

2020-02-11 Thread eric.niebler at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93667 --- Comment #3 from Eric Niebler --- > Is this a duplicate / variant of > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93516? Bug 93516 is not triggered by [[no_unique_addresss]] and the ICE is not on the same line. That's why I created a new

[Bug c++/93667] New: [10 regression] ICE in esra with nested [[no_unique_address]] field

2020-02-10 Thread eric.niebler at gmail dot com
Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- Compile with: -std=c++2a -O2 struct a {}; struct b { [[no_unique_address]] a aq; }; struct c { int d

[Bug c++/92633] New: [concepts] constrained lambda with placehoder syntax getting wrong substitution

2019-11-22 Thread eric.niebler at gmail dot com
: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- The following code fails to compile with trunk with -std=c++2a template concept different_than = !__is_same_as(A, B

[Bug c++/89068] New: Nested inline anonymous namespaces are erroneously reported as conflicting

2019-01-25 Thread eric.niebler at gmail dot com
: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- The following valid code is rejected by g++ -std=c++XY for any XY >= 11: inline namespace { inline namespace {} } inl

[Bug c++/86098] New: [concepts] canonical types differ for identical types

2018-06-09 Thread eric.niebler at gmail dot com
Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- Compile with -std=c++2a -O3 -fconcepts namespace std { template class future; template class promise; } template T&& declval() requires true;

[Bug c++/84810] New: [concepts][c++20] constraints of lambdas with explicit template parameters are not checked

2018-03-10 Thread eric.niebler at gmail dot com
Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- The following code declares a C++20 lambda with a constraint. The invocation of the lambda should be ill

[Bug c++/68093] [concepts] friend function declarations that differ only by constraints are rejected as redefinitions

2017-10-13 Thread eric.niebler at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68093 --- Comment #1 from Eric Niebler --- Still happens on trunk, 2 years later: template concept bool True = true; template struct S { friend bool operator==(S, int) requires True { return true; } friend bool operator==(S, int) requires

[Bug c++/82507] New: [concepts] premature substitution into constraint of non-template member function

2017-10-10 Thread eric.niebler at gmail dot com
: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- According to Andrew Sutton, the following code should compile: template concept bool True = true; template concept

[Bug libstdc++/71187] declval() can be implemented without requiring a template instantiation

2017-09-14 Thread eric.niebler at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71187 --- Comment #3 from Eric Niebler --- I suppose, but I doubt it would matter much. add_rvalue_reference is not used nearly as frequently as declval (except in the current implementation of declval).

[Bug c++/80488] New: Erroneous error "lambda-expression in template argument"

2017-04-21 Thread eric.niebler at gmail dot com
ty: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- Compile with -std=gnu++1z: template using x = void; using Y = x<+[]{}>; The above code creates a lambda and then applie

[Bug libstdc++/78231] Should std::sort use unqualifed iter_swap?

2016-11-08 Thread eric.niebler at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78231 Eric Niebler changed: What|Removed |Added CC||eric.niebler at gmail dot com

[Bug c++/78003] [7 Regression] c++17: ICE in build_over_call, at cp/call.c:7847

2016-10-27 Thread eric.niebler at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78003 Eric Niebler changed: What|Removed |Added CC||eric.niebler at gmail dot com

[Bug c++/78137] [C++1z] braced initializer in defaulted function argument causes ICE

2016-10-27 Thread eric.niebler at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78137 Eric Niebler changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|---

[Bug c++/78137] New: [C++1z] braced initializer in defaulted function argument causes ICE

2016-10-27 Thread eric.niebler at gmail dot com
Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- With -std=gnu++1z, the following code ICEs the compiler: ``` struct S {}; template void foo(T t = {}) {} int main() { foo

[Bug libstdc++/77537] [6 Regression] pair constructors do not properly SFINAE

2016-09-26 Thread eric.niebler at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77537 --- Comment #12 from Eric Niebler --- Likewise

[Bug libstdc++/71187] New: declval() can be implemented without requiring a template instantiation

2016-05-18 Thread eric.niebler at gmail dot com
: enhancement Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- declval gets used *everywhere*. It doesn't need to instantiate a template. Rather than: template inline

[Bug c++/71117] New: [6.1 regression] Overeager application of conversion to function pointer during overload resolution of call to function object

2016-05-14 Thread eric.niebler at gmail dot com
Version: 6.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- Casey Carter recently posted this to the committee

[Bug c++/71116] New: Lambdas should not be literal types

2016-05-14 Thread eric.niebler at gmail dot com
++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- #include template void oops(Fn) { static_assert(!std::is_literal_type::value, "oops"); } int main() { oops([]{}); } Yields: test.cpp: In instantiation of ‘vo

[Bug c++/70790] New: Can't mangle noexcept expressions

2016-04-25 Thread eric.niebler at gmail dot com
++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- #include template void foo(T, typename std::enable_if<noexcept(T(std::declval())), int>::type) { } int main() { foo(0,0); } Results in: Test.cpp: In instantiation of ‘void

[Bug c++/68434] [concepts] ICE: same canonical type node for different types

2015-11-20 Thread eric.niebler at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68434 Eric Niebler changed: What|Removed |Added CC||eric.niebler at gmail dot com

[Bug c++/67148] New: [concepts] Failed concept check when indirecting through a constrained trait

2015-08-07 Thread eric.niebler at gmail dot com
Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- I've reduced this as much as I can. Test case below. The two static asserts are testing the same thing, AFAICT. One

[Bug c++/67147] New: [concepts] ICE on checking concept with default template arguments

2015-08-07 Thread eric.niebler at gmail dot com
: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- template class F, class I1, class I2 = I1 concept bool IndirectCallableRelation() { return true; } template class, class

[Bug c++/67148] [concepts] Failed concept check when indirecting through a constrained trait

2015-08-07 Thread eric.niebler at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67148 --- Comment #1 from Eric Niebler eric.niebler at gmail dot com --- If I replace the variadic Same concept with the binary one below, the problem goes away. templateclass T, class U concept bool Same() { return __is_same_as(T,U); }

[Bug c++/67152] New: [concepts] bogus partial specialization of ‘fooT’ after instantiation error

2015-08-07 Thread eric.niebler at gmail dot com
Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- The error happens on constrained partial specializations of a template that has already been instantiated

[Bug c++/67139] [concepts] ICE on checking concepts with void with variable template

2015-08-06 Thread eric.niebler at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67139 Eric Niebler eric.niebler at gmail dot com changed: What|Removed |Added Summary|[concepts] ICE on checking |[concepts

[Bug c++/67138] New: [concepts] bogus not more constrained error for more constrained partial specialization

2015-08-06 Thread eric.niebler at gmail dot com
Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- template class T concept bool _Auto = true; template _Auto T struct test {}; template _Auto T

[Bug c++/67139] [concepts] ICE on checking concepts with void

2015-08-06 Thread eric.niebler at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67139 --- Comment #2 from Eric Niebler eric.niebler at gmail dot com --- Thanks, except that that is invalid code, and this bug is an ICE-on-valid. Here's the equivalent valid repro case: template class T constexpr typename T::type::value_type _v = T

[Bug c++/67139] New: [concepts] ICE on checking concepts with void

2015-08-06 Thread eric.niebler at gmail dot com
Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- Created attachment 36141 -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=36141action=edit preprocessed source archive Compile the attached code with -std=gnu++1z

[Bug c++/67070] New: [concepts] Concept with negation and disjunction not checked correctly

2015-07-30 Thread eric.niebler at gmail dot com
: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- Created attachment 36093 -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=36093action=edit preprocessed source archive

[Bug c++/66988] New: [concepts] concept with template template parameter satisfied erroneously

2015-07-24 Thread eric.niebler at gmail dot com
Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- Pretty sure the static assert in the program below should not fire, but it does. #include type_traits template

[Bug c++/66985] New: [concept] template introduction with template template parameter and template parameter pack causes ICE

2015-07-24 Thread eric.niebler at gmail dot com
: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- Code: template template class... class T, class... U concept bool _Valid = requires

[Bug c++/66988] [concepts] concept with template template parameter satisfied erroneously

2015-07-24 Thread eric.niebler at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66988 --- Comment #2 from Eric Niebler eric.niebler at gmail dot com --- I thought that, too. But this program has the same problem: #include type_traits template template class class T, class U concept bool _Valid = requires { typename TU

[Bug c++/66962] [concepts] overloaded function causing memory blow-up and ICE

2015-07-24 Thread eric.niebler at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66962 --- Comment #11 from Eric Niebler eric.niebler at gmail dot com --- Removing the disjunction in the Constructible concept causes memory usage and compile time to drop to zero. The word from Andrew is that this is simply a quadratic algorithm

[Bug c++/66962] [concepts] overloaded function causing memory blow-up and ICE

2015-07-23 Thread eric.niebler at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66962 --- Comment #3 from Eric Niebler eric.niebler at gmail dot com --- I can't make sense of that error, or understand why you get that and I don't. You tried the command line I gave above, with the latest concept-gcc built from source?

[Bug c++/66962] [concepts] overloaded function causing memory blow-up and ICE

2015-07-23 Thread eric.niebler at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66962 --- Comment #9 from Eric Niebler eric.niebler at gmail dot com --- Jason, is there anything I can do in my code to avoid the quadratic explosion while we wait for Andrew to fix the bug?

[Bug c++/66962] [concepts] overloaded function causing memory blow-up and ICE

2015-07-23 Thread eric.niebler at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66962 Eric Niebler eric.niebler at gmail dot com changed: What|Removed |Added Attachment #36028|0 |1

[Bug c++/66962] [concepts] overloaded function causing memory blow-up and ICE

2015-07-23 Thread eric.niebler at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66962 --- Comment #1 from Eric Niebler eric.niebler at gmail dot com --- This is a blocker for STL2.

[Bug c++/66962] New: [concepts] overloaded function causing memory blow-up and ICE

2015-07-21 Thread eric.niebler at gmail dot com
Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- Created attachment 36028 -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=36028action=edit preprocessed source Compile with: g

[Bug c++/66841] [concepts] bogus error invalid reference to function concept when function concept is overloaded

2015-07-12 Thread eric.niebler at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66841 --- Comment #2 from Eric Niebler eric.niebler at gmail dot com --- This answer is deeply unsatisfying. I want valid expressions, not traits. And if std::is_constructible doesn't do *exactly* what I want (and it doesn't) I have to author my own

[Bug c++/66834] [concepts] concept parameter kind mismatch causes hard error

2015-07-11 Thread eric.niebler at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66834 --- Comment #3 from Eric Niebler eric.niebler at gmail dot com --- I was thinking that overloading the Constructible concept would be a conforming way to express this, but it doesn't seems to work. Any clue why? template class T, class U

[Bug c++/66834] [concepts] concept parameter kind mismatch causes hard error

2015-07-11 Thread eric.niebler at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66834 --- Comment #6 from Eric Niebler eric.niebler at gmail dot com --- Exhaustively overloading Constructible to avoid the kind mismatch and the ambiguity runs into a different problem: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66841 I haven't

[Bug c++/66834] [concepts] concept parameter kind mismatch causes hard error

2015-07-11 Thread eric.niebler at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66834 --- Comment #5 from Eric Niebler eric.niebler at gmail dot com --- I would expect a partial ordering to prefer the two-parameter overload in that case. But yeah, it's a separate issue.

[Bug c++/66841] New: [concepts] bogus error invalid reference to function concept when function concept is overloaded

2015-07-11 Thread eric.niebler at gmail dot com
: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- This is related to the discussion in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66834

[Bug c++/66758] [concepts] ICE compiler deeply confused by simple-seeming concept definition

2015-07-10 Thread eric.niebler at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66758 --- Comment #9 from Eric Niebler eric.niebler at gmail dot com --- Created attachment 35950 -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35950action=edit Bug number 4 ICE ICE baby

[Bug c++/66758] [concepts] ICE compiler deeply confused by simple-seeming concept definition

2015-07-10 Thread eric.niebler at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66758 Eric Niebler eric.niebler at gmail dot com changed: What|Removed |Added Status|RESOLVED|UNCONFIRMED

[Bug c++/66758] [concepts] ICE compiler deeply confused by simple-seeming concept definition

2015-07-10 Thread eric.niebler at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66758 Eric Niebler eric.niebler at gmail dot com changed: What|Removed |Added Status|RESOLVED|UNCONFIRMED

[Bug c++/66758] [concepts] ICE compiler deeply confused by simple-seeming concept definition

2015-07-10 Thread eric.niebler at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66758 --- Comment #4 from Eric Niebler eric.niebler at gmail dot com --- Created attachment 35948 -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35948action=edit Preprocessed source, bug the third The previous fix caused the code in attachment #3

[Bug c++/66832] New: [concepts] parameters in requires clauses conflicting with function arguments

2015-07-10 Thread eric.niebler at gmail dot com
Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- template class T, class U, unsigned N requires requires (T t, U u) { t.foo(); u.foo(); } void foo_all( T (t)[N

[Bug c++/66834] New: [concepts] concept parameter kind mismatch causes hard error

2015-07-10 Thread eric.niebler at gmail dot com
Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- Before rev 225651 (the fix for #66758), the following worked. It no longer does. Not sure if it's legit. template class From

[Bug c++/66758] New: [concepts] ICE compiler deeply confused by simple-seeming concept definition

2015-07-03 Thread eric.niebler at gmail dot com
Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- Created attachment 35906 -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35906action=edit preprocessed source

[Bug c++/66758] [concepts] ICE compiler deeply confused by simple-seeming concept definition

2015-07-03 Thread eric.niebler at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66758 --- Comment #1 from Eric Niebler eric.niebler at gmail dot com --- Created attachment 35907 -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35907action=edit preprocessed source, bug #2(?) This might be the same bug, but the error

[Bug c++/66712] New: [concepts] variadic concepts cause havoc

2015-06-30 Thread eric.niebler at gmail dot com
: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- template class T, class...Args concept bool _Constructible_ = requires (Args...args) { T{ ((Args)(args))... }; }; template class T, class...Args constexpr bool

[Bug c++/64970] New: Hard error instead of SFINAE for expression in nested template alias

2015-02-07 Thread eric.niebler at gmail dot com
Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com The following code gives a hard error. I believe it should not. templatetypename T T declval(); templatetypename T struct void_ { using type = void

[Bug c++/64892] New: C++1y: generic lambdas, decltype(auto), and rvalue references, oh my!

2015-01-31 Thread eric.niebler at gmail dot com
Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com In the following code, gcc seems to be getting the value category wrong for the return type of the generic lambda: #include utility int main

[Bug c++/64892] C++1y: generic lambdas, decltype(auto), and rvalue references, oh my!

2015-01-31 Thread eric.niebler at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64892 --- Comment #1 from Eric Niebler eric.niebler at gmail dot com --- I think this is user error. I was confused between the difference between decltype(x.y) and decltype((x.y)). It seems the decltype(auto) is semantically the same as decltype((x.y

[Bug c++/63730] New: C++11 ICE REGRESSION mangling template alias into function template

2014-11-03 Thread eric.niebler at gmail dot com
Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Compile this: template class T using identity_t = T; template template class class It void test() { } int main() { testidentity_t

[Bug c++/63438] New: conditional operator deducing lvalues incorrectly

2014-10-02 Thread eric.niebler at gmail dot com
: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target: i686-pc-cygwin Problem is with the following code: int i = 0; const int j = 0; static_assert(std::is_samedecltype(true? i : j), int const ::value, ); I expect

[Bug c++/62219] New: [c++11] Spurious error for lambda in a friend function of a class template with a default template parameters

2014-08-21 Thread eric.niebler at gmail dot com
: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com This code: template class = void struct S { friend void foo( S

[Bug c++/61738] New: ICE using template template parameters and template aliases

2014-07-07 Thread eric.niebler at gmail dot com
Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Created attachment 33083 -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33083action=edit preprocessed source The attached preprocessed code, compiled

[Bug c++/60803] Trivial example of overloading in the presence of inheritance fails

2014-04-10 Thread eric.niebler at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60803 --- Comment #3 from Eric Niebler eric.niebler at gmail dot com --- B

[Bug c++/60798] New: Access checking of template alias not done at the point of use

2014-04-09 Thread eric.niebler at gmail dot com
Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com The following compiles with clang, but not with gcc-4.8.2 templatetypename Derived using base_t = typename Derived

[Bug c++/60799] New: access checking within injected friend functions does not happen in the context of the enclosing class

2014-04-09 Thread eric.niebler at gmail dot com
: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com The following compiles with clang, but not with gcc-4.8.2 / templatetypename

[Bug c++/60803] New: Trivial example of overloading in the presence of inheritance fails

2014-04-09 Thread eric.niebler at gmail dot com
Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com The following very simple code fails to compile: /// templatetypename Ts struct refines : Ts {}; struct A {}; struct B

[Bug c++/59361] cannot expand parenthesized pack expression

2014-04-01 Thread eric.niebler at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59361 --- Comment #1 from Eric Niebler eric.niebler at gmail dot com --- Anybody?

[Bug c++/59360] New: Complicated bind expression causing infinite recursive template instantiations

2013-12-01 Thread eric.niebler at gmail dot com
: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com This code compiles with clang 3.3 but doesn't compile with gcc 4.8.2 with -std=gnu++11: #include vector #include functional #include

[Bug c++/59361] New: cannot expand parenthesized pack expression

2013-12-01 Thread eric.niebler at gmail dot com
++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com The following compiles with clang but doesn't with g++ 4.8.2 with -std=gnu++11: templatebool ...Bs struct and_ { constexpr static bool value{true}; }; templatetypename T

[Bug c++/59296] New: [c++11] ref-qualified member function is ambiguous

2013-11-25 Thread eric.niebler at gmail dot com
: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com The following code fails to compile: struct S { constexpr int foo() const { return 0; } constexpr int foo() const { return 42; } }; int main() { constexpr int i = S{}.foo

[Bug c++/59244] New: [c++11] can't specialize template on ref-qualified member function pointer type

2013-11-21 Thread eric.niebler at gmail dot com
: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com I believe the following should compile: ``` templatetypename T struct U; templatetypename S, typename T struct US (T

[Bug c++/59123] New: [c++11] can't forward-declare an object later defined constexpr

2013-11-13 Thread eric.niebler at gmail dot com
Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Clang accepts the following. I think it's legal. g++ 4.8.1 rejects it: // Fwd-declarations struct S; extern const S s; // (... later) definitions struct S

[Bug c++/57764] New: class static constexpr variables cannot be references

2013-06-30 Thread eric.niebler at gmail dot com
Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com constexpr int x = 42; struct S { static constexpr int const y = x; }; constexpr int const S::y; ... gives: $ /usr/local/gcc-4.8/bin/g++ -std=gnu++11 -c main.cpp main.cpp

[Bug c++/57384] New: can't expand a parameter pack into a list of function types or function pointer types

2013-05-23 Thread eric.niebler at gmail dot com
Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com I believe all of the following 4 test cases should pass: templatetypename ...Ts struct list {}; templatetypename ...Ts struct

[Bug c++/57384] can't expand a parameter pack into a list of function types or function pointer types

2013-05-23 Thread eric.niebler at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57384 --- Comment #3 from Eric Niebler eric.niebler at gmail dot com --- Interesting. I filed a similar bug against clang (http://llvm.org/bugs/show_bug.cgi?id=16118), where Richard Smith seems to feel the test cases should be: templatetypename ...Ts

[Bug c++/54440] New: [c++11] g++ prematurely applying rule that a template parameter pack cannot be followed by a template parameter

2012-08-31 Thread eric.niebler at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54440 Bug #: 54440 Summary: [c++11] g++ prematurely applying rule that a template parameter pack cannot be followed by a template parameter Classification: Unclassified

  1   2   >