[Bug bootstrap/32835] [4.3 regression] Bootstrap failure under SGI Irix

2007-08-07 Thread P dot Schaffnit at access dot rwth-aachen dot de


--- Comment #3 from P dot Schaffnit at access dot rwth-aachen dot de  
2007-08-07 06:45 ---

Hi!

Fixed: revision 127237 builds smoothly

Thanks!

Philippe
=== gcc Summary ===

# of expected passes43910
# of unexpected failures33
# of unexpected successes   2
# of expected failures  97
# of unresolved testcases   9
# of untested testcases 35
# of unsupported tests  398
/usr/local_people/Philippe/Compilation/gcc/xgcc  version 4.3.0 20070806
(experimental)

=== gfortran Summary ===

# of expected passes19925
# of unexpected failures93
# of unexpected successes   7
# of expected failures  9
# of unsupported tests  28
/usr/local_people/Philippe/Compilation/gcc/testsuite/gfortran/../../gfortran 
version 4.3.0 20070806 (experimental)


-- 

P dot Schaffnit at access dot rwth-aachen dot de changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug target/33008] New: [4.1/4.2 regression] code pessimization after -fforce-mem removal.

2007-08-07 Thread pluto at agmk dot net
unsigned short load( void* p )
{
unsigned short v;
__builtin_memcpy( v, p, sizeof( v ) );
return v;
}

recent 4.2 branch produces:

load:   movzwl  (%rdi), %eax
movw%ax, -2(%rsp)
movzwl  %ax, %eax
ret

revsion 101665 produces optimal code:

load:   movzwl  (%rdi), %eax
ret

the regression was introduced by Fariborz Jahanian:
http://gcc.gnu.org/viewcvs?view=revrevision=101666


-- 
   Summary: [4.1/4.2 regression] code pessimization after -fforce-
mem removal.
   Product: gcc
   Version: 4.2.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: pluto at agmk dot net
GCC target triplet: x86_64-linux


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



[Bug target/30961] [4.1/4.2/4.3 regression] redundant reg/mem stores/moves

2007-08-07 Thread pluto at agmk dot net


--- Comment #23 from pluto at agmk dot net  2007-08-07 07:22 ---
(In reply to comment #22)
 There are 2 issues, convert and load. They may be caused by different
 patches and should be tracked separately when doing binary search.

i've filled the 'load' issue as PR33008.
the gcc-reload-second-2.patch fixes 'convert' and finally this PR.


-- 


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



[Bug other/32998] -frecord-gcc-switches issues

2007-08-07 Thread nickc at redhat dot com


--- Comment #4 from nickc at redhat dot com  2007-08-07 08:11 ---
Subject: Re:  -frecord-gcc-switches issues

Hi Roland,

 Absolute file names are a very bad idea.  That makes for gratuitous 
 differences
 in builds due to the build or source directory name, i.e. unrepeatable 
 builds. 
 The names in .debug_line and .debug_info are already expected by
 post-processing tools and taken care of.  Do not add another location in the
 object that might contain absolute file names.

Ok. :-}  I think at the moment we are just discussing how the 
-frecord-gcc-switches feature can be improved.  Nothing is set in stone.

Cheers
   Nick


-- 


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



[Bug other/32998] -frecord-gcc-switches issues

2007-08-07 Thread nickc at redhat dot com


--- Comment #5 from nickc at redhat dot com  2007-08-07 08:25 ---
Subject: Re:  -frecord-gcc-switches issues

Hi Ben,

 Is there an easy way to separate out the include and link (-I, -L) bits from
 the macro defines and compiler option flags? Could the just the include bits 
 be
 put into one string?

Sure.  We could add some intelligence to the recording function which looks for 
these switches and groups them all together.  There are quite a lot of them 
though: -B, -I, -J, -L, -iquote, -isystem, -include, -imacros, -idirafter, 
-iwithprefixbefore, -imultilib, -isysroot.

 When doing this does it make sense to define the base_dir and then use it as a
 substitution instead of putting in absolute addresses everywhere? This might
 cut down on size.

Well that sounds like a good idea to me.  But Roland was objecting to recording 
absolute paths of any kind, so he might not like this.

  I think that in order to fix this the .GCC.command.line section creation 
 code will have to be made more complex and have access to the entire command 
 line options table.

 However can you expand on your comment above? What do you mean by have
 access to the entire command line options table? Would you dump the entire
 table? 

Oh no.  What I meant was that in order for the recording code to be more 
intelligent it would need access to gcc's command line options structure, so 
that, for example, it can tell when a switch takes an argument (and hence 
correctly deduce whether an entry in the argv[] array should be included in the 
same string as the previous entry or if it is a new command line switch in its 
own right).  Access to this table would also make it possible to do things
like:

   * group all the optimization switches together in one part of the 
.GCC.command.line section.

   * locate switches which negate the effect of previous switches and then skip 
recording those previous switches.

My concern however is that adding this sort of thing complicates the code, and 
hence is more likely to introduce bugs.  Still if it makes the feature useful, 
then it is worth considering.

Cheers
   Nick


-- 


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



[Bug middle-end/33007] [4.3 Regression] Revision 127185 causes NINT to ICE

2007-08-07 Thread fxcoudert at gcc dot gnu dot org


--- Comment #4 from fxcoudert at gcc dot gnu dot org  2007-08-07 08:54 
---
Testcase reduced to:

subroutine foo(x)
  integer :: x
  real :: t

  t = x
  call bar(nint(t))
end subroutine foo


-- 


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



[Bug c++/32756] [4.3 Regression] wrong ambiguous overload error?

2007-08-07 Thread nathan at gcc dot gnu dot org


--- Comment #3 from nathan at gcc dot gnu dot org  2007-08-07 09:32 ---
This is something to do with the rvalue reference patches


-- 

nathan at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |nathan at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-08-07 09:32:12
   date||


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



[Bug c++/32970] [4.3 Regression] C++ frontend can not handle vector pointer constant parameter

2007-08-07 Thread saliu at de dot ibm dot com


--- Comment #2 from saliu at de dot ibm dot com  2007-08-07 11:31 ---
Is this really a regression from 4.1.1? 
I got the same error on 4.1.1, before the patch r117696 was applied.


-- 


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



[Bug target/30961] [4.1/4.2/4.3 regression] redundant reg/mem stores/moves

2007-08-07 Thread hjl at lucon dot org


