https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53499
--- Comment #3 from Ed Catmur ---
I believe this also causes gcc to reject (as ambiguous) the example in
[temp.func.order]/3:
struct A { };
template struct B {
template int operator*(R&); // #1
};
template int operator*(T&, R&);
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81420
--- Comment #1 from Ed Catmur ---
icc 18 also has this bug. MSVC 19 2017 (with /permissive-) miscompiles by
copying the bound subobject to a separate complete object before binding, so
the reference does not dangle but the derived and base class
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78753
Ed Catmur changed:
What|Removed |Added
CC||ed at catmur dot co.uk
--- Comment #1 from
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81021
--- Comment #29 from Ed Catmur ---
Created attachment 41750
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41750&action=edit
stack-use-after-scope-read.cpp
Another testcase, no library required. Slight difference here is that the
offending
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: ed at catmur dot co.uk
Target Milestone: ---
The following program crashes gcc versions 5.1 to recent trunk (20170517 on
godbolt.org) when compiled with -std=c++11 -g (the -g seems to be
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80605
--- Comment #8 from Ed Catmur ---
Looks to have been fixed by r247816.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80667
--- Comment #1 from Ed Catmur ---
note: the rationale for using std::integral_constant rather than a T non-type
argument is CWG 1315.
Clang rejects in -std=c++1z:
:22:63: error: ambiguous partial specializations of 'Impl >'
Impl> foo()
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: ed at catmur dot co.uk
Target Milestone: ---
The following invalid code ICEs:
template struct C;
template<> struct C { C(int, int) {} };
auto k =
++
Assignee: unassigned at gcc dot gnu.org
Reporter: ed at catmur dot co.uk
Target Milestone: ---
struct B { B(); };
struct D : B {
using B::B;
D(char);
};
D d;
prog.cc:6:3: internal compiler error: Segmentation fault
D d;
^
0xb0569f crash_signal
/home/heads/gcc/gcc
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: ed at catmur dot co.uk
Target Milestone: ---
template struct S;
template struct S<0, T, A> {};
int i;
S<0, int*, &i> r; // OK
S<0, int&, i&g
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60027
Ed Catmur changed:
What|Removed |Added
CC||ed at catmur dot co.uk
--- Comment #1 from
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70536
Ed Catmur changed:
What|Removed |Added
CC||ed at catmur dot co.uk
--- Comment #1 from
ormal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: ed at catmur dot co.uk
Target Milestone: ---
Per http://wiki.dwarfstd.org/index.php?title=C%2B%2B0x:_Variadic_templates
DW_TAG_GNU_formal_parameter_pack should have a DW_AT_name
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: ed at catmur dot co.uk
Target Milestone: ---
#include
template struct S { static void f(); };
extern std::string s;
void g() { S::f(); }
asm emitted for g
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67033
--- Comment #1 from Ed Catmur ---
Created attachment 36075
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36075&action=edit
pr67033.patch
This is kinda ugly.
The problem is that before C++1z, a non-type template argument that evaluates
to
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: ed at catmur dot co.uk
Target Milestone: ---
template struct S { };
int x;
S<&x == &x> s;
// error: template
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66596
--- Comment #1 from Ed Catmur ---
Note: error produced is:
prog.cc: In instantiation of 'void g() [with T = int]':
prog.cc:6:21: required from here
prog.cc:5:30: error: 'U::f()' is not a member of 'V'
template void g() { t.f(); }
: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: ed at catmur dot co.uk
Target Milestone: ---
#include
#include
struct S { S(int) { puts("S(int)"); } ~S() { puts("~S()"); } };
int main() {
std::ini
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65775
--- Comment #1 from Ed Catmur ---
Credit to FISOCPP (http://stackoverflow.com/q/29628571/567292) for finding this
bug.
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: ed at catmur dot co.uk
If a function declaration has a late-specified return type the usual checks on
return types are bypassed:
using Qi = int const volatile;
Qi q1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: ed at catmur dot co.uk
void f() { [](auto...){}(); }
prog.cc: In function 'void f()':
prog.cc:1:26: error: no matc
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: ed at catmur dot co.uk
The following code should be rejected, but is accepted by g++ 4.8.1, in both
C++03 and C++11 mode:
struct s { s(const char *); } a
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56239
Bug #: 56239
Summary: parse error calling operator() on parenthesized
value-initialized temporary
Classification: Unclassified
Product: gcc
Version: 4.8.0
S
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55724
--- Comment #1 from Ed Catmur 2012-12-17 19:25:39 UTC
---
It's not entirely clear in the standard, but my understanding of 14.8.2p5 is
that default template argument substitution is contemporaneous to template
argument deduction for any pa
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54165
Ed Catmur changed:
What|Removed |Added
CC||ed at catmur dot co.uk
--- Comment #1 from
25 matches
Mail list logo