[Bug middle-end/39260] Failed to build lame-3.98-2 source with graphite

2009-02-22 Thread yast4ik at yahoo dot com


--- Comment #7 from yast4ik at yahoo dot com  2009-02-22 08:01 ---
It is seems to me patch works. Thank you for quick solution.


-- 

yast4ik at yahoo dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug ada/39263] [miro] - Revision 144368 - g-socket.adb:41:06: file "g-sothco.ads" not found

2009-02-22 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2009-02-22 09:24 ---
The micro branch is not part of the FSF SVN so this is not a bug here.  Report
this to the developers of the micro branch.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug ada/39264] New: gnat.dg/pack3.adb fails on powerpc64

2009-02-22 Thread laurent at guerby dot net
When testing a 64 bits compiler ACATS is clean but gnat.dg has one FAIL:

http://gcc.gnu.org/ml/gcc-testresults/2009-02/msg02180.html

FAIL: gnat.dg/pack3.adb execution test
raised PROGRAM_ERROR : pack3.adb:29 explicit raise

pack3.adb test was introduced together with this patch:

2008-03-07  Eric Botcazou  

* decl.c (gnat_to_gnu_entity) : Add
comment for the packed array type case.
* utils.c (build_template): Use a loop to strip padding or
containing records for justified modular types.

To build on powerpc64 on debian etch one small patch is needed:

Index: configure
===
--- configure   (revision 144347)
+++ configure   (working copy)
@@ -3332,10 +3332,6 @@
 # in both places for now and restore CFLAGS at the end of config.
 save_CFLAGS="$CFLAGS"

-# Add -Wall -Werror if we are using GCC.
-if test "x$GCC" = "xyes"; then
-  XCFLAGS="$XCFLAGS -Wall -Werror"
-fi

 # Find other programs we need.
 if test -n "$ac_tool_prefix"; then

http://gcc.gnu.org/ml/gcc-testresults/2009-02/msg01865.html

Otherwise the build showing this FAIL is still available on compile farm gcc40
in /n/40/guerby/build-144347 and installed in
/n/40/guerby/install-trunk-144347/bin . Configure:

export CC="gcc -m64"
../trunk/configure --disable-nls --enable-__cxa_atexit --enable-threads=posix
--with-mpfr=/opt/cfarm/mpfr-2.3.2-64 --enable-languages=c,ada
--prefix=/n/40/guerby/install-trunk-144347 --with-long-double-128
--with-gmp=/opt/cfarm/gmp-4.2.4-64/

ssh public key can be added on request to my account (8h30 for bootstrap+check
c,ada on gcc40).


-- 
   Summary: gnat.dg/pack3.adb fails on powerpc64
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Keywords: wrong-code
  Severity: normal
  Priority: P3
 Component: ada
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: laurent at guerby dot net
 GCC build triplet: powerpc64-unknown-linux-gnu
  GCC host triplet: powerpc64-unknown-linux-gnu
GCC target triplet: powerpc64-unknown-linux-gnu


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



[Bug c/12245] [4.2/4.3/4.4 regression] Uses lots of memory when compiling large initialized arrays

2009-02-22 Thread hubicka at gcc dot gnu dot org


--- Comment #42 from hubicka at gcc dot gnu dot org  2009-02-22 11:21 
---
Actual representation of constructor don't seem to be major problem here.

We seem to build _a lot_ (117MB) of CONVERT exprs just to call fold on it and
convert integer to proper type, so counting in INTEGER_CSTs should be just
slightly less than half of memory needed.  This seems quite silly.

The patch to not use HOST_WIDE_INT or similar for counting should save another
70MB of garbage (and speed up compilation), so perhaps you could dig it out?
:))

Following patch:
Index: convert.c
===
--- convert.c   (revision 144352)
+++ convert.c   (working copy)
@@ -749,6 +749,11 @@ convert_to_integer (tree type, tree expr
  break;
}

+  /* When parsing long initializers, we might end up with a lot of casts.
+ Shortcut this.  */
+  if (TREE_CODE (expr) == INTEGER_CST)
+   return fold_unary (CONVERT_EXPR, type, expr);
+
   return build1 (CONVERT_EXPR, type, expr);

 case REAL_TYPE:

Cuts gabrage production in half:
c-typeck.c:6472 (output_init_element) 0: 0.0%  
47910400:100.0%   45541112:23.7%   26342936:99.5% 19
ggc-common.c:187 (ggc_calloc)  67094608:46.1%  0:
0.0%   67162736:34.9%   1088: 0.0% 58
tree.c:1004 (build_int_cst_wide)   78264768:53.8%  0:
0.0%   78266496:40.7%  0: 0.0%3261068
Total 145570627 47910416   
192171521 26481588  3275033
source location GarbageFreed   
 Leak OverheadTimes

I will give the patch testing, but I am not too hopeful it will just work. ;)

Honza


-- 


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



[Bug testsuite/39265] New: [miro] revision 144368 - "make -i check" autogen "fixinclude test FAILURES"

2009-02-22 Thread rob1weld at aol dot com
+++ This bug was initially created as a clone of Bug #38727 +++

The autogen program finds fixinclude test failures in miro :

