[Bug target/36722] ICE with inline asm in 64bit mode because of type size

2008-08-23 Thread ubizjak at gmail dot com


--- Comment #3 from ubizjak at gmail dot com  2008-08-23 07:21 ---
(In reply to comment #2)
 looks like a PR37191

No.

Register constraints in the testcase are just not what they look like.

=rax in fact specifies multiple constraints, and that includes:

r for general integer reg
a for rax
x for SSE reg

Similar for =rcx, but with rcx instead of rax.

So the correct asm would look like this:

void x(void)
{
  unsigned long a, b;
  asm volatile ( : =a (a), =c (b) : 0 ((unsigned long) 0x0));
}


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||INVALID


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



[Bug target/36722] ICE with inline asm in 64bit mode because of type size

2008-08-23 Thread schwab at suse dot de


--- Comment #4 from schwab at suse dot de  2008-08-23 07:58 ---
It's still an ice-on-invalid, and as such a valid bug.


-- 

schwab at suse dot de changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|INVALID |


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



[Bug fortran/36534] Bogus: '__convert_s1_s4' at (1) is obsolescent in fortran 95

2008-08-23 Thread fxcoudert at gcc dot gnu dot org


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|fxcoudert at gcc dot gnu dot|unassigned at gcc dot gnu
   |org |dot org
 Status|ASSIGNED|NEW


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



[Bug fortran/35937] Wrong type for charlength of function

2008-08-23 Thread fxcoudert at gcc dot gnu dot org


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|fxcoudert at gcc dot gnu dot|unassigned at gcc dot gnu
   |org |dot org
 Status|ASSIGNED|NEW


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



[Bug middle-end/37170] [4.4 Regression]: gcc.dg/weak/weak-1.c

2008-08-23 Thread andreast at gcc dot gnu dot org


--- Comment #31 from andreast at gcc dot gnu dot org  2008-08-23 08:17 
---
 /Volumes/development/gcc/head/objdir-x86_64/./gcc/cc1plus -fpreprocessed
prims.ii -fPIC -feliminate-unused-debug-symbols -quiet -dumpbase prims.cc
-mmacosx-version-min=10.5.4 -mtune=generic -auxbase-strip .libs/prims.o -g -O2
-Wswitch-enum -Wextra -Wall -version -fno-rtti -fnon-call-exceptions
-fdollars-in-identifiers -fomit-frame-pointer -fno-common -o prims.s
GNU C++ (GCC) version 4.4.0 20080822 (experimental) [trunk revision 139497]
(x86_64-apple-darwin9)
compiled by GNU C version 4.4.0 20080822 (experimental) [trunk revision
139497], GMP version 4.2.2, MPFR version 2.3.1.
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Compiler executable checksum: d33cfb8d3b429a09faa5a0175497a6bb
COLLECT_GCC_OPTIONS='-mmacosx-version-min=10.5.4' '-shared-libgcc'
'-B/Volumes/development/gcc/head/objdir-x86_64/./gcc' '-nostdinc++'
'-L/Volumes/development/gcc/head/objdir-x86_64/x86_64-apple-darwin9/libstdc++-v3/src'
'-L/Volumes/development/gcc/head/objdir-x86_64/x86_64-apple-darwin9/libstdc++-v3/src/.libs'
'-B/Volumes/development/gcc/head/testbin-x86_64/x86_64-apple-darwin9/bin/'
'-B/Volumes/development/gcc/head/testbin-x86_64/x86_64-apple-darwin9/lib/'
'-isystem'
'/Volumes/development/gcc/head/testbin-x86_64/x86_64-apple-darwin9/include'
'-isystem'
'/Volumes/development/gcc/head/testbin-x86_64/x86_64-apple-darwin9/sys-include'
'-DHAVE_CONFIG_H' '-I.' '-I/Volumes/development/gcc/head/gcc/libjava'
'-I./include' '-I./gcj' '-I/Volumes/development/gcc/head/gcc/libjava'
'-Iinclude' '-I/Volumes/development/gcc/head/gcc/libjava/include'
'-I/Volumes/development/gcc/head/gcc/libjava/classpath/include'
'-Iclasspath/include'
'-I/Volumes/development/gcc/head/gcc/libjava/classpath/native/fdlibm'
'-I/Volumes/development/gcc/head/gcc/libjava/../boehm-gc/include'
'-I../boehm-gc/include' '-I/Volumes/development/gcc/head/gcc/libjava/libltdl'
'-I/Volumes/development/gcc/head/gcc/libjava/libltdl'
'-I/Volumes/development/gcc/head/gcc/libjava/.././libjava/../gcc'
'-I/Volumes/development/gcc/head/gcc/libjava/../zlib'
'-I/Volumes/development/gcc/head/gcc/libjava/../libffi/include'
'-I../libffi/include' '-fno-rtti' '-fnon-call-exceptions'
'-fdollars-in-identifiers' '-Wswitch-enum' '-D_FILE_OFFSET_BITS=64'
'-fomit-frame-pointer' '-Wextra' '-Wall' '-D_GNU_SOURCE'
'-DPREFIX=/Volumes/development/gcc/head/testbin-x86_64'
'-DTOOLEXECLIBDIR=/Volumes/development/gcc/head/testbin-x86_64/lib'
'-DJAVA_HOME=/Volumes/development/gcc/head/testbin-x86_64'
'-DBOOT_CLASS_PATH=/Volumes/development/gcc/head/testbin-x86_64/share/java/libgcj-4.4.0.jar'
'-DJAVA_EXT_DIRS=/Volumes/development/gcc/head/testbin-x86_64/share/java/ext'
'-DGCJ_ENDORSED_DIRS=/Volumes/development/gcc/head/testbin-x86_64/share/java/gcj-endorsed'
'-DGCJ_VERSIONED_LIBDIR=/Volumes/development/gcc/head/testbin-x86_64/lib/gcj-4.4.0-10'
'-DPATH_SEPARATOR=:'
'-DECJ_JAR_FILE=/Volumes/development/gcc/head/testbin-x86_64/share/java/ecj.jar'
'-DLIBGCJ_DEFAULT_DATABASE=/Volumes/development/gcc/head/testbin-x86_64/lib/gcj-4.4.0-10/classmap.db'
'-DLIBGCJ_DEFAULT_DATABASE_PATH_TAIL=gcj-4.4.0-10/classmap.db' '-g' '-O2'
'-MT' 'prims.lo' '-MD' '-MP' '-MF' '.deps/prims.Tpo' '-c' '-fno-common' '-DPIC'
'-v' '-save-temps' '-o' '.libs/prims.o' '-mtune=generic'
 /Volumes/development/gcc/head/objdir-x86_64/./gcc/as -arch x86_64
-force_cpusubtype_ALL -o .libs/prims.o prims.s
prims.s:unknown:Undefined symbol: __Z19_Jv_AllocPtrFreeObjiPN4java4lang5ClassE
can't be a weak_definition
prims.s:unknown:Undefined symbol: __Z12_Jv_AllocObjiPN4java4lang5ClassE can't
be a weak_definition


-- 


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



[Bug c++/37208] C++0x deleted functions and SFINAE

2008-08-23 Thread paolo dot carlini at oracle dot com


--- Comment #2 from paolo dot carlini at oracle dot com  2008-08-23 09:31 
---
Let's CC Jason...


-- 

paolo dot carlini at oracle dot com changed:

   What|Removed |Added

 CC||jason at gcc dot gnu dot org


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



[Bug middle-end/37174] [4.4 Regression] ICE: in vinfo_for_stmt, at tree-vectorizer.h:546

2008-08-23 Thread irar at gcc dot gnu dot org


--- Comment #7 from irar at gcc dot gnu dot org  2008-08-23 10:43 ---
Subject: Bug 37174

Author: irar
Date: Sat Aug 23 10:42:34 2008
New Revision: 139508

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=139508
Log:
PR tree-optimization/37174
* tree-vect-analyze.c (vect_get_and_check_slp_defs): Check that the
def stmt is a part of the loop before accessing its stmt_vec_info.


Added:
trunk/gcc/testsuite/g++.dg/vect/pr37174.cc
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-vect-analyze.c


-- 


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



[Bug middle-end/37151] [4.4 Regression] ICE with -fprofile-use and -ftree-loop-linear

2008-08-23 Thread burnus at gcc dot gnu dot org


--- Comment #3 from burnus at gcc dot gnu dot org  2008-08-23 11:16 ---
Platform: x86-64-linux (openSUSE Factory on AMD Athlon64).
However, I cannot reproduce it anymore with the current trunk
- Close as WORKSFORME.


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||WORKSFORME


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



[Bug middle-end/37209] New: [4.4 Regression] ICE in vinfo_for_stmt, at tree-vectorizer.h:546

2008-08-23 Thread burnus at gcc dot gnu dot org
Works here with: 2008-08-19-r139224
fails here with: 2008-08-20-r139252

(Note both had some patches applied, but looking at the diffs to the trunk at
that time, they should not affect the failure.)

 $ gfortran -O3 test.f90
test.f90: In function 'euler':
test.f90:1: internal compiler error: in vinfo_for_stmt, at
tree-vectorizer.h:546


  SUBROUTINE euler(mrot,amat,alpha,beta,gamma)
  IMPLICIT NONE
  INTEGER, INTENT(IN) :: mrot(3,3)
  REAL, INTENT(IN) :: amat(3,3)
  REAL, INTENT(OUT) :: alpha,beta,gamma
  INTEGER :: det,a1,a2,n
  REAL :: mprop(3,3),amatinv(3,3),detr
  REAL :: pi,sina,sinb,sinc,cosa,cosb,cosc
  pi = atan(1.0)*4.0
  det= mrot(1,1)*mrot(2,2)*mrot(3,3) + 
   mrot(1,2)*mrot(2,3)*mrot(3,1) + 
   mrot(2,1)*mrot(3,2)*mrot(1,3) - 
   mrot(1,3)*mrot(2,2)*mrot(3,1) - 
   mrot(2,3)*mrot(3,2)*mrot(1,1) - 
   mrot(2,1)*mrot(1,2)*mrot(3,3)
  mprop=REAL(det)*MATMUL(amat,MATMUL(REAL(mrot),amatinv))
  cosb = mprop(3,3)
  sinb = 1.00 - cosb*cosb
  sinb = max(sinb,0.00)
  sinb = sqrt(sinb)
  IF ( abs(sinb).LT.1.0e-5 ) gamma = 0.0
  END SUBROUTINE


-- 
   Summary: [4.4 Regression] ICE in vinfo_for_stmt, at tree-
vectorizer.h:546
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Keywords: ice-on-invalid-code
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: burnus at gcc dot gnu dot org
GCC target triplet: x86_64-unknown-linux-gnu


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



[Bug middle-end/37209] [4.4 Regression] ICE in vinfo_for_stmt, at tree-vectorizer.h:546

2008-08-23 Thread irar at il dot ibm dot com


--- Comment #1 from irar at il dot ibm dot com  2008-08-23 11:31 ---
I think it's a duplicate of pr37174. 
I've just committed the fix.

Ira


-- 


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



[Bug c++/13358] long long and C++ do not mix well

2008-08-23 Thread manu at gcc dot gnu dot org


--- Comment #18 from manu at gcc dot gnu dot org  2008-08-23 11:31 ---
I cannot reproduce the warning in C or C++. It seems this got fixed silently.


-- 


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



[Bug middle-end/37174] [4.4 Regression] ICE: in vinfo_for_stmt, at tree-vectorizer.h:546

2008-08-23 Thread irar at il dot ibm dot com


--- Comment #8 from irar at il dot ibm dot com  2008-08-23 11:32 ---
Fixed.


-- 

irar at il dot ibm dot com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug middle-end/37209] [4.4 Regression] ICE in vinfo_for_stmt, at tree-vectorizer.h:546