--- Comment #24 from hjl at lucon dot org  2007-08-07 12:57 ---
(In reply to comment #23)
 (In reply to comment #22)
  There are 2 issues, convert and load. They may be caused by different
  patches and should be tracked separately when doing binary search.
 
 i've filled the 'load' issue as PR33008.
 the gcc-reload-second-2.patch fixes 'convert' and finally this PR.
 

Which checkin caused the convert regression?


-- 


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



[Bug c/33009] New: [dataflow] cc1 goes into infinite loop

2007-08-07 Thread aldot at gcc dot gnu dot org
On trunk (currently r127248), with the testcase for PR11832 cc1 goes into an
infinite loop (ctrl-c after 10 minutes).
trunk from 20070418 can compile the same example fine.

flags used to reproduce:
gcc-4.3-HEAD -Os -fomit-frame-pointer -frtl-abstract-sequences -S -o s.S
pr11832.c


-- 
   Summary: [dataflow] cc1 goes into infinite loop
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: aldot at gcc dot gnu dot org
 GCC build triplet: i386-linux-gnu
  GCC host triplet: i386-linux-gnu
GCC target triplet: i386-linux-gnu


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



[Bug middle-end/29881] union causes inefficient code

2007-08-07 Thread jose dot r dot fonseca at gmail dot com


--- Comment #5 from jose dot r dot fonseca at gmail dot com  2007-08-07 
14:01 ---
Note that this problem is actually more general. I bumped into this when doing
a very used pattern for MMX/SSE2 programming, which is making a union between a
vector type and an array of integers:

union I16x8 {
__m128i m;
short v[8];
};

For example this code:

#include emmintrin.h

union I16x8 {
__m128i m;
short v[8];
};

void test(I16x8 *p) {
I16x8 a, c;
a = *p;
c.m = _mm_add_epi16(a.m, a.m);
*p = c;
}

Generates unnecessary copying in the body of the function:

movl8(%ebp), %edx
movl(%edx), %eax
movl%eax, -24(%ebp)
movl4(%edx), %eax
movl%eax, -20(%ebp)
movl8(%edx), %eax
movl%eax, -16(%ebp)
movl12(%edx), %eax
movl%eax, -12(%ebp)
movdqa  -24(%ebp), %xmm0
paddw   %xmm0, %xmm0
movdqa  %xmm0, -40(%ebp)
movl-40(%ebp), %eax
movl%eax, (%edx)
movl-36(%ebp), %eax
movl%eax, 4(%edx)
movl-32(%ebp), %eax
movl%eax, 8(%edx)
movl-28(%ebp), %eax
movl%eax, 12(%edx)

The more strange is that eliminating the array member of the union as following 

union I16x8 {
__m128i m;
};

Also generates *exactly* the same redundant code:

movl8(%ebp), %edx
movl(%edx), %eax
movl%eax, -24(%ebp)
movl4(%edx), %eax
movl%eax, -20(%ebp)
movl8(%edx), %eax
movl%eax, -16(%ebp)
movl12(%edx), %eax
movl%eax, -12(%ebp)
movdqa  -24(%ebp), %xmm0
paddw   %xmm0, %xmm0
movdqa  %xmm0, -40(%ebp)
movl-40(%ebp), %eax
movl%eax, (%edx)
movl-36(%ebp), %eax
movl%eax, 4(%edx)
movl-32(%ebp), %eax
movl%eax, 8(%edx)
movl-28(%ebp), %eax
movl%eax, 12(%edx)

However overwriting the assignment operator as:

union I16x8 {
__m128i m;
short v[8];

I16x8  operator =(I16x8 o) {
m = o.m;
return *this;
}
};

Generates the right assembly code for the function above:

movl8(%ebp), %eax
movdqa  (%eax), %xmm0
paddw   %xmm0, %xmm0
movdqa  %xmm0, (%eax)

Also strange, is that a dummy structure as follows:

struct I16x8 {
__m128i m;
};

Also generates the right code (exactly as above):

movl8(%ebp), %eax
movdqa  (%eax), %xmm0
paddw   %xmm0, %xmm0
movdqa  %xmm0, (%eax)

The union of vector type with a array of integers is an example used in almost
every tutorial of the SIMD intrinsics out there. This bug was causing gcc to
perform poorly with my code compared with Microsoft Visual C++ Compiler and
Intel C++ Compiler, but after working around this it generated faster code than
both.


-- 

jose dot r dot fonseca at gmail dot com changed:

   What|Removed |Added

 CC||jose dot r dot fonseca at
   ||gmail dot com


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



[Bug bootstrap/33010] New: bootstrap fails with assembler error

2007-08-07 Thread brett dot albertson at stratech dot com
bootstrap for me worked fine on August 6th.  Today (August 7th) it fails with:

gmake[6]: Entering directory `/u01/var/tmp/gcc_trunk_svn/gcc_20070807/gcc'
/u01/var/tmp/gcc_trunk_svn/gcc_20070807/./gcc/xgcc
-B/u01/var/tmp/gcc_trunk_svn/gcc_20070807/./gcc/
-B/opt/gcc-4.3/i386-pc-solaris2.11/bin/ -B/opt/gcc-4.3/i386-pc-solaris2.11/lib/
-isystem /opt/gcc-4.3/i386-pc-solaris2.11/include -isystem
/opt/gcc-4.3/i386-pc-solaris2.11/sys-include -O2 -O2 -msse2 -march=native
-mtune=native -O3  -DIN_GCC-W -Wall -Wwrite-strings -Wstrict-prototypes
-Wmissing-prototypes -Wold-style-definition  -isystem ./include  -I.
-I/u01/var/tmp/gcc_trunk_svn/gcc_20070807/i386-pc-solaris2.11/amd64/libgcc
-I/u01/var/tmp/gcc_trunk_svn/gcc/gcc
-I/u01/var/tmp/gcc_trunk_svn/gcc/gcc//u01/var/tmp/gcc_trunk_svn/gcc_20070807/i386-pc-solaris2.11/amd64/libgcc
-I/u01/var/tmp/gcc_trunk_svn/gcc/gcc/../include
-I/u01/var/tmp/gcc_trunk_svn/gcc/gcc/../libcpp/include -I/usr/local/include
-I/usr/local/include -I/u01/var/tmp/gcc_trunk_svn/gcc/gcc/../libdecnumber
-I/u01/var/tmp/gcc_trunk_svn/gcc/gcc/../libdecnumber/dpd -I../libdecnumber -g
-fkeep-inline-functions -m64 -g0 -finhibit-size-directive -fno-inline-functions
-fno-exceptions -fno-zero-initialized-in-bss -fno-toplevel-reorder 
-fno-omit-frame-pointer -fno-asynchronous-unwind-tables \
  -c /u01/var/tmp/gcc_trunk_svn/gcc/gcc/crtstuff.c -DCRT_BEGIN \
  -o
/u01/var/tmp/gcc_trunk_svn/gcc_20070807/i386-pc-solaris2.11/amd64/libgcc/crtbegin.o
/var/tmp//ccjpaqV3.s: Assembler messages:
/var/tmp//ccjpaqV3.s:91: Error: suffix or operands invalid for `pop'
/var/tmp//ccjpaqV3.s:92: Error: Incorrect register `%rdx' used with `l' suffix
gmake[6]: ***
[/u01/var/tmp/gcc_trunk_svn/gcc_20070807/i386-pc-solaris2.11/amd64/libgcc/crtbegin.o]
Error 1

This is from my nightly build of trunk, with no config changes on the server. 
Let me know if you need more information to debug.

Brett Albertson


-- 
   Summary: bootstrap fails with assembler error
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: critical
  Priority: P3
 Component: bootstrap
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: brett dot albertson at stratech dot com
 GCC build triplet: i386-pc-solaris2.11
  GCC host triplet: i386-pc-solaris2.11
GCC target triplet: i386-pc-solaris2.11


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



[Bug middle-end/29881] union causes inefficient code

2007-08-07 Thread jose dot r dot fonseca at gmail dot com


--- Comment #6 from jose dot r dot fonseca at gmail dot com  2007-08-07 
14:18 ---
Created an attachment (id=14031)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14031action=view)
Example code

This is the source-code for my example above. To get the assembly run as:

gcc -S -DCASE=0 -O3 -msse2 -o sse2-union-0.s sse2-union.cpp
gcc -S -DCASE=1 -O3 -msse2 -o sse2-union-1.s sse2-union.cpp
gcc -S -DCASE=2 -O3 -msse2 -o sse2-union-2.s sse2-union.cpp
gcc -S -DCASE=3 -O3 -msse2 -o sse2-union-3.s sse2-union.cpp

This was run on (gcc -v):

Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v
--enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr
--enable-shared --with-system-zlib --libexecdir=/usr/lib
--without-included-gettext --enable-threads=posix --enable-nls
--with-gxx-include-dir=/usr/include/c++/4.1.3 --program-suffix=-4.1
--enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug
--enable-mpfr --enable-checking=release i486-linux-gnu
Thread model: posix
gcc version 4.1.3 20070718 (prerelease) (Debian 4.1.2-14)

But I actually first discovered this in an unofficial build of gcc-4.2 for
MinGW.


-- 


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



[Bug target/33011] New: [4.3 Regression] frv: error: bad output_move_single operand

2007-08-07 Thread rask at gcc dot gnu dot org
Revision 126878 works while revision 126879 fails with:

/home/rask/build/gcc-frv-unknown-elf/./gcc/xgcc
-B/home/rask/build/gcc-frv-unknown-elf/./gcc/ -nostdinc
-B/home/rask/build/gcc-frv-unknown-elf/frv-unknown-elf/newlib/ -isystem
/home/rask/build/gcc-frv-unknown-elf/frv-unknown-elf/newlib/targ-include
-isystem /n/12/rask/src/all/newlib/libc/include
-B/home/rask/build/gcc-frv-unknown-elf/frv-unknown-elf/libgloss/frv
-L/home/rask/build/gcc-frv-unknown-elf/frv-unknown-elf/libgloss/libnosys
-L/n/12/rask/src/all/libgloss/frv -B/usr/local/frv-unknown-elf/bin/
-B/usr/local/frv-unknown-elf/lib/ -isystem /usr/local/frv-unknown-elf/include
-isystem /usr/local/frv-unknown-elf/sys-include
-L/home/rask/build/gcc-frv-unknown-elf/./ld -c -DHAVE_CONFIG_H -O2 -g -O2  
-mcpu=fr400 -I. -I/n/12/rask/src/all/libiberty/../include  -W -Wall
-Wwrite-strings -Wc++-compat -Wstrict-prototypes -pedantic 
/n/12/rask/src/all/libiberty/regex.c -o regex.o
/n/12/rask/src/all/libiberty/regex.c: In function 'byte_re_match_2_internal':
/n/12/rask/src/all/libiberty/regex.c:7481: error: bad output_move_single
operand
(insn:TI 3960 3959 1596 /n/12/rask/src/all/libiberty/regex.c:6810 (set (reg:DI
12 gr12)
(mem/c:DI (plus:SI (reg/f:SI 2 fp)
(const_int -168 [0xff58])) [66 S8 A64])) 6
{*movsi_load} (nil))
/n/12/rask/src/all/libiberty/regex.c:7481: internal compiler error: in
output_move_single, at config/frv/frv.c:4423

Configure flags:
--target=frv-unknown-elf --enable-languages=c --with-newlib --disable-gdb


-- 
   Summary: [4.3 Regression] frv: error: bad output_move_single
operand
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: ice-on-valid-code, build
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: rask at gcc dot gnu dot org
 GCC build triplet: x86_64-unknown-linux-gnu
  GCC host triplet: x86_64-unknown-linux-gnu
GCC target triplet: frv-unknown-elf


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



[Bug rtl-optimization/33009] -frtl-abstract-sequences causes an infinite loop

2007-08-07 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2007-08-07 14:32 ---
-frtl-abstract-sequences is not well tested at all.  It is in the same
situation as -fsee.  There are no testcases which test it so how do we know it
is broken.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

  Component|c   |rtl-optimization
Summary|[dataflow] cc1 goes into|-frtl-abstract-sequences
   |infinite loop   |causes an infinite loop


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



[Bug rtl-optimization/33009] -frtl-abstract-sequences causes an infinite loop

2007-08-07 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2007-08-07 14:37 ---
I get an ICE:
t.c: In function 'foo':
t.c:28: error: unrecognizable insn:
(insn 177 0 0 (set (reg:SI 0 ax)
(symbol_ref:SI (*L9) [flags 0x2])) -1 (nil))


-- 


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



[Bug middle-end/33007] [4.3 Regression] Revision 127185 causes NINT to ICE

2007-08-07 Thread hjl at lucon dot org


--- Comment #5 from hjl at lucon dot org  2007-08-07 14:40 ---
There is a disconnect between middle-end and back-end. There are many
places in builtins.c with

  /* If argument is already integer valued, and we don't need to worry
 about setting errno, there's no need to perform rounding.  */
  if (! flag_errno_math  integer_valued_real_p (arg))

However, the x86 back-end doesn't have this info:

(define_expand lroundSSEMODEF:modeSSEMODEI24:mode2
  [(match_operand:SSEMODEI24 0 nonimmediate_operand )
   (match_operand:SSEMODEF 1 register_operand )]
  SSE_FLOAT_MODE_P (SSEMODEF:MODEmode)  TARGET_SSE_MATH
((SSEMODEI24:MODEmode != DImode) || TARGET_64BIT)
!flag_trapping_math  !flag_rounding_math
!optimize_size
{
  ix86_expand_lround (operand0, operand1);
  DONE;
})

That is why it fails to expand.


-- 


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



[Bug target/33010] bootstrap fails with assembler error

2007-08-07 Thread pinskia at gcc dot gnu dot org


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

   Severity|critical|normal
  Component|bootstrap   |target
   Keywords||build


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



[Bug target/33011] [4.3 Regression] frv: error: bad output_move_single operand

2007-08-07 Thread rask at gcc dot gnu dot org


--- Comment #1 from rask at gcc dot gnu dot org  2007-08-07 14:44 ---
Created an attachment (id=14032)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14032action=view)
Testcase to compile with -O2 -mcpu=fr400