# gmake -i check
gmake[2]: Entering directory `/usr/share/src/miro_build/fixincludes'
autogen -T ../../miro/fixincludes/check.tpl ../../miro/fixincludes/inclhack.def
/bin/sh ./check.sh ../../miro/fixincludes/tests/base
Fixed:  testing.h
Fixed:  testing.h
Fixed:  ansi/math.h
Fixed:  ansi/stdlib.h
...
Fixed:  pixrect/memvar.h
sed: command garbled: /define[  ]\+PTHREAD_MUTEX_INITIALIZER[   ]*\\/,+1s/{ {
0, } }/{ { 0, 0, 0, 0, 0, 0 } }/
Fixed:  regex.h
...
Fixed:  Xm/Traversal.h
sys/stat.h /usr/share/src/miro/fixincludes/tests/base/sys/stat.h differ: char
432, line 18
*** sys/stat.h  Sun Feb 22 04:17:27 2009
--- /usr/share/src/miro/fixincludes/tests/base/sys/stat.h   Sat Feb 21
18:06:34 2009
***
*** 15,23 


  #if defined( GLIBC_C99_INLINE_2_CHECK )
- extern int fstat64 (int __fd, struct stat64 *__buf) __THROW __nonnull ((2));
  #ifdef __GNUC_GNU_INLINE__
  extern
  #endif
  __inline__ int
  __NTH (fstat64 (int __fd, struct stat64 *__statbuf))
--- 15,26 


  #if defined( GLIBC_C99_INLINE_2_CHECK )
  #ifdef __GNUC_GNU_INLINE__
  extern
+ #endif
+ __inline__ int fstat64 (int __fd, struct stat64 *__buf) __THROW __nonnull
((2));
+ #ifdef __GNUC_GNU_INLINE__
+ extern
  #endif
  __inline__ int
  __NTH (fstat64 (int __fd, struct stat64 *__statbuf))
Missing header fix:  pthread.h

There were fixinclude test FAILURES
gmake[2]: [check] Error 1 (ignored)
gmake[2]: Leaving directory `/usr/share/src/miro_build/fixincludes'
gmake[2]: Entering directory `/usr/share/src/miro_build/gcc'
...

Thanks,
Rob


-- 
   Summary: [miro] revision 144368 - "make -i check" autogen
"fixinclude test FAILURES"
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: testsuite
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: rob1weld at aol dot com
 GCC build triplet: i386-pc-solaris2.11
  GCC host triplet: i386-pc-solaris2.11
GCC target triplet: i386-pc-solaris2.11


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



[Bug testsuite/39265] [miro] revision 144368 - "make -i check" autogen "fixinclude test FAILURES"

2009-02-22 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2009-02-22 12:18 ---
What is the miro branch?


-- 


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



[Bug ada/39263] [miro] - Revision 144368 - g-socket.adb:41:06: file "g-sothco.ads" not found

2009-02-22 Thread rob1weld at aol dot com


--- Comment #2 from rob1weld at aol dot com  2009-02-22 12:19 ---
(In reply to comment #1)
> The micro branch is not part of the FSF SVN so this is not a bug here.  Report
> this to the developers of the micro branch.
> 

It is not "micro" it is "miro" !

http://gcc.gnu.org/wiki/MIRO

svn co svn://gcc.gnu.org/svn/gcc/branches/miro miro

Rob


-- 

rob1weld at aol dot com changed:

   What|Removed |Added

 Status|RESOLVED|UNCONFIRMED
 Resolution|INVALID |


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



[Bug testsuite/39265] [miro] revision 144368 - "make -i check" autogen "fixinclude test FAILURES"

2009-02-22 Thread steven at gcc dot gnu dot org


--- Comment #2 from steven at gcc dot gnu dot org  2009-02-22 12:21 ---
"creating MIRO (Mudflap Improved with Referent Objects) branch"

Seb?


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||spop at gcc dot gnu dot org


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



[Bug ada/39263] [miro] - Revision 144368 - g-socket.adb:41:06: file "g-sothco.ads" not found

2009-02-22 Thread pinskia at gcc dot gnu dot org


--- Comment #3 from pinskia at gcc dot gnu dot org  2009-02-22 12:23 ---
miro branch was created but never touched so invalid.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug testsuite/39265] [miro] revision 144368 - "make -i check" autogen "fixinclude test FAILURES"

2009-02-22 Thread pinskia at gcc dot gnu dot org


--- Comment #3 from pinskia at gcc dot gnu dot org  2009-02-22 12:23 ---
miro branch was created but never touched so invalid.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug bootstrap/39262] [miro] - Revision 144368 - Werror in ../miro/gcc/genconstants.c

2009-02-22 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2009-02-22 12:24 ---
miro branch was created but never touched so invalid.


-- 


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



[Bug bootstrap/39262] [miro] - Revision 144368 - Werror in ../miro/gcc/genconstants.c

2009-02-22 Thread rob1weld at aol dot com


--- Comment #3 from rob1weld at aol dot com  2009-02-22 12:51 ---
(In reply to comment #1)
> Rob, did you ever read http://gcc.gnu.org/bugs.html#report ?
> 
> To be honest, I don't even know _what_ are you reporting here. There is no
> point to post hundreds of lines from build logs, since this is too much for
> anybody to even read it. Sorry.
> 
> So, please stop wasting yours and others time and please post a precise
> bugreport that _explains_ what you think is going wrong. On one or max two
> screens of text, please.
> 
> From the bug report guide, you will note following bullet:
> 
> "Bugs in releases or snapshots of GCC not issued by the GNU Project. Report
> them to whoever provided you with the release"
> 
> FYI, "miro" (or whatever) is not issued by the GNU project.
> 

http://gcc.gnu.org/wiki/MIRO
svn co svn://gcc.gnu.org/svn/gcc/branches/miro miro

Who issues it ?


> please post a precise bugreport that _explains_ what you think ...
Read the title, it is a Werror.

In addition to the Werror, while someone is doing that they
may (or may not) desire to catch the few warnings in other
files that are generating thousands of warnings (and lead to
the Werror). Two ways to fix this, a simple exclusion or fix
all the warnings.


> To be honest, I don't even know _what_ are you reporting ...
This much we know. We thank you for your input on something
that you know nothing about, do you have more to offer?


Did you ever read: http://gcc.gnu.org/svn.html#devbranches

The "miro branch" is listed under "Active Development Branches".


Lets go with this Branch needs it's web page fixed (instead
of exchanges of rudeness).


Rob


-- 


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



[Bug web/39265] [miro] revision 144368 - "make -i check" autogen "fixinclude test FAILURES"

2009-02-22 Thread rob1weld at aol dot com


--- Comment #4 from rob1weld at aol dot com  2009-02-22 12:54 ---
http://gcc.gnu.org/wiki/MIRO
svn co svn://gcc.gnu.org/svn/gcc/branches/miro miro


Please read: http://gcc.gnu.org/svn.html#devbranches

The "miro branch" is listed under "Active Development Branches".


Lets go with this Branch needs it's web pages fixed.

Re-open as "web" (and no more Bug Reports about 'miro').

Rob


-- 

rob1weld at aol dot com changed:

   What|Removed |Added

 Status|RESOLVED|UNCONFIRMED
  Component|testsuite   |web
 Resolution|INVALID |


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



[Bug bootstrap/39262] [miro] - Revision 144368 - Werror in ../miro/gcc/genconstants.c

2009-02-22 Thread steven at gcc dot gnu dot org


--- Comment #4 from steven at gcc dot gnu dot org  2009-02-22 12:56 ---
> Did you ever read: http://gcc.gnu.org/svn.html#devbranches
> 
> The "miro branch" is listed under "Active Development Branches".

Well, it doesn't look active to me.

Seb, please do something here (move to inactive, or close, or whatever),
because it's indeed confusing and it creates false expectations.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||spop at gcc dot gnu dot org


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



[Bug ada/39263] [miro] - Revision 144368 - g-socket.adb:41:06: file "g-sothco.ads" not found

2009-02-22 Thread rob1weld at aol dot com


--- Comment #4 from rob1weld at aol dot com  2009-02-22 12:58 ---
(In reply to comment #3)
> miro branch was created but never touched so invalid.
> 

It is listed as an ADB, if it were to merge I wanted
to be sure it worked. I was not going to spend a lot
of time on it, just one run through. No more miro-posts.

Resolved here http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39265
with a request to fix the web pages. Thanks for your reply,

Rob


-- 


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



[Bug web/39265] [miro] branch listed as active development branch appears to be dead

2009-02-22 Thread steven at gcc dot gnu dot org


--- Comment #5 from steven at gcc dot gnu dot org  2009-02-22 12:59 ---
Indeed.

But Rob, Pinski has a point: There really are better things to spend your time
on than building development branches.  Such branches are often highly
experimental or very unstable, so bugs are not usually tracked in bugzilla but
in the branch maintainer's head or email box.  We only track bugs on branches
for some of the higher-profile branches that are more-or-less stable and close
to being merged (like the alias-improvements branch, or LTO).


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2009-02-22 12:59:32
   date||
Summary|[miro] revision 144368 -|[miro] branch listed as
   |"make -i check" autogen |active development branch
   |"fixinclude test FAILURES"  |appears to be dead


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



[Bug c++/14179] [4.2/4.3/4.4 Regression] out of memory while parsing array with many initializers

2009-02-22 Thread hubicka at gcc dot gnu dot org


--- Comment #49 from hubicka at gcc dot gnu dot org  2009-02-22 13:23 
---
Similarly as in PR c/12245 we build a tons of unnecesary CONVERT_EXPRs. 
Avoiding this by same patch as attached to PR c/12245 brings garbage donwn
by 54% from:

cp/lex.c:511 (build_lang_decl)94176: 0.0% 116432:
0.0% 826264: 0.1%  98952: 0.0%   4247
toplev.c:1538 (realloc_for_line_map)  0: 0.0%1310720:
0.1%1316864: 0.1% 555008: 0.1%  7
ggc-common.c:187 (ggc_calloc) 134478488:12.0% 188112:
0.0%  134356240:14.6%  18504: 0.0%   2913
cp/decl.c:4683 (reshape_init_array_1) 0: 0.0% 
374786120:20.5%  373090856:40.6%  211006352:43.0% 22
cp/parser.c:14709 (cp_parser_initializer_list)373090856:33.3% 
374786120:20.5% 88: 0.0%  211006360:43.0% 23
tree.c:1004 (build_int_cst_wide)   8640: 0.0%  0:
0.0%  402626592:43.8%  0: 0.0%8388234
convert.c:752 (convert_to_integer)603950328:54.0%  0:
0.0%  0: 0.0%   67105592:13.7%8388199
Total1118959027   1826757514   
919671455491189724 16977745
source location GarbageFreed   
 Leak OverheadTimes

to:

cp/lex.c:511 (build_lang_decl)94176: 0.0% 116432:
0.0% 826264: 0.1%  98952: 0.0%   4247
toplev.c:1538 (realloc_for_line_map)  0: 0.0%1310720:
0.1%1316864: 0.1% 555008: 0.1%  7
ggc-common.c:187 (ggc_calloc) 134478488:26.1% 188112:
0.0%  134356240:14.6%  18504: 0.0%   2913
cp/decl.c:4683 (reshape_init_array_1) 0: 0.0% 
374786120:20.5%  373090856:40.6%  211006352:49.8% 22
cp/parser.c:14709 (cp_parser_initializer_list)373090856:72.4% 
374786120:20.5% 88: 0.0%  211006360:49.8% 23
tree.c:1004 (build_int_cst_wide)   8640: 0.0%  0:
0.0%  402626592:43.8%  0: 0.0%8388234
Total 515008771   1826757514   
919671455424084140  8589547
source location GarbageFreed   
 Leak OverheadTimes

so saving about 0.5GB of RAM and speeding up correspondingly too.  We can still
improve but this seems low hanging fruit.

Honza


-- 

hubicka at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||hubicka at gcc dot gnu dot
   ||org


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



[Bug c++/14179] [4.2/4.3/4.4 Regression] out of memory while parsing array with many initializers

2009-02-22 Thread steven at gcc dot gnu dot org


--- Comment #50 from steven at gcc dot gnu dot org  2009-02-22 13:39 ---
Honza, you realize that the numbers are completely unreadable in bugzilla,
right?


-- 


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



[Bug c++/22635] OVERLOAD should not be a linked list of trees

2009-02-22 Thread steven at gcc dot gnu dot org


--- Comment #10 from steven at gcc dot gnu dot org  2009-02-22 14:01 ---
Trees were refactored, and we currently have:

struct tree_base
{
  ENUM_BITFIELD(tree_code) code : 16;
  /* 48 bits for various bitfield flags */
  union tree_ann_d *ann;
} /* So on a 64-bit host this is 128bits = 16 bytes */

struct tree_common
{
  struct tree_base; /* 16 bytes */
  tree chain; /* 8 bytes */
  tree type; /* 8 bytes */
}  /* So on a 64-bit host, tree_common is 32 bytes */

struct tree_overload
{
  struct tree_common; /* 32 bytes */
  tree function; /* 8 bytes */
}

So in total 40 bytes per tree_overload.  If a single linked list would really
be sufficient, then the ideal tree_overload would be 16 bytes (two pointers).
In reality, there are a few flags used on tree_overload, so two pointers is not
enough.  Let's say we use 4 bytes for that. Then we have an overhead of
(40/(16+4))*100% = 100% overhead.

In any normal engineering project, 100% overhead would be reason for distress.
However, as long as the G++ front end are comfortable using trees instead of
front-end specific structures in the parser, we can't do any better at this
point.  The overhead is much less than it was in the past.  It was 3% before
the tree refactoring, so it will be much less now.  And like Gaby already said:
If there are not so many of them (tree_overload objects) then it is not very
important (to squeeze out every last bit of overhead).

Therefore, closing as FIXED by Dan's refactoring.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug other/26327] memory leaks

2009-02-22 Thread steven at gcc dot gnu dot org


--- Comment #3 from steven at gcc dot gnu dot org  2009-02-22 14:06 ---
All leaks from the posted patch were plugged.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||hubicka at gcc dot gnu dot
   ||org
 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug middle-end/29376] Internal error: Killed

2009-02-22 Thread steven at gcc dot gnu dot org


--- Comment #4 from steven at gcc dot gnu dot org  2009-02-22 14:11 ---
Test case has disappeared, and should have been in bugzilla anyway instead of
on a website -> INVALID.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug middle-end/29885] compiling takes very long time during -O3 compile

2009-02-22 Thread steven at gcc dot gnu dot org


--- Comment #3 from steven at gcc dot gnu dot org  2009-02-22 14:14 ---
I can't reproduce this on i686-cygwin, i686-linux, and x86_64-linux with GCC
4.3.3 and with current trunk (r144372).


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug middle-end/12392] very long optimized compile

2009-02-22 Thread steven at gcc dot gnu dot org


--- Comment #22 from steven at gcc dot gnu dot org  2009-02-22 14:15 ---
"Last modified" is long ago. Richi, you added it to the daily testers.  How is
it doing there?


-- 


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



[Bug other/29442] insn-attrtab has grown too large

2009-02-22 Thread steven at gcc dot gnu dot org


--- Comment #10 from steven at gcc dot gnu dot org  2009-02-22 14:19 ---
What happened with the alloca patch? Looks like it was never committed.


-- 


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



[Bug fortran/39266] New: Size of 'put' argument of 'random_seed' intrinsic at (1) too small in Debian 5.0 Sparc

2009-02-22 Thread michael dot a dot richmond at nasa dot gov
I built gfortran 4.4 on a Sparc workstation running Debian Linux 5.0. I
attempted to compile the following program:

PROGRAM test
INTEGER, DIMENSION(8) :: count
CALL RANDOM_SEED(PUT=count)
END PROGRAM test

I got the message:

CALL RANDOM_SEED(PUT=count)
 1
Error: Size of 'put' argument of 'random_seed' intrinsic at (1) too small
(8/12)

The error does not occur when gfortran built on Sparc (or any other
architecture) running Debian Linux 4.0.


-- 
   Summary: Size of 'put' argument of 'random_seed' intrinsic at (1)
too small in Debian 5.0 Sparc
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: michael dot a dot richmond at nasa dot gov
 GCC build triplet: sparc-unknown-linux-gnu
  GCC host triplet: sparc-unknown-linux-gnu
GCC target triplet: sparc-unknown-linux-gnu


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



[Bug tree-optimization/37709] [4.4 Regression] inlining causes explosion in debug info

2009-02-22 Thread hubicka at gcc dot gnu dot org


--- Comment #11 from hubicka at gcc dot gnu dot org  2009-02-22 14:22 
---
Created an attachment (id=17340)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17340&action=view)
Dump of block structure


-- 


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



[Bug tree-optimization/23940] SSA_NAMEs are not released after no longer being used.

2009-02-22 Thread steven at gcc dot gnu dot org


--- Comment #15 from steven at gcc dot gnu dot org  2009-02-22 14:23 ---
Re. Comment #14  -- Fixed on AIB?


-- 


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



[Bug tree-optimization/37709] [4.4 Regression] inlining causes explosion in debug info

2009-02-22 Thread hubicka at gcc dot gnu dot org


--- Comment #12 from hubicka at gcc dot gnu dot org  2009-02-22 14:23 
---
Created an attachment (id=17341)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17341&action=view)
Little dumping facility


-- 


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



[Bug middle-end/23163] internal error compiling cbtt80

2009-02-22 Thread steven at gcc dot gnu dot org


--- Comment #7 from steven at gcc dot gnu dot org  2009-02-22 14:27 ---
Works for me on a machine limited to 512MB (tops at <300MB, which is
unfortunately a small footprint by GCC's current standard).


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||WORKSFORME


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



[Bug fortran/39266] Size of 'put' argument of 'random_seed' intrinsic at (1) too small in Debian 5.0 Sparc

2009-02-22 Thread steven at gcc dot gnu dot org


--- Comment #1 from steven at gcc dot gnu dot org  2009-02-22 14:32 ---
If it works with one debian version, but not another, isn't it something you
should report to debian as their problem, then?  It is impossible to tell what
is going on without knowing/understanding the difference between the two
systems...


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING


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



[Bug c++/22406] -Weffc++ warns about missing op= and copy ctor, even when base classes have already disabled these

2009-02-22 Thread Jason dot A dot Wilkins at gmail dot com


--- Comment #4 from Jason dot A dot Wilkins at gmail dot com  2009-02-22 
14:43 ---
(In reply to comment #3)
It is my understanding that constructors are not inherited so a derived class
really does not declare or define a copy constructor.


-- 

Jason dot A dot Wilkins at gmail dot com changed:

   What|Removed |Added

 CC||Jason dot A dot Wilkins at
   ||gmail dot com


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



[Bug tree-optimization/37709] [4.4 Regression] inlining causes explosion in debug info

2009-02-22 Thread hubicka at gcc dot gnu dot org


--- Comment #13 from hubicka at gcc dot gnu dot org  2009-02-22 14:46 
---
There are obviously giant trees of blocks that have all variables unused and no
statements in them coming from the early inliner.  I am getting convinced we
can safely prune those even at -g3: user can not breakpoint into the block in
any way and can't ask for the value

So I guess we could be at -g eliminating inner blocks with no used variables
and no statements just keeping around blocks with statements including the
unused vars so we can get proper "optimized out" debugger info.

I will prepare patch for this.

Honza


-- 


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



[Bug c++/14179] [4.2/4.3/4.4 Regression] out of memory while parsing array with many initializers

2009-02-22 Thread hubicka at ucw dot cz


--- Comment #51 from hubicka at ucw dot cz  2009-02-22 14:47 ---
Subject: Re:  [4.2/4.3/4.4 Regression] out of memory while parsing array with
many initializers

> Honza, you realize that the numbers are completely unreadable in bugzilla,
> right?
THey need some care to read, the columns are still intact, just
interleaved... I wonder why bugzilla insists on the linebreaks?

Honza


-- 


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



[Bug bootstrap/39262] [miro] - Revision 144368 - Werror in ../miro/gcc/genconstants.c

2009-02-22 Thread sebpop at gmail dot com


--- Comment #5 from sebpop at gmail dot com  2009-02-22 14:55 ---
Subject: Re:  [miro] - Revision 144368 - Werror in 
../miro/gcc/genconstants.c

I will fix this with the attached patch when approved.


--- Comment #6 from sebpop at gmail dot com  2009-02-22 14:55 ---
Created an attachment (id=17342)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17342&action=view)


-- 


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



[Bug web/39265] [miro] branch listed as active development branch appears to be dead

2009-02-22 Thread spop at gcc dot gnu dot org


--- Comment #6 from spop at gcc dot gnu dot org  2009-02-22 15:03 ---
MIRO is an inactive development branch.  I will fix the svn.html page.


-- 

spop at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug web/39265] [miro] branch listed as active development branch appears to be dead

2009-02-22 Thread rob1weld at aol dot com


--- Comment #7 from rob1weld at aol dot com  2009-02-22 15:12 ---
(In reply to comment #6)
> MIRO is an inactive development branch.  I will fix the svn.html page.

Thanks, that is all that is needed.

Rob


BTW: I was only going to run quickly through the code and
check that the 'New and Improved' mudflaps worked on Solaris
(seems to be OK so far). 

Since it was listed as "Active" and seems "Completed" (finished)
I though it might be on the list for merging - so as the 
"OpenSolaris 2009.06 guy" (and one of the few submitting Testsuite 
Results) I thought I would do my part to help.

I've received flames in other threads about this, very unneccesary.

Don't invite people to help ( see http://gcc.gnu.org/svn.html#devbranches
_before_ it is changed) and then get annoyed that the page they
read is wrong (and it is their fault).


-- 


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



[Bug target/39261] _mm256_set_epi64x failed on 32bit

2009-02-22 Thread hjl dot tools at gmail dot com


--- Comment #3 from hjl dot tools at gmail dot com  2009-02-22 15:28 ---
Fixed.


-- 

hjl dot tools at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug fortran/39266] Size of 'put' argument of 'random_seed' intrinsic at (1) too small in Debian 5.0 Sparc

2009-02-22 Thread kargl at gcc dot gnu dot org


--- Comment #2 from kargl at gcc dot gnu dot org  2009-02-22 16:05 ---
Please see the Standard's description of RANDOM_SEED.  In particular,
what does

program duh
   integer how_many
   call random_seed(size=how_many)
   print '(I0)', how_many
end program duh

do on each system?

More importantly, what does 

program doh
   real(16) x
!  real(10) x
   print '(I0)', precision(x)
end program doh

return?


-- 


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



[Bug fortran/39266] Size of 'put' argument of 'random_seed' intrinsic at (1) too small in Debian 5.0 Sparc

2009-02-22 Thread michael dot a dot richmond at nasa dot gov


--- Comment #3 from michael dot a dot richmond at nasa dot gov  2009-02-22 
16:21 ---
On Debian 5.0 they return:

mrich...@msc3035298w:~$ gfortran duh.f90
mrich...@msc3035298w:~$ ./a.out
12
mrich...@msc3035298w:~$ gfortran doh.f90
mrich...@msc3035298w:~$ ./a.out
33

I overwrote Debian 4.0 when I built 5.0.


-- 


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



[Bug target/15780] bootstrap fails on crtstuff

2009-02-22 Thread steven at gcc dot gnu dot org


--- Comment #7 from steven at gcc dot gnu dot org  2009-02-22 16:21 ---
Works with gcc 4.3, 4.4.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug c++/23227] SFINAE bug

2009-02-22 Thread steven at gcc dot gnu dot org


--- Comment #9 from steven at gcc dot gnu dot org  2009-02-22 16:29 ---
>3 years of inaction.  What is going to be done about this?


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING


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



[Bug tree-optimization/23347] PRE produces type mismatch in PHIs when compiling java from bytecode

2009-02-22 Thread steven at gcc dot gnu dot org


--- Comment #1 from steven at gcc dot gnu dot org  2009-02-22 16:31 ---
Is this still an issue, with a new Java front end and a new PRE implementation?


-- 


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



[Bug tree-optimization/23347] PRE produces type mismatch in PHIs when compiling java from bytecode

2009-02-22 Thread steven at gcc dot gnu dot org


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING


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



[Bug target/24500] Libjava failure: FAIL: ExtraClassLoader execution - gij test

2009-02-22 Thread steven at gcc dot gnu dot org


--- Comment #2 from steven at gcc dot gnu dot org  2009-02-22 16:32 ---
Don't see that failure here:
http://gcc.gnu.org/ml/gcc-testresults/2009-02/msg02195.html

FIXED?


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING


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



[Bug other/20939] ld segmentation fault linking libgfortran.sl.0.0

2009-02-22 Thread steven at gcc dot gnu dot org


--- Comment #7 from steven at gcc dot gnu dot org  2009-02-22 16:34 ---
Probably a linker bug -> INVALID
(and also no progress for 3 years anyway)


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug middle-end/24932] GCC segfault's on strcmp in tree.c:annotate_with_file_line

2009-02-22 Thread steven at gcc dot gnu dot org


--- Comment #6 from steven at gcc dot gnu dot org  2009-02-22 16:36 ---
Locations are now handled differently (mapped locations).


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug middle-end/25622] undefined reference to `_gfortran_st_set_nml_var_dim'

