[Bug target/27067] Compile errors with multiple inheritance where the stdcall attribute is applied to virtual functions.

2007-04-05 Thread aaronavay62 at aaronwl dot com


--- Comment #8 from aaronavay62 at aaronwl dot com  2007-04-05 08:05 ---
What is the status on this?  I'm pretty sure this is a regression; it would be
great if this fix could get into 4.2, but it might be too late for that.  This
is a serious problem for many/most users on Windows as it breaks COM.


-- 


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



[Bug target/31478] Typo in sse2_umulv2siv2di3 pattern

2007-04-05 Thread ubizjak at gmail dot com


--- Comment #3 from ubizjak at gmail dot com  2007-04-05 08:48 ---
> There is no corresponding define_expand for this pattern. Many define_insn
> patterns without define_expand don't call ix86_binary_operator_ok. Will that
> be a problem?

Those are sse builtins and are expanded via ix86_expand_binop_builtin(). This
function fixes all operands to satisfy ix86_binary_operator_ok().

Regarding call to ix86_binary_operator_ok - this check is needed only when both
input operands are nonimmediate_operand (and output operand is
register_operand). There is indeed a pattern without this check - sse2_pmaddwd.
Due to %, it is commutative, so check for PLUS of V8HI mode would be OK.


-- 


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



[Bug fortran/31474] ENTRY & procedural pointer: insert_bbt(): Duplicate key found!

2007-04-05 Thread pault at gcc dot gnu dot org


--- Comment #2 from pault at gcc dot gnu dot org  2007-04-05 08:28 ---
(In reply to comment #1)

> The problem seems to occur with procedure pointers to ENTRY points 

>From a quick look at decl.c(get_proc_name), the modifications that I added, to
get module procedures with entries to work at all, ignored the possibility that
there would be an existing symtree at module level.
...snip...
  /* Module function entries will already have a symtree in
 the current namespace but will need one at module level.  */
  if (module_fcn_entry)
st = gfc_new_symtree (&gfc_current_ns->parent->sym_root, name);
  else
st = gfc_new_symtree (&gfc_current_ns->sym_root, name);
...snip...

is almost certainly the cause of the trouble.  I have a build/regtest going on
right now (and I should be paying attention to something else:)), so I canot do
anything about it until this afternoon.  However, I can see what to do and will
take it on.

Thank you for the report, Michael.

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |pault at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2007-04-04 20:47:59 |2007-04-05 08:28:53
   date||


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



[Bug target/31478] Typo in sse2_umulv2siv2di3 pattern

2007-04-05 Thread ubizjak at gmail dot com


--- Comment #4 from ubizjak at gmail dot com  2007-04-05 09:13 ---
(In reply to comment #3)

> There is indeed a pattern without this check - sse2_pmaddwd.
> Due to %, it is commutative, so check for PLUS of V8HI mode would be OK.

Please also change operands 1 and 2 of sdot_prodv8hi expander to
register_operand to avoid further suprises.


-- 


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



[Bug fortran/31483] ICE on fortran Code

2007-04-05 Thread pault at gcc dot gnu dot org


--- Comment #1 from pault at gcc dot gnu dot org  2007-04-05 09:31 ---
Created an attachment (id=13330)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13330&action=view)
Fix for the PR

The ICE is due to a gcc_assert blocking dummy procedures from having alternate
returns.  The fix, gives the procedure result the appropriate type and, as a
result, the following runs fine:

  SUBROUTINE R (i, *, *)
  INTEGER i
  RETURN i
  END

  SUBROUTINE PHLOAD (READER, i)
  IMPLICIT NONE
  EXTERNAL READER
  integer i
  CALL READER (i, *1, *2)
 1print *, "one"
  return
 2print *, "two"
  return
  END

Give me a day or two to submit this one.

Paul
  EXTERNAL R
  call PHLOAD (R, 1)
  CALL PHLOAD (R, 2)
  END


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |pault at gcc dot gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED


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



[Bug fortran/31465] spurious error: Implicitly typed PARAMETER doesn't match a later IMPLICIT type

2007-04-05 Thread pault at gcc dot gnu dot org


