[Bug c/28833] New: GCC 4.1.1 ICEs compiling Xorg 6.8.2

2006-08-24 Thread peter at empeg dot com
Attached (gzipped) fbmmx.i (from Xorg 6.8.2 xc/programs/Xserver/fb/fbmmx.c)
gives "fbmmx.c:871: internal compiler error: in push_reload, at reload.c:1303"
when compiled with 4.1.1 on i686-linux-gnu. This is probably a regression as
I've previously compiled the same Xorg release fine with 4.1.0.

GCC also emits lots of warnings, but no errors.

--- GCC version

[EMAIL PROTECTED] fb]$ gcc --version
gcc (GCC) 4.1.1

--- GCC configured with

../g*/configure --prefix=/usr --enable-shared --enable-languages=c,c++,java
--enable-threads --enable-__cxa_atexit --with-system-zlib --disable-multilib

--- GCC command to trigger failure

gcc -m32 -c -O2 -O9 -march=pentium4 -mtune=pentium4 -mmmx -msse -msse2 -pipe
-ansi -pedantic -Wall -Wpointer-arith -Wundef-fno-merge-constants -c  
-mmmx -Winline --param inline-unit-growth=1  --param
large-function-growth=1 fbmmx.i

--- GCC output

fbmmx.c:39: warning: specifying vector types with __attribute__ ((mode)) is
depr
ecated
fbmmx.c:39: warning: use __attribute__ ((vector_size)) instead
fbmmx.c:40: warning: specifying vector types with __attribute__ ((mode)) is
depr
ecated
fbmmx.c:40: warning: use __attribute__ ((vector_size)) instead
fbmmx.c:41: warning: specifying vector types with __attribute__ ((mode)) is
depr
ecated
fbmmx.c:41: warning: use __attribute__ ((vector_size)) instead
fbmmx.c:43: warning: ISO C90 does not support ?long long?
fbmmx.c:79: warning: ISO C90 forbids specifying subobject to initialize
fbmmx.c:80: warning: ISO C90 forbids specifying subobject to initialize
fbmmx.c:81: warning: ISO C90 forbids specifying subobject to initialize
fbmmx.c:82: warning: ISO C90 forbids specifying subobject to initialize
fbmmx.c:83: warning: ISO C90 forbids specifying subobject to initialize
fbmmx.c:84: warning: ISO C90 forbids specifying subobject to initialize
fbmmx.c:85: warning: ISO C90 forbids specifying subobject to initialize
fbmmx.c:86: warning: ISO C90 forbids specifying subobject to initialize
fbmmx.c:87: warning: ISO C90 forbids specifying subobject to initialize
fbmmx.c:88: warning: ISO C90 forbids specifying subobject to initialize
fbmmx.c:89: warning: ISO C90 forbids specifying subobject to initialize
fbmmx.c:90: warning: ISO C90 forbids specifying subobject to initialize
fbmmx.c:91: warning: ISO C90 forbids specifying subobject to initialize
fbmmx.c:92: warning: ISO C90 forbids specifying subobject to initialize
fbmmx.c:93: warning: ISO C90 forbids specifying subobject to initialize
fbmmx.c:94: warning: ISO C90 forbids specifying subobject to initialize
fbmmx.c: In function ?expand565?:
fbmmx.c:306: warning: ISO C90 forbids mixed declarations and code
fbmmx.c: In function ?fbCompositeSolidMask_nx8xmmx?:
fbmmx.c:658: warning: ISO C90 does not support ?long long?
fbmmx.c:701: warning: ISO C90 does not support ?long long?
fbmmx.c: In function ?fbCompositeSolidMask_nx8x0565mmx?:
fbmmx.c:764: warning: ISO C90 does not support ?long long?
fbmmx.c:824: warning: ISO C90 does not support ?long long?
fbmmx.c:871: internal compiler error: in push_reload, at reload.c:1303
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html> for instructions.


-- 
   Summary: GCC 4.1.1 ICEs compiling Xorg 6.8.2
   Product: gcc
   Version: 4.1.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
    ReportedBy: peter at empeg dot com
 GCC build triplet: i686-linux-gnu
  GCC host triplet: i686-linux-gnu
