https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117317
--- Comment #1 from Amir Kirsh ---
A more simple example, same internal compiler error:
class Base {
public:
constexpr bool operator==(const Base& b) const {
return getIdentity() == b.getIdentity();
}
private:
constexpr virt
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: kirshamir at gmail dot com
Target Milestone: ---
The following code results with internal compiler error
: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: kirshamir at gmail dot com
Target Milestone: ---
The simple cases of lifetime extension are working.
But all below do not obey the rules.
Lifetime should have been
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104850
--- Comment #2 from Amir Kirsh ---
// adding the required include to the example
#include // for nullptr_t
template
struct uptr {
uptr(nullptr_t) {}
~uptr() {
delete (new T);
}
};
class A
{
public:
A();
~A();
private:
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: kirshamir at gmail dot com
Target Milestone: ---
The following code is rejected as trying to use incomplete
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67969
Amir Kirsh changed:
What|Removed |Added
CC||kirshamir at gmail dot com
--- Comment #4
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100992
--- Comment #2 from Amir Kirsh ---
Maybe a dup of:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96592
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: kirshamir at gmail dot com
CC: kirshamir at gmail dot com
Target Milestone: ---
The second static_assert below fails, should pass:
#include
struct F {
F
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100838
--- Comment #1 from Amir Kirsh ---
This main:
int main() {
MyString s1 = MyString{"Hello"}; // same also for rounded brackets
std::cout << __LINE__ << std::endl;
}
works as expected.
Output with C++14 and -fno-elide-constructors:
ctor
c
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: kirshamir at gmail dot com
Target Milestone: ---
Code: https://godbolt.org/z/jKnKTds7s
#include
class MyString {
public:
MyString(const char* s = "") {
std::cou
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: kirshamir at gmail dot com
Target Milestone: ---
Use of placement new requires #include
Without this include the error message is something like:
error: no matching
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97402
--- Comment #3 from Amir Kirsh ---
Playing with the code even leads to compiler seg-fault, see:
https://stackoverflow.com/a/65654043/2085626
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97402
Amir Kirsh changed:
What|Removed |Added
CC||kirshamir at gmail dot com
--- Comment #2
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97288
--- Comment #1 from Amir Kirsh ---
For user defined type this behavior might be ok, as the order of evaluation of
parameters is not defined, however this behavior is reflected also for
primitive types:
int main() {
int a {5};
(a += 1) +=
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: kirshamir at gmail dot com
Target Milestone: ---
Following code results with different result in gcc and clang, seems that gcc
get wrong the sequence before
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: kirshamir at gmail dot com
Target Milestone: ---
#include
#include
template
void print(const Tuple& tup) {
// P0846R0: ADL should work
IRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: kirshamir at gmail dot com
Target Milestone: ---
template
auto convert(U&& t) {
// fails - see link to compiler explorer:
return T{s
: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: kirshamir at gmail dot com
Target Milestone: ---
template
class number {
T num;
public:
number(T num = 0): num(num) {}
friend auto add(auto a, auto b);
};
auto add
18 matches
Mail list logo