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
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 >
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67302
Antony Polukhin changed:
What|Removed |Added
CC||antoshkka at gmail dot com
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) {
: 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>
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
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_) {}
}
: 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=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
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!
: 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
: 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 <
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?
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?
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=90647
--- Comment #2 from Antony Polukhin ---
-Wreturn-local-addr looks good to me
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66139
Antony Polukhin changed:
What|Removed |Added
CC||antoshkka at gmail dot com
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
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
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55249
Bug #: 55249
Summary: Multiple copy constructors for template class lead to
link errors
Classification: Unclassified
Product: gcc
Version: 4.6.3
Status: UNC
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55249
--- Comment #1 from Antony Polukhin 2012-11-09
10:24:49 UTC ---
Created attachment 28648
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28648
Preprocessed file that triggers the bug
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55249
--- Comment #4 from Antony Polukhin 2012-11-09
12:28:11 UTC ---
(In reply to comment #3)
Yes, thanks.
`output.txt` will be the same.
Also, reproduced this bug on GCC 4.7.2:
[cc@ontos-soa-01 ~]$ gcc -v
Using built-in specs.
COLLEC
: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the following example:
#include
struct test {
test();
test(test&&);
test& operator=(test&
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88445
--- Comment #1 from Antony Polukhin ---
Hm... This was discussed in Clang and looks like such optimization could break
ABI and cause ODR violations https://bugs.llvm.org/show_bug.cgi?id=27442#c4
If nothing changed since then, I'm OK with closin
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87431
--- Comment #11 from Antony Polukhin ---
Looks good.
Note that boost::variant went further: if all the types are nothrow movable
then variant always does the trick with moving from temporary. In that way
`valueless_by_exception()` like states ne
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87431
--- Comment #13 from Antony Polukhin ---
Yeah... but some whitelist of types to move could be hardcoded. For example
std::basic_string, std::vector, std::unique_ptr and std::shared_ptr could be
safely moved and `valueless_by_exception()` never ha
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53294
--- Comment #3 from Antony Polukhin ---
Any progress?
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89036
--- Comment #1 from Antony Polukhin ---
Compile with flags: -std=c++2a -fconcepts
++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
The following code:
template
struct Y {
~Y() requires(true) = default;
~Y() requires(false) {}
};
causes ICE:
:6:27: internal compiler error: in add_method, at cp/class.c:1137
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
std::minmax_element is slow when there's a lot of data and it does not fit into
the CPU cache: http://quick-benc
: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
std::min_element is slow when there's a lot of data and it does not fit into
the CPU cache: http://quick-benc
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82899
--- Comment #8 from Antony Polukhin ---
(In reply to Richard Biener from comment #4)
> (In reply to Antony Polukhin from comment #2)
> > Looks like [class.ctor] paragraph 14 covers this case:
> >
> > "During the construction of an object, if the
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82899
--- Comment #9 from Antony Polukhin ---
There's an identical issue for clang:
https://bugs.llvm.org/show_bug.cgi?id=37329
During review of that issue Richard Smith noted that the solution could be made
more generic by adding `__restrict` for `th
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82899
--- Comment #11 from Antony Polukhin ---
Seems perfect https://godbolt.org/g/GX3GQd
The mov is not generated for any constructor and the following code:
extern struct A a;
struct A {
int m, n;
A(const A &v);
};
A::A(const A &v) : m(v.m), n(
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82899
--- Comment #12 from Antony Polukhin ---
(In reply to Marc Glisse from comment #10)
> This seems fixed in 8.1 (at least we don't generate the extra mov anymore),
> can you check?
Actually it still does not work for subobjects. For example
https:
: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the following code snippet:
// Bubble-like sort. Anything complex enough will work
template
constexpr void sort(It first, It last
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85747
--- Comment #3 from Antony Polukhin ---
(In reply to Richard Biener from comment #1)
> What's the reason for writing the code as you pasted it?
I've tried to provide a simplified case. In real world `generate()` function
will have some arguments
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85747
--- Comment #4 from Antony Polukhin ---
(In reply to Marc Glisse from comment #2)
> (In reply to Antony Polukhin from comment #0)
> > Could the compiler detect that `a[7]` holds values known at compile time and
> > force the constexpr on `sort(a
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85747
--- Comment #7 from Antony Polukhin ---
(In reply to Jakub Jelinek from comment #6)
> IMHO just use constexpr if you care about compile time evaluation
> guarantees, that is what it has been added for.
Fair point. Overcomplicated logic on the fr
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=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]`
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.
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=91329
--- Comment #1 from Antony Polukhin ---
Ops, sorry. This is invalild. `i` could be negative.
Please close as invalid
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=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
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
: 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
: 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
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91709
--- Comment #1 from Antony Polukhin ---
Godbolt playground: https://godbolt.org/z/rHQj2w
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
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
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: 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
-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 >=
: 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
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[] = &
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91899
--- Comment #1 from Antony Polukhin ---
Godbolt playground: https://godbolt.org/z/UA_Xsm
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
-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=91981
--- Comment #4 from Antony Polukhin ---
It was broken in GCC-9, GCC-8.3 and below do not have this issue.
-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
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
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92053
Antony Polukhin changed:
What|Removed |Added
Keywords|needs-reduction,|accepts-invalid
|rej
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=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
++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
The following code
#include
#include
int main() {
std::regex pattern("\\w+\\.");
std::string s(100, 'a');
return std::regex_search(s, pa
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
The following code
struct foo {
const char* data_;
unsigned size_;
foo(const char* data, unsigned
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Following code
struct foo {
const char* data_;
unsigned size_
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the example
namespace {
struct base {
virtual int foo() noexcept {return 1;}
};
}
struct derived1 final : base
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Following code uses function (1), however function (2) must be used.
struct foo {
foo() = default;
foo(foo const&); /
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
The following code compiles however it should not:
template
requires(condition)
using enable_if_t = T;
template>
void foo();
void t
-optimization
Severity: normal
Priority: P3
Component: libgcc
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
`__deregister_frame_info_bases` in file unwind-dw2-fde.c calls `free
(ob->u.sort);` under
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
It would be great to have a warning that helps to identify classes with
sub-optimal move semantics. Foe example it
++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Because of that overloads from [locale.convenience] compile well with creepy
charT template arguments like std::string:
std::tolower(std::string{}, std::locale::classic());
That leads to
Keywords: rejects-valid
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
The following code fails to compile:
constexpr int Addrlen(int domain) {
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89785
--- Comment #2 from Antony Polukhin ---
> So you say that Addrlen(0) and Addrlen(2) are proper constexprs? Of course
Addrlen(1) is not.
Yes. But GCC does not even allow to define the Addrlen function:
https://godbolt.org/z/xqR2Lr
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
The following code
#include
struct my_type{
my_type(my_type&&) noexcept;
};
using V1 = std::variant;
V1 te
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89700
--- Comment #6 from Antony Polukhin ---
Another way to workaround the warning is to use something like
`my_class(my_class&) requires false;`. That's too ugly to use.
I'd be fine with closing this issue as a 'won't fix'.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89816
--- Comment #6 from Antony Polukhin ---
The fix seems pretty trivial: in function `__variant_construct` get the address
of the sorage before entering the `__do_visit` and make it switch only by the
`__rhs`.
Pseudo-code:
template
void __va
-optimization
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
The following code
#include
struct my_type{};
bool operator==(const my_type&, const my_
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89816
--- Comment #9 from Antony Polukhin ---
BTW, I think there are some other cases where binary visitation could be
simplified to unary (significantly reducing the code size and improving the
compile times). I've filled Bug 89819, but looks like ass
: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the following code
struct my_type_impl {};
my_type_impl foo0() { return {}; }
my_type_impl foo1() { my_type_impl tmp
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Space for the `__variant_cookie` state is already reserved in _Multi_array
`_Multi_array<
: missed-optimization
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
The `__do_cookie` computation in `_Multi_array` seems suboptimal. There are
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89825
--- Comment #1 from Antony Polukhin ---
There's a typo in proposed solution: it should be `&& !_Never_empty` in
`_Multi_array`.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89825
--- Comment #4 from Antony Polukhin ---
> Would you be willing to complete a copyright assignment for contributions to
> GCC?
Yes, I can do that. Please send the instructions to my email.
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
The following function should return `false` according to [variant.relops]:
#include
using V = std::variant;
bool test1
-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:
struct array {
int data[5];
};
array test(int i) {
array a = {1
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89922
--- Comment #2 from Antony Polukhin ---
The estimation is very close to the actual result for the loop.
But it does not take into the account the instructions before the loop that are
eliminated due to unrolling. Some heuristic like "initializin
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89922
--- Comment #4 from Antony Polukhin ---
> Was the testcase just an artificial one or does it appear (in this
> isolated form!) in a real application/benchmark?
I was not investigating a particular benchmark or real world application at
first.
M
-valid
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
_VARIANT_RELATION_FUNCTION_TEMPLATE accidentally accepts the second visitable
by copy in
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the following test program:
struct v {
int val[16];
};
v test(v a, v b) {
v res;
for (int i = 0; i < 16; i++)
res.
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the example:
struct v {
int val[16];
};
struct v test(struct v a, struct v b) {
struct v res;
for (int i = 0; i
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90202
--- Comment #2 from Antony Polukhin ---
Then I'm fine with the current codegen.
However with -mavx512f it produces a few additional instructions for rbp
register
test(v, v):
push rbp ; not necessary
mov rax, rdi
mov rbp, rsp
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the example:
auto test(int s) {
return [&s] { return s; };
}
`s` is a local variable, so we re
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
Consider the example:
constexpr int test() {
const char* from = "wow";
char dest[1
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
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 #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.
1 - 100 of 273 matches
Mail list logo