2008-08-23 Thread burnus at gcc dot gnu dot org


--- Comment #2 from burnus at gcc dot gnu dot org  2008-08-23 11:41 ---
Solved by the patch for PR 37174.

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


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug middle-end/37174] [4.4 Regression] ICE: in vinfo_for_stmt, at tree-vectorizer.h:546

2008-08-23 Thread burnus at gcc dot gnu dot org


--- Comment #9 from burnus at gcc dot gnu dot org  2008-08-23 11:41 ---
*** Bug 37209 has been marked as a duplicate of this bug. ***


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||burnus at gcc dot gnu dot
   ||org


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



[Bug other/37210] New: Prohibit Default Builds in the GCC Source Tree

2008-08-23 Thread tom dot browder at gmail dot com
The gcc configuration instructions *highly* recommend building outside the gcc
source tree, and often, following the gcc-help list, I see that doing so causes
problems.  I propose that the build process be modified so as to default to
*failing* to build under those circumstances.  Add a configuration variable, if
necessary, to allow such a build.

In the meantime, I recommend that the highly recommendation be changed to
some more mandatory language unless the user is a gcc developer.


-- 
   Summary: Prohibit Default Builds in the GCC Source Tree
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: other
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: tom dot browder at gmail dot com


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



[Bug c++/13358] long long and C++ do not mix well

2008-08-23 Thread manu at gcc dot gnu dot org


--- Comment #19 from manu at gcc dot gnu dot org  2008-08-23 12:26 ---
OK, sorry, I needed -m32 in the command line to reproduce it. Is there a
consensus here? It seems too pedantic to warn for something that GCC can handle
perfectly well.


-- 


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



[Bug c++/33736] error: integer constant is too large for �long� type incorrect for C++0x

2008-08-23 Thread manu at gcc dot gnu dot org


--- Comment #2 from manu at gcc dot gnu dot org  2008-08-23 12:37 ---
I think this is a duplicate of 13358. The warning should be conditional on
Wlong-long and Wlong-long should be disabled in -std=c++0x (in fact it is
already). I am testing a patch btw.

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


-- 

manu at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||DUPLICATE


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



[Bug c++/13358] long long and C++ do not mix well

2008-08-23 Thread manu at gcc dot gnu dot org


--- Comment #20 from manu at gcc dot gnu dot org  2008-08-23 12:37 ---
*** Bug 33736 has been marked as a duplicate of this bug. ***


-- 


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



[Bug c/36299] spurious and undocumented warning with -Waddress for a == 0 when a is an array