-- 


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



[Bug target/33011] [4.3 Regression] frv: error: bad output_move_single operand

2007-08-07 Thread pinskia at gcc dot gnu dot org


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||pinskia at gcc dot gnu dot
   ||org
   Target Milestone|--- |4.3.0


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



[Bug middle-end/33007] [4.3 Regression] Revision 127185 causes NINT to ICE

2007-08-07 Thread hjl at lucon dot org


--- Comment #6 from hjl at lucon dot org  2007-08-07 14:56 ---
Here is a testcase in C:

bash-3.2$ cat x.c
extern void bar (int *);

void
foo (int *i)
{
  float x;
  int y;

  x = *i;
  y = (int) __builtin_lroundf (x);
  bar (y);
}
bash-3.2$ /export/build/gnu/gcc/build-x86_64-linux/gcc/xgcc
-B/export/build/gnu/gcc/build-x86_64-linux/gcc/ -O -S x.c -ffast-math
-ftrapping-math
x.c: In function ‘foo’:
x.c:10: internal compiler error: in get_callee_fndecl, at tree.c:6521
Please submit a full bug report,
with preprocessed source if appropriate.
See URL:http://gcc.gnu.org/bugs.html for instructions.
bash-3.2$ 


-- 


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



[Bug tree-optimization/32975] [4.3 Regression] ICE segfault (verify_cgraph failure after ipa-cp) with -finline-functions -fipa-cp