2009-02-22 Thread steven at gcc dot gnu dot org


--- Comment #6 from steven at gcc dot gnu dot org  2009-02-22 16:37 ---
Three years, no progress...  Is this still an issue?


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING


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



[Bug target/24419] ix86 prologue clobbers memory when it shouldn't

2009-02-22 Thread steven at gcc dot gnu dot org


--- Comment #18 from steven at gcc dot gnu dot org  2009-02-22 16:38 ---
Orphaned bug.
HJ?


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING


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



[Bug c++/23227] SFINAE bug

2009-02-22 Thread paolo dot carlini at oracle dot com


--- Comment #10 from paolo dot carlini at oracle dot com  2009-02-22 16:38 
---
CC-ing Jason seems a good idea...


-- 

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=23227



[Bug target/24500] Libjava failure: FAIL: ExtraClassLoader execution - gij test

2009-02-22 Thread hjl dot tools at gmail dot com


--- Comment #3 from hjl dot tools at gmail dot com  2009-02-22 16:43 ---
Fixed in 4.4.0.


-- 

hjl dot tools at gmail dot com changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||FIXED


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



[Bug target/24419] ix86 prologue clobbers memory when it shouldn't

2009-02-22 Thread hjl dot tools at gmail dot com


--- Comment #19 from hjl dot tools at gmail dot com  2009-02-22 16:52 
---
Created an attachment (id=17343)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17343&action=view)
The current patch for gcc 4.4.0 revision 144367