2008-08-23 Thread manu at gcc dot gnu dot org


--- Comment #2 from manu at gcc dot gnu dot org  2008-08-23 12:53 ---
Andrew, how could we detect that it is a decayed array?

I think we would like to warn for 

if (a == (void *) 0) 

but not for

if ((void *)a == 0) 

or even if possible not for 

if (a[0] == 0) 

Vincent, 
this warning was added on purpose, because probably someone requested it. I
don't see that it is very different from the documented case of using the
address of a function in a conditional.

You should be able to work-around the macro case by casting the array to (char
*) or perhaps casting to (void *) ? That said, we would like to not warn within
macros for a wide range of warnings but we don't have the infrastructure to do
that yet.


-- 


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



[Bug fortran/37201] ICE

2008-08-23 Thread tkoenig at gcc dot gnu dot org


--- Comment #1 from tkoenig at gcc dot gnu dot org  2008-08-23 13:07 ---
Confirmed.

Reduced test case:

program test
  INTERFACE
FUNCTION cdir() BIND(C,name=cdir) RESULT(r)
  CHARACTER(kind=1) :: r
END FUNCTION
  END INTERFACE
  WRITE(*,*) ICHAR(cdir())
END PROGRAM


-- 

tkoenig at gcc dot gnu dot org changed:

   What|Removed |Added

OtherBugsDependingO||32630
  nThis||
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   GCC host triplet|i686 GNU/Linux, kernel  |
   |2.6.22.1|
   Last reconfirmed|-00-00 00:00:00 |2008-08-23 13:07:50
   date||


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



[Bug fortran/37131] inline matmul for small matrix sizes

2008-08-23 Thread tkoenig at gcc dot gnu dot org


--- Comment #4 from tkoenig at gcc dot gnu dot org  2008-08-23 13:18 ---
Created an attachment (id=16134)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16134action=view)
test case

Actually, the test cases were a bit unfair, because 
the middle-end decided not to calculate the
values of c that were never used.

Attached is a better test case.

Timings on x86_64-unknown-linux-gnu:

 matmul =12.840802  s
 subroutine without explicit interface:   0.88805580  s
 subroutine with explicit interface:   0.87605572  s
 inline with sum   2.0721283  s

While inlining is still much better than matmul, a hand-rolled
3*3 subroutine is much faster overall, which I find a bit surprising.


-- 


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



[Bug c/7543] no warning for always-false if (!a 0x4) bitwise and on boolean value

2008-08-23 Thread manu at gcc dot gnu dot org


--- Comment #13 from manu at gcc dot gnu dot org  2008-08-23 13:49 ---
(In reply to comment #8)
  Thanks.  (By the way, if there a gcc person interested in such a list, please
 contact me.)

I am interested in such a list. Thanks in advance.


-- 


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



[Bug fortran/37203] Check ORDER= of RESHAPE

2008-08-23 Thread tkoenig at gcc dot gnu dot org


--- Comment #1 from tkoenig at gcc dot gnu dot org  2008-08-23 14:11 ---
Confirmed.

We should also have a run-time check for this:

[EMAIL PROTECTED]:/tmp$ gfortran -fbounds-check foo.f90
[EMAIL PROTECTED]:/tmp$ ./a.out
   1   6   2   0   3   0   
   4   0   5   0
*** glibc detected *** free(): invalid next size (fast): 0x00508950 ***
Aborted
[EMAIL PROTECTED]:/tmp$  


-- 

tkoenig at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||tkoenig at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-08-23 14:11:59
   date||


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



[Bug other/35648] -Wall includes -Wwrite-strings

2008-08-23 Thread manu at gcc dot gnu dot org


--- Comment #3 from manu at gcc dot gnu dot org  2008-08-23 15:37 ---
Subject: Bug 35648

Author: manu
Date: Sat Aug 23 15:36:32 2008
New Revision: 139517

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=139517
Log:
2008-08-23  Manuel Lopez-Ibanez  [EMAIL PROTECTED]

PR 35648
* doc/invoke.texi (Wwrite-strings): Clarify description.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/doc/invoke.texi


-- 


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



[Bug other/35648] -Wall includes -Wwrite-strings

2008-08-23 Thread manu at gcc dot gnu dot org


--- Comment #4 from manu at gcc dot gnu dot org  2008-08-23 15:40 ---
Fixed in GCC 4.4.

Thanks for the report.


-- 

manu at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug c++/31246] Strange -Wunreachable-code warning with _GLIBCXX_DEBUG

2008-08-23 Thread manu at gcc dot gnu dot org