2007-08-07 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2007-08-07 15:04 ---
This has to do with folding of __builtin_strlen.


-- 


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



[Bug bootstrap/32973] [4.3 regression] bootstrap failure with indented structure declaration in macro

2007-08-07 Thread schwab at gcc dot gnu dot org


--- Comment #5 from schwab at gcc dot gnu dot org  2007-08-07 15:32 ---
Subject: Bug 32973

Author: schwab
Date: Tue Aug  7 15:31:56 2007
New Revision: 127272

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=127272
Log:
PR bootstrap/32973
* gengtype-lex.l: Ignore backslash/newline pair while scanning a
struct definition.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/gengtype-lex.l


-- 


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



[Bug bootstrap/32973] [4.3 regression] bootstrap failure with indented structure declaration in macro

2007-08-07 Thread schwab at suse dot de


--- Comment #6 from schwab at suse dot de  2007-08-07 16:05 ---
Fixed.


-- 

schwab at suse dot de changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug middle-end/33007] [4.3 Regression] builtin lround doesn't work

2007-08-07 Thread hjl at lucon dot org


--- Comment #7 from hjl at lucon dot org  2007-08-07 16:24 ---
A more simple testcase also fails on Linux/ia64:

[EMAIL PROTECTED] lround]$ cat x.c
int
foo (int *i)
{
  float x;
  int y;

  x = *i;
  y = (int) __builtin_lroundf (x);
  return y;
}
[EMAIL PROTECTED] lround]$ make x.s
/export/build/gnu/gcc/build-ia64-linux/gcc/xgcc
-B/export/build/gnu/gcc/build-ia64-linux/gcc/ -O -ffast-math -ftrapping-math -S
x.c
x.c: In function ‘foo’:
x.c:8: internal compiler error: in get_callee_fndecl, at tree.c:6521
Please submit a full bug report,
with preprocessed source if appropriate.
See URL:http://gcc.gnu.org/bugs.html for instructions.
make: *** [x.s] Error 1
[EMAIL PROTECTED] lround]$ 


-- 


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



[Bug middle-end/33007] [4.3 Regression] builtin lround doesn't work

2007-08-07 Thread hjl at lucon dot org


--- Comment #8 from hjl at lucon dot org  2007-08-07 16:27 ---
This is the smallest testcase I find:

long
foo (int i)
{
  float x;
  x = i;
  return __builtin_lroundf (x);
}


-- 


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



[Bug middle-end/33007] [4.3 Regression] builtin lround doesn't work

2007-08-07 Thread hjl at lucon dot org


--- Comment #9 from hjl at lucon dot org  2007-08-07 17:03 ---
Does this patch:

--- builtins.c.round2007-07-29 13:18:40.0 -0700
+++ builtins.c  2007-08-07 09:58:46.0 -0700
@@ -2689,6 +2689,16 @@ expand_builtin_int_roundingfn_2 (tree ex

   start_sequence ();

+  if (TREE_CODE (exp) == NOP_EXPR)
+switch (TREE_CODE (TREE_OPERAND (exp, 0)))
+  {
+  case FIX_TRUNC_EXPR:
+   builtin_optab = sfixtrunc_optab;
+   break;
+  default:
+   gcc_unreachable ();
+  }
+
   if (expand_sfix_optab (target, op0, builtin_optab))
 {
   /* Output the entire sequence.  */
@@ -2698,6 +2708,8 @@ expand_builtin_int_roundingfn_2 (tree ex
   return target;
 }

+  gcc_assert (TREE_CODE (exp) == CALL_EXPR);
+
   /* If we were unable to expand via the builtin, stop the sequence
  (without outputting the insns) and call to the library function
  with the stabilized argument list.  */

make any senses?


-- 


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



[Bug java/32862] bug in EnumMap implementation

2007-08-07 Thread tromey at gcc dot gnu dot org


--- Comment #3 from tromey at gcc dot gnu dot org  2007-08-07 17:38 ---
Fixed via classpath import.


-- 

tromey at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.3.0


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



[Bug c++/33012] New: ICE on throwing copy of object returned by reference from method with traits-deduced return-type

2007-08-07 Thread raymond at corvil dot com
Compiling a .cpp file with the following contents triggers an internal compiler
error:


/*
 * The two Traits templates here are essentially std::iterator_traits 
 * stripped right down with just enough left to make the test-case work:
 */

templatetypename _Type struct Traits;
templatetypename _Type
struct Traits_Type * { typedef _Type reference; };


/*
 * TraitedWrapper is essentially __gnu_cxx::__normal_iterator stripped
 * to the minimum required to make the test-case work:
 */

templatetypename _Pointer
class TraitedWrapper {
public:
typedef typename Traits_Pointer::referencereference;


TraitedWrapper(const _Pointer pointer) : pointer_(pointer) { }

reference get() const   { return *pointer_; }

private:
_Pointer pointer_;
};


/*
 * SpecialWrapper is essentially a form of TraitedWrapper that is
 * specialised for the pointer case in the way that Traits is.
 */

templatetypename _Typeclass SpecialWrapper;
templatetypename _Type
class SpecialWrapper_Type * {
public:
SpecialWrapper(_Type *pointer) : pointer_(pointer) { }

_Type get() const   { return *pointer_; }

private:
_Type *pointer_;
};




/*
 * inner() throws a copy of an object returned by reference from
 * a method whose return-type is sometimes deduced by some template
 * indirection.  It's templated to show what happens with different
 * combinations of return-type deduction and copy-constructor origin.
 */

templatetemplatetypename class _Wrapper, typename _Type
voidinner()
{
_Type orig;
_Wrapper_Type * wrapper(orig);

/*
 * No problem copy-constructing a stack-variable from the iterator:
 */
_Type copy(wrapper.get());
if( true )
/*
 * No problem throwing the stack-variable:
 */
throw copy;
else
/*
 * ICE can happen here, when directly throwing a copy,
 * depending on template parameters:
 */
throw _Type(wrapper.get());
}


struct Generated { };

struct Manual {
Manual() { }
Manual(const Manual) { }
};


voidouter()
{
innerSpecialWrapper, Manual();
innerSpecialWrapper, Generated();
innerTraitedWrapper, Manual();

/*
 * ICE when the wrapper get-method has a traits-deduced return-type
 * and the class has a compiler-supplied copy-constructor:
 */
innerTraitedWrapper, Generated();
}




Issued command-line:
g++ -Wall -W -Wundef -Wpointer-arith -g -O0 -c -o /dev/null bug.cpp

Resulting output:
bug.cpp: In function 'void inner() [with _Wrapper = TraitedWrapper, _Type =
Generated]':
bug.cpp:101:   instantiated from here
bug.cpp:79: internal compiler error: in stabilize_call, at cp/tree.c:2248
Please submit a full bug report,
...

Full output from running with -v --save-temps is as follows:
g++ -v -save-temps -Wall -W -Wundef -Wpointer-arith -g -O0 -c -o /dev/null
bug.cpp

Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: ../gcc-4.1.1/configure --enable-shared --enable-threads=posix
--enable-__cxa_atexit --enable-clocale=gnu --enable-languages=c,c++
Thread model: posix
gcc version 4.1.1
 /usr/local/libexec/gcc/i686-pc-linux-gnu/4.1.1/cc1plus -E -quiet -v
-D_GNU_SOURCE bug.cpp -mtune=pentiumpro -Wall -W -Wundef -Wpointer-arith
-fworking-directory -O0 -fpch-preprocess -o bug.ii
ignoring nonexistent directory NONE/include
ignoring nonexistent directory
/usr/local/lib/gcc/i686-pc-linux-gnu/4.1.1/../../../../i686-pc-linux-gnu/include
#include ... search starts here:
#include ... search starts here:
 /usr/local/lib/gcc/i686-pc-linux-gnu/4.1.1/../../../../include/c++/4.1.1

/usr/local/lib/gcc/i686-pc-linux-gnu/4.1.1/../../../../include/c++/4.1.1/i686-pc-linux-gnu

/usr/local/lib/gcc/i686-pc-linux-gnu/4.1.1/../../../../include/c++/4.1.1/backward
 /usr/local/include
 /usr/local/lib/gcc/i686-pc-linux-gnu/4.1.1/include
 /usr/include
End of search list.
 /usr/local/libexec/gcc/i686-pc-linux-gnu/4.1.1/cc1plus -fpreprocessed bug.ii
-quiet -dumpbase bug.cpp -mtune=pentiumpro -auxbase-strip /dev/null -g -O0
-Wall -W -Wundef -Wpointer-arith -version -o bug.s
GNU C++ version 4.1.1 (i686-pc-linux-gnu)
compiled by GNU C version 4.1.1.
GGC heuristics: --param ggc-min-expand=63 --param ggc-min-heapsize=63424
Compiler executable checksum: 5c1ee95ea2451a4e1aafd30c10a207cb
bug.cpp: In function 'void inner() [with _Wrapper = TraitedWrapper, _Type =
Generated]':
bug.cpp:101:   instantiated from here
bug.cpp:79: internal compiler error: in stabilize_call, at cp/tree.c:2248
Please submit a full bug report,
with preprocessed source if appropriate.
See URL:http://gcc.gnu.org/bugs.html for instructions.



-- 
   Summary: ICE on throwing copy of object returned by reference
from method with traits-deduced return-type
   Product: gcc
   Version: 4.1.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned 

[Bug target/30961] [4.1/4.2/4.3 regression] redundant reg/mem stores/moves

2007-08-07 Thread pluto at agmk dot net


--- Comment #25 from pluto at agmk dot net  2007-08-07 17:51 ---
(In reply to comment #24)
 (In reply to comment #23)
  (In reply to comment #22)
   There are 2 issues, convert and load. They may be caused by different
   patches and should be tracked separately when doing binary search.
  
  i've filled the 'load' issue as PR33008.
  the gcc-reload-second-2.patch fixes 'convert' and finally this PR.
  
 
 Which checkin caused the convert regression?

i don't know but the 'convert' issue is almost fixed.
gcc-4.2 patched against PR27567 and gcc-reload-second-2.patch produces:

float convert_int2float( int in )
{
float f;
__builtin_memcpy( f, in, sizeof( f ) );
return f;
}

double convert_long2double( long in )
{
double f;
__builtin_memcpy( f, in, sizeof( f ) );
return f;
}

{-m64 -O2}

convert_int2float:
movl%edi, -4(%rsp)
movss   -4(%rsp), %xmm0
ret

convert_long2double:
movq%rdi, -8(%rsp)
movsd   -8(%rsp), %xmm1  == reload-second patch doesn't work here.
movapd  %xmm1, %xmm0 == /
ret

{-m32 -O2 -fomit-frame-pointer}

convert_int2float:
flds4(%esp)
ret

convert_long2double:
fldl4(%esp)
ret


-- 


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



[Bug target/30961] [4.1/4.2/4.3 regression] redundant reg/mem stores/moves

2007-08-07 Thread pluto at agmk dot net


--- Comment #26 from pluto at agmk dot net  2007-08-07 17:53 ---
(In reply to comment #25)
errata:
 double convert_long2double( long in )
   wrong post, should be 'long long'.


-- 


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



[Bug c++/33012] ICE on throwing copy of object returned by reference from method with traits-deduced return-type

2007-08-07 Thread raymond at corvil dot com


--- Comment #1 from raymond at corvil dot com  2007-08-07 17:59 ---
I have been able to reproduce the same ICE in 3.4.2,

gcc version 3.4.2 20040827 (prerelease) [FreeBSD]

but not in 2.95.4 or 4.1.2:

gcc version 2.95.4 20020320 [FreeBSD]
gcc version 4.1.2 (Ubuntu 4.1.2-0ubuntu4)


I originally found the ICE in some code that was throwing a copy of an object
in a std::vector on the stack.  By playing around with the test code I posted,
I found that it seems to trigger only when the following three conditions occur
together:

* the copy is directly thrown, and not when the a copy is declared on the stack
and then thrown;
* the method that provides the reference to be copied has a return-type deduced
from a traits template;
* the class of the object being thrown does not provide a copy-constructor.

I've tried to illustrate in the full test case that, if any one of these
conditions is false, then the ICE doesn't happen.


The following shorter test-case also triggers the error.  I know it includes a
standard header, and I haven't provided pre-processed sources for this, but
it's just for illustration purposes.


#include vector

/*
 * inner() throws a copy of an object contained in a vector.
 * It's templated to show what happens with different _Types.
 */

templatetypename _Type
voidinner()
{
typename std::vector_Type vector(1);
throw _Type(*vector.begin());
}


struct Generated { };

struct Manual {
Manual() { }
Manual(const Manual) { }
};


voidouter()
{
// No problems when the class has a hand-written copy-constructor:
innerManual();

// ICE when the class has a compiler-supplied copy-constructor:
innerGenerated();
}




-- 


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



[Bug target/30961] [4.1/4.2/4.3 regression] redundant reg/mem stores/moves

2007-08-07 Thread hjl at lucon dot org


--- Comment #27 from hjl at lucon dot org  2007-08-07 18:10 ---
Created an attachment (id=14033)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14033action=view)
An updated patch

My patch works on gcc 4.3:

[EMAIL PROTECTED] 30961]$ cat c.c
double
convert4(long long in )
{
  double f;
  __builtin_memcpy( f, in, sizeof( in ) );
  return f;
}
[EMAIL PROTECTED] 30961]$ make c.s
/export/build/gnu/gcc/build-x86_64-linux/gcc/xgcc
-B/export/build/gnu/gcc/build-x86_64-linux/gcc/  -S -O2
-fno-asynchronous-unwind-tables c.c
[EMAIL PROTECTED] 30961]$ cat c.s
.file   c.c
.text
.p2align 4,,15
.globl convert4
.type   convert4, @function
convert4:
movq%rdi, -8(%rsp)
movsd   -8(%rsp), %xmm0
ret
.size   convert4, .-convert4
.ident  GCC: (GNU) 4.3.0 20070806 (experimental) [trunk revision
127248]
.section.note.GNU-stack,,@progbits
[EMAIL PROTECTED] 30961]$ 