-- 

hjl dot tools at gmail dot com changed:

   What|Removed |Added

  Attachment #10023|0   |1
is obsolete||


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



[Bug fortran/39266] Size of 'put' argument of 'random_seed' intrinsic at (1) too small in Debian 5.0 Sparc

2009-02-22 Thread kargl at gcc dot gnu dot org


--- Comment #4 from kargl at gcc dot gnu dot org  2009-02-22 16:53 ---
(In reply to comment #3)
> On Debian 5.0 they return:
> 
> mrich...@msc3035298w:~$ gfortran duh.f90
> mrich...@msc3035298w:~$ ./a.out
> 12
> mrich...@msc3035298w:~$ gfortran doh.f90
> mrich...@msc3035298w:~$ ./a.out
> 33
> 
> I overwrote Debian 4.0 when I built 5.0.

This system has a 113-bit significand floating point type.  The random number
generator requires 12 integers to seed the 3 internal and independent KISS
generators (each KISS requires 4 seeds).  The first KISS generator produces
the first 32-bits of the significand, the 2nd KISS prng gives the next set
of 32 bits, and the last KISS prng provides the remaining bits.

The only portable way to seed random_number is to do something like

  integer, allocatable :: seeds(:)
  call random_seed(size=i)
  allocate(seeds(i))
  !
  !  Set seeds(i) here
  !
  seeds = (/ (j, j=1, i) /)! Obviously, there are better choices!
  call random_seed(put=seeds)
  deallocate(seeds)

A few other points.  gfortran will mix your seeds with some system entropy
to try to limit/prevent a bad choice of seeds.  Additionally, if you 
harvest a real(4), reseed the generator, and then harvest a real(8).  The
first 24 bits of the real(8) will match the 24 bits of the real(4).

If you have other questions about random_seed or random_harvest, it may
be best to ask on the fort...@gcc.gnu.org list.


-- 

kargl at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||INVALID


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



[Bug java/22377] BC compilation fails to detect abstract instantiation

2009-02-22 Thread tromey at gcc dot gnu dot org


--- Comment #6 from tromey at gcc dot gnu dot org  2009-02-22 17:04 ---
I'm not sure that suggestion will work.
My recollection is that the order of checks is specified,
and that allocating memory before the abstract-ness check
would be incorrect.
I didn't confirm this with the spec though.


-- 


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



[Bug preprocessor/39080] -MF writes dependencies for last file only

2009-02-22 Thread tromey at gcc dot gnu dot org


--- Comment #1 from tromey at gcc dot gnu dot org  2009-02-22 17:12 ---
This is not really a bug.

In this scenario, cc1 is executed multiple times.  Each invocation
overwrites the -MF file.

A fix is not to pass multiple .c files to a given invocation of gcc.

Perhaps we should note this in the documentation.


-- 

tromey at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||tromey at gcc dot gnu dot
   ||org


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



[Bug tree-optimization/23347] PRE produces type mismatch in PHIs when compiling java from bytecode

2009-02-22 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2009-02-22 18:46 ---
(In reply to comment #1)
> Is this still an issue, with a new Java front end 

This was compiling with a .class file and there was no new java front-end only
the .java front-end was ripped out.

> and a new PRE implementation?

That I don't know, I have to retest.


-- 


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



[Bug target/39137] [4.4 Regression] -mpreferred-stack-boundary=2 causes lots of dynamic realign

2009-02-22 Thread hubicka at gcc dot gnu dot org


--- Comment #29 from hubicka at gcc dot gnu dot org  2009-02-22 18:46 
---
I mean aligned(64).
I guess something like this then?
Index: config/i386/i386.c
===
--- config/i386/i386.c  (revision 144373)
+++ config/i386/i386.c  (working copy)
@@ -19351,6 +19351,12 @@ unsigned int
 ix86_local_alignment (tree type, enum machine_mode mode,
  unsigned int align)
 {
+  /* We don't want to align DImode to 64bit for compilation with
+ -mpreferred-stack-boundary=2 to not enforce dynamic stack alignment
+ prologue.  */
+  if (mode == DImode && !TARGET_64BIT && ix86_preferred_stack_boundary < 64)
+align = 32;
+
   /* If TYPE is NULL, we are allocating a stack slot for caller-save
  register in MODE.  We will return the largest alignment of XF
  and DF.  */
@@ -19360,6 +19366,12 @@ ix86_local_alignment (tree type, enum ma
align = GET_MODE_ALIGNMENT (DFmode);
   return align;
 }
+  if (!TARGET_64BIT
+  && align == 64
+  && ix86_preferred_stack_boundary < 64
+  && (mode == DImode || (type && TYPE_MODE (type) == DImode))
+  && (!type || !TYPE_USER_ALIGN (type)))
+align = 32;

   /* x86-64 ABI requires arrays greater than 16 bytes to be aligned
  to 16byte boundary.  */


-- 


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



[Bug c/12245] [4.2/4.3/4.4 regression] Uses lots of memory when compiling large initialized arrays

2009-02-22 Thread rguenther at suse dot de


--- Comment #43 from rguenther at suse dot de  2009-02-22 19:03 ---
Subject: Re:  [4.2/4.3/4.4 regression] Uses lots of memory when
 compiling large initialized arrays

On Sun, 22 Feb 2009, hubicka at gcc dot gnu dot org wrote:

> Actual representation of constructor don't seem to be major problem here.
> 
> We seem to build _a lot_ (117MB) of CONVERT exprs just to call fold on it and
> convert integer to proper type, so counting in INTEGER_CSTs should be just
> slightly less than half of memory needed.  This seems quite silly.
> 
> The patch to not use HOST_WIDE_INT or similar for counting should save another
> 70MB of garbage (and speed up compilation), so perhaps you could dig it out?
> :))
> 
> Following patch:
> Index: convert.c
> ===
> --- convert.c   (revision 144352)
> +++ convert.c   (working copy)
> @@ -749,6 +749,11 @@ convert_to_integer (tree type, tree expr
>   break;
> }
> 
> +  /* When parsing long initializers, we might end up with a lot of casts.
> + Shortcut this.  */
> +  if (TREE_CODE (expr) == INTEGER_CST)
> +   return fold_unary (CONVERT_EXPR, type, expr);

fold_convert ().  But maybe not valid to do here for C std reasons, who 
knows.

> +
>return build1 (CONVERT_EXPR, type, expr);

And probably just generally using fold_convert () would be ok as well.
Maybe they are there to make sure to build rvalues.

>  case REAL_TYPE:
> 
> Cuts gabrage production in half:
> c-typeck.c:6472 (output_init_element) 0: 0.0%  
> 47910400:100.0%   45541112:23.7%   26342936:99.5% 19
> ggc-common.c:187 (ggc_calloc)  67094608:46.1%  0:
> 0.0%   67162736:34.9%   1088: 0.0% 58
> tree.c:1004 (build_int_cst_wide)   78264768:53.8%  0:
> 0.0%   78266496:40.7%  0: 0.0%3261068
> Total 145570627 47910416  
>  
> 192171521 26481588  3275033
> source location GarbageFreed  
>  
>  Leak OverheadTimes
> 


-- 


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



[Bug tree-optimization/23940] SSA_NAMEs are not released after no longer being used.

2009-02-22 Thread rguenth at gcc dot gnu dot org


--- Comment #16 from rguenth at gcc dot gnu dot org  2009-02-22 19:05 
---
Yes indeed.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |rguenth at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2008-07-15 12:38:41 |2009-02-22 19:05:58
   date||


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



[Bug tree-optimization/13962] [tree-ssa] make "fold" use alias information to optimize pointer comparisons

2009-02-22 Thread steven at gcc dot gnu dot org


--- Comment #5 from steven at gcc dot gnu dot org  2009-02-22 19:09 ---
Richi, this may be easy to fix on the AIB...


-- 


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



[Bug tree-optimization/14442] missed sib if conversion optimization on the tree level (PHI-OPT misses that !(a == 0) is just a != 0)

2009-02-22 Thread steven at gcc dot gnu dot org


--- Comment #13 from steven at gcc dot gnu dot org  2009-02-22 19:13 ---
Works on the trunk.  The .final_cleanup dumps are the same for f and f1, and so
is the asm output.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug target/39258] No ABI warnings on __m128i when SSE is disabled