--- Comment #18 from manu at gcc dot gnu dot org  2008-08-23 15:59 ---
(In reply to comment #0)
 Compiling the following with -Wunreachable-code -D_GLIBCXX_DEBUG
 --
 #include vector
 
 int main()
 {
   std::vectorint::iterator a;
 }
 --
 
 produces the warning :

I cannot reproduce this in GCC 4.4.


-- 


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



[Bug c++/31246] Strange -Wunreachable-code warning with _GLIBCXX_DEBUG

2008-08-23 Thread manu at gcc dot gnu dot org


--- Comment #19 from manu at gcc dot gnu dot org  2008-08-23 16:01 ---
(In reply to comment #4)
 Here is a minimal code example:
 
 #include new
 
 int* get_ptr(void* ptr)
 {
   return new(ptr) int();
 }

I can reproduce this, though.


-- 


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



[Bug c++/31246] Strange -Wunreachable-code warning with _GLIBCXX_DEBUG

2008-08-23 Thread manu at gcc dot gnu dot org


--- Comment #20 from manu at gcc dot gnu dot org  2008-08-23 16:13 ---
For testcase in comment #4 I get 2 warnings now:

home/manuel/test2/src/gcc/testsuite/g++.dg/warn/pr31246-2.C: In function ‘int*
get_ptr(void*)’:
/home/manuel/test2/src/gcc/testsuite/g++.dg/warn/pr31246-2.C:8: warning: will
never be executed

/home/manuel/test2/src/libstdc++-v3/libsupc++/new: In function ‘void* operator
new(size_t, void*)’:
/home/manuel/test2/src/libstdc++-v3/libsupc++/new:105: warning: will never be
executed

libsupc++/new does not contain #pragma GCC system_headers, so even using
warning_at doesn't suppress the warning.


-- 


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



[Bug c++/31246] Strange -Wunreachable-code warning with _GLIBCXX_DEBUG

2008-08-23 Thread manu at gcc dot gnu dot org


--- Comment #21 from manu at gcc dot gnu dot org  2008-08-23 16:21 ---
If gimple stmts do not have the equivalent of DECL_ARTIFICIAL, then the C++
front-end should use gimple_set_no_warning(stmt) when generating such
constructs. So, anyone knows where this comes from?


-- 


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



[Bug fortran/37201] ICE in in gfc_conv_string_parameter

2008-08-23 Thread jvdelisle at gcc dot gnu dot org


--- Comment #2 from jvdelisle at gcc dot gnu dot org  2008-08-23 16:54 
---
Needed a little better summary


-- 

jvdelisle at gcc dot gnu dot org changed:

   What|Removed |Added

Summary|ICE |ICE in in
   ||gfc_conv_string_parameter


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



[Bug fortran/37211] New: TRANSFER to characters: Size checking

2008-08-23 Thread burnus at gcc dot gnu dot org
For the following gfortran should print:
  Intrinsic TRANSFER at %L has partly undefined result: 
  source size %ld  result size %ld
but this does not work.

character(len=20) :: str
str = transfer(10,str)
end

Ditto for character( KIND=4  ,len=20)


-- 
   Summary: TRANSFER to characters: Size checking
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Keywords: diagnostic
  Severity: normal
  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=37211



[Bug fortran/37212] New: TRANSFER: Simplify array argument

2008-08-23 Thread burnus at gcc dot gnu dot org
In the following program, transfer could be simplified at compile time,
however, this does not happen.

Additionally is the following is not needed:

- Call to _gfortran_internal_pack.
  There is no way the array could be noncontiguous.

- Call to _gfortran_internal_unpack.
  There is no need to unpack the temporary array, especially not if it is
  only there as src argument of memmove.



character(len=4,kind=4) :: str
str = transfer([int(z'039f'),int(z'03cd'),int(z'03c7'),  
   int(z'30b8') ], str)
end


-- 
   Summary: TRANSFER: Simplify array argument
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Keywords: missed-optimization
  Severity: normal
  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=37212



[Bug middle-end/37161] [4.4 Regression]: Revision 139225 caused gfortran.dg/vect/pr33301.f -O

2008-08-23 Thread irar at gcc dot gnu dot org


--- Comment #2 from irar at gcc dot gnu dot org  2008-08-23 17:05 ---
Subject: Bug 37161

Author: irar
Date: Sat Aug 23 17:04:12 2008
New Revision: 139518

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=139518
Log:
PR tree-optimization/37161
* tree-vectorizer.h (vect_get_smallest_scalar_type): Declare.
* tree-vect-analyze.c (vect_get_smallest_scalar_type): New function.
(vect_determine_vectorization_factor): Move the scalar type
retrieval to vect_get_smallest_scalar_type.
(vect_build_slp_tree): Call vect_get_smallest_scalar_type to get
scalar type. Remove redundant computation.
* tree-vect-transform.c (vect_get_constant_vectors): Add argument.
(vect_get_slp_defs): Take the type of RHS into account if
necessary by calling vect_get_smallest_scalar_type. Call
vect_get_constant_vectors with additional argument.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-vect-analyze.c
trunk/gcc/tree-vect-transform.c
trunk/gcc/tree-vectorizer.h


-- 


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



[Bug c++/31246] Strange -Wunreachable-code warning with _GLIBCXX_DEBUG

2008-08-23 Thread manu at gcc dot gnu dot org


--- Comment #22 from manu at gcc dot gnu dot org  2008-08-23 17:24 ---
In addition, __cxa_call_unexpected should probably have both TREE_NO_WARNING
and DECL_ARTIFICIAL set but this is orthogonal because at the point of the
warning we should not be testing that.


-- 


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



[Bug tree-optimization/36218] [4.2/4.3/4.4 regression] VRP causes stack overflow while building libgcj

2008-08-23 Thread aaronavay62 at aaronwl dot com


--- Comment #16 from aaronavay62 at aaronwl dot com  2008-08-23 18:06 
---
(In reply to comment #15)
 This should be fixed on the trunk by
 2008-08-20  Richard Guenther  [EMAIL PROTECTED]

 can someone verify this?  Thanks.

Yes and no.

On revision 139510 (2008-08-23), the compilation of cipher.lo is successful in
a normal build, so I presume that the VRP problem has been fixed.  Yay!

However, there is a new (since April 2008) stack overflow now in HTML_401F.lo. 
This one does not seem to be VRP-related, as -fno-tree-vrp does not seem to
help.  It does, however, compile with -O0.  Here is the backtrace:

#0  0x00a61805 in htab_find_slot_with_hash (htab=0x5745038, element=0x83060,
hash=13718576, insert=INSERT) at ../../svn/libiberty/hashtab.c:610
#1  0x00a61a82 in htab_find_slot (htab=0x5745038, element=0x83060,
insert=INSERT) at ../../svn/libiberty/hashtab.c:678
#2  0x0076562a in set_livein_block (var=0x68aa180, bb=0x54c3dc0)
at ../../svn/gcc/tree-into-ssa.c:503
#3  0x00766ae1 in prepare_block_for_update (bb=0x54c3dc0,
insert_phi_p=1 '\001') at ../../svn/gcc/tree-into-ssa.c:2364
#4  0x00766cf0 in prepare_block_for_update (bb=0x54c3d00,
insert_phi_p=1 '\001') at ../../svn/gcc/tree-into-ssa.c:2450
#5  0x00766cf0 in prepare_block_for_update (bb=0x54c3c00,
insert_phi_p=1 '\001') at ../../svn/gcc/tree-into-ssa.c:2450
...
#10851 0x00766cf0 in prepare_block_for_update (bb=0x4f63600,
insert_phi_p=1 '\001') at ../../svn/gcc/tree-into-ssa.c:2450
#10852 0x00766cf0 in prepare_block_for_update (bb=0x4f63580,
insert_phi_p=1 '\001') at ../../svn/gcc/tree-into-ssa.c:2450
#10853 0x00766cf0 in prepare_block_for_update (bb=0x4f63500,
insert_phi_p=1 '\001') at ../../svn/gcc/tree-into-ssa.c:2450
#10854 0x00769e62 in update_ssa (update_flags=2048)
at ../../svn/gcc/tree-into-ssa.c:3230
#10855 0x00762164 in compute_may_aliases ()
at ../../svn/gcc/tree-ssa-alias.c:1842
#10856 0x0052644d in execute_function_todo (data=0x11)
at ../../svn/gcc/passes.c:943
#10857 0x005265a0 in do_per_function (
callback=0x52629c execute_function_todo, data=0x11)
at ../../svn/gcc/passes.c:837
#10858 0x00526670 in execute_todo (flags=1048577)
at ../../svn/gcc/passes.c:1021
#10859 0x00526954 in execute_one_pass (pass=0xb05150)
at ../../svn/gcc/passes.c:1297
#10860 0x00526b48 in execute_pass_list (pass=0xb05150)
at ../../svn/gcc/passes.c:1323
#10861 0x00526b5b in execute_pass_list (pass=0xb04f10)
at ../../svn/gcc/passes.c:1324
#10862 0x00759fb0 in tree_rest_of_compilation (fndecl=0x28c6c80)
at ../../svn/gcc/tree-optimize.c:418
#10863 0x0058796f in cgraph_expand_function (node=0x47acc80)
at ../../svn/gcc/cgraphunit.c:1039
#10864 0x0058968a in cgraph_optimize () at ../../svn/gcc/cgraphunit.c:1101
#10865 0x00443615 in java_parse_file (set_yydebug=0)
at ../../svn/gcc/java/jcf-parse.c:1961
#10866 0x0047907d in toplev_main (argc=32, argv=0x31934e8)
at ../../svn/gcc/toplev.c:959
#10867 0x0040124b in __mingw_CRTStartup ()
#10868 0x00401298 in mainCRTStartup ()

Should I open a new PR for this different stack overflow, and close this one?

