: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Code close to the following was noted in many user applications:
bool test1(const std::vector& in) {
retur
: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the following minimal C++ coroutine based generator:
#include
namespace {
struct generator {
struct
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the example:
unsigned mul(unsigned char c) {
if (c > 3) __builtin_unreachable();
return c << 18
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114660
--- Comment #1 from Antony Polukhin ---
The above godbolt link for an old version of GCC, here's for 14.0
https://godbolt.org/z/dTPYY1T9W
-optimization
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
For the following code:
int mul(int x, int y) {
return x * y * y * y * y;
}
with -O2
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the example:
template
int AtomicUpdate(int& atomic, Func updater) {
int old_value = atomic;
while (
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114391
--- Comment #2 from Antony Polukhin ---
> Is there something to optimize when foo() cannot be tail-called?
Yes. Just `catch (...) { throw; }`, no more restrictions. I do not even think,
that it should be the outer most EH region:
void foo();
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the example:
void foo();
void test() {
try {
foo();
} catch
: UNCONFIRMED
Keywords: missed-optimization
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the following example:
unsigned test(unsigned
: missed-optimization
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Sometimes people check for finite number using `__builtin_isnan(x
: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the minimized source code from libstdc++
```
struct string {
unsigned long _M_string_length;
enum
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
A few places in bits/basic_string.h have the following code:
```
if (__str._M_is_local())
{
_M_init_local_buf
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the example:
struct string_view {
const char* data;
unsigned long size;
};
void AppendToCharArray(char
Keywords: missed-optimization
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the example:
#include
void test1(std::size_t summ
nvalid
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the example:
```
#include
struct Foo {
friend auto operator<=>(const Foo
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110170
--- Comment #13 from Antony Polukhin ---
There's a typo at
https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/testsuite/g%2B%2B.target/i386/pr110170.C;h=e638b12a5ee2264ecef77acca86432a9f24b103b;hb=d41a57c46df6f8f7dae0c0a8b349e734806a837b#l87
It sh
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110457
--- Comment #4 from Antony Polukhin ---
Oh, if there's an disagreement I'm fine with closing this issue as
invalid/later/won't_fix
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the example:
struct array {
char data[4];
};
auto sample2(char c) {
array buffer = {c, 0, 0, 0
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110457
--- Comment #1 from Antony Polukhin ---
> However, it could be shortened to just:
sample1(char):
imul eax,edi,0x10111
ret; missed in previous message
: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
For the following code
int sample1(char c) {
return (c << 4) + (c << 8) + (c << 16) + c;
}
GCC-14 with -O2 generates the assem
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
There's a quite common rule "after the object was moved from it is in the
indeterminate state; it should be either destroyed or a new value should be
a
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the following example:
int test (__uint128_t a, __uint128_t b) {
__uint128_t __a = b | (a << 32);
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110170
--- Comment #2 from Antony Polukhin ---
-fno-trapping-math had no effect
Some tests with nans seem to produce the same results for both code snippets:
https://godbolt.org/z/GaKM3EhMq
-optimization
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Some of the C++ algorithms are written in attempt to avoid conditional jumps
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109931
--- Comment #3 from Antony Polukhin ---
> But that's because nothing in the function asserts this? Without fully
> specializing and unrolling on the constant "hello" argument at least.
Yes, I was hoping for that unrolling to happen
Probably a
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Function for comparing a lower-cased string with runtime string of known size:
constexpr bool ICaseEqualLowercase(const
: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the following 2 functions:
__float128 abs1(__float128 x) { return __builtin_fabsf128(x); }
__float128
normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
For GCC 12 the following code with -O2:
int compare_eq(int a, int b) {
return ((a < b) == (b < a));
}
compiles into t
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71579
--- Comment #22 from Antony Polukhin ---
> Maybe we should consider dropping all the static assertions from traits that
> are implemented using a compiler built-in.
Sounds like the right thing to do.
> Our type trait and the __has_virtual_dest
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
There's a research named "Biased Reference Counting: Minimizing Atomic
Operations in Garbage Collection" that shows how to speed up reference co
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Throwing an exception that is derived from std::exception is a common practice.
Cases when that practice
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=19661
--- Comment #10 from Antony Polukhin ---
Any progress?
Multiple compilers already eliminate the atexit call. Moreover, some of the
compilers even eliminate the guard variable after that
https://godbolt.org/z/dbdfMrroa
Note that the atexit elim
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the following code
bool test_naive(short i) {
return i % 100 == 0 || i % 400 == 0
RMED
Keywords: missed-optimization
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the following code
bool test_naive0(bool b, sho
ords: missed-optimization
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the following code
bool test_optim01(bool b, sho
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58487
Antony Polukhin changed:
What|Removed |Added
CC||antoshkka at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58050
Antony Polukhin changed:
What|Removed |Added
CC||antoshkka at gmail dot com
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the example:
struct NrvoPassed {
NrvoPassed() = default;
NrvoPassed(const NrvoPassed&);
NrvoPassed(NrvoPassed&&)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89120
--- Comment #2 from Antony Polukhin ---
Long story short: I've found no way to improve the standard library code to
always work faster. I'm in favor of closing this ticket as invalid/wont fix.
Long story:
I've tried to add a specialization of m
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80542
--- Comment #2 from Antony Polukhin ---
This issue could be closed. GCC 11 has the required -Wrange-loop-construct
warning: https://godbolt.org/z/343M6WMjb
NCONFIRMED
Keywords: diagnostic
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
GCC has -Winvalid-memory-model that warns if wrong memory model is
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98817
--- Comment #5 from Antony Polukhin ---
Please, close as invalid
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98817
--- Comment #2 from Antony Polukhin ---
(In reply to Jakub Jelinek from comment #1)
> I'm not sure about this. Turning it into an unconditional store would mean
> that the memory the reference points to must be writable, that might not be
> alwa
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the example:
void arithmetic(int& result, int value) {
if (result != value) {
result = value;
}
}
GCC generates
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Iterators and pointers are quite common in C++ code but newbies tend to forget
to dereference them:
struct my_vector { void push_back(int); };
struct
Keywords: diagnostic
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the example:
template
concept Callable0Arg = requires(Function fun
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the example:
template
concept Callable1Arg = requires(Function func, T value) {
func(value);
};
// Should fail and fails
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78427
Antony Polukhin changed:
What|Removed |Added
CC||antoshkka at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96452
--- Comment #7 from Antony Polukhin ---
(In reply to Jonathan Wakely from comment #6)
> Your understanding of what a compiler needs to do for ill-formed programs is
> wrong.
You're right, thank you!
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96452
--- Comment #5 from Antony Polukhin ---
Hm... My reading of http://eel.is/c++draft/dcl.init.list#3.9 is that the
program is ill-formed for narrowing conversions. And
http://eel.is/c++draft/dcl.init.list#7.2 states that conversion from double to
f
: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the example:
float test_main(double d) {
float f2{d};
return f2;
}
Narrowing of double to float in brace-init is not rejected
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96121
--- Comment #4 from Antony Polukhin ---
Adding members and usage does not make a difference
https://godbolt.org/z/VommHu
struct A {
A();
int i;
};
struct B {
B(A);
int i;
};
struct composed2 {
B b_;
A a_;
composed2() : b_(a_) {}
}
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the example:
struct A { A(); };
struct B { B(A); };
struct composed2 {
B b_;
A a_;
composed2() : b_(a_) {}
};
GCC does
: missed-optimization
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the function f1:
static constexpr std::initializer_list>
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the example:
struct Struct {
Struct() = default;
Struct(Struct&&);
};
Struct question10(bool b) {
if (b) {
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67302
Antony Polukhin changed:
What|Removed |Added
CC||antoshkka at gmail dot com
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the example:
extern int x , y;
int ternary(int i) { return i > 0 ? x : y; }
int ternary2(int i) { return i >
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the following code:
#include
void foo0() {
int t = 0;
std::ranges::begin(t
Keywords: diagnostic
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the example that attempts to throw a std::bad_cast:
struct Base
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the example:
struct Base {
constexpr virtual ~Base(){}
};
struct Derived: Base {};
constexpr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66139
Antony Polukhin changed:
What|Removed |Added
CC||antoshkka at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90647
--- Comment #2 from Antony Polukhin ---
-Wreturn-local-addr looks good to me
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the example:
int sample(int a, int b) {
unsigned diff = (unsigned)b - (unsigned)a;
unsigned sign_bit = b <
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92455
--- Comment #4 from Antony Polukhin ---
(In reply to Richard Biener from comment #3)
> But maybe
> you can provide benchmark data (including compile-time/memory-use figures)?
OK. Is there any GCC specific tool or flag for that?
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92455
--- Comment #2 from Antony Polukhin ---
Can the -ftree-partial-pre flag be enabled by default for -O2?
: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the example:
typedef struct {
int* ptr_;
} int_ptr;
int_ptr f1(int_ptr* x) {
int_ptr* max = x;
for (int i =0 ; i <
: diagnostic
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the simple example:
bool function();
bool test() {
bool result = function;
if
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82019
--- Comment #2 from Antony Polukhin ---
Updated version of the test (works well on GCC 10):
// { dg-options "-std=c++2a" }
template
concept VectorOperations = requires(T& v, const Data& data) {
v += data;
requires __is_same_as(T&, dec
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Such change brings consistency with Clang and other built-in traits:
struct incomplete;
// fails on clang, OK on GCC
const bool
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92053
Antony Polukhin changed:
What|Removed |Added
Keywords|needs-reduction,|accepts-invalid
|rej
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the example:
struct A {
virtual int f() { return 0; }
virtual int g() { return f() + 40
-invalid
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the following code:
#include
#include
#include
struct widget;
using variant_t = std
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91981
--- Comment #4 from Antony Polukhin ---
It was broken in GCC-9, GCC-8.3 and below do not have this issue.
-optimization
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the example that is a simplified version of
boost::container::small_vector
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91899
--- Comment #4 from Antony Polukhin ---
(In reply to Alexander Monakov from comment #3)
> unless the compiler somehow proves that overlap is not
> observable?
Oh, now I see. Here's a valid example:
static const char data1[] = "test";
static con
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91899
--- Comment #1 from Antony Polukhin ---
Godbolt playground: https://godbolt.org/z/UA_Xsm
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the example:
static const char data1[] = {'t','e','s','t'};
static const char data2[] = &
: missed-optimization
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the example:
unsigned long long kBorder = (1ull<<62);
unsigne
-optimization
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the example:
unsigned long long sample2(unsigned long long m) {
if (m >=
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the example:
using size_t = unsigned long long;
size_t index0(int i) {
return size_t(i + 1) - 1;
}
GCC generates the
Keywords: missed-optimization
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the example:
double foo(unsigned i, unsigned j) {
return
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the example:
int doubleToString_0(double a) {
if ( __builtin_isnan( a ) )
return 1;
else if ( a == 0
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91709
--- Comment #3 from Antony Polukhin ---
(In reply to jos...@codesourcery.com from comment #2)
> If the result of multiplying by 1.5 is outside the range of the integer
> type, the version with multiplication is required to raise the FE_INVALID
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91709
--- Comment #1 from Antony Polukhin ---
Godbolt playground: https://godbolt.org/z/rHQj2w
: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
On x86_32 for any number X of type (unsigned, unsigned short, unsigned char)
multiplication by 1.5 with a conversion back
: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the function:
void multiply128x64x2_3 (
const unsigned long a,
const unsigned long b,
const unsigned
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91358
--- Comment #6 from Antony Polukhin ---
(In reply to Michael Matz from comment #3)
> I don't really see any, no good idea here :-/
How about moving all the optimizations based on reading uninitialized values
under a flag like -funinitialized-log
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91358
--- Comment #2 from Antony Polukhin ---
(In reply to Michael Matz from comment #1)
> So, if you've seen a real problem somewhere (and not just valgrind
> complaining about uninitialized registers in comparisons),
> then you've reduced the testcas
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
The issue is reproduced on GCCs from 5 to 9 with -O2 and -std=c++11. GCC-10
also generates wrong code
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91329
--- Comment #1 from Antony Polukhin ---
Ops, sorry. This is invalild. `i` could be negative.
Please close as invalid
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
For the code
int* test(int i) {
return new int[i];
}
The following assembly is generated:
test(int):
movsx rdi, edi
sub
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91174
--- Comment #4 from Antony Polukhin ---
Sorry, now I understood that the bug is invalid. Please close.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91174
--- Comment #2 from Antony Polukhin ---
(In reply to Florian Weimer from comment #1)
> For which ABI do you propose the change? It's not correct for GNU/Linux:
As far as I understand the proposed change does not touch ABI. `lea eax, [rdi +
48]`
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the example:
int test (bool x) {
return '0' + x;
}
For the above snippet the following suboptimal assembly is
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86375
--- Comment #1 from Antony Polukhin ---
This was fixed in GCC 9.1
Please add a test case for the issue and close it as fixed
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89824
Antony Polukhin changed:
What|Removed |Added
Status|NEW |RESOLVED
Resolution|---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88529
--- Comment #5 from Antony Polukhin ---
(In reply to Jason Merrill from comment #1)
> Created attachment 45899 [details]
> Fix
Is it enough to test only for `scan-assembler-not mov`? Probably a
`scan-assembler-not xor` should be also added?
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71579
--- Comment #13 from Antony Polukhin ---
I meant
+ noexcept(noexcept(Tp(std::declval(
but now I'm not sure that it would test excactly the same thing.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71579
--- Comment #12 from Antony Polukhin ---
(In reply to Jonathan Wakely from comment #11)
> This change broke a compiler test: g++.dg/cpp0x/noexcept15.C
>
> I'll have to figure out how to update that test to keep testing what it was
> meant to tes
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71579
--- Comment #9 from Antony Polukhin ---
(In reply to Jonathan Wakely from comment #8)
> Is there more work to do to support the whole of https://wg21.link/lwg2797 ?
Looks like I've missed the is_nothrow_invocable_r, is_convertible,
is_nothrow_co
1 - 100 of 263 matches
Mail list logo