2009-02-22 Thread hjl dot tools at gmail dot com


--- Comment #1 from hjl dot tools at gmail dot com  2009-02-22 19:21 ---
The ABI warnings are inconsistent:

bash-3.2$ cat u3.i
typedef long long __m128i __attribute__ ((__vector_size__ (16),
__may_alias__)); 

__m128i
bar2 (void)
{
  __m128i x = (__m128i) { 0, 0 };
  return x;
}
bash-3.2$ gcc -S -mno-sse u3.i 
u3.i: In function ‘bar2’:
u3.i:5: error: SSE register return with SSE disabled
bash-3.2$ gcc -S -mno-sse u3.i  -m32
bash-3.2$ 

construct_container has

  /* We allowed the user to turn off SSE for kernel mode.  Don't crash if
 some less clueful developer tries to use floating-point anyway.  */

But we issue an error.


-- 

hjl dot tools at gmail dot com changed:

   What|Removed |Added

 CC||ubizjak at gmail dot com
   Target Milestone|--- |4.5.0


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



[Bug target/39137] [4.4 Regression] -mpreferred-stack-boundary=2 causes lots of dynamic realign

2009-02-22 Thread hjl dot tools at gmail dot com


--- Comment #30 from hjl dot tools at gmail dot com  2009-02-22 19:28 
---
(In reply to comment #29)
> I mean aligned(64).
> I guess something like this then?
> Index: config/i386/i386.c
> ===
> --- config/i386/i386.c  (revision 144373)
> +++ config/i386/i386.c  (working copy)
> @@ -19351,6 +19351,12 @@ unsigned int
>  ix86_local_alignment (tree type, enum machine_mode mode,
>   unsigned int align)
>  {
> +  /* We don't want to align DImode to 64bit for compilation with
> + -mpreferred-stack-boundary=2 to not enforce dynamic stack alignment
> + prologue.  */
> +  if (mode == DImode && !TARGET_64BIT && ix86_preferred_stack_boundary < 64)
> +align = 32;
> +

It will always align DI to 4 byte in 32bit mode. Did you mean to
replace it with the code below?

>/* If TYPE is NULL, we are allocating a stack slot for caller-save
>   register in MODE.  We will return the largest alignment of XF
>   and DF.  */
> @@ -19360,6 +19366,12 @@ ix86_local_alignment (tree type, enum ma
> align = GET_MODE_ALIGNMENT (DFmode);
>return align;
>  }
> +  if (!TARGET_64BIT
> +  && align == 64
> +  && ix86_preferred_stack_boundary < 64
> +  && (mode == DImode || (type && TYPE_MODE (type) == DImode))
> +  && (!type || !TYPE_USER_ALIGN (type)))
> +align = 32;
> 

TYPE_USER_ALIGN isn't set on DImode due to canonical type:

Breakpoint 5, ix86_local_alignment (type=0x77ed2900, mode=VOIDmode, 
align=256) at /export/gnu/src/gcc-work/gcc/gcc/config/i386/i386.c:19433
19433 if (!type)
(gdb) call debug_tree (type)
  constant 64>
unit size  constant 8>
align 64 symtab 0 alias set -1 canonical type 0x77ed2900 precision 64
min  max 
pointer_to_this >
(gdb) 


-- 


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



[Bug tree-optimization/13962] [tree-ssa] make "fold" use alias information to optimize pointer comparisons

2009-02-22 Thread rguenth at gcc dot gnu dot org


--- Comment #6 from rguenth at gcc dot gnu dot org  2009-02-22 20:20 ---
Easy but dangerous ;)


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |rguenth at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2006-01-13 04:44:24 |2009-02-22 20:20:56
   date||


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



[Bug bootstrap/39262] [miro] - Revision 144368 - Werror in ../miro/gcc/genconstants.c

2009-02-22 Thread rob1weld at aol dot com


--- Comment #7 from rob1weld at aol dot com  2009-02-22 20:39 ---
(In reply to comment #5)
> Subject: Re:  [miro] - Revision 144368 - Werror in 
> ../miro/gcc/genconstants.c
> 
> I will fix this with the attached patch when approved.
> 

Thanks kindly, great results are here: 
http://gcc.gnu.org/ml/gcc-testresults/2009-02/msg02215.html .

I will post no more about 'miro' other than a hope it is merged someday ...

I will now try 'lto' since that seems to have flame-retarder built-in :)  .


Rob


-- 


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



[Bug target/39258] No ABI warnings on __m128i when SSE is disabled

2009-02-22 Thread hjl dot tools at gmail dot com


--- Comment #2 from hjl dot tools at gmail dot com  2009-02-22 22:04 ---
On 32bit, -mno-avx/-mno-sse/-mno-mmx changes ABI for

1. Vector returns.
2. Vector parameters without varargs.

On 64bit,

1. -mno-avx/-mno-sse changes ABI for

   a. Float/Vector and aggregate with float/vector returns.
   b. Float/Vector and aggregate with float/vector parameters.

2. -mno-i387 changes ABI for

   a.  long double and aggregates with long double returns.


-- 


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



[Bug libfortran/36044] user-requested backtrace

2009-02-22 Thread fxcoudert at gcc dot gnu dot org


--- Comment #5 from fxcoudert at gcc dot gnu dot org  2009-02-22 22:33 
---
(In reply to comment #3)
> Try abort(). (Though I do not recall whether it works, I think it does.)

Does not work. abort() raises a SIGABRT, and we only catch SIGSEGV, SIGBUS,
SIGILL and SIGFPE.

>> Anyway I'm looking for a solution that keeps the
>> program running after the backtrace.

One such solution that I can see (other than adding a new intrinsic) is to
modify the library to also catch SIGUSR2 and generate a backtrace when it's
received (untested patch below); that way, a backtrace can be emitted without
the code stopping, either

  -- programmaticaly by calling the KILL and GETPID intrinsics, or the POSIX
functions via ISO_C_BINDING
  -- by the user sending the signal from another terminal, to know where his
program is stuck

The only issue I see with that is that SIGUSR2 is a symbolic constant, not
available in Fortran code, so that the user needs to know what (potentialy
nonportable) signal number it corresponds to.





diff -rpu libgfortran/runtime/compile_options.c
libgfortran.new/runtime/compile_options.c
--- libgfortran/runtime/compile_options.c   2009-02-22 23:25:25.0
+0100
+++ libgfortran.new/runtime/compile_options.c   2009-02-22 23:30:20.0
+0100
@@ -73,6 +73,13 @@ handler (int signum)
desc = "Floating-point exception";
break;
 #endif
+
+#if defined(SIGUSR2)
+  case SIGUSR2:
+   name = "SIGUSR2";
+   desc = "User-defined signal";
+   break;
+#endif
 }

   if (name)
@@ -80,6 +87,16 @@ handler (int signum)
   else
 st_printf ("\nProgram received signal %d.\n", signum);

+#if defined(SIGUSR2)
+  if (signum == SIGUSR2
+  && (options.backtrace == 1
+ || (options.backtrace == -1 && compile_options.backtrace == 1)))
+  {
+show_backtrace ();
+return;
+  }
+#endif
+
   sys_exit (5);
 }