If you can find which patch causes this regression, it will be easier to
find a solution for 4.2.


-- 


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



[Bug c/33013] New: Documentation for __builtin_choose_expr is wrong

2007-08-07 Thread brian at oddchange dot com
The info page says: This built-in function returns EXP1 if CONST_EXP, which is
a  constant expression that must be able to be determined at compile time,
is nonzero.  Otherwise it returns 0.

The last sentence should read, Otherwise it returns EXP2.


-- 
   Summary: Documentation for __builtin_choose_expr is wrong
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: brian at oddchange dot com


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



[Bug c++/31749] [4.1/4.2/4.3 regression] ICE with invalid redeclaration of builtin

2007-08-07 Thread patchapp at dberlin dot org


--- Comment #7 from patchapp at dberlin dot org  2007-08-07 19:15 ---
Subject: Bug number PR c++/31749

A patch for this bug has been added to the patch tracker.
The mailing list url for the patch is
http://gcc.gnu.org/ml/gcc-patches/2007-08/msg00452.html


-- 


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



[Bug c/33014] New: Documentation for __builtin_choose_expr is wrong

2007-08-07 Thread brian at oddchange dot com
The info page says: This built-in function returns EXP1 if CONST_EXP, which is
a  constant expression that must be able to be determined at compile time,
is nonzero.  Otherwise it returns 0.

The last sentence should read, Otherwise it returns EXP2.


-- 
   Summary: Documentation for __builtin_choose_expr is wrong
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: brian at oddchange dot com


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



[Bug c/33013] Documentation for __builtin_choose_expr is wrong

2007-08-07 Thread brian at oddchange dot com


--- Comment #1 from brian at oddchange dot com  2007-08-07 19:40 ---
*** Bug 33014 has been marked as a duplicate of this bug. ***


-- 


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



[Bug c/33014] Documentation for __builtin_choose_expr is wrong

2007-08-07 Thread brian at oddchange dot com


--- Comment #1 from brian at oddchange dot com  2007-08-07 19:40 ---


*** This bug has been marked as a duplicate of 33013 ***


-- 

brian at oddchange dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug fortran/33015] New: F66/Vendor extension: Implement support for DATA jhlf/'f'/

2007-08-07 Thread burnus at gcc dot gnu dot org
Possible extension to be added is the support of:

   data jhlf,jhlg/'f','g'/

Which is interpreted as follows (thanks to Steve Lionel of Intel):
| The character literals are blank-padded on the right to the length of the 
| corresponding variables (or truncated as necessary) and then the ASCII 
| equivalent is assigned.  So what you have here could be replaced by:
|
|   data jhlf,jhlg /Z'20202066',Z'20202067'/
|
| or use transfer('f   ',jhlf), etc.
|
| Effectively, this is the old F66 Hollerith constant style of
| programming.

Found in Cowan's rcn program, which started in 1961.
ftp://aphysics.lanl.gov/pub/cowan/

I don't feel strong about it, but it would make life easier for such old
programs.

Actually, ifort also supports:

   integer :: jhlf
   jhlf = 'f'

Such a character - integer/real/complex conversion would be something for
-std=legacy.


-- 
   Summary: F66/Vendor extension: Implement support for DATA
jhlf/'f'/
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: burnus at gcc dot gnu dot org


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



[Bug c++/33016] New: type_info::before() will not return the same value

2007-08-07 Thread pneveu at pcigeomatics dot com
 gcc -v
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: ./configure --with-gmp=/home/pneveu/apps/gcc-4.1.2/gmp
--with-mpfr=/home/pneveu/apps/gcc-4.1.2/mpfr --prefix=/build/pcitools/gcc4.1.2
Thread model: posix
gcc version 4.1.2


If you compile the file before.cpp, with and without defining the
PRINT_TYPE_INFO_BEFORE define, the type_info::before() function will not
generate the same output.

Here are the steps to reproduce the bug:

In this case A is not before B: typeid(A).before(typeid(B)) == false

 g++ before.cpp -o before
 ./before
A is before B: 0
typeid(A).name(): 1A
typeid(B).name(): 1B

In this case A is before B: typeid(A).before(typeid(B)) == true

 g++ -DPRINT_TYPE_INFO_NAME_BEFORE before.cpp -o before
 ./before
typeid(A).name(): 1A
typeid(B).name(): 1B
A is before B: 1

Regards,

Phelippe Neveu


-- 
   Summary: type_info::before() will not return the same value
   Product: gcc
   Version: 4.1.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: pneveu at pcigeomatics dot com


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



[Bug c++/33016] type_info::before() will not return the same value

2007-08-07 Thread pneveu at pcigeomatics dot com


--- Comment #1 from pneveu at pcigeomatics dot com  2007-08-07 20:07 ---
Created an attachment (id=14034)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14034action=view)
Defines a class B that inherit the class A, and print the returned value of
typeid(A).before(typeid(B)).


-- 


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



[Bug c++/33016] type_info::before() will not return the same value

2007-08-07 Thread pneveu at pcigeomatics dot com


--- Comment #2 from pneveu at pcigeomatics dot com  2007-08-07 20:10 ---
Created an attachment (id=14035)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14035action=view)
The temporary file created when compiling before.cpp without defining
PRINT_TYPE_INFO_NAME_BEFORE.


-- 


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



[Bug c++/33016] type_info::before() will not return the same value

2007-08-07 Thread pneveu at pcigeomatics dot com


--- Comment #3 from pneveu at pcigeomatics dot com  2007-08-07 20:11 ---
Created an attachment (id=14036)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14036action=view)
The temporary file created when compiling before.cpp with defining
PRINT_TYPE_INFO_NAME_BEFORE.


-- 


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