--- Comment #4 from pault at gcc dot gnu dot org  2007-04-05 09:51 ---
(In reply to comment #3)
> From the standard:
> "5.2.9 PARAMETER statement
> [...]
> The named constant shall have its type, type parameters, and shape specified 
> in
> a prior specification of the specification-part or declared implicitly (5.3).
> If the named constant is typed by the implicit typing rules, its appearance in
> any subsequent specification of the specification-part shall confirm this
> implied
> type and the values of any implied type parameters."
> Thus implies gfortran does the right thing - at least for -std=f95/f2003.

You are right - I will close it as invalid.

Sorry, Michael, but it appears that your code is standard defying.  If you
disagree, please come back to us.

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||INVALID


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



[Bug libstdc++/31481] GCC 4.2.0 incompatible with STLport 5.1.3

2007-04-05 Thread pcarlini at suse dot de


--- Comment #3 from pcarlini at suse dot de  2007-04-05 10:03 ---
In order to speed-up the process, can you edit ext/type_traits.h to not include
 and changing std::streamsize to int and report how it goes? Thanks.


-- 


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



[Bug c++/31484] va_list handeling different in 64bit vs 32 bit.

2007-04-05 Thread Klaas dot Vantournhout at UGent dot be


--- Comment #2 from Klaas dot Vantournhout at UGent dot be  2007-04-05 
10:35 ---
What is the difference then between 32bit and 64bit?  In the 32bit it works.


-- 


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



[Bug rtl-optimization/19780] Floating point computation far slower for -mfpmath=sse

2007-04-05 Thread bonzini at gnu dot org


--- Comment #13 from bonzini at gnu dot org  2007-04-05 11:01 ---
So this is an unstable sorting.  Adding dnovillo.


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 CC||dnovillo at gcc dot gnu dot
   ||org


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



[Bug c++/31484] New: va_list handeling different in 64bit vs 32 bit.

2007-04-05 Thread Klaas dot Vantournhout at UGent dot be
Hi,

It seems that a va_list is messed up when doing multiple functioncalls
containing the va_list.  This only occurs in the 64bit versions of g++ and does
NOT occur in the 32bit versions.

This has been seen in versions 4.1.1 and 4.1.2

Below is all the suff you need (buildparameters, testcode and output)

Regards
Klaas

64 bit version
[klaas]$ g++ -v
Using built-in specs.
Target: x86_64-mandriva-linux-gnu
Configured with: ../configure --prefix=/usr --libexecdir=/usr/lib
--with-slibdir=/lib64 --mandir=/usr/share/man --infodir=/usr/share/info
--enable-checking=release
--enable-languages=c,c++,ada,fortran,objc,obj-c++,java
--host=x86_64-mandriva-linux-gnu --with-cpu=generic --with-system-zlib
--enable-threads=posix --enable-shared --enable-long-long --enable-__cxa_atexit
--disable-libunwind-exceptions --enable-clocale=gnu --enable-java-awt=gtk
--with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --enable-gtk-cairo
--disable-libjava-multilib --enable-ssp --disable-libssp
Thread model: posix
gcc version 4.1.2 20070302 (prerelease) (4.1.2-1mdv2007.1)

The compiled code

#include 
#include 

void f1(int,...);
void f1b(int, ...);
void f2(va_list);


int main(void) {
  std::cout << "f1" << std::endl;
  f1(3,1.2,3.6,5.9);
  std::cout << "f1b" << std::endl;
  f1b(3,1.2,3.6,5.9);
  return 0;
}
/* this function fails */
void f1(int n, ...) {
  va_list va;
  va_start(va, n);

  for (int i = 0; i < 2; ++i)
f2(va);

  va_end(va);
}
/* this is a solution */
void f1b(int n, ...) {
  va_list va;

  for (int i = 0; i < 2; ++i) {
va_start(va,n);
f2(va);
va_end(va);
  }
}

void f2(va_list va) {
  double arg1 = va_arg(va,double);
  double arg2 = va_arg(va,double);
  double arg3 = va_arg(va,double);

  std::cout << arg1 << "\t" << arg2 << "\t" << arg3 << std::endl;
}


The 64bit output is given by
[EMAIL PROTECTED] g++ bug.cpp
[EMAIL PROTECTED] ./a.out
f1
1.2 3.6 5.9
3.95253e-3232.3528e-310 2.3528e-310
f1b
1.2 3.6 5.9
1.2 3.6 5.9

The 32 bit output is given by
[EMAIL PROTECTED] g++ bug.cpp
[EMAIL PROTECTED] ./a.out
f1
1.2 3.6 5.9
1.2 3.6 5.9
f1b
1.2 3.6 5.9
1.2 3.6 5.9


-- 
   Summary: va_list handeling different in 64bit vs 32 bit.
   Product: gcc
   Version: 4.1.2
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: Klaas dot Vantournhout at UGent dot be


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



[Bug libstdc++/31481] GCC 4.2.0 incompatible with STLport 5.1.3

2007-04-05 Thread pluto at agmk dot net


--- Comment #4 from pluto at agmk dot net  2007-04-05 10:42 ---
(In reply to comment #3)
> In order to speed-up the process, can you edit ext/type_traits.h to not 
> include
>  and changing std::streamsize to int and report how it goes? Thanks.
> 

this change causes another error:

+ /usr/bin/make -C build/lib -f gcc.mak release-shared release-static
CC=x86_64-pld-linux-gcc CXX=x86_64-pld-linux-g++
make: Entering directory `/home/users/pluto/rpm/BUILD/STLport-5.1.3/build/lib'
x86_64-pld-linux-g++ -pthread -fexceptions -fident  -fPIC -O2
-fno-strict-aliasing -fwrapv -march=x86-64 -gdwarf-2 -g2  -fuse-cxa-atexit 
-D_REENTRANT -D_STLP_REAL_LOCALE_IMPLEMENTED -D_GNU_SOURCE -I../../stlport  -c
-o obj/gcc/so/dll_main.o ../../src/dll_main.cpp
In file included from /usr/include/c++/4.2.0/../4.2.0/cmath:52,
 from ../../stlport/stl/_cmath.h:31,
 from ../../stlport/stl/_cstdlib.h:162,
 from ../../stlport/stl/_alloc.h:39,
 from ../../stlport/memory:32,
 from ../../src/dll_main.cpp:42:
/usr/include/c++/4.2.0/ext/type_traits.h:184: error: 'numeric_limits' is not a
member of 'std'
/usr/include/c++/4.2.0/ext/type_traits.h:184: error: expected
primary-expression before '>' token
/usr/include/c++/4.2.0/ext/type_traits.h:184: error: '::digits' has not been
declared
make: *** [obj/gcc/so/dll_main.o] Error 1


-- 

pluto at agmk dot net changed:

   What|Removed |Added

 CC||pluto at agmk dot net


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



[Bug libstdc++/31481] GCC 4.2.0 incompatible with STLport 5.1.3

2007-04-05 Thread pcarlini at suse dot de


--- Comment #2 from pcarlini at suse dot de  2007-04-05 09:59 ---
Yes, streamsize shouldn't be there, I noticed that as part of a large
rearrangment of the headers in mainline and fixed it. I'm porting that specific
bit to 4_2-branch.


-- 


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



[Bug c++/31484] va_list handeling different in 64bit vs 32 bit.

2007-04-05 Thread schwab at suse dot de


--- Comment #1 from schwab at suse dot de  2007-04-05 10:31 ---
Not a bug.  You must call va_start/va_end whenever you want to reuse a va_list.


-- 

schwab at suse dot de changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug c++/31484] va_list handeling different in 64bit vs 32 bit.

2007-04-05 Thread schwab at suse dot de


--- Comment #3 from schwab at suse dot de  2007-04-05 10:47 ---
7.15 Variable arguments 
3 [...] The object ap may be passed as an argument to another function; if that
function invokes the va_arg macro with parameter ap, the value of ap in the
calling function is indeterminate and shall be passed to the va_end
macro prior to any further reference to ap.


-- 


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



[Bug rtl-optimization/19780] Floating point computation far slower for -mfpmath=sse

2007-04-05 Thread ubizjak at gmail dot com


--- Comment #12 from ubizjak at gmail dot com  2007-04-05 11:00 ---
(In reply to comment #11)

> with -msse compile flag. Note different variable suffixes that create 
> different
> sort order. This is (IMO) due to fact that -msse enables lots of additional
> __builtin functions (these can be seen in 001.tu dump).

I forgot to add that -ffast-math simply enables more builtins, and again
different sort order is introduced.


-- 


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



[Bug fortran/31467] internal compiler error when compiling with gfortran

2007-04-05 Thread fxcoudert at gcc dot gnu dot org


--- Comment #5 from fxcoudert at gcc dot gnu dot org  2007-04-05 11:05 
---
Could you easily test it with a 4.1 compiler? I would like to be sure it's not
a regression in 4.2 with respect to 4.1, in which case we should try to fix it.
If the bug was also present in 4.1, then we can close this.

Merci !


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||fxcoudert at gcc dot gnu dot
   ||org


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



[Bug fortran/31483] ICE on fortran Code

2007-04-05 Thread fxcoudert at gcc dot gnu dot org


--- Comment #3 from fxcoudert at gcc dot gnu dot org  2007-04-05 11:01 
---
(In reply to comment #2)
> Or even better is there any chance to get that backported to the release
> branches?

It seems to be a regression wrt g77, which means it's possible that it will be
backported.


-- 


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



[Bug rtl-optimization/19780] Floating point computation far slower for -mfpmath=sse

2007-04-05 Thread ubizjak at gmail dot com


--- Comment #11 from ubizjak at gmail dot com  2007-04-05 10:58 ---
(In reply to comment #10)
> I would look at the lreg output, which contains the results of regclass.

No, the difference is due to ssa pass that generates:

  # v1z_10 = PHI 
  # v1y_9 = PHI 
  # v1x_8 = PHI 
  # i_7 = PHI 
  # v3z_6 = PHI 
  # v3y_5 = PHI 
  # v3x_4 = PHI 
  # v2z_3 = PHI 
  # v2y_2 = PHI 
  # v2x_1 = PHI 

without -msse and

  # v3z_10 = PHI 
  # v3y_9 = PHI 
  # v3x_8 = PHI 
  # v2z_7 = PHI 
  # v2y_6 = PHI 
  # v2x_5 = PHI 
  # v1z_4 = PHI 
  # v1y_3 = PHI 
  # v1x_2 = PHI 
  # i_1 = PHI 

with -msse compile flag. Note different variable suffixes that create different
sort order. This is (IMO) due to fact that -msse enables lots of additional
__builtin functions (these can be seen in 001.tu dump). Since we don't have x87
scheduler the results became quite unpredictable, and depend on -msseX
settings. It just _happens_ that second form better suits stack nature of x87.

So, why does SSA pass have to interfere with computation dataflow? This
interferece makes things worse and effectively takes away user's control on the
flow of data.


-- 


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



[Bug target/31175] isinf incorrectly expanded

2007-04-05 Thread ubizjak at gmail dot com


--- Comment #4 from ubizjak at gmail dot com  2007-04-05 12:21 ---
Fixed.


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug fortran/31427] TRANSFER with mold kind /= lval kind: ICE on ia64, i686; no warning

2007-04-05 Thread fxcoudert at gcc dot gnu dot org


--- Comment #9 from fxcoudert at gcc dot gnu dot org  2007-04-05 11:17 
---
The segfault happens because we come into gfc_int2int to convert the value from
TRANSFER into the integer(kind=1). But TRANSFER isn't simplified at this point,
although it should have been, which leads to referencing memory that is not
defined. This will be fixed when the gfc_simplify_transfer() function is
implemented (Paul T. and Tobias B. are working on it).

Admittedly, we should have an assert() in place to prevent this kind of
segfault (and have a clean ICE instead).


-- 


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



[Bug libstdc++/31481] GCC 4.2.0 incompatible with STLport 5.1.3

2007-04-05 Thread pcarlini at suse dot de


--- Comment #5 from pcarlini at suse dot de  2007-04-05 11:39 ---
(In reply to comment #4)
> (In reply to comment #3)
> > In order to speed-up the process, can you edit ext/type_traits.h to not 
> > include
> >  and changing std::streamsize to int and report how it goes? Thanks.
> > 
> 
> this change causes another error:

You must be doing something wrong, because of course ext/type_traits.h keeps on
including .


-- 


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



[Bug target/29793] TESTW{W,L,Q} rCX + JZ/JE should be replaced by J{,E,R}CXZ when possible

2007-04-05 Thread ubizjak at gmail dot com


--- Comment #4 from ubizjak at gmail dot com  2007-04-05 12:29 ---
(In reply to comment #2)

> To implement this optimization, some support from assembler is needed. When
> displacement overflows 8bit, assembler should substitute "jecxz" with
> equivalent "test/jmp rel{16,32}" sequence.

Unfortunatelly, test/jmp clobbers flags, and jecxz doesn't. Due to this, and
example in comment #3, we can't reliably generate proposed instructions.


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||WONTFIX


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



[Bug rtl-optimization/19780] Floating point computation far slower for -mfpmath=sse

2007-04-05 Thread dnovillo at gcc dot gnu dot org


--- Comment #14 from dnovillo at gcc dot gnu dot org  2007-04-05 12:49 
---
(In reply to comment #11)

> So, why does SSA pass have to interfere with computation dataflow? This
> interferece makes things worse and effectively takes away user's control on 
> the
> flow of data.
> 

Huh?  How is it relevant whether PHIs are in different order?  Conceptually,
the ordering of PHI nodes in a basic block is completely irrelevant.  Some pass
is getting confused when it shouldn't.  Transformations should not depend on
how PHI nodes are emitted in a block as all PHI nodes are always evaluated in
parallel.


-- 


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



[Bug target/31486] New: ICE with vector code when -mno-sse2 on amd64

2007-04-05 Thread gcc-bugzilla at gcc dot gnu dot org

Compilation of the attached code yields an ICE in certain cases.

Environment:
System: Linux chii 2.6.20 #3 SMP Sun Feb 11 23:52:47 EET 2007 x86_64 GNU/Linux
Architecture: x86_64


host: x86_64-pc-linux-gnu
build: x86_64-pc-linux-gnu
target: x86_64-pc-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
--program-suffix=-4.1 --enable-__cxa_atexit --enable-clocale=gnu
--enable-libstdcxx-debug --enable-mpfr --enable-checking=release
x86_64-linux-gnu

How-To-Repeat:
Compile this code:
typedef double ss2 __attribute__((vector_size(2*sizeof(double;
ss2 b = {1,1};
extern ss2 a2(ss2 a,ss2 b);
void test2() { b = a2(b,b); }
With these commandline options:
gcc-4.1 -mno-sse2 -S -o- test3.c
The output comes as follows:
.file   "test3.c"
.globl b
.data
.align 16
.type   b, @object
.size   b, 16
b:
.long   0
.long   1072693248
.long   0
.long   1072693248
test3.c: In function 'test2':
test3.c:6: internal compiler error: in emit_move_insn, at expr.c:3162
Please submit a full bug report,
with preprocessed source if appropriate.
(rest of output omitted for brevity)
It does not occur if "double" is changed to "float", "long double", "short",
"int" or "char".
It does occur if "double", "long int" or "long long int" is used.
It does not occur if 2 is changed to 4.

Architecture:
CPU=AMD Athlon(tm) 64 X2 Dual Core Processor 4600+
CPU features=fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat
pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt lm 3dnowext 3dnow
pni lahf_lm cmp_legacy

GCC is:
Target: x86_64-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
--program-suffix=-4.1 --enable-__cxa_atexit --enable-clocale=gnu
--enable-libstdcxx-debug --enable-mpfr --enable-checking=release
x86_64-linux-gnu
Thread model: posix
gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)


-- 
   Summary: ICE with vector code when -mno-sse2 on amd64
   Product: gcc
   Version: 4.1.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: bisqwit at bisqwit dot iki dot fi
 GCC build triplet: x86_64-pc-linux-gnu
  GCC host triplet: x86_64-pc-linux-gnu
GCC target triplet: x86_64-pc-linux-gnu


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



[Bug target/29793] TESTW{W,L,Q} rCX + JZ/JE should be replaced by J{,E,R}CXZ when possible

2007-04-05 Thread steven at gcc dot gnu dot org


--- Comment #5 from steven at gcc dot gnu dot org  2007-04-05 12:54 ---
Can we compute the displacement reliable enough to say that it is smaller than
some other number (e.g. 64)?


-- 


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



[Bug fortran/31483] New: ICE on fortran Code

2007-04-05 Thread M dot Froehlich at science-computing dot de
I get an ICE with gfortran on the following code:

$ cat ice.F
  SUBROUTINE PHLOAD (READER,*)
  IMPLICIT NONE
  EXTERNAL READER
  CALL READER (*1)
 1RETURN 1
  END

$ gfortran -S ice.F
ice.F: In function 'phload':
ice.F:1: internal compiler error: in gfc_conv_function_call, at
fortran/trans-expr.c:2401
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html> for instructions.

$ gfortran -v  
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc/configure --prefix=/scr/kuma/froehl/gcc-prefix
--with-gmp-include=/usr/local/include --with-gmp-lib=/usr/local/lib64
--with-mpfr-include=/usr/local/include --with-mpfr-lib=/usr/local/lib64
Thread model: posix
gcc version 4.3.0 20070404 (experimental)

That happens with gfortran from the gcc-4.1.{1,2} as well as with 20070404 svn
trunk version.


-- 
   Summary: ICE on fortran Code
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: M dot Froehlich at science-computing dot de
 GCC build triplet: x86_64-unknown-linux-gnu
  GCC host triplet: x86_64-unknown-linux-gnu
GCC target triplet: x86_64-unknown-linux-gnu


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



[Bug fortran/31483] ICE on fortran Code

2007-04-05 Thread M dot Froehlich at science-computing dot de


--- Comment #2 from M dot Froehlich at science-computing dot de  2007-04-05 
10:56 ---
Great!
Thank you very much!
... open source projects have the fastest response times!

The patch does not apply with 'patch' to gcc-4.1.2, but I could well hand patch
that. Do you expect problems when I apply that small patch to a gcc-4.1.2
release?

Or even better is there any chance to get that backported to the release
branches?

Greetings
   Mathias


-- 


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



[Bug libstdc++/31481] GCC 4.2.0 incompatible with STLport 5.1.3

2007-04-05 Thread pcarlini at suse dot de


--- Comment #6 from pcarlini at suse dot de  2007-04-05 11:49 ---
Created an attachment (id=13331)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13331&action=view)
Patch

This is the patch which I'm finishing testing in the branch and should be
applied anyway, irrespective of this specific issues.


-- 


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



[Bug rtl-optimization/31485] New: C complex numbers, amd64 SSE, missed optimization opportunity

2007-04-05 Thread bisqwit at iki dot fi
Considering that "complex" turns basically any basic type into a vector type,
complex number addition and subtraction could utilize SSE instructions to
perform the operation on real and imaginary parts simultaneously. (Only applies
to addition and subtraction.)

Code:

#include 

typedef float complex ss1;
typedef float ss2 __attribute__((vector_size(sizeof(ss1;

ss1 add1(ss1 a, ss1 b) { return a + b; }
ss2 add2(ss2 a, ss2 b) { return a + b; }

Produces:

add1:
movq%xmm0, -8(%rsp)
movq%xmm1, -16(%rsp)
movss   -4(%rsp), %xmm0
movss   -8(%rsp), %xmm1
addss   -12(%rsp), %xmm0
addss   -16(%rsp), %xmm1
movss   %xmm0, -20(%rsp)
movss   %xmm1, -24(%rsp)
movq-24(%rsp), %xmm0
ret
add2:
movlps  %xmm0, -16(%rsp)
movlps  %xmm1, -24(%rsp)
movaps  -24(%rsp), %xmm0
addps   -16(%rsp), %xmm0
movaps  %xmm0, -56(%rsp)
movlps  -56(%rsp), %xmm0
ret

Command line:
gcc -msse  -O3 -S test2.c
(Results are same with -ffast-math)
Architecture:
CPU=AMD Athlon(tm) 64 X2 Dual Core Processor 4600+
CPU features=fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat
pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt lm 3dnowext 3dnow
pni lahf_lm cmp_legacy

GCC is:
Target: x86_64-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
--program-suffix=-4.1 --enable-__cxa_atexit --enable-clocale=gnu
--enable-libstdcxx-debug --enable-mpfr --enable-checking=release
x86_64-linux-gnu
Thread model: posix
gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)


-- 
   Summary: C complex numbers, amd64 SSE, missed optimization
opportunity
   Product: gcc
   Version: 4.1.2
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: rtl-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: bisqwit at iki dot fi


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



[Bug rtl-optimization/19780] Floating point computation far slower for -mfpmath=sse

2007-04-05 Thread bonzini at gnu dot org


--- Comment #15 from bonzini at gnu dot org  2007-04-05 13:03 ---
Transformations do not, but out-of-SSA could.  Is there a way to ensure
ordering of PHI functions unlike what Uros's dumps suggest?


-- 


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



[Bug fortran/29507] INDEX in an array initialization causes ICE

2007-04-05 Thread patchapp at dberlin dot org


--- Comment #8 from patchapp at dberlin dot org  2007-04-05 13:05 ---
Subject: Bug number PR29507

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-04/msg00170.html


-- 


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



[Bug target/31167] ICE wnen using __int128_t on x86_64

2007-04-05 Thread ubizjak at gmail dot com


--- Comment #7 from ubizjak at gmail dot com  2007-04-05 13:06 ---
Not marked as a regression on branches, so fixed.

(The patch from Comment #6 applies cleanly on all branches. It is up to RM to
decide if this can still go into 4.1.2 and 4.2.)


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
  Known to fail|4.1.2 4.2.0 4.3.0   |4.1.2 4.2.0
  Known to work||4.3.0
 Resolution||FIXED


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



[Bug fortran/31483] ICE on fortran Code

2007-04-05 Thread patchapp at dberlin dot org


--- Comment #4 from patchapp at dberlin dot org  2007-04-05 13:15 ---
Subject: Bug number PR31483

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-04/msg00171.html


-- 


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



[Bug rtl-optimization/19780] Floating point computation far slower for -mfpmath=sse

2007-04-05 Thread dnovillo at redhat dot com


--- Comment #16 from dnovillo at redhat dot com  2007-04-05 13:15 ---
Subject: Re:  Floating point computation far slower
 for -mfpmath=sse

bonzini at gnu dot org wrote on 04/05/07 08:03:

> Is there a way to ensure ordering of PHI functions unlike what Uros's
> dumps suggest?

No.

I also don't see how PHI ordering would affect out-of-ssa.  It just
emits copies.  If the ordering of those copies is affecting things like
register pressure, then RA should be looked at.


-- 


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



[Bug target/29826] __attribute__ dllimport makes optimization crash on cygwin

2007-04-05 Thread arcangelpip at hotmail dot com


--- Comment #11 from arcangelpip at hotmail dot com  2007-04-05 13:21 
---
I'm sorry to drag this back up again, but it happened again on 4.2.
Again it is with the gettext package which seems to love me so much.

Using built-in specs.
Target: i686-pc-mingw32
Configured with: ../gcc-4.2/configure --prefix=/crosstools/gccwin
--target=i686-pc-mingw32 --enable-shared --enable-threads --disable-multilib
--disable-nls --enable-languages=c,c++,ada,fortran,objc,obj-c++ --enable-c99
--enable-long-long --enable-sjlj-exceptions --enable-libada --enable-boehm-gc
Thread model: win32
gcc version 4.2.0 20070403 (prerelease)

It ICEs with the following.

make[4]: Entering directory `/mnt/hd2/build/gettextbuild/gettext-tools/src'
/bin/sh ../libtool --tag=CC   --mode=compile i686-pc-mingw32-gcc
-DLOCALEDIR=\"/crosstools/gccwin/share/locale\"
-DBISON_LOCALEDIR=\"/usr/share/locale\"
-DLOCALE_ALIAS_PATH=\"/crosstools/gccwin/share/locale\" -DUSEJEXE=0
-DGETTEXTJEXEDIR=\"/crosstools/gccwin/lib/gettext\"
-DGETTEXTJAR=\"/crosstools/gccwin/share/gettext/gettext.jar\"
-DLIBDIR=\"/crosstools/gccwin/lib\"
-DGETTEXTDATADIR=\"/crosstools/gccwin/share/gettext\"
-DPROJECTSDIR=\"/crosstools/gccwin/share/gettext/projects\" -DHAVE_CONFIG_H -I.
-I.. -I../../../gettext-0.16.1/gettext-tools/src  -I.
-I../../../gettext-0.16.1/gettext-tools/src -I..
-I../../../gettext-0.16.1/gettext-tools
-I../../../gettext-0.16.1/gettext-tools/libgrep
-I../../../gettext-0.16.1/gettext-tools/libuniname -I../gnulib-lib
-I../../../gettext-0.16.1/gettext-tools/gnulib-lib -I../intl
-I../../../gettext-0.16.1/gettext-tools/../gettext-runtime/intl
-I/crosstools/gccwin/include  -g -O2 -c -o msgl-check.lo
../../../gettext-0.16.1/gettext-tools/src/msgl-check.c
 i686-pc-mingw32-gcc -DLOCALEDIR=\"/crosstools/gccwin/share/locale\"
-DBISON_LOCALEDIR=\"/usr/share/locale\"
-DLOCALE_ALIAS_PATH=\"/crosstools/gccwin/share/locale\" -DUSEJEXE=0
-DGETTEXTJEXEDIR=\"/crosstools/gccwin/lib/gettext\"
-DGETTEXTJAR=\"/crosstools/gccwin/share/gettext/gettext.jar\"
-DLIBDIR=\"/crosstools/gccwin/lib\"
-DGETTEXTDATADIR=\"/crosstools/gccwin/share/gettext\"
-DPROJECTSDIR=\"/crosstools/gccwin/share/gettext/projects\" -DHAVE_CONFIG_H -I.
-I.. -I../../../gettext-0.16.1/gettext-tools/src -I.
-I../../../gettext-0.16.1/gettext-tools/src -I..
-I../../../gettext-0.16.1/gettext-tools
-I../../../gettext-0.16.1/gettext-tools/libgrep
-I../../../gettext-0.16.1/gettext-tools/libuniname -I../gnulib-lib
-I../../../gettext-0.16.1/gettext-tools/gnulib-lib -I../intl
-I../../../gettext-0.16.1/gettext-tools/../gettext-runtime/intl
-I/crosstools/gccwin/include -g -O2 -c
../../../gettext-0.16.1/gettext-tools/src/msgl-check.c  -DDLL_EXPORT -DPIC -o
.libs/msgl-check.o
../../../gettext-0.16.1/gettext-tools/src/msgl-check.c: In function
'plural_help':
../../../gettext-0.16.1/gettext-tools/src/msgl-check.c:195: error:
unrecognizable insn:
(insn 40 39 41 6 ../../../gettext-0.16.1/gettext-tools/src/msgl-check.c:180
(set (reg:SI 76)
(const:SI (plus:SI (mem:SI (symbol_ref:SI ("#i.plural_table") ) [0 S4 A8])
(const_int 4 [0x4] -1 (nil)
(nil))
../../../gettext-0.16.1/gettext-tools/src/msgl-check.c:195: internal compiler
error: in extract_insn, at recog.c:2077
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html> for instructions.

I configured gettext with

../gettext-0.16.1/configure --prefix=/crosstools/gccwin
--build=i686-pc-linux-gnu --host=i686-pc-mingw32 --disable-java
--disable-native-java --with-libiconv-prefix=/crosstools/gccwin
--disable-threads --disable-openmp

If I am doing anything wrong here I'm open to suggestions.


-- 


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



[Bug fortran/26227] accepts invalid fortran, different dummy types/number

2007-04-05 Thread burnus at gcc dot gnu dot org


--- Comment #9 from burnus at gcc dot gnu dot org  2007-04-05 13:27 ---
This probably will work automatically if inter-file checking is implemented,
but if not, here is an invalid example which should be rejected:
-
  SUBROUTINE PHLOAD (READER,*)
  IMPLICIT NONE
  EXTERNAL READER
  CALL READER (*1)
 1RETURN 1
  END SUBROUTINE

  program test
  EXTERNAL R
  call PHLOAD (R, 1)
  CALL PHLOAD (R, 2)
  END program test
-

Should give the error (cf. NAG f95):

Error: y.f: Argument no. 2 in reference to PHLOAD from TEST is not a label


-- 


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



[Bug fortran/31472] gfortran does not detect the illegal use of an access specification in a program, subroutine, or function

2007-04-05 Thread burnus at gcc dot gnu dot org


--- Comment #2 from burnus at gcc dot gnu dot org  2007-04-05 14:13 ---
The patch is wrong since the PRIVATE/PUBLIC statement is also allowed for type:

module foo
type t
  private
  integer, public :: foo
end type t
end module foo

Actually, currently gfortran also invalidly rejects the "integer, public ::
foo". See NOTE 4.41 in Section 4.5.3.6 of the Fortran 2003 standard for an
example.


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

   Keywords||rejects-valid


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



[Bug rtl-optimization/19780] Floating point computation far slower for -mfpmath=sse

2007-04-05 Thread amacleod at redhat dot com


--- Comment #17 from amacleod at redhat dot com  2007-04-05 14:23 ---
Is the output from .optimized different?  (once the ssa versions numbers have
been stripped).   Those PHIs should be irrelevant, the question is whether the
different versioning has any effect.

The only way I can think that out-of-ssa could produce different results is if
it had to choose between two same-cost coalesces, and the versioning resulted
in them being in different places in the coalesce list.  Check the .optimized
output and if the code is equivalent, the problem is after that stage.


-- 


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



[Bug libstdc++/31481] GCC 4.2.0 incompatible with STLport 5.1.3

2007-04-05 Thread pcarlini at suse dot de


--- Comment #7 from pcarlini at suse dot de  2007-04-05 14:43 ---
Can be fixed by packporting a few additional forthcoming clean-up bits from
mainline...


-- 

pcarlini at suse dot de changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |pcarlini at suse dot de
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-04-05 14:43:35
   date||


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



[Bug fortran/31487] New: Character array initialization in derived type: bad zero padding

2007-04-05 Thread anlauf at gmx dot de
Hi,

here's an annoying one.  Default initializing a
character array in a derived type leads to zero
padded strings instead of space-padded ones.
E.g.

  ! This works correctly:
  character(len=16) ::tdefi(2) = (/'0z1jan','1hr   '/)
  ! 1234567890

  ! Broken in derived type:
  type t_ctl
 character(len=16) :: tdefi(2) = (/'0z1jan','1hr   '/)
 !  1234567890
  end type t_ctl


See the attached program for details.


-- 
   Summary: Character array initialization in derived type: bad zero
padding
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: anlauf at gmx dot de
  GCC host triplet: i686-pc-linux-gnu


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



[Bug fortran/31487] Character array initialization in derived type: bad zero padding

2007-04-05 Thread anlauf at gmx dot de


--- Comment #1 from anlauf at gmx dot de  2007-04-05 14:51 ---
Created an attachment (id=13332)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13332&action=view)
Demo code


-- 


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



[Bug fortran/31292] ICE with module procedure interface in a procedure body

2007-04-05 Thread pault at gcc dot gnu dot org


--- Comment #3 from pault at gcc dot gnu dot org  2007-04-05 15:00 ---
Subject: Bug 31292

Author: pault
Date: Thu Apr  5 15:00:27 2007
New Revision: 123517

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=123517
Log:
2007-04-05  Paul Thomas  <[EMAIL PROTECTED]>

PR fortran/31292
* decl.c (gfc_match_modproc): Go up to the top of the namespace
tree to find the module namespace for gfc_get_symbol.

2007-04-05  Paul Thomas  <[EMAIL PROTECTED]>

PR fortran/31292
* gfortran.dg/contained_module_proc_1.f90: New test.




Added:
trunk/gcc/testsuite/gfortran.dg/contained_module_proc_1.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/decl.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug fortran/31483] ICE on fortran Code

2007-04-05 Thread pault at gcc dot gnu dot org


--- Comment #5 from pault at gcc dot gnu dot org  2007-04-05 15:06 ---
Subject: Bug 31483

Author: pault
Date: Thu Apr  5 15:06:15 2007
New Revision: 123518

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=123518
Log:
2007-04-05  Paul Thomas  <[EMAIL PROTECTED]>

PR fortran/31483
* trans-expr.c (gfc_conv_function_call): Give a dummy
procedure the correct type if it has alternate returns.

2007-04-05  Paul Thomas  <[EMAIL PROTECTED]>

PR fortran/31483
* gfortran.dg/altreturn_5.f90: New test.


Added:
trunk/gcc/testsuite/gfortran.dg/altreturn_5.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/trans-expr.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug target/31478] Typo in sse2_umulv2siv2di3 pattern

2007-04-05 Thread hjl at lucon dot org


--- Comment #5 from hjl at lucon dot org  2007-04-05 15:12 ---
(In reply to comment #3)
> > There is no corresponding define_expand for this pattern. Many define_insn
> > patterns without define_expand don't call ix86_binary_operator_ok. Will that
> > be a problem?
> 
> Those are sse builtins and are expanded via ix86_expand_binop_builtin(). This
> function fixes all operands to satisfy ix86_binary_operator_ok().
> 

So anothe word is those patterns are used by ix86_expand_binop_builtin()
and won't be generated automatically. Will be "sse2_umulv2siv2di3"
generated automatically? If yes, what makes it different from other
patterns used by ix86_expand_binop_builtin() only?


-- 


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



[Bug c++/31484] va_list handeling different in 64bit vs 32 bit.

2007-04-05 Thread pinskia at gcc dot gnu dot org


--- Comment #4 from pinskia at gcc dot gnu dot org  2007-04-05 15:34 ---
note you can also use va_copy but that is c99.


-- 


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



[Bug target/29793] TESTW{W,L,Q} rCX + JZ/JE should be replaced by J{,E,R}CXZ when possible

2007-04-05 Thread ubizjak at gmail dot com


--- Comment #6 from ubizjak at gmail dot com  2007-04-05 16:27 ---
(In reply to comment #5)
> Can we compute the displacement reliable enough to say that it is smaller than
> some other number (e.g. 64)?

Good idea!

The (untested) patch that handles SImode compares is at
http://gcc.gnu.org/ml/gcc-patches/2007-04/msg00178.html. Have fun ;)


-- 


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



[Bug rtl-optimization/19780] Floating point computation far slower for -mfpmath=sse

2007-04-05 Thread ubizjak at gmail dot com


--- Comment #18 from ubizjak at gmail dot com  2007-04-05 16:39 ---
(In reply to comment #17)
> Is the output from .optimized different?  (once the ssa versions numbers have
> been stripped).   Those PHIs should be irrelevant, the question is whether the
> different versioning has any effect.
> 
> The only way I can think that out-of-ssa could produce different results is if
> it had to choose between two same-cost coalesces, and the versioning resulted
> in them being in different places in the coalesce list.  Check the .optimized
> output and if the code is equivalent, the problem is after that stage.

They are _not_ equivalent. We have:

--cut here--
:
  __builtin_puts (&"Start?"[0]);
  v2x = 0.0;
  v2y = 1.0e+0;
  v2z = 0.0;
  i = 0;
  v1x = 1.0e+0;
  v1y = 0.0;
  v1z = 0.0;

:;
  v3x = v1y * v2z - v1z * v2y;
  v3y = v1z * v2x - v1x * v2z;
  v3z = v1x * v2y - v1y * v2x;
  i = i + 1;
  v1z = v2z;
  v1y = v2y;
  v1x = v2x;
  v2z = v3z;
  v2y = v3y;
  v2x = v3x;
  if (i != 1) goto ; else goto ;

:;
  __builtin_puts (&"Stop!"[0]);
  printf (&"Result = %f, %f, %f\n"[0], (double) v3x, (double) v3y, (double)
v3z);
  return 0;
--cut here--

=VS=

--cut here--
:
  __builtin_puts (&"Start?"[0]);
  i = 0;
  v1x = 1.0e+0;
  v1y = 0.0;
  v1z = 0.0;
  v2x.43 = 0.0;
  v2y.44 = 1.0e+0;
  v2z.45 = 0.0;

:;
  v3x = v1y * v2z.45 - v1z * v2y.44;
  v3y = v1z * v2x.43 - v1x * v2z.45;
  v3z = v1x * v2y.44 - v1y * v2x.43;
  i = i + 1;
  v2z = v3z;
  v2y = v3y;
  v2x = v3x;
  v1z = v2z.45;
  v1y = v2y.44;
  v1x = v2x.43;
  if (i != 1) goto ; else goto ;

:;
  v2x.43 = v2x;
  v2y.44 = v2y;
  v2z.45 = v2z;
  goto  ();

:;
  __builtin_puts (&"Stop!"[0]);
  printf (&"Result = %f, %f, %f\n"[0], (double) v3x, (double) v3y, (double)
v3z);
  return 0;
--cut here--


-- 


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



[Bug target/25448] [4.0/4.1/4.2/4.3 Regression] Unfounded warnings from the AVR backend

2007-04-05 Thread aesok at gcc dot gnu dot org


--- Comment #4 from aesok at gcc dot gnu dot org  2007-04-05 16:43 ---
Subject: Bug 25448

Author: aesok
Date: Thu Apr  5 16:43:35 2007
New Revision: 123519

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=123519
Log:
PR target/25448
* config/avr/avr.c (avr_handle_fndecl_attribute): Use the 
DECL_ASSEMBLER_NAME, not the DECL_NAME.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/avr/avr.c


-- 


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



[Bug target/31478] Typo in sse2_umulv2siv2di3 pattern

2007-04-05 Thread ubizjak at gmail dot com


--- Comment #6 from ubizjak at gmail dot com  2007-04-05 16:48 ---
(In reply to comment #5)

> So anothe word is those patterns are used by ix86_expand_binop_builtin()
> and won't be generated automatically. Will be "sse2_umulv2siv2di3"
> generated automatically? If yes, what makes it different from other
> patterns used by ix86_expand_binop_builtin() only?

No, they won't be generated automatically, because they don't have the name
that is recognized by generic expander. IOW, they are not named insn pattern.


-- 


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



[Bug target/31478] Typo in sse2_umulv2siv2di3 pattern

2007-04-05 Thread hjl at lucon dot org


--- Comment #7 from hjl at lucon dot org  2007-04-05 16:54 ---
(In reply to comment #6)
> (In reply to comment #5)
> 
> > So anothe word is those patterns are used by ix86_expand_binop_builtin()
> > and won't be generated automatically. Will be "sse2_umulv2siv2di3"
> > generated automatically? If yes, what makes it different from other
> > patterns used by ix86_expand_binop_builtin() only?
> 
> No, they won't be generated automatically, because they don't have the name
> that is recognized by generic expander. IOW, they are not named insn pattern.
> 

Since sse2_umulv2siv2di3 is used by ix86_expand_binop_builtin() and sse.md
only:

[EMAIL PROTECTED] i386]$ grep sse2_umulv2siv2di3 *.c *.md
i386.c:  { MASK_SSE2, CODE_FOR_sse2_umulv2siv2di3, 0, IX86_BUILTIN_PMULUDQ128,
0, 0 },
sse.md:(define_insn "sse2_umulv2siv2di3"
sse.md:  emit_insn (gen_sse2_umulv2siv2di3 (gen_lowpart (V2DImode, t1), op1,
op2));
sse.md:  emit_insn (gen_sse2_umulv2siv2di3 (gen_lowpart (V2DImode, t4), t2,
t3));
sse.md:  emit_insn (gen_sse2_umulv2siv2di3 (t1, gen_lowpart (V4SImode, op1),
sse.md:  emit_insn (gen_sse2_umulv2siv2di3 (t4, gen_lowpart (V4SImode, op1),
sse.md:  emit_insn (gen_sse2_umulv2siv2di3 (t5, gen_lowpart (V4SImode, op2),
sse.md:  emit_insn (gen_sse2_umulv2siv2di3 (operands[0], t1, t2));
sse.md:  emit_insn (gen_sse2_umulv2siv2di3 (operands[0], t1, t2));
sse.md:  emit_insn (gen_sse2_umulv2siv2di3 (operands[0], t1, t2));
sse.md:  emit_insn (gen_sse2_umulv2siv2di3 (operands[0], t1, t2));
sse.md:  emit_insn (gen_sse2_umulv2siv2di3 (t1, operands[1], operands[2]));
sse.md:  emit_insn (gen_sse2_umulv2siv2di3 (t4, t2, t3));

is ix86_binary_operator_ok in sse2_umulv2siv2di3 not used at all and really
optional?


-- 


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



[Bug target/25448] [4.0/4.1/4.2/4.3 Regression] Unfounded warnings from the AVR backend

2007-04-05 Thread aesok at gcc dot gnu dot org


--- Comment #6 from aesok at gcc dot gnu dot org  2007-04-05 16:56 ---
Subject: Bug 25448

Author: aesok
Date: Thu Apr  5 16:56:43 2007
New Revision: 123521

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=123521
Log:
PR target/25448
* config/avr/avr.c (avr_handle_fndecl_attribute): Use the 
DECL_ASSEMBLER_NAME, not the DECL_NAME.


Modified:
branches/gcc-4_1-branch/gcc/ChangeLog
branches/gcc-4_1-branch/gcc/config/avr/avr.c


-- 


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



[Bug target/25448] [4.0/4.1/4.2/4.3 Regression] Unfounded warnings from the AVR backend

2007-04-05 Thread aesok at gcc dot gnu dot org


--- Comment #5 from aesok at gcc dot gnu dot org  2007-04-05 16:50 ---
Subject: Bug 25448

Author: aesok
Date: Thu Apr  5 16:50:27 2007
New Revision: 123520

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=123520
Log:
PR target/25448
* config/avr/avr.c (avr_handle_fndecl_attribute): Use the 
DECL_ASSEMBLER_NAME, not the DECL_NAME.

Modified:
branches/gcc-4_2-branch/gcc/ChangeLog
branches/gcc-4_2-branch/gcc/config/avr/avr.c


-- 


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



[Bug target/25448] [4.0/4.1/4.2/4.3 Regression] Unfounded warnings from the AVR backend

2007-04-05 Thread aesok at gcc dot gnu dot org


--- Comment #7 from aesok at gcc dot gnu dot org  2007-04-05 16:59 ---
Fixsed in 4.1.3, 4.2 and 4.3.


-- 

aesok at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug rtl-optimization/19780] Floating point computation far slower for -mfpmath=sse

2007-04-05 Thread amacleod at redhat dot com


--- Comment #19 from amacleod at redhat dot com  2007-04-05 17:24 ---
what are you using for a compiler? Im using a mainline from mid march, and with
it, my .optimized files diff exactly the same, and I get the aforementioned
time differences in the executables.
(sse.c and sse-bad.c are same, just different names to get different output
files)

2007-03-13/gcc> diff sse.c sse-bad.c

2007-03-13/gcc>./xgcc -B./ sse.c -fdump-tree-optimized -O3 -march=pentium4 -o
sse

2007-03-13/gcc>./xgcc -B./ sse-bad.c -fdump-tree-optimized -O3 -march=pentium4
-mfpmath=sse -o sse-bad

2007-03-13/gcc>ls -l sse*optimized

-rw-rw-r--  1 amacleod amacleod 864 Apr  5 12:16 sse-bad.c.116t.optimized
-rw-rw-r--  1 amacleod amacleod 864 Apr  5 12:16 sse.c.116t.optimized

2007-03-13/gcc>diff sse.c.116t.optimized sse-bad.c.116t.optimized

2007-03-13/gcc>time ./sse

Start?
Stop!
Result = 0.00, 0.00, 1.00

real0m0.630s
user0m0.572s
sys 0m0.000s

2007-03-13/gcc>time ./sse-bad

Start?
Stop!
Result = 0.00, 0.00, 1.00

real0m0.883s
user0m0.780s
sys 0m0.000s


Is this just with earlier compilers, what version are you using?  It at least
seems to indicate that the problem isn't before out-of-ssa since the time issue
is still there with identical outputs from .optimized


-- 


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



[Bug target/31478] Typo in sse2_umulv2siv2di3 pattern

2007-04-05 Thread hjl at lucon dot org


--- Comment #8 from hjl at lucon dot org  2007-04-05 17:54 ---
(In reply to comment #4)
> (In reply to comment #3)
> 
> > There is indeed a pattern without this check - sse2_pmaddwd.
> > Due to %, it is commutative, so check for PLUS of V8HI mode would be OK.
> 
> Please also change operands 1 and 2 of sdot_prodv8hi expander to
> register_operand to avoid further suprises.
> 

I am not sure if there is an issue since op0 of sse2_pmaddwd must be
register and it must be the same as op1 or op2.


-- 


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



[Bug preprocessor/29851] Need to strip trailing slashes on include pathnames

2007-04-05 Thread eweddington at cso dot atmel dot com


--- Comment #4 from eweddington at cso dot atmel dot com  2007-04-05 18:07 
---
This is a duplicate of bug #22133.


-- 


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



[Bug preprocessor/29851] Need to strip trailing slashes on include pathnames

2007-04-05 Thread pinskia at gcc dot gnu dot org


--- Comment #5 from pinskia at gcc dot gnu dot org  2007-04-05 19:15 ---


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


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||DUPLICATE


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



[Bug c/22133] In MinGW trailling slash forward not allowed in include path

2007-04-05 Thread pinskia at gcc dot gnu dot org


--- Comment #4 from pinskia at gcc dot gnu dot org  2007-04-05 19:15 ---
*** Bug 29851 has been marked as a duplicate of this bug. ***


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||amylaar at gcc dot gnu dot
   ||org


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



[Bug rtl-optimization/19780] Floating point computation far slower for -mfpmath=sse

2007-04-05 Thread ubizjak at gmail dot com


--- Comment #20 from ubizjak at gmail dot com  2007-04-05 19:39 ---
(In reply to comment #19)
> what are you using for a compiler? Im using a mainline from mid march, and 

gcc version 4.3.0 20070404 (experimental) on i686-pc-linux-gnu

with
> it, my .optimized files diff exactly the same, and I get the aforementioned
> time differences in the executables.

This is because -march=pentium4 enables all sse builtins for both cases.

> (sse.c and sse-bad.c are same, just different names to get different output
> files)
> 
> 2007-03-13/gcc> diff sse.c sse-bad.c
> 
> 2007-03-13/gcc>./xgcc -B./ sse.c -fdump-tree-optimized -O3 -march=pentium4 -o
> sse
> 
> 2007-03-13/gcc>./xgcc -B./ sse-bad.c -fdump-tree-optimized -O3 -march=pentium4
> -mfpmath=sse -o sse-bad

This is known effect of SFmode SSE being slower than SFmode x87. But again, you
have enabled sse(2) builtins due to -march=pentium4.

Please try to compile using only "-O2" and "-O2 -msse". x87 math will be used
in both cases, but .optimized will show the difference. You can also try to
compile with and without -ffast-math.

IMO it is not acceptabe for tree dumps to depend on target compile flag in any
way...


-- 


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



[Bug target/31488] New: va_list considered non-POD

2007-04-05 Thread rth at gcc dot gnu dot org
.../libjava/classpath/include/jvmti.h:1242: warning: can not pass objects
of non-POD type 'struct va_list' through '...'; call will abort at runtime

Not sure yet whether this is a target problem or not.


-- 
   Summary: va_list considered non-POD
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: rth at gcc dot gnu dot org
GCC target triplet: alpha*


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



[Bug target/31478] Typo in sse2_umulv2siv2di3 pattern

2007-04-05 Thread ubizjak at gmail dot com


--- Comment #9 from ubizjak at gmail dot com  2007-04-05 19:50 ---
(In reply to comment #8)

> > Please also change operands 1 and 2 of sdot_prodv8hi expander to
> > register_operand to avoid further suprises.
> > 
> 
> I am not sure if there is an issue since op0 of sse2_pmaddwd must be
> register and it must be the same as op1 or op2.

But only after reload. Nothing prevents gcc to generate two MEM input operands.
Although reload will fix this by putting one of input operands into register
(and match it with output operand), but this will be too late for any
pre-reload pass to make any optimization on inputs.

> is ix86_binary_operator_ok in sse2_umulv2siv2di3 not used at all and really
> optional?

No, it is not optional. V8HImode argument is optional, since we don't allow
immediate operands. Please track code flow through ix86_b_o_ok() and you will
see.


-- 


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



[Bug middle-end/22156] [4.0/4.1/4.2/4.3 Regression] bit-field copying regressed

2007-04-05 Thread aoliva at gcc dot gnu dot org


--- Comment #12 from aoliva at gcc dot gnu dot org  2007-04-05 19:50 ---
Subject: Bug 22156

Author: aoliva
Date: Thu Apr  5 19:50:34 2007
New Revision: 123524

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=123524
Log:
PR middle-end/22156
* tree-sra.c (struct sra_elt): Add in_bitfld_block.  Remove
all_no_warning.
(struct sra_walk_fns): Remove use_all parameter from use.
(sra_hash_tree): Handle BIT_FIELD_REFs.
(sra_elt_hash): Don't hash bitfld blocks.
(sra_elt_eq): Skip them in parent compares as well.  Handle
BIT_FIELD_REFs.
(sra_walk_expr): Don't maintain or pass down use_all_p.
(scan_use): Remove use_all parameter.
(scalarize_use): Likewise.  Re-expand assignment to
BIT_FIELD_REF of gimple_reg.  De-scalarize before input or
output, and re-scalarize after output.  Don't mark anything
for no warning.
(scalarize_ldst): Adjust.
(scalarize_walk_gimple_modify_statement): Likewise.
(build_element_name_1): Handle BIT_FIELD_REFs.
(instantiate_element): Don't warn for any element whose parent
is used as a whole.
(instantiate_missing_elements_1): Return the sra_elt.
(canon_type_for_field): New.
(try_instantiate_multiple_fields): New.
(instantiate_missing_elemnts): Use them.
(mark_no_warning): Removed.
(generate_one_element_ref): Handle BIT_FIELD_REFs.
(REPLDUP, sra_build_elt_assignment): New.
(generate_copy_inout): Use them.
(generate_element_copy): Likewise.  Handle bitfld differences.
(generate_element_zero): Don't recurse for blocks.  Use
sra_build_elt_assignment.
(generate_one_element_int): Take elt instead of var.  Use
sra_build_elt_assignment.
(generate_element_init_1): Adjust.
(scalarize_use, scalarize_copy): Use REPLDUP.
(scalarize_ldst): Move assert before dereference.
(dump_sra_elt_name): Handle BIT_FIELD_REFs.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-sra.c


-- 


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



[Bug target/31478] Typo in sse2_umulv2siv2di3 pattern

2007-04-05 Thread hjl at lucon dot org


--- Comment #10 from hjl at lucon dot org  2007-04-05 20:05 ---
(In reply to comment #9)
> (In reply to comment #8)
> 
> > > Please also change operands 1 and 2 of sdot_prodv8hi expander to
> > > register_operand to avoid further suprises.
> > > 
> > 
> > I am not sure if there is an issue since op0 of sse2_pmaddwd must be
> > register and it must be the same as op1 or op2.
> 
> But only after reload. Nothing prevents gcc to generate two MEM input 
> operands.
> Although reload will fix this by putting one of input operands into register
> (and match it with output operand), but this will be too late for any
> pre-reload pass to make any optimization on inputs.
> 

Will something like

--- sse.md.pmaddwd  2007-04-04 17:44:43.0 -0700
+++ sse.md  2007-04-05 12:02:28.0 -0700
@@ -3044,7 +3044,7 @@
(match_operand:V8HI 1 "nonimmediate_operand" "")
(match_operand:V8HI 2 "nonimmediate_operand" "")
(match_operand:V4SI 3 "register_operand" "")]
-  "TARGET_SSE2"
+  "TARGET_SSE && !(MEM_P (operands[1]) && MEM_P (operands[2]))"
 {
   rtx t = gen_reg_rtx (V4SImode);
   emit_insn (gen_sse2_pmaddwd (t, operands[1], operands[2]));

work?


-- 


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



[Bug target/31478] Typo in sse2_umulv2siv2di3 pattern

2007-04-05 Thread hjl at lucon dot org


--- Comment #11 from hjl at lucon dot org  2007-04-05 20:06 ---
(In reply to comment #10)
> (In reply to comment #9)
> > (In reply to comment #8)
> > 
> > > > Please also change operands 1 and 2 of sdot_prodv8hi expander to
> > > > register_operand to avoid further suprises.
> > > > 
> > > 
> > > I am not sure if there is an issue since op0 of sse2_pmaddwd must be
> > > register and it must be the same as op1 or op2.
> > 
> > But only after reload. Nothing prevents gcc to generate two MEM input 
> > operands.
> > Although reload will fix this by putting one of input operands into register
> > (and match it with output operand), but this will be too late for any
> > pre-reload pass to make any optimization on inputs.
> > 
> 
> Will something like
> 
> --- sse.md.pmaddwd  2007-04-04 17:44:43.0 -0700
> +++ sse.md  2007-04-05 12:02:28.0 -0700
> @@ -3044,7 +3044,7 @@
> (match_operand:V8HI 1 "nonimmediate_operand" "")
> (match_operand:V8HI 2 "nonimmediate_operand" "")
> (match_operand:V4SI 3 "register_operand" "")]
> -  "TARGET_SSE2"
> +  "TARGET_SSE && !(MEM_P (operands[1]) && MEM_P (operands[2]))"
>  {
>rtx t = gen_reg_rtx (V4SImode);
>emit_insn (gen_sse2_pmaddwd (t, operands[1], operands[2]));
> 
> work?
> 

It doesn't work.


-- 


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



[Bug target/31488] va_list considered non-POD

2007-04-05 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2007-04-05 20:28 ---
Most likely this is because va_list is represented as an array for alpha and a
couple other targets.  So maybe it might be just the warning is incorrect but
it is still undefined.


-- 


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



[Bug target/31488] va_list considered non-POD

2007-04-05 Thread rth at gcc dot gnu dot org


--- Comment #2 from rth at gcc dot gnu dot org  2007-04-05 21:45 ---
It is *not* represented as an array on Alpha.

And even if it were, it wouldn't be undefined.  Passing va_list by
value is non-portable, but certainly not undefined.


-- 


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



[Bug fortran/31292] ICE with module procedure interface in a procedure body

2007-04-05 Thread pault at gcc dot gnu dot org


--- Comment #4 from pault at gcc dot gnu dot org  2007-04-05 21:49 ---
Fixed on trunk

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug fortran/31293] Implicit character and array returning functions

2007-04-05 Thread pault at gcc dot gnu dot org


--- Comment #3 from pault at gcc dot gnu dot org  2007-04-05 21:58 ---
I submitted a patch for this in:
http://gcc.gnu.org/ml/fortran/2007-04/msg00016.html

Paul


-- 


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



[Bug fortran/31424] ICE involving transfer function, and passing function return to subroutine

2007-04-05 Thread pault at gcc dot gnu dot org


--- Comment #3 from pault at gcc dot gnu dot org  2007-04-05 21:59 ---
I submitted a patch for this in:
http://gcc.gnu.org/ml/fortran/2007-04/msg00016.html

Paul


-- 


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



[Bug fortran/31222] Rejected: implicitly-typed dummys used in initialization expressions

2007-04-05 Thread pault at gcc dot gnu dot org


--- Comment #4 from pault at gcc dot gnu dot org  2007-04-05 22:00 ---
I submitted a patch for this in:
http://gcc.gnu.org/ml/fortran/2007-04/msg00016.html

Paul


-- 


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



[Bug fortran/30872] Bogus "size of variable is too large"

2007-04-05 Thread pault at gcc dot gnu dot org


--- Comment #3 from pault at gcc dot gnu dot org  2007-04-05 22:01 ---
I submitted a patch for this in:
http://gcc.gnu.org/ml/fortran/2007-04/msg00016.html

Paul


-- 


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



[Bug tree-optimization/15826] don't use "if" to extract a single bit bit-field.

2007-04-05 Thread steven at gcc dot gnu dot org


--- Comment #6 from steven at gcc dot gnu dot org  2007-04-05 22:01 ---
The tree dump for the original test case now looks like this for me:

;; Function foo (foo)

foo (p)
{
:
  return (unsigned int) ((BIT_FIELD_REF <*p, 8, 0> & 1) != 0);

}



;; Function bar (bar)

bar (p)
{
:
  return (unsigned int) p->bit;

}



The resulting assembler output is the same, but I imagine VRP should be able to
fold away the "& 1" test.  I don't know if the BIT_FIELD_REF itself should be
optimized away, but I guess so.  Consider the following test case:

struct s
{
  unsigned int bit:1;
};

unsigned int
foo (struct s *p)
{
  if (p->bit)
return (unsigned int) (p->bit);
  else
return 0;
}


This gets "optimized" at the tree level to this ugly code:
;; Function foo (foo)

foo (p)
{
  unsigned int D.1979;

:
  if ((BIT_FIELD_REF <*p, 8, 0> & 1) != 0) goto ; else goto ;

:;
  D.1979 = 0;
  goto  ();

:;
  D.1979 = (unsigned int) p->bit;

:;
  return D.1979;

}

In summary, I don't think we can close this bug just yet.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

   Last reconfirmed|2005-12-10 04:15:46 |2007-04-05 22:01:25
   date||


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



[Bug target/31478] Typo in sse2_umulv2siv2di3 pattern

2007-04-05 Thread hjl at gcc dot gnu dot org


--- Comment #12 from hjl at gcc dot gnu dot org  2007-04-05 22:16 ---
Subject: Bug 31478

Author: hjl
Date: Thu Apr  5 22:16:37 2007
New Revision: 123527

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=123527
Log:
2007-04-05  Uros Bizjak  <[EMAIL PROTECTED]>
H.J. Lu  <[EMAIL PROTECTED]>

PR target/31478
* config/i386/sse.md (sse2_umulv2siv2di3): Use V4SImode instead
of V8HImode when calling ix86_binary_operator_ok.
(sse2_pmaddwd): Call ix86_binary_operator_ok.
(sdot_prodv8hi): Operands 1 and 2 must be register.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/sse.md


-- 


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



[Bug middle-end/22156] [4.0/4.1/4.2 Regression] bit-field copying regressed

2007-04-05 Thread aoliva at gcc dot gnu dot org


--- Comment #13 from aoliva at gcc dot gnu dot org  2007-04-05 23:06 ---
Fixed in trunk for 4.3, not sure about backporting...


-- 

aoliva at gcc dot gnu dot org changed:

   What|Removed |Added

Summary|[4.0/4.1/4.2/4.3 Regression]|[4.0/4.1/4.2 Regression]
   |bit-field copying regressed |bit-field copying regressed


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



[Bug tree-optimization/15596] [4.0/4.1/4.2/4.3 Regression] Missed optimization with bitfields with return value

2007-04-05 Thread aoliva at gcc dot gnu dot org


--- Comment #12 from aoliva at gcc dot gnu dot org  2007-04-05 23:33 ---
FWIW, the patch for PR 22156 does not change the generated code on ppc,
although it appears to improve the x86 code.


-- 


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



[Bug middle-end/20671] Poor bit-field code generation

2007-04-05 Thread aoliva at gcc dot gnu dot org


--- Comment #4 from aoliva at gcc dot gnu dot org  2007-04-05 23:36 ---
No change with the patch for PR 22156.


-- 


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



[Bug c++/31489] New: error says struct when it should say class

2007-04-05 Thread jg at jguk dot org
When a forward declared class is not found the error message describes it
incorrectly as a struct. See below for an example.

I'd like to submit a patch to correctly display class. Let me know if such a
patch would be considered.

$ g++ -Wall -ggdb -O0 -o t test6.cpp
test6.cpp: In function ‘int main()’:
test6.cpp:8: error: invalid use of undefined type ‘struct foobar’
test6.cpp:4: error: forward declaration of ‘struct foobar’

File contains:
=
// g++ -Wall -ggdb -O0 -o t test6.cpp


class foobar;

int main()
{
foobar * o = new foobar;
}



-- 
   Summary: error says struct when it should say class
   Product: gcc
   Version: 4.1.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jg at jguk dot org
 GCC build triplet: i686-gnu-linux
  GCC host triplet: i686-gnu-linux
GCC target triplet: i686-gnu-linux


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



[Bug target/27869] "-O -fregmove" handles SSE scalar instructions incorrectly

2007-04-05 Thread echristo at apple dot com


--- Comment #6 from echristo at apple dot com  2007-04-05 23:56 ---
Actually, I'll go ahead and take this, it was reported internally as well here
and I've got a patch in testing :)


-- 

echristo at apple dot com changed:

   What|Removed |Added

 AssignedTo|steven at gcc dot gnu dot   |echristo at gcc dot gnu dot
   |org |org


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



[Bug c++/31489] error says struct when it should say class

2007-04-05 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2007-04-06 00:09 ---
I don't think this matters anyways as class == struct and can be used
interchangably for tags.

if you summit a patch, see what this shows you:
struct foobar;

int main()
{
foobar * o = new foobar;
}

Or even this:

struct foobar;
class foobar;

int main()
{
foobar * o = new foobar;
}

Since all three are the same code, so it is weird not to have struct == class
here really.


-- 


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



[Bug other/23572] No warning for assigning a value to a 'float' variable that overflows with option -Wextra

2007-04-05 Thread pinskia at gcc dot gnu dot org


--- Comment #13 from pinskia at gcc dot gnu dot org  2007-04-06 00:58 
---
These testcases fail on spu-elf:
+FAIL: gcc.dg/float-range-1.c  (test for warnings, line 11)
+FAIL: gcc.dg/float-range-1.c (test for excess errors)
+FAIL: gcc.dg/float-range-3.c (test for excess errors)
+FAIL: gcc.dg/float-range-4.c (test for excess errors)
+FAIL: gcc.dg/float-range-5.c  (test for warnings, line 9)
+FAIL: gcc.dg/float-range-5.c  (test for warnings, line 10)
+FAIL: gcc.dg/float-range-5.c (test for excess errors)


FAIL: gcc.dg/float-range-1.c (test for excess errors) Excess errors:
/home/apinski/src/local/gcc/gcc/testsuite/gcc.dg/float-range-1.c:11: error:
floating constant exceeds range of 'float'

Excess errors:
/home/apinski/src/local/gcc/gcc/testsuite/gcc.dg/float-range-3.c:10: error:
'FP_INFINITE' undeclared (first use in this function)
/home/apinski/src/local/gcc/gcc/testsuite/gcc.dg/float-range-3.c:10: error:
(Each undeclared identifier is reported only once
/home/apinski/src/local/gcc/gcc/testsuite/gcc.dg/float-range-3.c:10: error: for
each function it appears in.)


-- 


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



[Bug target/31490] New: Compile error section type conflict

2007-04-05 Thread raj dot khem at gmail dot com
The attached testcase does not compile for ppc64 using gcc confgured to
generate ppc/ppc64 code.

Attached is a reduced testcase from kernel. This error was not happening with
gcc 4.2 snapshot from January. I think it is related to static inline and
extern inline.

compile the attached testcase 

gcc -m64 -c test.c

test.c:51: error: __ksymtab_cpu_add_sysdev_attr_group causes a section type
conflict


-- 
   Summary: Compile error section type conflict
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: raj dot khem at gmail dot com
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: powerpc-*-linux-gnu


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



[Bug target/31490] Compile error section type conflict

2007-04-05 Thread raj dot khem at gmail dot com


--- Comment #1 from raj dot khem at gmail dot com  2007-04-06 01:28 ---
Created an attachment (id=1)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=1&action=view)
testcase

testcase to reproduce the problem.


-- 


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



[Bug target/31490] Compile error section type conflict

2007-04-05 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2007-04-06 01:57 ---
Reduced testcase:
int cpu_ (void *attr) {}
const unsigned long _1 __attribute__((section("__"))) =  (unsigned long)&cpu_ ;
const unsigned long _group __attribute__((section("__"))) = 0;


-- 


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



[Bug target/31490] Compile error section type conflict

2007-04-05 Thread pinskia at gcc dot gnu dot org


--- Comment #3 from pinskia at gcc dot gnu dot org  2007-04-06 01:59 ---
> This error was not happening with gcc 4.2 snapshot from January. 
My reduced testcase shows it happens even in 4.0.2.  I don't have any thing
older than that right off hand.


-- 


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



[Bug middle-end/31448] [4.1/4.2/4.3 Regression] ICE in expand_shift with bit fields and expand inlining constants

2007-04-05 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2007-04-06 02:58 ---
Mine, I have a patch.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |pinskia at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-04-06 02:58:22
   date||


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



[Bug libffi/31491] New: libffi: bug in example program

2007-04-05 Thread alexander dot belopolsky at gmail dot com
In http://gcc.gnu.org/svn/gcc/trunk/libffi/README

 /* Initialize the argument info vectors */
 args[0] = &ffi_type_uint;

should be

 /* Initialize the argument info vectors */
 args[0] = &ffi_type_pointer;

The code happens to work stand-alone, but when included in a large
program on x86_64, you get a nasty segfault.


-- 
   Summary:  libffi: bug in example program
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libffi
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: alexander dot belopolsky at gmail dot com


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



[Bug target/31490] Compile error section type conflict

2007-04-05 Thread dtemirbulatov at gmail dot com


--- Comment #4 from dtemirbulatov at gmail dot com  2007-04-06 03:18 ---
looks like regression is caused by PR26090 fix


-- 


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



[Bug libffi/31491] libffi: bug in example program

2007-04-05 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2007-04-06 03:21 ---
Confirmed.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-04-06 03:21:58
   date||
Summary| libffi: bug in example |libffi: bug in example
   |program |program


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



[Bug fortran/31395] Colon edit descriptor is ignored unless preceded by a comma or a slash

2007-04-05 Thread patchapp at dberlin dot org


--- Comment #2 from patchapp at dberlin dot org  2007-04-06 07:25 ---
Subject: Bug number PR31395

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-04/msg00229.html


-- 


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



[Bug rtl-optimization/19780] Floating point computation far slower for -mfpmath=sse

2007-04-05 Thread ubizjak at gmail dot com


--- Comment #21 from ubizjak at gmail dot com  2007-04-06 07:37 ---
Strange things happen.

I have fully removed gcc build directory and bootstrapped gcc from scratch. To
my suprise, the difference with -msse and without -msse is now gone and
optimized dumps are now the same. For reference, the compiler has ident "gcc
version 4.3.0 20070406 (experimental)".

Regarding this bug - SSE performance vs x87 performance is clearly target
procesor dependant. There is nothing gcc can do, and even without memory acces,
SSE is slower than x87 on some targets (ref: Comment #5).

Let's close this bug as WONTFIX, as there is nothing to fix in gcc.


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||WONTFIX


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