-- 


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



[Bug debug/39267] New: gdb testusite regressions

2009-02-22 Thread hubicka at gcc dot gnu dot org
We seem to regress in gdb testsuite relative to gcc-4.1.0:
@@ -3622,7 +3622,7 @@   
 PASS: gdb.base/maint.exp: maint internal-error 
 PASS: gdb.base/maint.exp: internal-error resync
 Running ../../../gdb/testsuite/gdb.base/mips_pro.exp ...   
-PASS: gdb.base/mips_pro.exp: backtrace 
+FAIL: gdb.base/mips_pro.exp: running to middle in runto
 Running ../../../gdb/testsuite/gdb.base/miscexprs.exp ...  
 PASS: gdb.base/miscexprs.exp: up from marker1  
 PASS: gdb.base/miscexprs.exp: print value of &ibig.i[0]
@@ -3649,7 +3649,7 @@   
 PASS: gdb.base/miscexprs.exp: print value of lbig.l[333] >> 6  
 Running ../../../gdb/testsuite/gdb.base/multi-forks.exp ...
 PASS: gdb.base/multi-forks.exp: Break at exit  
-FAIL: gdb.base/multi-forks.exp: follow child, print pids (timeout) 
+PASS: gdb.base/multi-forks.exp: follow child, print pids   
 PASS: gdb.base/multi-forks.exp: Break at exit  
 PASS: gdb.base/multi-forks.exp: follow parent, print pids  
 PASS: gdb.base/multi-forks.exp: help set detach