[Bug fortran/33015] g77/F66/vendor extension: Implement support for DATA jhlf /'f'/

2007-08-07 Thread burnus at gcc dot gnu dot org


--- Comment #1 from burnus at gcc dot gnu dot org  2007-08-07 20:13 ---
Just for completeness: This is a regression with regards to g77.


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

  Known to fail||4.3.0
  Known to work||3.3.5
Summary|F66/Vendor extension:   |g77/F66/vendor extension:
   |Implement support for DATA  |Implement support for DATA
   |jhlf/'f'/   |jhlf /'f'/


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



[Bug middle-end/30969] [4.3 Regression] The polyhedron test 'fatigue.f90' is no longer working.

2007-08-07 Thread steven at gcc dot gnu dot org


--- Comment #10 from steven at gcc dot gnu dot org  2007-08-07 21:01 ---
Never confirmed, and reported says the bug seems to be fixed.

If the bug is still there, please re-open this PR.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug target/30961] [4.1/4.2/4.3 regression] redundant reg/mem stores/moves

2007-08-07 Thread pluto at agmk dot net


--- Comment #28 from pluto at agmk dot net  2007-08-07 21:20 ---
(In reply to comment #27)
 If you can find which patch causes this regression, it will be easier to
 find a solution for 4.2.

r80888 works fine (below) and r85770 is broken.
i can't bisect more dueto build errors.
gcc{42/40} rejects libbanshee/engine/setif-sort.c.

convert_int2float:
movl%edi, -4(%rsp)
movss   -4(%rsp), %xmm0
ret
convert_long2double:
movq%rdi, -8(%rsp)
movlpd  -8(%rsp), %xmm0
ret


-- 


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



[Bug c/33017] New: tree check fail for legal code

2007-08-07 Thread dcb314 at hotmail dot com
I just tried to compile Suse Linux package ddiwrapper-0.2-86
with the GNU C compiler version 4.3 snapshot 20070803.

The compiler said

write_msft.c: In function 'ctl2_alloc_string':
write_msft.c:562: internal compiler error: tree check: expected ssa_name, have
symbol_memory_tag in is_old_name, at tree-into-ssa.c:566
Please submit a full bug report,
with preprocessed source if appropriate.
See URL:http://gcc.gnu.org/bugs.html for instructions.

Preprocessed source attached. Flags -O2   -ftree-vectorize -m32 required.


-- 
   Summary: tree check fail for legal code
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dcb314 at hotmail dot com
  GCC host triplet: x86_64-suse-linux


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



[Bug c/33017] tree check fail for legal code

2007-08-07 Thread dcb314 at hotmail dot com


--- Comment #1 from dcb314 at hotmail dot com  2007-08-07 21:43 ---
Created an attachment (id=14037)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14037action=view)
C source code


-- 


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



[Bug java/33018] New: Not able to get past this error

2007-08-07 Thread maybe_guess_who_is at yahoo dot com
linux:~/Desktop/D/gcc-4.2.1# make
[ -f stage_final ] || echo stage3  stage_final
.

..
make[3]: Entering directory `/D/gcc-4.2.1/host-i686-pc-linux-gnu/gcc'
/root/Desktop/D/gcc-4.2.1/host-i686-pc-linux-gnu/prev-gcc/xgcc
-B/root/Desktop/D/gcc-4.2.1/host-i686-pc-linux-gnu/prev-gcc/
-B/usr/local/i686-pc-linux-gnu/bin/ -c   -O2 -g -fomit-frame-pointer -DIN_GCC  
-W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -pedantic
-Wno-long-long -Wno-variadic-macros -Wno-overlength-strings
-Wold-style-definition -Wmissing-format-attribute-DHAVE_CONFIG_H -I. -Ijava
-I../.././gcc -I../.././gcc/java -I../.././gcc/../include
-I../.././gcc/../libcpp/include  -I../.././gcc/../libdecnumber
-I../libdecnumber../.././gcc/java/jcf-write.c -o java/jcf-write.o
../.././gcc/java/jcf-write.c: In function 'make_class_file_name':
../.././gcc/java/jcf-write.c:3494: error: too few arguments to function 'mkdir'
make[3]: *** [java/jcf-write.o] Error 1
make[3]: Leaving directory `/D/gcc-4.2.1/host-i686-pc-linux-gnu/gcc'
make[2]: *** [all-stage2-gcc] Error 2
make[2]: Leaving directory `/D/gcc-4.2.1'
make[1]: *** [stage2-bubble] Error 2
make[1]: Leaving directory `/D/gcc-4.2.1'
make: *** [all] Error 2


-- 
   Summary: Not able to get past this error
   Product: gcc
   Version: 4.0.2
Status: UNCONFIRMED
  Severity: blocker
  Priority: P3
 Component: java
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: maybe_guess_who_is at yahoo dot com


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



[Bug tree-optimization/32544] gcc 4.2.1 miscompiles Mesa's r300 DRI driver with -ftree-vrp

2007-08-07 Thread pixel at mandriva dot com


--- Comment #5 from pixel at mandriva dot com  2007-08-07 22:33 ---
Created an attachment (id=14038)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14038action=view)
miscompiles with gcc 4.2 -O2

here is a simple test case reproducing the issue.

eg:

% gcc -O2 ivopts-issue.c  ./a.out  gcc -O2 -fno-ivopts ivopts-issue.c 
./a.out 
0 0 1 2 
2 2 1 1 


-- 


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



[Bug tree-optimization/32544] gcc 4.2.1 miscompiles Mesa's r300 DRI driver with -ftree-vrp

2007-08-07 Thread pixel at mandriva dot com


--- Comment #6 from pixel at mandriva dot com  2007-08-07 22:41 ---
more info: the tree-vrp issue is raised by ivopts pass:

without ivopts:

  D.1541_13 = 3 - i_31;
  D.1542_14 = (unsigned int) D.1541_13;
  D.1543_15 = D.1542_14 * 4;
  D.1544_16 = (int *) D.1543_15;

with ivopts:

  D.1607_62 = (int *) i_31;
  D.1608_63 = D.1607_62 * -4B;
  D.1544_64 = D.1608_63 + 12B;
  D.1544_16 = D.1544_64;

  vrp finds that D.1608_63 is 0, and so replaces D.1544_64 with 12

  D.1607_62 = (int *) i_31;
  D.1608_63 = D.1607_62 * -4B;
  D.1544_64 = D.1608_63 + 12B;
  D.1544_16 = D.1544_64;


-- 


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



[Bug rtl-optimization/32776] [4.3 Regression] ICE RTL check: expected code 'reg', have 'concatn' in rhs_regno, at rtl.h:972

2007-08-07 Thread ian at gcc dot gnu dot org


--- Comment #3 from ian at gcc dot gnu dot org  2007-08-07 22:44 ---
Subject: Bug 32776

Author: ian
Date: Tue Aug  7 22:43:55 2007
New Revision: 127282

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=127282
Log:
PR rtl-optimization/32776
* lower-subreg.c (resolve_clobber): Call resolve_reg_notes.
(resolve_use): Likewise.
(decompose_multiword_subregs): Remove changed local variable.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/lower-subreg.c