I still have not had a chance to see why Joseph's change to LDFLAGS to make
MinGW use the same stack allocation as Linux when building GCC does not
propagate into libjava.  Once that is fixed, this entire catagory of
MinGW-specific problems should go away.

So alternately we could close this one, and open a new one just for the LDFLAGS
issue.


-- 

aaronavay62 at aaronwl dot com changed:

   What|Removed |Added

   Last reconfirmed|2008-07-14 08:03:23 |2008-08-23 18:06:02
   date||


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



[Bug c++/37004] [C++ only] Wconversion warns for short y = 0x7fff; short z = (short) x y;

2008-08-23 Thread manu at gcc dot gnu dot org


--- Comment #3 from manu at gcc dot gnu dot org  2008-08-23 18:06 ---
In C:

/* Wrapper around c_common_type that is used by c-common.c and other
   front end optimizations that remove promotions.  ENUMERAL_TYPEs
   are allowed here and are converted to their compatible integer types.
   BOOLEAN_TYPEs are allowed here and return either boolean_type_node or
   preferably a non-Boolean type as the common type.  */
tree
common_type (tree t1, tree t2)

In C++:

/* Return the common type of two types.
   We assume that comptypes has already been done and returned 1;
   if that isn't so, this may crash.

   This is the type for the result of most arithmetic operations
   if the operands have the given two types.  */

tree
common_type (tree t1, tree t2)


They are not the same. C++ performs integral promotion, C doesn't. Which is a
waste of time in C++ because everywhere common_type is called, integral
promotions have been performed already.

Duplicationg type_after_usual_arithmetic_conversions with a variant that does
not perform promotions fixes the problem. But there should be a more elegant
way to handle this than just duplicating the whole function...


-- 


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



[Bug fortran/37025] ICE with TRANSFER to non-default-kind character: transfer(int(z'bde4'),4_'a')

2008-08-23 Thread burnus at gcc dot gnu dot org


--- Comment #1 from burnus at gcc dot gnu dot org  2008-08-23 18:13 ---
Subject: Bug 37025

Author: burnus
Date: Sat Aug 23 18:12:30 2008
New Revision: 139520

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=139520
Log:
2008-08-23  Tobias Burnus  [EMAIL PROTECTED]

PR fortran/37025
* target-memory.c (gfc_interpret_character): Support
kind=4 characters.

2008-08-23  Tobias Burnus  [EMAIL PROTECTED]

PR fortran/37025
* gfortran.dg/widechar_8.f90: New.


Added:
trunk/gcc/testsuite/gfortran.dg/widechar_8.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/target-memory.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c/30260] Enumeration types and enumeration constants erroneously given unsigned types

2008-08-23 Thread manu at gcc dot gnu dot org


--- Comment #6 from manu at gcc dot gnu dot org  2008-08-23 18:20 ---
In GCC 4.4 we produce the same output independently of -pedantic:

(a  0) = 1, (A2  0) = 1, A{1,2} = +0, -1
(b  0) = 0, (B2  0) = 0, B{1,2} = +0, -1


-- 


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



[Bug fortran/37025] ICE with TRANSFER to non-default-kind character: transfer(int(z'bde4'),4_'a')

2008-08-23 Thread burnus at gcc dot gnu dot org


--- Comment #2 from burnus at gcc dot gnu dot org  2008-08-23 18:21 ---
FIXED on the trunk (4.4).


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug middle-end/37170] [4.4 Regression]: gcc.dg/weak/weak-1.c

2008-08-23 Thread hp at gcc dot gnu dot org


--- Comment #32 from hp at gcc dot gnu dot org  2008-08-23 18:38 ---
Thanks, I got everything I need.

The problem seen for the Darwin bootstrap is caused not by the output_operand
call to assemble_external, but by another call, in cp/decl2.c:mark_used.

Plainly treating that (as now) the same as the assemble_external call from
output_operand, causes lots of actually not used (perhaps inlined, but not
referenced) functions to be marked as weak.  You can see this diffing e.g.
prims.s for unpatched 139232 and 139233 for x86_64-linux but you don't see it
for unpatched darwin because of the assemble_external call being masked by the
#ifdef.  For GNU/Linux, having random .weak annotations for unreferenced and
undefined symbols apparently has no visible effect.  The reason that the Darwin
assembler complains when it sees some of these, is that they're coupled with
annotations specifically for weak *definitions* for one reason or another
(without a matching symbol definition), while with more common targets the weak
annotations for references and definitions look the same, the absence/presence
of the actual definition defines what weakness type it is.

I'm not sure why there are assemble_external calls all over and from language
front-ends; there should be only one in output_operand (for code) and one where
data is output.

Come to think of it, they shouldn't be there either, but in expand, so we don't
have to play target-specific tricks.  Not sure whether that change would fit in
this PR, or if I should go with just remove or gate the bogus and redundant
assemble_external calls.  Bah, I guess I should just have asked for revert of
139233; that and related earlier changes obviously weren't fit for trunk.  Ok,
one more try.


-- 


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



[Bug c++/31246] Strange -Wunreachable-code warning with _GLIBCXX_DEBUG

2008-08-23 Thread paolo dot carlini at oracle dot com


--- Comment #23 from paolo dot carlini at oracle dot com  2008-08-23 18:43 
---
To be clear, there are no #pragma GCC system_header at all in the entire
libsupc++ directory. I hope we don't have to begin...


-- 


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



[Bug c++/31246] Strange -Wunreachable-code warnings

2008-08-23 Thread paolo dot carlini at oracle dot com


--- Comment #24 from paolo dot carlini at oracle dot com  2008-08-23 18:45 
---
I'm going to tweak a bit the Summary, seems misleading now.


-- 

paolo dot carlini at oracle dot com changed:

   What|Removed |Added

Summary|Strange -Wunreachable-code  |Strange -Wunreachable-code
   |warning with _GLIBCXX_DEBUG |warnings


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



[Bug c++/31246] -Wunreachable-code warnings for compiler-generated code

2008-08-23 Thread manu at gcc dot gnu dot org


--- Comment #25 from manu at gcc dot gnu dot org  2008-08-23 18:50 ---
This looks clearer to me. Maybe Jason or Mark have some idea where this code is
generated. It should be clear that it is compiler-generated and we can set
DECL_ARTIFICIAL or TREE_NO_WARNING. Then we just have to make sure to propagate
that. And finally, check it before warning.


-- 

manu at gcc dot gnu dot org changed:

   What|Removed |Added

Summary|Strange -Wunreachable-code  |-Wunreachable-code warnings
   |warnings|for compiler-generated code


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



[Bug fortran/37076] Concatenation of KIND=4 strings with KIND=4 parameters fails

2008-08-23 Thread burnus at gcc dot gnu dot org


--- Comment #1 from burnus at gcc dot gnu dot org  2008-08-23 18:51 ---
FIXED on the trunk (4.4).


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug fortran/37076] Concatenation of KIND=4 strings with KIND=4 parameters fails

2008-08-23 Thread burnus at gcc dot gnu dot org


--- Comment #2 from burnus at gcc dot gnu dot org  2008-08-23 18:51 ---
Subject: Bug 37076