@@ -6349,35 +6349,35 @@ 
 PASS: gdb.base/store.exp: tbreak add_charest   
 PASS: gdb.base/store.exp: continue to add_charest  
 PASS: gdb.base/store.exp: upvar charest l; up  
-PASS: gdb.base/store.exp: upvar charest l; print old l, expecting -1 .*
+FAIL: gdb.base/store.exp: upvar charest l; print old l, expecting -1 .*
 PASS: gdb.base/store.exp: upvar charest l; print old r, expecting -2 .*
 PASS: gdb.base/store.exp: upvar charest l; set l to 4  
 PASS: gdb.base/store.exp: upvar charest l; print new l, expecting 4 ..004. 
 PASS: gdb.base/store.exp: tbreak add_short 
 PASS: gdb.base/store.exp: continue to add_short
 PASS: gdb.base/store.exp: upvar short l; up
-PASS: gdb.base/store.exp: upvar short l; print old l, expecting -1 
+FAIL: gdb.base/store.exp: upvar short l; print old l, expecting -1 
 PASS: gdb.base/store.exp: upvar short l; print old r, expecting -2 
 PASS: gdb.base/store.exp: upvar short l; set l to 4
 PASS: gdb.base/store.exp: upvar short l; print new l, expecting 4  
 PASS: gdb.base/store.exp: tbreak add_int   
 PASS: gdb.base/store.exp: continue to add_int  
 PASS: gdb.base/store.exp: upvar int l; up  
-PASS: gdb.base/store.exp: upvar int l; print old l, expecting -1   
+FAIL: gdb.base/store.exp: upvar int l; print old l, expecting -1   
 PASS: gdb.base/store.exp: upvar int l; print old r, expecting -2   
 PASS: gdb.base/store.exp: upvar int l; set l to 4  
 PASS: gdb.base/store.exp: upvar int l; print new l, expecting 4
 PASS: gdb.base/store.exp: tbreak add_long  
 PASS: gdb.base/store.exp: continue to add_long 
 PASS: gdb.base/store.exp: upvar long l; up 
-PASS: gdb.base/store.exp: upvar long l; print old l, expecting -1  
+FAIL: gdb.base/store.exp: upvar long l; print old l, expecting -1  
 PASS: gdb.base/store.exp: upvar long l; print old r, expecting -2  
 PASS: gdb.base/store.exp: upvar long l; set l to 4 
 PASS: gdb.base/store.exp: upvar long l; print new l, expecting 4   
 PASS: gdb.base/store.exp: tbreak add_longest   
 PASS: gdb.base/store.exp: continue to add_longest  
 PASS: gdb.base/store.exp: upvar longest l; up  
-PASS: gdb.base/store.exp: upvar longest l; print old l, expecting -1   
+FAIL: gdb.base/store.exp: upvar longest l; print old l, expecting -1   
 PASS: gdb.base/store.exp: upvar longest l; print old r, expecting -2   
 PASS: gdb.base/store.exp: upvar longest l; set l to 4  
 PASS: gdb.base/store.exp: upvar longest l; print new l, expecting 4
@@ -6398,7 +6398,7 @@   
 PASS: gdb.base/store.exp: tbreak add_doublest  

[Bug tree-optimization/39268] New: printf changes fstrict-aliasing behaviour

2009-02-22 Thread anvoebugz at gmail dot com
It is strange that using printf that doesn't use any variables disables abort.

$ cat test2.c
#include 
#include 
int
main (void)
{
  int a = 0x12345678;
  short *b = (short *) &a;
  b[1] = 0;
  printf("\n");
  if (a == 0x12345678)
  abort();
  exit(0);
}

$ gcc -fstrict-aliasing -O2 -Wall test2.c
test2.c: In function ‘main’:
test2.c:8: warning: likely type-punning may break strict-aliasing rules: object
‘*{unknown}’ of main type ‘short int’ is referenced at or around test2.c:8 and
may be aliased to object ‘a’ of main type ‘int’ which is referenced at or
around test2.c:6.

$ ./a.out
$


The conditional jump is activated when printf is using:

@@ -7,9 +7,16 @@
 .LFB20:
subq$24, %rsp
 .LCFI0:
+   movl$10, %edi
movl$305419896, 20(%rsp)
movw$0, 22(%rsp)
+   callputchar
+   cmpl$305419896, 20(%rsp)
+   jne .L2
callabort
+.L2:
+   xorl%edi, %edi
+   callexit
 .LFE20:
.size   main, .-main
.section.eh_frame,"a",@progbits


$ gcc -v
Using built-in specs.
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla
--enable-bootstrap --enable-shared --enable-threads=posix
--enable-checking=release --with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions
--enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk
--disable-dssi --enable-plugin
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre
--enable-libgcj-multifile --enable-java-maintainer-mode
--with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib
--with-cpu=generic --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.3.2 20081105 (Red Hat 4.3.2-7) (GCC)


-- 
   Summary: printf changes fstrict-aliasing behaviour
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: anvoebugz at gmail dot com


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



[Bug tree-optimization/39268] printf changes fstrict-aliasing behaviour

2009-02-22 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2009-02-22 23:38 ---
Yes this is expected because the compiler does not fully know that printf has
no side effects to local variables.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug c++/36411] [4.4 regression] ICE with invalid template template parameter

2009-02-22 Thread hjl dot tools at gmail dot com


--- Comment #2 from hjl dot tools at gmail dot com  2009-02-22 23:59 ---
Created an attachment (id=17344)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17344&action=view)
A patch


-- 


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



[Bug c++/37789] [4.4 regression] ICE with __FUNCTION__

2009-02-22 Thread hjl dot tools at gmail dot com


--- Comment #4 from hjl dot tools at gmail dot com  2009-02-22 23:59 ---
Created an attachment (id=17345)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17345&action=view)
A patch


-- 


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



[Bug tree-optimization/39268] printf changes fstrict-aliasing behaviour

2009-02-22 Thread steven at gcc dot gnu dot org


--- Comment #2 from steven at gcc dot gnu dot org  2009-02-23 00:41 ---
In fact, with glibc, printf may have side effects to local variables.


-- 


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



[Bug bootstrap/39019] Solaris and IRIX libelf cause trouble for build

2009-02-22 Thread rob1weld at aol dot com


--- Comment #1 from rob1weld at aol dot com  2009-02-23 01:21 ---
Confirmed on i386-pc-solaris2.11 (OpenSolaris 2009.06).

We are advised to use libelf v0.8.10, which (by default) installs in
/usr/local but the lto configury uses /usr/include/libelf.h .

+1 for "--with-libelf=/usr/local" .


# gcc/xgcc -v
Using built-in specs.
COLLECT_GCC=gcc/xgcc
Target: i386-pc-solaris2.11
Configured with: ../lto_trunk/configure --prefix=/usr/local/lto
--enable-languages=lto,c++ --enable-shared --disable-static --enable-multilib
--with-gnu-as --with-as=/usr/local/bin/as --with-gnu-ld
--with-ld=/usr/local/bin/ld --with-gmp=/usr/local --with-mpfr=/usr/local
Thread model: posix
gcc version 4.4.0 20090218 (experimental) [lto revision 144375] (lto merged
with rev 144262) 

Rob


-- 


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



