Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: dushistov at mail dot ru
Target Milestone: ---
Here simple example extracted from Qt 6 git:
```
template
struct Prop {
void notify()
{
if constexpr (Signal
Assignee: unassigned at gcc dot gnu.org
Reporter: dushistov at mail dot ru
Target Milestone: ---
For such simple function:
__int128 add1(__int128 a, __int128 b) {
return a + b;
}
gcc 8.2 generates for a + b:
mov r9, rdi
mov r10, rsi
add
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67762
--- Comment #7 from Evgeniy Dushistov ---
Here simple example extracted from Qt 6 git:
```
template
struct Prop {
void notify()
{
if constexpr (Signal != nullptr) {
}
}
};
class QObjectPrivate {
public:
mal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: dushistov at mail dot ru
Target Milestone: ---
Such code vectorized with gcc 8.3, but failed to vectorized with 9.1.
Last version of clang works just fine.
```
#include
#include
#def
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: dushistov at mail dot ru
Target Milestone: ---
For code bellow, gcc 9.3 from Ubuntu reports error:
```
In file included from /usr/include/c++/9/variant:36
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80635
--- Comment #20 from Evgeniy Dushistov ---
Also if add one line to code `printf("test\n");`
```
struct FooDeleter {
void operator()(FooOpaque *p) {
printf("test\n");
Foo_free(p);
}
};
```
gcc don't report any warning,
and valgrind
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80635
Evgeniy Dushistov changed:
What|Removed |Added
CC||dushistov at mail dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90397
Evgeniy Dushistov changed:
What|Removed |Added
CC||dushistov at mail dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68338
Evgeniy Dushistov changed:
What|Removed |Added
Status|UNCONFIRMED |RESOLVED
Resolution|---
++
Assignee: unassigned at gcc dot gnu.org
Reporter: dushistov at mail dot ru
Target Milestone: ---
#include
#include
#define SHOW std::cout << __PRETTY_FUNCTION__ << "\n"
struct Foo {
Foo() { SHOW; }
Foo(const Foo &) { SHOW; }
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: dushistov at mail dot ru
Target Milestone: ---
For such code:
#include
template
struct Foo {
std::function<T()> f(T p) __attribute__((warn_unused_result)) { ret
Component: sanitizer
Assignee: unassigned at gcc dot gnu.org
Reporter: dushistov at mail dot ru
CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org,
jakub at gcc dot gnu.org, kcc at gcc dot gnu.org
Target Milestone: ---
With code like
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68338
--- Comment #2 from Evgeniy Dushistov ---
The problem as I understand assembler in check
that find out is static variable initialized,
clang emit this:
callq 45bdb0 <__tsan_atomic8_load>
while gcc emit
callq 401260 <__tsan_read1@plt>
ity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: dushistov at mail dot ru
Target Milestone: ---
struct Test {
static const int foo = (1 << sizeof(
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68195
--- Comment #3 from Evgeniy Dushistov ---
I build gcc with last commit:
commit 06d6724083a2cb1f35e36f4a0db3025bfde20667
Author: nathan
Date: Wed Nov 4 17:01:23 2015 +
*
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68195
--- Comment #4 from Evgeniy Dushistov ---
Created attachment 36650
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36650=edit
preprocessed sources
I attached files created with gcc -E from main.cpp and Lib.cpp, hope this helps
reproduce
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68089
Evgeniy Dushistov changed:
What|Removed |Added
Status|UNCONFIRMED |RESOLVED
Resolution|---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68195
Evgeniy Dushistov changed:
What|Removed |Added
CC||dushistov at mail dot ru
++
Assignee: unassigned at gcc dot gnu.org
Reporter: dushistov at mail dot ru
Target Milestone: ---
Here is code:
#include
template
class C
{
template //
friend class C;
template
friend bool operator == (C const& c1, C const& c2)
{
return c1.i
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: dushistov at mail dot ru
Target Milestone: ---
Created attachment 35562
-- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35562action=edit
code example
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66194
--- Comment #3 from Evgeniy Dushistov dushistov at mail dot ru ---
So step to reproduce:
1)Download attachment
2)Extract
tar xvf dummy_hash.tar
3)Build
cd dummy_hash make
4)Run
./thash
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66194
--- Comment #2 from Evgeniy Dushistov dushistov at mail dot ru ---
(In reply to H.J. Lu from comment #1)
Which gcc did you use? Please provide a run-time test.
I try gcc 4.6.4, 4.7.4, 4.9.2, 5.1.0.
If you compile attachment on linux/amd64
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66194
--- Comment #6 from Evgeniy Dushistov dushistov at mail dot ru ---
(In reply to Andrew Pinski from comment #5)
C standard says this is undefined code.
Where? there is two issues aliasing (but I use -fno-strict-aliasing),
and alignment, c99
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66194
--- Comment #8 from Evgeniy Dushistov dushistov at mail dot ru ---
(In reply to Markus Trippelsdorf from comment #7)
6.3.2.3 p7:
»A pointer to an object type may be converted to a pointer to a different
object type. If the resulting pointer
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66194
--- Comment #10 from Evgeniy Dushistov dushistov at mail dot ru ---
ABI requirements are not C requirements always. This paragraph is talking
about memory accesses but really it did not take into account other
requirements of C correctly
Component: driver
Assignee: unassigned at gcc dot gnu.org
Reporter: dushistov at mail dot ru
With such simple program:
$ cat /tmp/test2.cpp
#include cstdio
#include vector
int main()
{
std::vectorint v = {1, 2};
for (auto a : v)
printf(%d\n
++
Assignee: unassigned at gcc dot gnu.org
Reporter: dushistov at mail dot ru
Created attachment 33864
-- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33864action=edit
failed test
In attachment source code extracted from llvm/lib/Analysis/LazyValueInfo.cpp
and from couple
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63711
--- Comment #1 from Evgeniy Dushistov dushistov at mail dot ru ---
The bug is reproduced only with gcc-4.9.1.
Today I try gcc-4.9.2 and it disappear.
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: dushistov at mail dot ru
Created attachment 33588
-- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33588action=edit
problem code
On my system linux/x86_64 compilation of valgrind with -O3
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63393
Evgeniy Dushistov dushistov at mail dot ru changed:
What|Removed |Added
Summary|-ffreestanding not work:|[regression
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63393
--- Comment #4 from Evgeniy Dushistov dushistov at mail dot ru ---
(In reply to Mikael Pettersson from comment #3)
I don't know if this is supposed to be fixed (for all str* and mem*
functions one might want to implement oneself
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: dushistov at mail dot ru
Such simple code accepted by gcc 4.8.1:
struct Foo {
Foo(const char *);
};
Foo::Foo(const char *str = 0)
{
}
There is DR 1344 about it:
http://www.open-std.org
: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: dushistov at mail dot ru
Here is example from standard (page 250-251),
class A {
class B { };
friend class X;
};
struct X : A::B { // OK: A::B accessible to friend
A::B mx; // OK: A::B accessible to member of friend
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58054
--- Comment #2 from Evgeniy Dushistov dushistov at mail dot ru ---
Yes, for C++ 2003 this is invalid code(page 212):
class A {
class B { };
friend class X;
};
class X : A::B { // ill-formed: A::B cannot be accessed
// in the base-clause for X
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58054
--- Comment #3 from Evgeniy Dushistov dushistov at mail dot ru ---
Here history of changes of C++ standard that related to this bug:
http://wg21.cmeerw.net/cwg/issue372
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57954
--- Comment #11 from Evgeniy Dushistov dushistov at mail dot ru ---
(In reply to Yuri Rumyantsev from comment #9)
I checked that zeroing of xmm register before conversion leads to
performance slowdown on SLM (-5%) for proveded test-case. I
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14741
--- Comment #26 from Evgeniy Dushistov dushistov at mail dot ru ---
I try such simple C++ function, compiled in separate object file(-march=native
-Ofast):
void mult(const double * const __restrict__ A, const double * const
__restrict__ B
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14741
--- Comment #27 from Evgeniy Dushistov dushistov at mail dot ru ---
Created attachment 30563
-- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30563action=edit
icc -c -Ofast -march=native objdump
++
Assignee: unassigned at gcc dot gnu.org
Reporter: dushistov at mail dot ru
Simple code:
#include cstdio
int main()
{
printf(%s: test1\n, __PRETTY_FUNCTION__);//1
printf(test2\n);//2
return 0;
}
compiled to:
callq 4005a0 __printf_chk@plt (1)
and to
callq 400590
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58005
--- Comment #4 from Evgeniy Dushistov dushistov at mail dot ru ---
Such an optimization can increase code size
if the same format string is used with
many different arguments,
may be then two fputs calls?
fputs(__PRETTY_FUNCTION__, stdout
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57954
--- Comment #3 from Evgeniy Dushistov dushistov at mail dot ru ---
Great, I tested the patch, at now pi calculation as fast as in icc, and two
times faster then in clang 3.3.
: target
Assignee: unassigned at gcc dot gnu.org
Reporter: dushistov at mail dot ru
I tested such simple function on i7-3740QM CPU @ 2.70GHz, with gcc 4.8.1 and
gcc 4.9.0 20130725:
double pi(unsigned int count)
{
unsigned int i;
double p = 0;
double z = 1
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57890
--- Comment #3 from Evgeniy Dushistov dushistov at mail dot ru ---
By the way, here is a short summary of running result of compilation test_loop
on my i7 based notebook (the best results):
icc(13.1.3 20130607): 0.228
gcc 4.7 : 0.345
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57890
Evgeniy Dushistov dushistov at mail dot ru changed:
What|Removed |Added
Component|target |tree
++
Assignee: unassigned at gcc dot gnu.org
Reporter: dushistov at mail dot ru
$cat what_test.cpp
char c[100];
void f(void)
{
for(int i=0; i 100; ++i)
c[i] = '0';
}
I run this test with:
cat test.cpp
#include cstddef
extern void f();
int main
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: dushistov at mail dot ru
$cat test.cpp
//#include cstddef
struct vec {
double x;
double y;
double z;
double operator[](size_t i) {
switch (i) {
case 0:
return x;
case 1
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55953
Bug #: 55953
Summary: hand loop faster then builtin memset
Classification: Unclassified
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55953
--- Comment #2 from Evgeniy Dushistov dushistov at mail dot ru 2013-01-12
00:05:15 UTC ---
Actually it is not only CPU 64bit related issue, for example the same CPU (i7),
32 bit mode:
variant one:
push %ebp
vmovdqa 0x80488e0,%ymm0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55953
--- Comment #3 from Evgeniy Dushistov dushistov at mail dot ru 2013-01-12
00:13:09 UTC ---
Cross compiling for arm, g++ have almost the same version:
arm-angstrom-linux-gnueabi-g++ (Linaro GCC 4.7-2012.10) 4.7.3 20121001:
variant one
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53135
--- Comment #3 from Evgeniy Dushistov dushistov at mail dot ru 2012-07-14
22:18:12 UTC ---
I searched commit which cause error.
Here is result of running test from this bugreport, with such command:
arm-none-eabi-g++ -O2 -g -c /tmp/test.cpp
good
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53135
Evgeniy Dushistov dushistov at mail dot ru changed:
What|Removed |Added
CC||dushistov
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51231
Evgeniy Dushistov dushistov at mail dot ru changed:
What|Removed |Added
Known to work||4.4.5
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51231
Bug #: 51231
Summary: g++ remove placement new with -O1
Classification: Unclassified
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51231
--- Comment #1 from Evgeniy Dushistov dushistov at mail dot ru 2011-11-19
21:49:33 UTC ---
The code works as expected for 4.4.5,
and show buggy behaviour with 4.5.3 and 4.6.2.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51231
--- Comment #2 from Evgeniy Dushistov dushistov at mail dot ru 2011-11-19
22:03:49 UTC ---
Created attachment 25862
-- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25862
the preprocessed test case
generate from source with command:
g++ -ggdb
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51231
--- Comment #3 from Evgeniy Dushistov dushistov at mail dot ru 2011-11-19
22:07:40 UTC ---
To build test case you need use command:
g++ -ggdb -O1 -Wall -Wextra boost_interp_alloc.cpp -lboost_thread
I use boost 1.46.1.
Or you can use
--- Comment #3 from dushistov at mail dot ru 2010-03-08 20:18 ---
(In reply to comment #1)
compiles without problems using 4.4.3 and 4.5.0
if this only fails with GCC 4.2 it's unlikely to get fixed
There is something strange here.
I have report that with little different example
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dushistov at mail dot ru
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43273
Product: gcc
Version: 4.1.2
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dushistov at mail dot ru
http://gcc.gnu.org/bugzilla/show_bug.cgi?id
warrnings
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: enhancement
Priority: P3
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dushistov at mail dot ru
http://gcc.gnu.org/bugzilla
--- Comment #2 from dushistov at mail dot ru 2007-02-03 21:15 ---
(In reply to comment #1)
I think this has already been fixed on the trunk with the new -Wconversion
behaviors:
http://gcc.gnu.org/wiki/NewWconversion
Thaks for reply,
I hope to see this feature in near future
: unassigned at gcc dot gnu dot org
ReportedBy: dushistov at mail dot ru
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28588
: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dushistov at mail dot ru
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28539
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dushistov at mail dot ru
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28543
64 matches
Mail list logo