Author: burnus
Date: Sat Aug 23 18:49:43 2008
New Revision: 139521

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=139521
Log:
2008-08-23  Tobias Burnus  [EMAIL PROTECTED]

PR fortran/37076
* arith.c (gfc_arith_concat): Fix concat of kind=4 strings.

2008-08-23  Tobias Burnus  [EMAIL PROTECTED]

PR fortran/37076
* gfortran.dg/widechar_9.f90: New.


Added:
trunk/gcc/testsuite/gfortran.dg/widechar_9.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/arith.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug fortran/37201] ICE in in gfc_conv_string_parameter

2008-08-23 Thread burnus at gcc dot gnu dot org


--- Comment #3 from burnus at gcc dot gnu dot org  2008-08-23 19:13 ---
*** Bug 37205 has been marked as a duplicate of this bug. ***


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||burnus at gcc dot gnu dot
   ||org


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



[Bug fortran/37205] BIND(C): Character FUNCTION foo() - ICE

2008-08-23 Thread burnus at gcc dot gnu dot org


--- Comment #1 from burnus at gcc dot gnu dot org  2008-08-23 19:13 ---
Actually, this PR was first ...

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


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug fortran/37201] ICE in in gfc_conv_string_parameter

2008-08-23 Thread burnus at gcc dot gnu dot org


--- Comment #4 from burnus at gcc dot gnu dot org  2008-08-23 19:45 ---
Actually, removing the assert

--- /home/tob/projects/gcc/gcc/fortran/trans-expr.c (Revision 139520)
+++ /home/tob/projects/gcc/gcc/fortran/trans-expr.c
@@ -4008,2 +4008,0 @@ gfc_conv_string_parameter (gfc_se * se)
-  gcc_assert (se-string_length
-  TREE_CODE (TREE_TYPE (se-string_length)) == INTEGER_TYPE);

is enough for assignments. Proof:

 str[1]{lb: 1 sz: 1} = cdir ();  ! str = cdir()
 i = (integer(kind=4)) cdir ();  ! i   = ichar(cdir())

TODO: Come up with a better assert which works also in this case.

 * * *

For I/O one also needs the following:

--- trans-io.c  (Revision 139521)
+++ trans-io.c
@@ -2071,2 +2071,6 @@ transfer_expr (gfc_se * se, gfc_typespec
- gcc_assert (TREE_CODE (TREE_TYPE (tmp)) == ARRAY_TYPE);
- arg2 = TYPE_MAX_VALUE (TYPE_DOMAIN (TREE_TYPE (tmp)));
+
+ /* BIND(C) function return value.  */
+ if (TREE_CODE (TREE_TYPE (tmp)) != ARRAY_TYPE)
+   arg2 = build_int_cst (gfc_charlen_type_node, 1);
+ else
+   arg2 = TYPE_MAX_VALUE (TYPE_DOMAIN (TREE_TYPE (tmp)));


-- 


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



[Bug c/36299] spurious and undocumented warning with -Waddress for a == 0 when a is an array

2008-08-23 Thread vincent at vinc17 dot org


--- Comment #3 from vincent at vinc17 dot org  2008-08-23 20:00 ---
(In reply to comment #2)
 this warning was added on purpose, because probably someone requested it. I
 don't see that it is very different from the documented case of using the
 address of a function in a conditional.

The documentation should be improved anyway (the word suspicious is very
subjective).

 You should be able to work-around the macro case by casting the array to (char
 *) or perhaps casting to (void *) ?

Yes, this makes sense. Perhaps this should be documented.

 That said, we would like to not warn within
 macros for a wide range of warnings but we don't have the infrastructure to do
 that yet.

How about something like __extension__, e.g. __no_warnings__ would disable the
warnings for the following statement or expression? If expression, one could
still use __no_warnings__ with ({ ... }). Keywords for individual warnings or
warning groups would even be better. At the same time, it would be nice to have
some macro defined, declaring that such a keyword is available (that would be
much better than testing the GCC version).


-- 


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



[Bug target/37094] [4.4 Regression] Ada build broken for i586

2008-08-23 Thread hubicka at gcc dot gnu dot org


--- Comment #6 from hubicka at gcc dot gnu dot org  2008-08-23 20:03 ---
Subject: Bug 37094

Author: hubicka
Date: Sat Aug 23 20:02:08 2008
New Revision: 139522

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=139522
Log:

PR target/37094
* i386.c (standard_80387_constant_p): Use optimize_size.

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


-- 


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



[Bug target/31897] [4.3 Regression] 30% speed regression with -m32 on Opteron with rnflow

2008-08-23 Thread ubizjak at gmail dot com


--- Comment #14 from ubizjak at gmail dot com  2008-08-23 20:07 ---
Looking at http://users.physik.fu-berlin.de/~tburnus/gcc-trunk/benchmark/, it
looks that the problem was mysteriously fixed in recent mainline.


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

Summary|[4.3/4.4 Regression] 30%|[4.3 Regression] 30% speed
   |speed regression with -m32  |regression with -m32 on
   |on Opteron with rnflow  |Opteron with rnflow


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



[Bug c++/37213] New: Declaration/expression ambiguity resolution does not extend beyond initializer

2008-08-23 Thread akyrtzi at gmail dot com
When compiling the following program:


struct S {int z;};
typedef S* (*FuncType)(int,int);
int x,y;
S* a() {
  FuncType(a)(x,y)-z = 0; // treated as declaration
  return 0;
}


This is the result:

t.cpp: In function 'S* a()':
t.cpp:5: error: initializer expression list treated as compound expression
t.cpp:5: error: invalid conversion from 'int' to 'S* (*)(int, int)'
t.cpp:5: error: expected ',' or ';' before '-' token


Shouldn't GCC examine '-' after 'FuncType(a)(x,y)' and conclude that the
statement is an expression instead of a declaration ?


-- 
   Summary: Declaration/expression ambiguity resolution does not
extend beyond initializer
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: akyrtzi at gmail dot com


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



[Bug target/37094] [4.4 Regression] Ada build broken for i586

2008-08-23 Thread ebotcazou at gcc dot gnu dot org


--- Comment #7 from ebotcazou at gcc dot gnu dot org  2008-08-23 21:08 
---
The Ada compiler builds again.


-- 

ebotcazou at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug c/37214] New: Weird operation reordering when compiling with -O3/O2 leading to errornous result

2008-08-23 Thread cuerob at free dot fr
2 instruction are inverted in the compiled code so the result is wrong.
The compilation is ok when using no optimization, but the problem happen with
-O3 and -O2.


Here is the function to compile:

void test2(uint32_t* source, uint32_t* dest)
{
*dest=*source;
*(uint16_t*)dest = (*(uint16_t*)dest)1;

}

You could guess that the shift should happen after the copy.

Here is what you get when dissassembling:
00400500 test2:
  400500:   66 d1 26shlw   (%rsi)
  400503:   8b 07   mov(%rdi),%eax
  400505:   89 06   mov%eax,(%rsi)
  400507:   c3  retq
  400508:   0f 1f 84 00 00 00 00nopl   0x0(%rax,%rax,1)
  40050f:   00



Here is the information on my configuration:

Using built-in specs.
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
--with-gxx-include-dir=/usr/include/c++/4.2 --program-suffix=-4.2
--enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr
--enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu
--target=x86_64-linux-gnu
Thread model: posix
gcc version 4.2.3 (Ubuntu 4.2.3-2ubuntu7)
 /usr/lib/gcc/x86_64-linux-gnu/4.2.3/cc1 -E -quiet -v test.c -mtune=generic
-Wall -O2 -fpch-preprocess -o test.i
ignoring nonexistent directory /usr/local/include/x86_64-linux-gnu
ignoring nonexistent directory
/usr/lib/gcc/x86_64-linux-gnu/4.2.3/../../../../x86_64-linux-gnu/include
ignoring nonexistent directory /usr/include/x86_64-linux-gnu
#include ... search starts here:
#include ... search starts here:
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/4.2.3/include
 /usr/include
End of search list.
 /usr/lib/gcc/x86_64-linux-gnu/4.2.3/cc1 -fpreprocessed test.i -quiet -dumpbase
test.c -mtune=generic -auxbase test -O2 -Wall -version -fstack-protector
-fstack-protector -o test.s
GNU C version 4.2.3 (Ubuntu 4.2.3-2ubuntu7) (x86_64-linux-gnu)
compiled by GNU C version 4.2.3 (Ubuntu 4.2.3-2ubuntu7).
GGC heuristics: --param ggc-min-expand=98 --param ggc-min-heapsize=128576
Compiler executable checksum: 04286fa30e0b1c736cc2bb914c15518c
test.c: In function #8216;main#8217;:
test.c:67: warning: implicit declaration of function #8216;srand#8217;
 as --traditional-format -V -Qy -o test.o test.s
GNU assembler version 2.18.0 (x86_64-linux-gnu) using BFD version (GNU Binutils
for Ubuntu) 2.18.0.20080103
 /usr/lib/gcc/x86_64-linux-gnu/4.2.3/collect2 --eh-frame-hdr -m elf_x86_64
--hash-style=both -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o test
/usr/lib/gcc/x86_64-linux-gnu/4.2.3/../../../../lib/crt1.o
/usr/lib/gcc/x86_64-linux-gnu/4.2.3/../../../../lib/crti.o
/usr/lib/gcc/x86_64-linux-gnu/4.2.3/crtbegin.o
-L/usr/lib/gcc/x86_64-linux-gnu/4.2.3 -L/usr/lib/gcc/x86_64-linux-gnu/4.2.3
-L/usr/lib/gcc/x86_64-linux-gnu/4.2.3/../../../../lib -L/lib/../lib
-L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.2.3/../../.. test.o -lgcc
--as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed
/usr/lib/gcc/x86_64-linux-gnu/4.2.3/crtend.o
/usr/lib/gcc/x86_64-linux-gnu/4.2.3/../../../../lib/crtn.o


-- 
   Summary: Weird operation reordering when compiling with -O3/O2
leading to errornous result
   Product: gcc
   Version: 4.2.3
Status: UNCONFIRMED
  Severity: critical
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: cuerob at free dot fr
GCC target triplet: x86_64-linux-gnu


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



[Bug preprocessor/37215] New: ICE on 'gcc -E -dM -fpreprocessed - /dev/null'

2008-08-23 Thread gcc-bugzilla at gcc dot gnu dot org

Executing 'gcc -E -dM -fpreprocessed -  /dev/null' gives:

stdin:1: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

Environment:
System: Linux alpha2 2.6.26 #1 Sun Jul 20 12:35:52 CEST 2008 x86_64 AMD
Athlon(tm) 64 Processor 2800+ AuthenticAMD GNU/Linux
Architecture: x86_64


host: x86_64-unknown-linux-gnu
build: x86_64-unknown-linux-gnu
target: x86_64-unknown-linux-gnu
configured with: ../configure --prefix=/usr --enable-shared
--enable-languages=c,c++,fortran,objc,obj-c++,treelang --enable-threads=posix
--mandir=/usr/share/man --enable-__cxa_atexit --disable-multilib
--libdir=/usr/lib --libexecdir=/usr/lib --enable-clocale=gnu
--disable-libstdcxx-pch --with-tune=generic

How-To-Repeat:
Just run 'gcc -E -dM -fpreprocessed -  /dev/null'.


-- 
   Summary: ICE on 'gcc -E -dM -fpreprocessed -  /dev/null'
   Product: gcc
   Version: 3.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: preprocessor
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: ivan dot stankovic at fer dot hr
 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=37215



[Bug c/37216] New: Invalid XMM instructions generated with -O3

2008-08-23 Thread simon dot sasburg at gmail dot com
GCC generates an XMM instruction with a memory operand not 16-byte aligned as
it should be (i think), this generates a segmentation fault when run.

Input file: (test.c)
-
int iarr[64];
int iint = 0;

int main() {
int i;
for(i=0;i64;i++) {
iarr[i] = -2;
}
return 0;
}
-

Output of gcc -v:
Using built-in specs.
Target: i686-pc-cygwin
Configured with: ../source-4.3.1/configure --prefix=/usr/src/gcc/prefix-4.3.1
--enable-languages=c,c++ --disable-nls --without-included-gettext
--enable-version-specific-runtime-libs --enable-threads=posix
--disable-win32-registry
Thread model: posix
gcc version 4.3.1 (GCC) 

Command used to compile:
/usr/src/gcc/prefix-4.3.1/bin/gcc test.c -o test.exe -march=core2 -O3

CPU: Intel(R) Core(TM)2 CPU T7200  @ 2.00GHz

Offending instruction: 'movdqa %xmm0,0x403024'


-- 
   Summary: Invalid XMM instructions generated with -O3
   Product: gcc
   Version: 4.3.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: simon dot sasburg at gmail dot com
 GCC build triplet: i686-pc-cygwin
  GCC host triplet: i686-pc-cygwin
GCC target triplet: i686-pc-cygwin


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



[Bug c/37214] Weird operation reordering when compiling with -O3/O2 leading to errornous result

2008-08-23 Thread schwab at suse dot de


--- Comment #1 from schwab at suse dot de  2008-08-23 23:07 ---
You are violating the C/C++ aliasing rules.

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


-- 

schwab at suse dot de changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug c/21920] aliasing violations

2008-08-23 Thread schwab at suse dot de


--- Comment #129 from schwab at suse dot de  2008-08-23 23:07 ---
*** Bug 37214 has been marked as a duplicate of this bug. ***


-- 

schwab at suse dot de changed:

   What|Removed |Added

 CC||cuerob at free dot fr


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



[Bug bootstrap/25502] I64d format Werror problem in build

2008-08-23 Thread aaronavay62 at aaronwl dot com


--- Comment #19 from aaronavay62 at aaronwl dot com  2008-08-24 01:17 
---
Kai, I'm assigning this to you because you said on IRC a month or two ago that
you were working on a patch for this.  I've been working around this with a
local patch that adds __extension__ everywhere that needs it.


-- 

aaronavay62 at aaronwl dot com changed:

   What|Removed |Added

 AssignedTo|aaronavay62 at aaronwl dot  |ktietz at gcc dot gnu dot
   |com |org


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



[Bug c++/37217] New: ICE on Valid Code

2008-08-23 Thread mckelvey at maskull dot com
This code has been working forever:

$ g++ -v
Using built-in specs.
Target: i686-pc-cygwin
Configured with: /cygdrive/f/Home/cvsroot/gcc/configure --verbose
--enable-threads --disable-nls --disable-win32-registry
--enable-languages=c,c++
Thread model: posix
gcc version 4.4.0 20080823 (experimental) (GCC) 

[EMAIL PROTECTED] ~/PD
$ uname -a
CYGWIN_NT-5.1 MCKELVEY-XP 1.5.25(0.156/4/2) 2008-06-12 19:34 i686 Cygwin



$ g++ -c -g -fno-elide-constructors  -DUSE_MUTEX=1  -pedantic-errors
-Werror -ansi -fno-common -Wall -Wold-style-cast -Wsign-promo -Wpointer-arith
-Wundef -Wwrite-strings -Winvalid-pch -Woverloaded-virtual -Wcast-qual -Wextra
-Wredundant-decls -Wshadow -Wcast-align -Wcomment -fstrict-aliasing -Winit-self
-Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wlogical-op -Wconversion
-Wmissing-declarations -Wunused -MMD   --save-temp   -fimplicit-templates -o
Types.o Types.cc
In file included from
/usr/local/lib/gcc/i686-pc-cygwin/4.4.0/../../../../include/c++/4.4.0/bits/localefwd.h:48,
 from
/usr/local/lib/gcc/i686-pc-cygwin/4.4.0/../../../../include/c++/4.4.0/locale:46,
 from Types.h:37,
 from Types.cc:29:
/usr/local/lib/gcc/i686-pc-cygwin/4.4.0/../../../../include/c++/4.4.0/i686-pc-cygwin/bits/c++locale.h:
In function 'int std::__convert_from_v(int* const, char*, int, const char*,
...)':
/usr/local/lib/gcc/i686-pc-cygwin/4.4.0/../../../../include/c++/4.4.0/i686-pc-cygwin/bits/c++locale.h:67:
internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.



$ alias CONFIGURECVS
alias CONFIGURECVS='/cygdrive/f/Home/cvsroot/gcc/configure --verbose
--enable-threads --disable-nls --disable-win32-registry
--enable-languages=c,c++'

[EMAIL PROTECTED] ~/PD
$ alias BUILD
alias BUILD='nice make CFLAGS='\'''\'' BOOT_CFLAGS='\'''\'' LIBCFLAGS='\''-g
-O'\'' CXXFLAGS='\''-O'\'' LIBCXXFLAGS='\''-g -O'\'' bootstrap'


-- 
   Summary: ICE on Valid Code
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: mckelvey at maskull dot com
 GCC build triplet: i686-pc-cygwin
  GCC host triplet: i686-pc-cygwin
GCC target triplet: i686-pc-cygwin


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



[Bug c++/37217] ICE on Valid Code

2008-08-23 Thread mckelvey at maskull dot com


--- Comment #1 from mckelvey at maskull dot com  2008-08-24 01:41 ---
Created an attachment (id=16135)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16135action=view)
Compressed preprocessed source


-- 


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



[Bug middle-end/37218] New: [4.4 Regression] Revision 139525 caused many SLP regressions

2008-08-23 Thread hjl dot tools at gmail dot com
On Linux/ia32, Revision 139525 caused

FAIL: gcc.dg/vect/slp-14.c scan-tree-dump-times vect vectorized 1 loops 1
FAIL: gcc.dg/vect/slp-14.c scan-tree-dump-times vect vectorizing stmts using
SLP 2
FAIL: gcc.dg/vect/slp-15.c scan-tree-dump-times vect vectorized 1 loops 1
FAIL: gcc.dg/vect/slp-15.c scan-tree-dump-times vect vectorizing stmts using
SLP 2
FAIL: gcc.dg/vect/slp-2.c scan-tree-dump-times vect vectorized 4 loops 1
FAIL: gcc.dg/vect/slp-2.c scan-tree-dump-times vect vectorizing stmts using
SLP 4
FAIL: gcc.dg/vect/slp-20.c scan-tree-dump-times vect vectorized 2 loops 1
FAIL: gcc.dg/vect/slp-20.c scan-tree-dump-times vect vectorizing stmts using
SLP 4
FAIL: gcc.dg/vect/slp-22.c scan-tree-dump-times vect vectorized 2 loops 1
FAIL: gcc.dg/vect/slp-22.c scan-tree-dump-times vect vectorizing stmts using
SLP 6
FAIL: gcc.dg/vect/slp-25.c scan-tree-dump-times vect vectorized 2 loops 1
FAIL: gcc.dg/vect/slp-25.c scan-tree-dump-times vect Alignment of access
forced using peeling 2
FAIL: gcc.dg/vect/slp-9.c scan-tree-dump-times vect vectorized 1 loops 1
FAIL: gcc.dg/vect/slp-9.c scan-tree-dump-times vect vectorizing stmts using
SLP 1


-- 
   Summary: [4.4 Regression] Revision 139525 caused many SLP
regressions
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hjl dot tools at gmail dot com


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



[Bug rtl-optimization/37219] New: [4.3/4.4 Regression] fwprop1 is broken for addresses

2008-08-23 Thread pinskia at gcc dot gnu dot org
When looking into a regression for the PS3 toolchain (when I merged from 4.1.1
to 4.3.0), I noticed fwprop1 does not prop addresses at all since loop_father
will always be non NULL as the outer loop always exists.  The outer loop
includes the whole function.  I have a patch which fixes the issue and I just
need to test it.  I am going to put this as a regression as cse1 used to prop
these addresses but we no longer do.


-- 
   Summary: [4.3/4.4 Regression] fwprop1 is broken for addresses
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Keywords: missed-optimization
  Severity: normal
  Priority: P3
 Component: rtl-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: pinskia at gcc dot gnu dot org
GCC target triplet: spu-elf


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



[Bug rtl-optimization/37219] [4.3/4.4 Regression] fwprop1 is broken for addresses

2008-08-23 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2008-08-24 03:55 ---
Here is the patch which I am testing:
Index: fwprop.c
===
--- fwprop.c(revision 139496)
+++ fwprop.c(working copy)
@@ -1056,7 +1056,9 @@ fwprop (void)
   struct df_ref *use = DF_USES_GET (i);
   if (use)
if (DF_REF_TYPE (use) == DF_REF_REG_USE
-   || DF_REF_BB (use)-loop_father == NULL)
+   || DF_REF_BB (use)-loop_father == NULL
+   /* The outer most loop is not really a loop.  */
+   || loop_outer (DF_REF_BB (use)-loop_father) == NULL)
  forward_propagate_into (use);
 }

@@ -1099,7 +1101,9 @@ fwprop_addr (void)
   struct df_ref *use = DF_USES_GET (i);
   if (use)
if (DF_REF_TYPE (use) != DF_REF_REG_USE
-DF_REF_BB (use)-loop_father != NULL)
+DF_REF_BB (use)-loop_father != NULL
+   /* The outer most loop is not really a loop.  */
+loop_outer (DF_REF_BB (use)-loop_father) != NULL)
  forward_propagate_into (use);
 }

--- CUT ---


-- 

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 |2008-08-24 03:55:43
   date||
   Target Milestone|--- |4.3.2


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