[Bug c++/39060] [4.4 regression] ICE with lots of invalid member functions

2009-02-22 Thread hjl dot tools at gmail dot com


--- Comment #6 from hjl dot tools at gmail dot com  2009-02-23 02:36 ---
Created an attachment (id=17346)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17346&action=view)
A patch


-- 


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



[Bug target/39137] [4.4 Regression] -mpreferred-stack-boundary=2 causes lots of dynamic realign

2009-02-22 Thread Joey dot ye at intel dot com


--- Comment #31 from Joey dot ye at intel dot com  2009-02-23 03:15 ---
How about this patch?
1. Only reduce DI mode when -Os
2. Ignore TYPE_USER_ALIGN, so that stack realign happens for case in
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39137#c28, which IMHO is
acceptable.
Index: config/i386/i386.c
===
--- config/i386/i386.c  (revision 5221)
+++ config/i386/i386.c  (working copy)
@@ -19607,6 +19607,13 @@
 ix86_local_alignment (tree type, enum machine_mode mode,
  unsigned int align)
 {
+  /* We don't want to align DImode to 64bit for compilation with
+ -mpreferred-stack-boundary=2 to not enforce dynamic stack alignment
+ prologue.  */
+  if (mode == DImode && !TARGET_64BIT && ix86_preferred_stack_boundary < 64
+  && optimize_function_for_size_p (cfun))
+align = 32;
+
   /* If TYPE is NULL, we are allocating a stack slot for caller-save
  register in MODE.  We will return the largest alignment of XF
  and DF.  */
@@ -19616,6 +19623,12 @@
align = GET_MODE_ALIGNMENT (DFmode);
   return align;
 }
+  if (!TARGET_64BIT
+  && optimize_function_for_size_p (cfun)
+  && align == 64
+  && ix86_preferred_stack_boundary < 64
+  && (mode == DImode || (type && TYPE_MODE (type) == DImode)))
+align = 32;

   /* x86-64 ABI requires arrays greater than 16 bytes to be aligned
  to 16byte boundary.  */


-- 


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



[Bug c++/39269] New: Invalid template friend declaration accepted

2009-02-22 Thread bangerth at gmail dot com
This code has erroneously been accepted since at least gcc 2.95:
--
namespace NS {
  template  class X {};
}

class Y {
template  friend class NS::X;
};
--
Note the wrong number of template arguments in the friend declaration.
The code is correctly rejected if X is not in a namespace.

W.


-- 
   Summary: Invalid template friend declaration accepted
   Product: gcc
   Version: 4.3.2
Status: UNCONFIRMED
  Keywords: accepts-invalid
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: bangerth at gmail dot com


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



[Bug bootstrap/39019] Solaris and IRIX libelf cause trouble for build

2009-02-22 Thread rob1weld at aol dot com


--- Comment #2 from rob1weld at aol dot com  2009-02-23 03:51 ---
Rainer, while we wait for the patch did you wish to try this:


1. Edit the gcc/configure (Line 9562) and reverse the detection order:

- for ac_header in gelf.h libelf/gelf.h
+ for ac_header in libelf/gelf.h gelf.h


2. Edit lto_plugin/lto_plugin.c and lto_plugin/lto-symtab.c and
both add in ../gcc/auto-host.h and change the define testing order:


#undef PACKAGE_NAME
#undef PACKAGE_STRING
#undef PACKAGE_TARNAME
#undef PACKAGE_VERSION
#include "../gcc/auto-host.h"

#ifdef__COMMENT__
#ifdef HAVE_GELF_H
# include 
#else
# if defined(HAVE_LIBELF_GELF_H)
#   include 
# else
#  error "gelf.h not available"
# endif
#endif
#endif /* __COMMENT__ */

#if defined(HAVE_LIBELF_GELF_H)
#   include 
#else
# ifdef HAVE_GELF_H
#   include 
# else
#  error "gelf.h not available"
# endif
#endif


You can hand-compile to fix the 'Werror" that will remain:

cc1: warnings being treated as errors
../../lto_trunk/lto-plugin/lto-plugin.c: In function ‘onload’:
../../lto_trunk/lto-plugin/lto-plugin.c:670: error: implicit declaration of
function ‘mkdtemp’
../../lto_trunk/lto-plugin/lto-plugin.c:670: error: assignment makes pointer
from integer without a cast
gmake[3]: *** [lto-plugin.lo] Error 1


That fixes it for me.

Rob


-- 


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



[Bug libfortran/36044] user-requested backtrace

2009-02-22 Thread jvdelisle at gcc dot gnu dot org


--- Comment #6 from jvdelisle at gcc dot gnu dot org  2009-02-23 04:37 
---
If anyone is looking into this, please let me know if there are any specific
posix calls needed that I should put into the gfc_posix module. ( Priority
wise.)


-- 


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



[Bug c++/39270] New: Explicit instantiation rejected

2009-02-22 Thread highegg at gmail dot com
Hello.

The following does not compile:

-

class A
{
public:
 class B {};
 template  void x(X a) {}
 template  void x(int a);
};

template 
void A::x (int a)
{ }

template void A::x (int a);

--

Namely, the explicit instantiation on the last line is rejected with the error:
test.cc:13: error: ambiguous template specialization ‘x’ for ‘void
A::x(int)’

i.e. not even recognized as an explicit instantiation.
Implicit instantiation seems to work fine.

cheers

gcc config:
Configured with: ../configure --prefix=/usr --with-local-prefix=/usr/local
--infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib64
--libexecdir=/usr/lib64 --enable-languages=c,c++,objc,fortran,obj-c++,java,ada
--enable-checking=release --with-gxx-include-dir=/usr/include/c++/4.3
--enable-ssp --disable-libssp --with-bugurl=http://bugs.opensuse.org/
--with-pkgversion='SUSE Linux' --disable-libgcj --with-slibdir=/lib64
--with-system-zlib --enable-__cxa_atexit --enable-libstdcxx-allocator=new
--disable-libstdcxx-pch --program-suffix=-4.3
--enable-version-specific-runtime-libs --enable-linux-futex
--without-system-libunwind --with-cpu=generic --build=x86_64-suse-linux
Thread model: posix
gcc version 4.3.1 20080507 (prerelease) [gcc-4_3-branch revision 135036] (SUSE
Linux)


-- 
   Summary: Explicit instantiation rejected
   Product: gcc
   Version: 4.3.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: highegg at gmail dot com
GCC target triplet: Target: x86_64-suse-linux


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



[Bug c++/39271] New: 64 bit memory allocation possible error

2009-02-22 Thread Mike dot Warby at brunel dot ac dot uk
Subject: Possible error with C++ compilers on 64 bit PC running 
 SUSE 10.3 with memory allocation

In C++ you can request space with the new command but if you
repeatedly do this then it should eventually fail.  The following
program is designed to illustrate this by first repeatedly asking
for 1Mbyte until the requests fails.  This is then done again
with blocks of double the size etc.

On 32 bit PCs the program behaves as expected and the output
is shown below.  However on a 64 bit PC with g++ version 4.2.1
and with the Sun linux compiler CC and with the intel compiler
icc no failure is ever reported.  This suggests a serious bug
in some aspect of the 64 bit system or have I made a mistake
myself?

The 64 bit PC with 4GB of RAM often runs very slowly and is
sometimes the slowest PC that I have had for many years with
many of the applications that I regularly run.
Could the above be the reason for the PC sometimes being so slow?

Any help in resolving the bug with the 64 bit system will be
appreciated.  My only solution at the moment is abandon the
use of the 64 bit operating system in favour of the 32 bit
version.

..c++ program err64.cpp follows
#include 
#include 
using namespace std;

int main()
{
  char *c;
  char *a[11][8192];
  int b[11];

  int i, j, k, m=1024*1024;

  // .. request m bytes until the request fails
  for(j=0; j<11; j++)
  {
for(i=0; i<8192; i++)
{
  c=new (nothrow) char[m]; 
  if(c==NULL)break;
  a[j][i]=c;
}

// .. release the space
for(k=0; khttp://gcc.gnu.org/bugzilla/show_bug.cgi?id=39271