GCC target triplet: i686-linux-gnu


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



[Bug c/28833] GCC 4.1.1 ICEs compiling Xorg 6.8.2

2006-08-24 Thread peter at empeg dot com


--- Comment #1 from peter at empeg dot com  2006-08-24 10:37 ---
Created an attachment (id=12124)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12124&action=view)
gzipped preprocessed source of testcase


-- 


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



[Bug c++/35799] New: GCC uses inheritance information it doesn't yet know

2008-04-02 Thread peter at empeg dot com
In the following code (condensed from a real example where Fnord was
boost::intrusive_ptr), the call to the Fnord constructor in function make_fnord
only succeeds because Aubergine is derived from Base. But GCC doesn't "know"
that Aubergine is derived from Base until after it's seen make_fnord. (And
make_fnord itself isn't templated in any way, so this isn't a
delayed-instantiation thing, although similar examples where Fnord isn't
templated do successfully produce an error.) GCC 2.95.3 gave an error on this
code, but GCC 4.1.2, 4.2.3, and 4.3.0 accept it (even with
-fno-unit-at-a-time). Shouldn't it be an error?

template 
class Fnord
{
public:
explicit Fnord(T* p) { intrusive_ptr_add_ref(p); }
};

class Base
{
};

void intrusive_ptr_add_ref(Base*);

class Aubergine;

Fnord make_fnord(Aubergine *p)
{
return Fnord(p);
}

class Aubergine: public Base
{
};

GCC 2.95.3's error:
wtf.cpp: In method `Fnord::Fnord(Aubergine *)':
wtf.cpp:18:   instantiated from here
wtf.cpp:5: type `Base' is not a base type for type `Aubergine'

gcc -v on the 4.3.0 which fails to give an error:
Using built-in specs.
Target: x86_64-linux
Configured with: ../gcc-4.3.0/configure --prefix=/usr --enable-shared
--enable-languages=c,c++ --enable-threads --enable-__cxa_atexit
--with-system-zlib --disable-multilib x86_64-linux
Thread model: posix
gcc version 4.3.0 (GCC)


-- 
   Summary: GCC uses inheritance information it doesn't yet know
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: peter at empeg dot com
 GCC build triplet: x86_64-linux-gnu
  GCC host triplet: x86_64-linux-gnu
GCC target triplet: x86_64-linux-gnu


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



[Bug c++/60971] New: Wrong code when coercing unsigned char to bool

2014-04-25 Thread peter at empeg dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60971

Bug ID: 60971
   Summary: Wrong code when coercing unsigned char to bool
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: peter at empeg dot com

GCC 4.9.0 for x86_64 produces the wrong code for bar1 given this C++ file:

unsigned char foo();
bool bar1() { return foo() & 1; }
bool bar2() { return foo() & 2; }

gcc -O2 -S gcc49.cpp -Wall -Wextra

bar1 is compiled into a direct tailcall to foo() -- no and'ing with 1 is done
to the result (so it returns the Wrong Thing if foo() returns 0x40, say). bar2
is correct however.

GCC 4.8.2 got this right (its output for bar1 and bar2 is very similar except
for the constant being and'ed with).

GCC 4.9.0 gets it right if "unsigned char" is replaced with "unsigned short" or
"unsigned int".

4.9.0 built from release tarball, configured --enable-shared \
--enable-languages=c,c++ --disable-werror \
--enable-threads --disable-multilib \
--enable-__cxa_atexit --with-system-zlib

When GCC was compiled, CFLAGS, LIBCFLAGS, LIBCXXFLAGS, and BOOT_CFLAGS were all
set to "-O2 -O9 -march=core2 -mtune=core2 -pipe".


[Bug c++/42768] ICE: libstdc++-v3/libsupc++/vec.cc:354

2010-01-26 Thread peter at empeg dot com


--- Comment #4 from peter at empeg dot com  2010-01-26 19:29 ---
I get the same error on host=build=x86_64-linux, target=i586-mingw32. At least
in my case, this is a regression in 4.4.3, as 4.4.2 worked fine.


-- 

peter at empeg dot com changed:

   What|Removed |Added

 CC||peter at empeg dot com


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