-- 


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



[Bug tree-optimization/32544] gcc 4.2.1 miscompiles Mesa's r300 DRI driver with -ftree-vrp

2007-08-07 Thread pixel at mandriva dot com


--- Comment #7 from pixel at mandriva dot com  2007-08-07 22:45 ---
the following patch fixes the testcase ivopts-issue.c, but breaks everything
else... someone else will find a correct patch :)

--- gcc-4.2.1/gcc/tree-ssa-loop-ivopts.c.pix2006-10-06 21:32:04.0
+0200
+++ gcc-4.2.1/gcc/tree-ssa-loop-ivopts.c2007-08-08 00:23:49.0
+0200
@@ -3061,7 +3061,9 @@ get_computation_aff (struct loop *loop,
   expr = fold_convert (ctype, expr);
 }

-  if (TYPE_UNSIGNED (utype))
+  if (POINTER_TYPE_P (utype))
+uutype = ctype;
+  else if (TYPE_UNSIGNED (utype))
 uutype = utype;
   else
 {


-- 


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



[Bug rtl-optimization/32776] [4.3 Regression] ICE RTL check: expected code 'reg', have 'concatn' in rhs_regno, at rtl.h:972

2007-08-07 Thread ian at airs dot com


--- Comment #4 from ian at airs dot com  2007-08-07 22:47 ---
Fixed.


-- 

ian at airs dot com changed:

   What|Removed |Added

 CC|ian at gcc dot gnu dot org  |ian at airs dot com
 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug c++/32970] [4.3 Regression] C++ frontend can not handle vector pointer constant parameter

2007-08-07 Thread janis at gcc dot gnu dot org


--- Comment #3 from janis at gcc dot gnu dot org  2007-08-07 23:17 ---
It compiles quickly for me with GCC 4.1.1 for powerpc64-linux and with a 4.1.1
cross compiler for i686-linux.  Is your 4.1.1 compiler from FSF sources, or
might it have additional backports?


-- 


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



[Bug target/30961] [4.1/4.2/4.3 regression] redundant reg/mem stores/moves

2007-08-07 Thread hjl at lucon dot org


--- Comment #29 from hjl at lucon dot org  2007-08-08 00:33 ---
With revision 85770, I got

[EMAIL PROTECTED] rrs]$ cat convert.s
.file   convert.c
.text
.align 4
.p2align 4,,15
.globl convert4
.type   convert4, @function
convert4:
movq%rdi, -8(%rsp)
movq%rdi, -16(%rsp)
movlpd  -8(%rsp), %xmm0
ret
.size   convert4, .-convert4
.ident  GCC: (GNU) 3.5.0 20040810 (experimental)
.section.note.GNU-stack,,@progbits

Remove the extra mvoq won't solve this regression.


-- 


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



[Bug libstdc++/30915] [4.3 regression] bootstrap fails while building libstdc++-v3 on x86_64-pc-linux-gnu

2007-08-07 Thread s_j_newbury at yahoo dot co dot uk


--- Comment #25 from s_j_newbury at yahoo dot co dot uk  2007-08-08 01:45 
---
Created an attachment (id=14039)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14039action=view)
Prevent fixincludes false positive on gentoo stdio.h wrapper

The fixincludes script is hitting a false positive when it scans the
/usr/include/stdio.h header wrapper on gentoo multilib systems.  Adding a
bypass for gentoo-multilib to the relevant fix solves this issue.
A multilib build successfully concludes with this patch.


-- 


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



[Bug libfortran/33019] New: FORTRAN NAMELIST Run Time Problem

2007-08-07 Thread jvdelisle at gcc dot gnu dot org
Unable to tell the difference between 'CODE' and 'CODEtwo' namelist names in
attachments to follow.


-- 
   Summary: FORTRAN NAMELIST Run Time Problem
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libfortran
AssignedTo: jvdelisle at gcc dot gnu dot org
ReportedBy: jvdelisle at gcc dot gnu dot org


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



[Bug libfortran/33019] FORTRAN NAMELIST Run Time Problem

2007-08-07 Thread jvdelisle at gcc dot gnu dot org


--- Comment #1 from jvdelisle at gcc dot gnu dot org  2007-08-08 02:18 
---
Created an attachment (id=14040)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14040action=view)
Namelist input file

Test case using attached input:

  PROGRAM namelist

  CHARACTER*25 CHAR

  NAMELIST /CODE/ CHAR, X

  NAMELIST /CODEtwo/ X

C

  OPEN(5, file='namelist.in')

  100 CHAR = 'Initialize string ***'

  X= -777.

  READ(5, nml=CODE, END=999)

  WRITE(6,*) CHAR, X

  GO TO 100

  999 STOP 'namelist'

  END PROGRAM namelist


-- 


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



[Bug libfortran/33019] FORTRAN NAMELIST Run Time Problem

2007-08-07 Thread jvdelisle at gcc dot gnu dot org


--- Comment #2 from jvdelisle at gcc dot gnu dot org  2007-08-08 02:19 
---
Created an attachment (id=14041)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14041action=view)
Namelist input file

Correct input file.


-- 

jvdelisle at gcc dot gnu dot org changed:

   What|Removed |Added

  Attachment #14040|0   |1
is obsolete||


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



[Bug target/30961] [4.1/4.2/4.3 regression] redundant reg/mem stores/moves

2007-08-07 Thread hjl at lucon dot org


--- Comment #30 from hjl at lucon dot org  2007-08-08 03:01 ---
This patch

http://gcc.gnu.org/ml/gcc-cvs/2006-09/msg00042.html

causes this regression.


-- 

hjl at lucon dot org changed:

   What|Removed |Added

 CC||jakub at redhat dot com


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



[Bug rtl-optimization/11222] arm/thumb __Unwind_SjLj_Register prologue optimization causes crash on interrupts

2007-08-07 Thread guested dot portrayed dot stephen at blacksapphire dot com


--- Comment #9 from guested dot portrayed dot stephen at blacksapphire dot 
com  2007-08-08 05:15 ---
Created an attachment (id=14042)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14042action=view)
This fixes a very similar bug in 4.1.1

gcc version 4.1.1 contains a very similar (but not quite the same) bug where
function epilogues like this are generated for ARM thumb targets.

empty:
push{r7, lr}
add r7, sp, #8
mov sp, r7
sub sp, sp, #8
@ sp needed for prologue
pop {r7}
pop {r0}
bx  r0

The problem is that between mov sp, r7 and sub sp, #8, the stack pointer
points above the valid stack bottom, and if an interrupt occurs between these
points, stack contents get overwritten.

To generate the above code, use this test.c file:

--- test.c
void empty(void);
void empty()
{
}
--- end test.c

Use this command:

/opt/arm-none-eabi/bin/arm-none-eabi-gcc -S -o test.s test.c -mthumb
-fno-omit-frame-pointer -O2

The attached patch fixes this bug.


-- 


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