[Bug c++/87107] Template instantiation is 50x slower than with clang++

2018-08-27 Thread mateusz at loskot dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87107

--- Comment #1 from Mateusz Loskot  ---
There was similar bug reported to GCC 8.1, fixed in 8.2
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86320

However, I'm not seeing any improvement compiling the Frédéric's sample
gcc-is-long-minimum-and-standalone.cpp with GCC 8.2 on Linux.

[Bug c/47297] New: Inconsistent float-point to integer results depending on -O flag

2011-01-14 Thread mateusz at loskot dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47297

   Summary: Inconsistent float-point to integer results depending
on -O flag
   Product: gcc
   Version: 4.4.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: mate...@loskot.net


The following program converts with truncation double precision float-point
value to signed 16-bit integer:

$ cat trunc-min.c
#include stdio.h
#include stdint.h
int main()
{
   double a;
   int16_t b;
   a = -32769;
   b = (int16_t)a;
   printf(%d\n, b);
}

According to the C standard, behaviour of this program is undefined.

In spite of the fact the behavior is undefined, I suspect the intent
is to be consistent (which appears to be for lots of other
values I have tried), but they are not.
Different optimisation yields different result:

$ gcc -O0 trunc-min.c
$ ./a.out
32767
$ gcc -O2 trunc-min.c
$ ./a.out
-32768

A friend of mine advised me: in one case the cvttsd2si instruction is used
and for the other gcc does the conversion internally.
Though, I have no experience to confirm for sure.

I didn't find any reports about similar issues in the database. Though, closest
could be Bug 27682

Environment:
OS: x86_64 GNU/Linux (Ubuntu)
GCC: gcc (Ubuntu 4.4.3-4ubuntu5) 4.4.3


[Bug c/42867] isfinite macro defined for 4.4.1 but not for 4.3.3

2010-01-26 Thread mateusz at loskot dot net


--- Comment #4 from mateusz at loskot dot net  2010-01-26 11:00 ---
(In reply to comment #3)
 But really you did report it to us rather than Ubuntu first as
 both are modified versions of GCC. (...) And this bug is invalid. 

I didn't know really. Thank you for the patient clarification.

I forwarded it to Ubuntu
(https://bugs.launchpad.net/ubuntu/+source/gcc-4.3/+bug/512741)


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42867



[Bug c/42867] New: isfinite macro defined for 4.4.1 but not for 4.3.3

2010-01-25 Thread mateusz at loskot dot net
The problem is that the definition of isfinite() macro is not consistent
between version of GCC 4.3.3 and 4.4.1.

Simple test program:

include math.h
#ifdef isfinite
#error isfinite defined
#else
#error isfinite NOT defined
#endif
int main() { return 0; }


1) Test with GCC 4.4.1 (Ubuntu 9.10 x86-64)

mlos...@dog:~/tmp$ gcc --version
gcc (Ubuntu 4.4.1-4ubuntu9) 4.4.1

mlos...@dog:~/tmp$ gcc isfinite.c
isfinite.c:3:2: error: #error isfinite defined
mlos...@dog:~/tmp$ 



2) Test with GCC 4.3.3  (Ubuntu 9.04 x86-32)

mlos...@vb-ubuntu904:~/tmp$ gcc --version
gcc (Ubuntu 4.3.3-5ubuntu4) 4.3.3

mlos...@vb-ubuntu904:~/tmp$ gcc isfinite.c 
isfinite.c:5:2: error: #error isfinite NOT defined


In the 2nd case, it seems to be required to use compiler option -std=c99 to
enable the macro:

mlos...@vb-ubuntu904:~/tmp$ gcc -std=c99 isfinite.c 
isfinite.c:3:2: error: #error isfinite defined


I think the behaviour of version 4.3.3. is incorrect.

I didn't find any related reports, except the one for C++ use of iostream.h
together with math.h (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14608).
But I am sure it is not related to this report.


-- 
   Summary: isfinite macro defined for 4.4.1 but not for 4.3.3
   Product: gcc
   Version: 4.3.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: mateusz at loskot dot net
  GCC host triplet: x86_64-*-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42867



[Bug c/42867] isfinite macro defined for 4.4.1 but not for 4.3.3

2010-01-25 Thread mateusz at loskot dot net


--- Comment #2 from mateusz at loskot dot net  2010-01-25 22:34 ---
(In reply to comment #1)
 isfinite is C99 only.

Yes, of course it is and I understand it, but I'm trying to understand why the
GCC 4.3 and 4.4. behave differently?
Does it mean GCC 4.4 makes C99 elements available without explicit request?
It looks as such, then it is a bug and GCC 4.3 is correct.


 Plus math.h is controlled by libc.

Means, I reported to wrong place?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42867