[Bug rtl-optimization/28386] [4.1 regression] Wrong code with if condition in loop

2006-09-05 Thread ebotcazou at gcc dot gnu dot org


--- Comment #5 from ebotcazou at gcc dot gnu dot org  2006-09-05 07:06 
---
Subject: Bug 28386

Author: ebotcazou
Date: Tue Sep  5 07:06:46 2006
New Revision: 116693

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116693
Log:
PR rtl-optimization/28386
* loop.c (biased_biv_may_wrap_p): Rename to biv_may_wrap_p and
remove 'bias' parameter.
(maybe_eliminate_biv_1): Adjust for above change.


Added:
branches/gcc-4_1-branch/gcc/testsuite/gcc.c-torture/execute/20060905-1.c
Modified:
branches/gcc-4_1-branch/gcc/ChangeLog
branches/gcc-4_1-branch/gcc/loop.c
branches/gcc-4_1-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug rtl-optimization/28386] [4.1 regression] Wrong code with if condition in loop

2006-09-05 Thread ebotcazou at gcc dot gnu dot org


--- Comment #6 from ebotcazou at gcc dot gnu dot org  2006-09-05 07:08 
---
Fixed in upcoming 4.1.2 release.


-- 

ebotcazou at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug middle-end/28862] [4.0/4.1/4.2 Regression] attribute ((aligned)) ignored on vector variables

2006-09-05 Thread thomas at reactsoft dot com


--- Comment #5 from thomas at reactsoft dot com  2006-09-05 07:10 ---
(In reply to comment #4)
> Actually it looks like an oversight of what relayout_decl does.  The reason is
> that relayout_decl was added by the patch to fix "PR c++/16115" and I think
> Jason forgot about user specified alignment because he was only dealing with
> PARM_DECLs at the time.

Is this also supposed to fix the problem I posted in comment #2? I applied that
patch to my gcc but it didn't fix the generated code for me. It's just weird
because the bug only appears if the code is complex enough. If it's just a
rather simple function, the generated code is correct.


-- 


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



[Bug c++/3187] gcc lays down two copies of constructors

2006-09-05 Thread gcc at mirality dot co dot nz


--- Comment #26 from gcc at mirality dot co dot nz  2006-09-05 07:18 ---
This is very aggravating, and *NEEDS* to get fixed soon.  Even if only for the
common duplicate-symbol-on-most-platforms case, that's a significant
improvement over what it's doing now.


-- 


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



[Bug fortran/28916] Build of the head fails on Mac Intel

2006-09-05 Thread federico dot carminati at cern dot ch


--- Comment #6 from federico dot carminati at cern dot ch  2006-09-05 08:04 
---
Subject: Re:  Build of the head fails on Mac Intel

Thanks a lot and sorry for losing your time. Best,

Federico Carminati
CERN-PH
1211 Geneva 23
Switzerland
Tel: +41 22 76 74959
Fax: +41 22 76 79480
Mobile: +41 76 487 4843

On 3 Sep 2006, at 07:28, pinskia at gcc dot gnu dot org wrote:

>
>
> --- Comment #5 from pinskia at gcc dot gnu dot org  2006-09-03  
> 05:28 ---
> cvs -qz9 -d :pserver:[EMAIL PROTECTED]:/sources/gcc up -Pd
>
> The sources on gnu.org are so out of date, it is not funny.
> We use svn now, there is a NOTE file about this in the cvs server.
> Read:
> http://gcc.gnu.org/svn.html
>
> This was fixed in 4.2.0 already anyways.
> Closing as invalid since you are not building the real head but the  
> head from a
> year or so ago.
>
>
> -- 
>
> pinskia at gcc dot gnu dot org changed:
>
>What|Removed |Added
> -- 
> --
>  Status|UNCONFIRMED |RESOLVED
>  Resolution||FIXED
>
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28916
>
> --- You are receiving this mail because: ---
> You reported the bug, or are watching the reporter.


-- 


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



[Bug tree-optimization/28935] [4.2 regression] Segfault in operand_equal_p with -ftree-vectorize -O3

2006-09-05 Thread rguenth at gcc dot gnu dot org


--- Comment #8 from rguenth at gcc dot gnu dot org  2006-09-05 08:34 ---
Subject: Bug 28935

Author: rguenth
Date: Tue Sep  5 08:34:00 2006
New Revision: 116695

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116695
Log:
2006-09-05  Richard Guenther  <[EMAIL PROTECTED]>

PR middle-end/28935
* tree-ssa-ccp.c (fold_stmt_r): Make sure to fold the condition
of a COND_EXPR.

* gcc.dg/pr28935.c: New testcase.

Added:
trunk/gcc/testsuite/gcc.dg/pr28935.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-ccp.c


-- 


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



[Bug tree-optimization/28905] [4.2 regression] ICE in compare_name_with_value, at tree-vrp.c:3557

2006-09-05 Thread rguenth at gcc dot gnu dot org


--- Comment #9 from rguenth at gcc dot gnu dot org  2006-09-05 08:36 ---
Subject: Bug 28905

Author: rguenth
Date: Tue Sep  5 08:36:39 2006
New Revision: 116696

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116696
Log:
2006-09-05  Richard Guenther  <[EMAIL PROTECTED]>

PR tree-optimization/28905
* tree-vrp.c (fix_equivalence_set): Manually implement
!value_ranges_intersect_p to also handle symbolic ranges.

* gcc.c-torture/compile/pr28905.c: New testcase.

Added:
trunk/gcc/testsuite/gcc.c-torture/compile/pr28905.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-vrp.c


-- 


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



[Bug tree-optimization/28900] [4.1/4.2 regression] ICE verify_stmts failed (invalid operand to unary operator)

2006-09-05 Thread rguenth at gcc dot gnu dot org


--- Comment #10 from rguenth at gcc dot gnu dot org  2006-09-05 08:39 
---
Subject: Bug 28900

Author: rguenth
Date: Tue Sep  5 08:39:42 2006
New Revision: 116697

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116697
Log:
2006-09-05  Richard Guenther  <[EMAIL PROTECTED]>

PR tree-optimization/28900
* tree-if-conv.c (find_phi_replacement_condition): Gimplify
compound conditional before creating COND_EXPR condition.

* gcc.dg/torture/pr28900.c: New testcase

Added:
trunk/gcc/testsuite/gcc.dg/torture/pr28900.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-if-conv.c


-- 


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



[Bug tree-optimization/28900] [4.1 regression] ICE verify_stmts failed (invalid operand to unary operator)

2006-09-05 Thread rguenth at gcc dot gnu dot org


--- Comment #11 from rguenth at gcc dot gnu dot org  2006-09-05 08:40 
---
Fixed on the mainline.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

  Known to fail|4.2.0 4.1.1 |4.1.1
  Known to work|4.0.3   |4.0.3 4.2.0
Summary|[4.1/4.2 regression] ICE|[4.1 regression] ICE
   |verify_stmts failed (invalid|verify_stmts failed (invalid
   |operand to unary operator)  |operand to unary operator)


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



[Bug tree-optimization/28905] [4.2 regression] ICE in compare_name_with_value, at tree-vrp.c:3557

2006-09-05 Thread rguenth at gcc dot gnu dot org


--- Comment #10 from rguenth at gcc dot gnu dot org  2006-09-05 08:40 
---
Fixed.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug tree-optimization/28935] [4.2 regression] Segfault in operand_equal_p with -ftree-vectorize -O3

2006-09-05 Thread rguenth at gcc dot gnu dot org


--- Comment #9 from rguenth at gcc dot gnu dot org  2006-09-05 08:41 ---
Fixed.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug tree-optimization/28952] [4.2 regression] tree check: expected class 'expression', have 'exceptional' (ssa_name) in vectorizable_condition, at tree-vect-transform.c:2122

2006-09-05 Thread rguenth at gcc dot gnu dot org


--- Comment #5 from rguenth at gcc dot gnu dot org  2006-09-05 08:42 ---
Yes, would have been my fix, too.


-- 


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



[Bug tree-optimization/28948] -fprofile-generate/use and C++ anonymous namespaces don't mix

2006-09-05 Thread rguenth at gcc dot gnu dot org


--- Comment #3 from rguenth at gcc dot gnu dot org  2006-09-05 08:56 ---
And you can work around with -frandom-seed=0


-- 


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



[Bug target/28946] [4.0/4.1/4.2 Regression] assembler shifts set the flag ZF, no need to re-test to zero

2006-09-05 Thread uros at kss-loka dot si


--- Comment #5 from uros at kss-loka dot si  2006-09-05 09:35 ---
The problem here is following:

We already have the patterns, that would satisfy combined instruction
(*lshrsi3_cmp) in above testcase. However, combiner rejects combined
instruction because the register that holds shifted result is unused!

The problematic part is in combine.c, around line 2236 (please read the
comment, which describes exactly the situation we have here). This part of code
is activated only when the register that holds the result of arith operation is
keept alive. This is quite strange - even if the result is unused, resulting
code will be still smaller as we avoid extra CC setting instruction.

The patch bellow (currently under testing, but so far OK) forces generation of
combined instruction even if the arithmetic result is unused.

Index: combine.c
===
--- combine.c   (revision 116691)
+++ combine.c   (working copy)
@@ -2244,7 +2244,7 @@
  needed, and make the PARALLEL by just replacing I2DEST in I3SRC with
  I2SRC.  Later we will make the PARALLEL that contains I2.  */

-  if (i1 == 0 && added_sets_2 && GET_CODE (PATTERN (i3)) == SET
+  if (i1 == 0 && GET_CODE (PATTERN (i3)) == SET
   && GET_CODE (SET_SRC (PATTERN (i3))) == COMPARE
   && XEXP (SET_SRC (PATTERN (i3)), 1) == const0_rtx
   && rtx_equal_p (XEXP (SET_SRC (PATTERN (i3)), 0), i2dest))
@@ -2254,6 +2254,13 @@
   enum machine_mode compare_mode;
 #endif

+  /* To force generation of the combined comparison and arithmetic
+operation PARALLEL, pretend that the set in I2 is to be used,
+even if it is dead after I2. This results in better generated
+code, as only CC setting arithmetic instruction will be
+emitted in conditionals.  */
+  added_sets_2 = 1;
+
   newpat = PATTERN (i3);
   SUBST (XEXP (SET_SRC (newpat), 0), i2src);


Compiling testcase with this patch results in following code:

fct:
movl 4(%esp), %eax
shrl $5, %eax
je  .L2
jmp fct1
.p2align 4,,7
.L2:
jmp fct2


-- 


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



[Bug c++/28895] 'friend' accepts typedef-name.

2006-09-05 Thread pluto at agmk dot net


--- Comment #4 from pluto at agmk dot net  2006-09-05 10:20 ---


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


-- 

pluto at agmk dot net changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug c++/21498] clause 7.1.5.3/2 of the c++ is not enforced

2006-09-05 Thread pluto at agmk dot net


--- Comment #9 from pluto at agmk dot net  2006-09-05 10:20 ---
*** Bug 28895 has been marked as a duplicate of this bug. ***


-- 

pluto at agmk dot net changed:

   What|Removed |Added

 CC||pluto at agmk dot net


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



[Bug target/27856] With -Os, loading a constant to a register can use another register

2006-09-05 Thread etienne_lorrain at yahoo dot fr


--- Comment #3 from etienne_lorrain at yahoo dot fr  2006-09-05 11:32 
---
 Just for info, does that means we need to wait for YARA to be included,
considering 
http://gcc.gnu.org/ml/gcc/2006-08/msg00164.html
 it will probably happen after 4.2 ?

 I am seeing a lot of them, even some pattern like that to clear %eax:
xor %edx,%edx
...
mov %edx,%eax
... use %eax ...
mov 10,%edx

 Thanks.


-- 


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



[Bug target/28946] [4.0/4.1/4.2 Regression] assembler shifts set the flag ZF, no need to re-test to zero

2006-09-05 Thread uros at kss-loka dot si


--- Comment #6 from uros at kss-loka dot si  2006-09-05 11:45 ---
Patch at http://gcc.gnu.org/ml/gcc-patches/2006-09/msg00137.html

BTW: This patch eliminates 869 "test" instructions in povray-3.6.1 compile.
(And my test raytraced pictures are still correct.)


-- 

uros at kss-loka dot si changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |uros at kss-loka dot si
   |dot org |
URL||http://gcc.gnu.org/ml/gcc-
   ||patches/2006-
   ||09/msg00137.html
 Status|NEW |ASSIGNED
   Keywords||patch
   Last reconfirmed|2006-09-04 16:50:06 |2006-09-05 11:45:14
   date||


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



[Bug tree-optimization/28948] -fprofile-generate/use and C++ anonymous namespaces don't mix

2006-09-05 Thread bangerth at math dot tamu dot edu


--- Comment #4 from bangerth at math dot tamu dot edu  2006-09-05 11:51 
---
Subject: Re:  -fprofile-generate/use and C++
 anonymous namespaces don't mix


> And you can work around with -frandom-seed=0

Nope, since that means that symbols in anonymous namespaces are the same
every time you compile a file, you can't compile the file twice with
different flags and later link the whole thing together. -frandom-seed=0
is not compatible with C++ semantics of anonymous namespace members.

W.

-
Wolfgang Bangerthemail:[EMAIL PROTECTED]
 www: http://www.math.tamu.edu/~bangerth/


-- 


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



[Bug c/28954] New: Get unexpected segment error

2006-09-05 Thread lionghostshop at yahoo dot com dot cn
I define a struct array called 'l' in above the main file. Then I passed 'l' to
load_data(struct line l[]) which is defined in another file called load.c. I
declare load_data(struct line l[]) in load.h.

 Then when load_data() want to initialize the l array, a segmentation is
generated.(I have checked that the array is large enough, and I initialized
some elements in l, and printf them out, the value is what I did. But
segmentation error came up as long as I modify the array l).

 Then if I renamed l as ll in main file above. Everything worked well then. Or
if I use externs, every thing worked well as well.

main.c

#include
#include
#include"./type.h"
#include"./load.h"
struct line ll[LMAX];
struct machine m[MMAX];
int
main()
{
//int i;
printf("Loading data ...");
fflush(stdout);
ll[0].co[0]=54321;
if(-1==load_data(ll))
{
printf("Missing data. Exiting program.\n");
return 0;
}
printf(" [OK] \n");

return 0;
}


load_data.c
#include"./type.h"
#include
#include

extern struct machine m[MMAX];
//extern struct linel[LMAX];
struct line *l;

FILE *
file_open(const char name[])
{
FILE *f=fopen(name,"r");
if(unlikely(NULL==f))
{
f=fopen(name,"a+");
fclose(f);
return NULL;
}
return f;
}
int
load_equation()
{   
int i,j;
FILE *f=file_open("equation");
printf("before critical ");
printf("before critical %lf\n",l[0].co[0]);
l[0].co[0]=;
printf("critical\n");
if(NULL==f)
return -1;
//  printf("before loop\n");
for(j=0;j>>0 %p %p %lf\n",l,m,l[0].co[0]);
l[0].co[0]=12345;
printf("after\n");
if(load_equation())
re=-1;
if(load_line_limit())
re=-1;
if(load_seg_prise())
re=-1;
if(load_seg_len())
re=-1;
if(load_speed())
re=-1;
return re;
}


type.h
#ifndef TYPE
#define MMAX 8
#define LMAX 6
#define SEGMAX 10
struct line{
double co[MMAX];
double normal;
double high;
};
struct machine{
double seg_prise[SEGMAX];
double seg[SEGMAX];
double speed;//climb speed, mw per minute
};
struct solution{
double m_power[MMAX];   
};
#endif


-- 
   Summary: Get unexpected segment error
   Product: gcc
   Version: 3.4.6
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: lionghostshop at yahoo dot com dot cn


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



[Bug c/28954] Get unexpected segment error

2006-09-05 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2006-09-05 12:02 ---
foo bar[n] is not the same as foo *bar;


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug middle-end/28862] [4.0/4.1/4.2 Regression] attribute ((aligned)) ignored on vector variables

2006-09-05 Thread uweigand at gcc dot gnu dot org


--- Comment #6 from uweigand at gcc dot gnu dot org  2006-09-05 12:41 
---
(In reply to comment #4)
> Anyways I am going to test the obvious fix unless you (Ulrich) want to do it.

Please go ahead, thanks!


-- 


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



[Bug middle-end/28862] [4.0/4.1/4.2 Regression] attribute ((aligned)) ignored on vector variables

2006-09-05 Thread uweigand at gcc dot gnu dot org


--- Comment #7 from uweigand at gcc dot gnu dot org  2006-09-05 12:47 
---
(In reply to comment #5)
> Is this also supposed to fix the problem I posted in comment #2? I applied 
> that
> patch to my gcc but it didn't fix the generated code for me. It's just weird
> because the bug only appears if the code is complex enough. If it's just a
> rather simple function, the generated code is correct.

No, your problem is certainly something completely different.  In fact I've
never seen GCC (common code) do anything even remotely like:
>GCC reserves an area big enough to hold the structure plus padding,
>so it can align the structure dynamically at runtime. It stores a
>pointer to the reserved area and a pointer to the structure within
>the area. 

Normally, attribute ((aligned)) does not cause any code to be
generated that attempts to dynamically adjust alignment at runtime,
it simply allows a variable to be aligned up to whatever default
stack frame alignment the platform ABI provides for.

It appears that the i386 back-end has some special code related to
the -mstackrealign option that may be involved here.  In any case,
this would be something for an i386 back-end person to look into.

Since this is a completely unrelated problem, I recommend you open
a separate bugzilla for it.


-- 


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



[Bug target/28946] [4.0/4.1/4.2 Regression] assembler shifts set the flag ZF, no need to re-test to zero

2006-09-05 Thread uros at kss-loka dot si


--- Comment #7 from uros at kss-loka dot si  2006-09-05 13:43 ---
Hm, proposed patch now generates worse code for following test:

extern int fnc1(void);
extern int fnc2(void);

int test(int x)
{
if (x & 0x02)
 return fnc1();
else if (x & 0x01)
 return fnc2();
else
 return 0;
}

It generates:

test:
movl 4(%esp), %edx
movl %edx, %eax
andl $2, %eax
jne .L10
andl $1, %edx
jne .L11
xorl %eax, %eax
ret
.p2align 4,,7
.L11:
.p2align 4,,8
jmp fnc2
.p2align 4,,7
.L10:
.p2align 4,,7
jmp fnc1

due to marking %eax live in first comparison, "and" is used instead of "test",
and a regmove is emitted before comparison. Ideally gcc should generate:

test:
movl 4(%esp), %eax
testl  $2, %eax
jne .L6
andl $1, %eax
jne .L7
xorl %eax, %eax
ret
.p2align 2,,3
.L7:
jmp fnc2
.p2align 2,,3
.L6:
jmp fnc1


-- 


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



[Bug fortran/25091] Results do not conform at different entries

2006-09-05 Thread patchapp at dberlin dot org


--- Comment #2 from patchapp at dberlin dot org  2006-09-05 14:15 ---
Subject: Bug number PR25091

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


-- 


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



[Bug other/26208] Serious problem with unwinding through signal frames

2006-09-05 Thread pluto at agmk dot net


--- Comment #31 from pluto at agmk dot net  2006-09-05 14:31 ---
is it possible to make gcc unwinder work for solaris too?

at this moment unwinding (after throwing the std::exception
from signal handler) on sunos-5.9 looks like this:

   0x1141c : signalHandler(int)+0x8 
0x7e8a7b50 : _setuid+0x4c from /usr/lib/sparcv9/libc.so.1
terminate called after throwing an instance of 'std::runtime_error'
  what():  test
Abort (core dumped)


-- 

pluto at agmk dot net changed:

   What|Removed |Added

 CC||pluto at agmk dot net


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



[Bug c/28955] New: "unrecognizable insn" : atomic op on short with bit inversion on val

2006-09-05 Thread kawika at QEDmail dot com
I am reporting compiler problem as advised by error message. 

GCC version: 4.1.0
System type: build machine is P4 3GHz,  building for target i586

# Code to reproduce problem
###
short test(short y)
{
return __sync_and_and_fetch(&y, ~(0x01| 0x02 | 0x03))
}

Note: If the code is changed so that no bit-wise inversion is done, no problem.

# Compilation error message
###
test.c:nnn: error: unrecognizable insn:
(insn 11 16 12 2 (set:HI 66)
   (const_int 65532 [0xfffc])) -1 (nil)
   (nil))

test.c:nnn: internal compiler error: in extract_insn, at recog.c:2084


## MAKEFILE extract on optimization settings :

ifeq ($(strip $(bldOPTIMIZE)),1)
OPTIMIZE:= \
-fdefer-pop -fthread-jumps -fregmove -foptimize-sibling-calls \
-fcaller-saves -finline-functions \
-fexpensive-optimizations -fstrength-reduce \
-frerun-cse-after-loop -frerun-loop-opt \
-fgcse -fgcse-lm -fgcse-sm -fcse-follow-jumps -fcse-skip-blocks
\
-fschedule-insns -fschedule-insns2 -fsched-spec-load \
-fomit-frame-pointer -fmerge-constants -fforce-addr \
-foptimize-register-move
ifeq ($(GCC4),1)
OPTIMIZE+=\
-fgcse-las -fgcse-after-reload
endif
ifeq ($(GCC4),1)
OPTIMIZE+=\
-ftree-pre \
-ftree-ccp -ftree-dce -ftree-dominator-opts  -ftree-ch
-ftree-loop-optimize \
-ftree-loop-linear -ftree-loop-im -ftree-loop-ivcanon -fivopts
-ftree-sra \
-ftree-copyrename -ftree-ter -ftree-lrs -ftree-vectorize \
-ftree-fre
endif
ifeq ($(GCC4),1)
OPTIMIZE+=\
-freorder-blocks -freorder-blocks-and-partition
-freorder-functions
endif
ifeq ($(GCC$),1)
OPTIMIZE+=\
-fweb -funroll-loops -funroll-all-loops -fsplit-ivs-in-unroller
\
-fvariable-expansion-in-unroller
endif
ifeq ($(GCC4),1)
OPTIMIZE+=\
-fmove-loop-invariants \
-ftracer -fsched2-use-traces \
-fsched2-use-superblocks
endif
ifeq ($(GCC4),1)
OPTIMIZE+=\
-fsched-spec-load
#   -fsched-spec-load-dangerous
endif
ifeq ($(GCC4),1)
OPTIMIZE+=\
-freschedule-modulo-scheduled-loops \
-fif-conversion -fif-conversion2 \
-fdelete-null-pointer-checks
endif
ifeq ($(GCC4),1)
OPTIMIZE+=\
-floop-optimize -floop-optimize2 -fcrossjumping
endif


-- 
   Summary: "unrecognizable insn" : atomic op on short with bit
inversion on val
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: kawika at QEDmail dot com


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



[Bug target/28946] [4.0/4.1/4.2 Regression] assembler shifts set the flag ZF, no need to re-test to zero

2006-09-05 Thread hjl at lucon dot org


--- Comment #8 from hjl at lucon dot org  2006-09-05 14:54 ---
TARGET_PARTIAL_FLAG_REG_STALL and TARGET_USE_INCDEC are totally different.
TARGET_USE_INCDEC favors inc/dec over add/sub while
TARGET_PARTIAL_FLAG_REG_STALL
adds test after shift.


-- 


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



[Bug target/28955] "unrecognizable insn" : atomic op on short with bit inversion on val

2006-09-05 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2006-09-05 15:09 ---
Confirmed.  In short:

short test(short y)
{
return __sync_and_and_fetch(&y, ~(0x01| 0x02 | 0x03));
}

ICEs with -O -march=pentium4:

t.c: In function 'test':
t.c:4: error: unrecognizable insn:
(insn 14 19 15 2 (set (reg:HI 64)
(const_int 65532 [0xfffc])) -1 (nil)
(nil))
t.c:4: internal compiler error: in extract_insn, at recog.c:2084
Please submit a full bug report,
with preprocessed source if appropriate.
See http://www.suse.de/feedback> for instructions.

with -march=i386 we promote this to HI mode.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
  Component|c   |target
 Ever Confirmed|0   |1
 GCC target triplet||i?86-*-*
   Last reconfirmed|-00-00 00:00:00 |2006-09-05 15:09:15
   date||
Summary|"unrecognizable insn" : |"unrecognizable insn" :
   |atomic op on short with bit |atomic op on short with bit
   |inversion on val|inversion on val


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



[Bug target/28924] x86 sync builtins fail for char and short memory operands

2006-09-05 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2006-09-05 15:41 ---
*** Bug 28955 has been marked as a duplicate of this bug. ***


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||kawika at QEDmail dot com


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



[Bug target/28955] "unrecognizable insn" : atomic op on short with bit inversion on val

2006-09-05 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2006-09-05 15:41 ---


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


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||DUPLICATE


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



[Bug other/28002] decNumber sources need GPL+exception for use in libgcc

2006-09-05 Thread janis at gcc dot gnu dot org


--- Comment #2 from janis at gcc dot gnu dot org  2006-09-05 16:31 ---
David is pursuing this as part of a larger effort to fix licenses for GCC
libraries.  David, any news?


-- 

janis at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||dje at gcc dot gnu dot org


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



[Bug bootstrap/21335] [meta-bug] bootstrap fails with -ftree-vectorize

2006-09-05 Thread dpatel at apple dot com


--- Comment #3 from dpatel at apple dot com  2006-09-05 16:44 ---
I  know this is a bootstrap failure, however is there a small reproducible test
case for this crash ? Thanks.


-- 


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



[Bug bootstrap/21335] [meta-bug] bootstrap fails with -ftree-vectorize

2006-09-05 Thread pinskia at gcc dot gnu dot org


--- Comment #4 from pinskia at gcc dot gnu dot org  2006-09-05 16:58 ---
(In reply to comment #3)
> I  know this is a bootstrap failure, however is there a small reproducible 
> test
> case for this crash ? Thanks.
THe problem in comment #1 has already been fixed for a while now.  See the bugs
that this bug depends on.


-- 


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



[Bug bootstrap/21335] [meta-bug] bootstrap fails with -ftree-vectorize

2006-09-05 Thread dpatel at apple dot com


--- Comment #5 from dpatel at apple dot com  2006-09-05 17:01 ---
I'd already verified that.  How about "-O3 -ftree-vectorize" bootstrap failure
?


-- 


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



[Bug rtl-optimization/26847] [4.2 Regression] Missed optimization in simplify_plus_minus

2006-09-05 Thread bonzini at gcc dot gnu dot org


--- Comment #4 from bonzini at gnu dot org  2006-09-05 17:41 ---
Subject: Bug 26847

Author: bonzini
Date: Tue Sep  5 17:41:22 2006
New Revision: 116701

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116701
Log:
2006-09-05  Paolo Bonzini  <[EMAIL PROTECTED]>

PR rtl-optimization/26847
* simplify-rtx.c (struct simplify_plus_minus_op_data): Remove ix.
(simplify_plus_minus_op_data_cmp): For REGs, break ties on the regno.
(simplify_plus_minus): Count n_constants while filling ops.  Replace
qsort with insertion sort.  Before going through the array to simplify
pairs, sort it.  Delay early exit until after the first sort, exiting
only if no swaps occurred.  Simplify pairs in reversed order, without
special-casing the first iteration.  Pack ops after simplifying pairs.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/simplify-rtx.c


-- 


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



[Bug middle-end/28690] [4.2 Regression] Performace problem with indexed load/stores on powerpc

2006-09-05 Thread bergner at vnet dot ibm dot com


--- Comment #5 from bergner at vnet dot ibm dot com  2006-09-05 18:43 
---
Created an attachment (id=12190)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12190&action=view)
Patch to rs6000_legitimize_address to force base pointers into rA position of
indexed load/store instructions.

Ok, taking Paolo's suggestion of moving the change into
rs6000_legititmize_address, I'm trying the attached patch which bootstraps fine
and fixes the base pointer order for us.  I'm running the testsuite now and
will report back when it's done.

* config/rs6000/rs6000.c (rs6000_legitimize_address): For performance
reasons, force PLUS register operands that are base pointers to be the
first operand.


-- 


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



[Bug middle-end/28690] [4.2 Regression] Performace problem with indexed load/stores on powerpc

2006-09-05 Thread bonzini at gnu dot org


--- Comment #6 from bonzini at gnu dot org  2006-09-05 19:25 ---
To clarify, I make this suggestion because I think that we were getting it
right pre-4.2 just out of luck.

I also thought about having a lower commutative_operand_precedence for
REG_POINTER regs than normal regs, but in fact regs need to have the same
precedence as other rtx's of class RTX_OBJ, or you get pessimization on x86
(e.g. on crafty).


-- 


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



[Bug fortran/28914] Code inside loop hangs; outside loop runs normally; runs OK on other compilers

2006-09-05 Thread pault at gcc dot gnu dot org


--- Comment #10 from pault at gcc dot gnu dot org  2006-09-05 19:38 ---
(In reply to comment #9)
> The proposed change in comment #8 appears to give several testsuite failures.
> 
Yes, I know; see the email that I sent you today.  The original patch on #5
works fine and is nearly the right solution.

Paul


-- 


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



[Bug fortran/20779] ALLOCATEing the STAT variable not detected

2006-09-05 Thread pault at gcc dot gnu dot org


--- Comment #3 from pault at gcc dot gnu dot org  2006-09-05 19:39 ---
A patch is ready but I have not had time to post it.

Watch the list this weekend.

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |pault at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2005-12-31 20:17:24 |2006-09-05 19:39:37
   date||


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



[Bug fortran/20891] allocation depends on other object in same allocation

2006-09-05 Thread pault at gcc dot gnu dot org


--- Comment #2 from pault at gcc dot gnu dot org  2006-09-05 19:40 ---
A patch is ready but I have not had time to post it.

Watch the list this weekend.

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |pault at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2005-12-31 20:00:24 |2006-09-05 19:40:10
   date||


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



[Bug fortran/28890] ICE on write

2006-09-05 Thread pault at gcc dot gnu dot org


--- Comment #4 from pault at gcc dot gnu dot org  2006-09-05 19:40 ---
A patch is ready but I have not had time to post it.

Watch the list this weekend.

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |pault at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2006-08-29 21:26:24 |2006-09-05 19:40:51
   date||


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



[Bug fortran/28923] Bad triplet interpretation in initialization

2006-09-05 Thread pault at gcc dot gnu dot org


--- Comment #1 from pault at gcc dot gnu dot org  2006-09-05 19:41 ---
I had better deal with this, since I am teh author of the wrong bit of logic.

Thanks

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |pault at gcc dot gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2006-09-05 19:41:52
   date||


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



[Bug fortran/25091] Results do not conform at different entries

2006-09-05 Thread pault at gcc dot gnu dot org


--- Comment #3 from pault at gcc dot gnu dot org  2006-09-05 19:42 ---
The patch is mine!

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |pault at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2006-01-20 21:51:14 |2006-09-05 19:42:53
   date||


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



[Bug fortran/25092] Result lengths different at different entries

2006-09-05 Thread pault at gcc dot gnu dot org


--- Comment #2 from pault at gcc dot gnu dot org  2006-09-05 19:43 ---
The patch is mine!

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |pault at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2006-01-20 21:51:58 |2006-09-05 19:43:13
   date||


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



[Bug middle-end/28690] [4.2 Regression] Performace problem with indexed load/stores on powerpc

2006-09-05 Thread bergner at vnet dot ibm dot com


--- Comment #7 from bergner at vnet dot ibm dot com  2006-09-05 20:01 
---
Well, to get REG_POINTER regs to be the first operand, we'd need to increase
their commutative_operand_precedence.  I tried that change already, but that
led to an infinite recursion loop while attempting to simplify the rtl. As you
said, the current ordering seems to be relied upon by the code for
simplifications.

My rs6000_legitimize_address change is still running through the testsuite.


-- 


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



[Bug c++/28956] New: Illegal array initialization accepted

2006-09-05 Thread ppluzhnikov at charter dot net
Consider:

struct Foo {
  Foo(); // comment out -> g++ fails with "error: invalid initializer"
};

void fn()
{
  Foo f[2];
  Foo g[2] = f;
}

The test above is accepted by g++ (tried 3.4.6, 4.0.0, 4.1.1 and 4.2-20060902).

EDG fails with:
$ edgcpfe pp.cpp
"pp.cpp", line 8: error: initialization with "{...}" expected for aggregate
  object
  Foo g[2] = f;
 ^

1 error detected in the compilation of "pp.cpp".

Here is the original test case (also accepted by all versions of g++):

template 
struct pair {
pair(const T& t, const U& u) : first(t), second(u) { }
T first;
U second;
};

struct Foo {
Foo(); // comment out -> g++ fails with 
   // "error: ISO C++ forbids assignment of arrays"
};

int main()
{
Foo f[2];
pair p (1, f);
return 0;
}

And analysis of it by William M. (Mike) Miller | Edison Design Group, Inc.:

> Could you please confirm that this is a g++ bug?

Yes, it's a bug.  The Standard (12.6.2 paragraph 3) defines an initialization
like "second(u)" to be direct-initialization as described in section 8.5. 
Section 8.5 paragraph 14 says that initialization of an array object is handled
in section 8.5.1. However, 8.5.1 does not provide for any way of initializing
an array from another array (except for the special case of a string literal,
8.5.2).  Arrays can only be initialized to a value using the brace notation,
which is not permitted in a mem-initializer.


-- 
   Summary: Illegal array initialization accepted
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: ppluzhnikov at charter dot net
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


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



[Bug c++/28956] Illegal array initialization accepted

2006-09-05 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2006-09-05 20:42 ---
There are two different bugs here, the first one is a regression from 3.2.3.
The second one is accepted by all versions of GCC I have access to from 2.95.3
and upwards.


-- 


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



[Bug other/28957] New: unoptimal virtual method call.

2006-09-05 Thread pluto at agmk dot net
struct A
{
typedef void ( A::* pmf )();
virtual ~A();
virtual void foo() = 0;
};

void unoptimized_loop( A* a, A::pmf f )
{
while ( 1 )
( a->*f )();
}

void optimized_loop( A* a, A::pmf f )
{
typedef void (* pf)( A* );
pf __f = (pf)( a->*f );
while ( 1 )
__f( a );
}

both loops do the same thing with different speed impact.

$ g++ pmf_opt.cpp -Wall -c -O2 -Wno-pmf-conversions --save-temps -fverbose-asm

_Z16unoptimized_loopP1AMS_FvvE:
pushq   %r12#
movq%rsi, %r12  # f, tmp68
andl$1, %r12d   #, tmp68
pushq   %rbp#
leaq(%rdi,%rdx), %rbp   #, tmp70
pushq   %rbx#
movq%rsi, %rbx  # f, f
subq$16, %rsp   #,
movq%rsi, (%rsp)# f, f
movq%rdx, 8(%rsp)   # f, f
.L3:testq   %r12, %r12  # tmp68
movq%rbx, %rax  # f, f$__pfn
je  .L6 #,
movq(%rbp), %rax#, tmp69
movq-1(%rax,%rbx), %rax #, f$__pfn
.L6:movq%rbp, %rdi  # tmp70, prephitmp.36
call*%rax   # f$__pfn
jmp .L3

_Z14optimized_loopP1AMS_FvvE:
pushq   %rbp#
movq%rdi, %rbp  # a, a
pushq   %rbx#
movq%rsi, %rbx  # f, f$__pfn
subq$24, %rsp   #,
testb   $1, %sil#, f$__pfn
movq%rsi, 8(%rsp)   # f, f
movq%rdx, 16(%rsp)  # f, f
je  .L14#,
movq(%rdi,%rdx), %rax   #* f, tmp68
movq-1(%rax,%rsi), %rbx #, f$__pfn
.L14:   movq%rbp, %rdi  # a, a
call*%rbx   # f$__pfn
jmp .L14


-- 
   Summary: unoptimal virtual method call.
   Product: gcc
   Version: 4.1.2
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: other
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: pluto at agmk dot net


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



[Bug other/28957] unoptimal virtual method call.

2006-09-05 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2006-09-05 21:08 ---
-funswitch-loops fixes the loops.
For the first function, we get:
.L4:
movl%ebx, (%esp)
call*%esi
jmp .L4

and:
.L3:
movl(%ebx), %eax
movl%ebx, (%esp)
call*-1(%eax,%edi)
.p2align 4,,4
jmp .L3


-- 


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



[Bug other/28957] unoptimal virtual method call.

2006-09-05 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2006-09-05 21:11 ---
So this is either fixed with -funswitch-loops and/or -O3 which enables
-funswitch-loops.

And this has been fixed since 3.4.0 which added -funswitch-loops.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID
   Target Milestone|--- |3.4.0


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



[Bug other/28957] unoptimal virtual method call.

2006-09-05 Thread pluto at agmk dot net


--- Comment #3 from pluto at agmk dot net  2006-09-05 21:35 ---
(In reply to comment #1)
> -funswitch-loops fixes the loops.

i don't think it is fixed. imho this is only a partial fix.

> For the first function, we get:
> .L4:
> movl%ebx, (%esp)
> call*%esi
> jmp .L4
> 
> and:
> .L3:
> movl(%ebx), %eax<=== [1]
> movl%ebx, (%esp)
> call*-1(%eax,%edi)  <=== [1]
> .p2align 4,,4
> jmp .L3

[1] is still less effective than optimized_loop.

movl12(%ebp), %eax  # f, f
movl8(%ebp), %esi   # a, a
movl16(%ebp), %edx  # f, f
testb   $1, %al #, f$__pfn
movl%eax, %ebx  # f, f$__pfn
je  .L13
movl(%esi,%edx), %eax   #* f$__delta, tmp65
movl-1(%eax,%ebx), %ebx #, f$__pfn
.L13:
movl%esi, (%esp)# a,
call*%ebx   # f$__pfn
jmp .L13


-- 


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



[Bug rtl-optimization/26847] [4.2 Regression] Missed optimization in simplify_plus_minus

2006-09-05 Thread bonzini at gnu dot org


--- Comment #5 from bonzini at gnu dot org  2006-09-05 21:40 ---
patch committed, confirmed fixed by andreas


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug target/28764] [4.2 Regression] libjava build failure on sh4

2006-09-05 Thread kkojima at gcc dot gnu dot org


--- Comment #16 from kkojima at gcc dot gnu dot org  2006-09-05 21:41 
---
Subject: Bug 28764

Author: kkojima
Date: Tue Sep  5 21:41:23 2006
New Revision: 116703

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116703
Log:
PR target/28764
* mode-switching.c (optimize_mode_switching): Make the destination
block of an abnormal edge have no anticipatable mode.  Don't
insert mode switching code at the end of the source block of
an abnormal edge.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/mode-switching.c


-- 


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



[Bug target/28904] operand out of range on Linux/PowerPC

2006-09-05 Thread amodra at bigpond dot net dot au


--- Comment #3 from amodra at bigpond dot net dot au  2006-09-05 22:50 
---
This is a limitation of the -fPIC implementation used on powerpc-linux.  You
get a maximum of 64K bytes of GOT entries per function (ie. 16K entries). 
-fpic is even more limited, with only 64K bytes of GOT for the entire
executable.  (-fpic used to be 32k for the entire executable until the linker
was enhanced.)


-- 

amodra at bigpond dot net dot au changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2006-09-05 22:50:51
   date||


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



[Bug c++/28513] [4.0/4.1/4.2 Regression] QOI: Diagnostic missing since 3.3.x when naming rule is violated

2006-09-05 Thread jason at gcc dot gnu dot org


--- Comment #2 from jason at gcc dot gnu dot org  2006-09-05 23:14 ---
I guess this warning was never implemented in the new parser.


-- 


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



[Bug c++/19809] [4.0/4.1/4.2 Regression] Multiple definitions of friend functions in template classes

2006-09-05 Thread jason at gcc dot gnu dot org


--- Comment #8 from jason at gcc dot gnu dot org  2006-09-05 23:26 ---
I'm not sure this is actually a bug.


-- 

jason at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jason at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2006-08-28 05:31:36 |2006-09-05 23:26:57
   date||


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



[Bug c++/19809] [4.0/4.1/4.2 Regression] Multiple definitions of friend functions in template classes

2006-09-05 Thread jason at gcc dot gnu dot org


--- Comment #9 from jason at gcc dot gnu dot org  2006-09-05 23:27 ---
Actually, I am, didn't mean to add that comment.


-- 


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



[Bug c++/26102] [4.1/4.2 regression] "using Base::member" nonsense

2006-09-05 Thread jason at gcc dot gnu dot org


-- 

jason at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jason at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2006-02-05 14:50:35 |2006-09-05 23:54:21
   date||


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



[Bug c++/26571] [4.0/4.1/4.2 regression] Bad diagnostic using type modifier with struct

2006-09-05 Thread jason at gcc dot gnu dot org


-- 

jason at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jason at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2006-08-27 21:28:20 |2006-09-06 00:12:31
   date||


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



[Bug c/28958] New: Compiling vpnc with GCC 4.1 and anything other than -O0 causes failure to connect

2006-09-05 Thread william dot grant at ubuntu dot com dot au
(This was originally reported in Ubuntu, at
https://launchpad.net/distros/ubuntu/+source/vpnc/+bug/53341)

Compiling vpnc with any optimisations with GCC 4.1 causes a failure to connect
to a VPN. The issue is in the setup_link function, in vpnc.c, although I've got
no idea exactly what the problem with that function is.


-- 
   Summary: Compiling vpnc with GCC 4.1 and anything other than -O0
causes failure to connect
   Product: gcc
   Version: 4.1.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: william dot grant at ubuntu dot com dot au


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



[Bug c/28958] Compiling vpnc with GCC 4.1 and anything other than -O0 causes failure to connect

2006-09-05 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2006-09-06 00:20 ---
And this is not enough information to reproduce this bug, Can you attach a
testcase?


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING


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



[Bug c++/26671] [4.0/4.1/4.2 Regression] Missing "warning: reference to local variable returned"

2006-09-05 Thread jason at gcc dot gnu dot org


-- 

jason at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jason at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2006-03-14 00:10:44 |2006-09-06 00:23:58
   date||


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



[Bug middle-end/28958] Compiling vpnc with GCC 4.1 and anything other than -O0 causes failure to connect

2006-09-05 Thread william dot grant at ubuntu dot com dot au


--- Comment #2 from william dot grant at ubuntu dot com dot au  2006-09-06 
00:45 ---
Created an attachment (id=12191)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12191&action=view)
Working vpnc binary, compiled with -O0.


-- 


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



[Bug middle-end/28958] Compiling vpnc with GCC 4.1 and anything other than -O0 causes failure to connect

2006-09-05 Thread william dot grant at ubuntu dot com dot au


--- Comment #3 from william dot grant at ubuntu dot com dot au  2006-09-06 
00:47 ---
Created an attachment (id=12192)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12192&action=view)
A broken vpnc binary compiled with -O3, it doesn't connect properly


-- 


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



[Bug c++/26696] [4.0/4.1/4.2 Regression] ICE with statement forming unused static member function reference

2006-09-05 Thread jason at gcc dot gnu dot org


-- 

jason at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jason at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2006-05-21 20:56:11 |2006-09-06 00:48:25
   date||


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



[Bug middle-end/28958] Compiling vpnc with GCC 4.1 and anything other than -O0 causes failure to connect

2006-09-05 Thread william dot grant at ubuntu dot com dot au


--- Comment #4 from william dot grant at ubuntu dot com dot au  2006-09-06 
00:51 ---
Created an attachment (id=12193)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12193&action=view)
Another broken vpnc binary, this time compiled with -O1, still doesn't connect
properly/


-- 


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



[Bug middle-end/28958] Compiling vpnc with GCC 4.1 and anything other than -O0 causes failure to connect

2006-09-05 Thread william dot grant at ubuntu dot com dot au


--- Comment #5 from william dot grant at ubuntu dot com dot au  2006-09-06 
00:54 ---
Created an attachment (id=12194)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12194&action=view)
The offending source file, setup_link is the function with issues.


-- 


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



[Bug middle-end/28958] Compiling vpnc with GCC 4.1 and anything other than -O0 causes failure to connect

2006-09-05 Thread pinskia at gcc dot gnu dot org


--- Comment #6 from pinskia at gcc dot gnu dot org  2006-09-06 00:57 ---
us->u.id.length = 4;
us->u.id.data = xallocc(4);
memcpy(us->u.id.data, s->our_address, sizeof(struct in_addr));

That looks wrong as sizeof(struct in_addr) does not have to equal 4.


-- 


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



[Bug c++/19809] [4.0/4.1/4.2 Regression] Multiple definitions of friend functions in template classes

2006-09-05 Thread jason at gcc dot gnu dot org


--- Comment #10 from jason at gcc dot gnu dot org  2006-09-06 01:15 ---
Subject: Bug 19809

Author: jason
Date: Wed Sep  6 01:15:09 2006
New Revision: 116709

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116709
Log:
PR c++/26102
* name-lookup.c (do_class_using_decl): Try to find the base even
if bases_dependent_p.
* pt.c (type_dependent_expression_p): A USING_DECL is dependent.

PR c++/19809
* pt.c (tsubst_friend_function): Set DECL_INITIAL before pushdecl.

Added:
trunk/gcc/testsuite/g++.dg/template/friend47.C
trunk/gcc/testsuite/g++.dg/template/using14.C
Modified:
trunk/gcc/cp/name-lookup.c
trunk/gcc/cp/pt.c


-- 


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



[Bug c++/26102] [4.1/4.2 regression] "using Base::member" nonsense

2006-09-05 Thread jason at gcc dot gnu dot org


--- Comment #7 from jason at gcc dot gnu dot org  2006-09-06 01:15 ---
Subject: Bug 26102

Author: jason
Date: Wed Sep  6 01:15:09 2006
New Revision: 116709

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116709
Log:
PR c++/26102
* name-lookup.c (do_class_using_decl): Try to find the base even
if bases_dependent_p.
* pt.c (type_dependent_expression_p): A USING_DECL is dependent.

PR c++/19809
* pt.c (tsubst_friend_function): Set DECL_INITIAL before pushdecl.

Added:
trunk/gcc/testsuite/g++.dg/template/friend47.C
trunk/gcc/testsuite/g++.dg/template/using14.C
Modified:
trunk/gcc/cp/name-lookup.c
trunk/gcc/cp/pt.c


-- 


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



[Bug c++/19809] [4.0/4.1/4.2 Regression] Multiple definitions of friend functions in template classes

2006-09-05 Thread jason at gcc dot gnu dot org


--- Comment #11 from jason at gcc dot gnu dot org  2006-09-06 01:15 ---
Subject: Bug 19809

Author: jason
Date: Wed Sep  6 01:15:39 2006
New Revision: 116710

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116710
Log:
PR c++/26102
* name-lookup.c (do_class_using_decl): Try to find the base even
if bases_dependent_p.
* pt.c (type_dependent_expression_p): A USING_DECL is dependent.

PR c++/19809
* pt.c (tsubst_friend_function): Set DECL_INITIAL before pushdecl.

Modified:
trunk/gcc/cp/ChangeLog


-- 


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



[Bug c++/26102] [4.1/4.2 regression] "using Base::member" nonsense

2006-09-05 Thread jason at gcc dot gnu dot org


--- Comment #8 from jason at gcc dot gnu dot org  2006-09-06 01:15 ---
Subject: Bug 26102

Author: jason
Date: Wed Sep  6 01:15:39 2006
New Revision: 116710

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116710
Log:
PR c++/26102
* name-lookup.c (do_class_using_decl): Try to find the base even
if bases_dependent_p.
* pt.c (type_dependent_expression_p): A USING_DECL is dependent.

PR c++/19809
* pt.c (tsubst_friend_function): Set DECL_INITIAL before pushdecl.

Modified:
trunk/gcc/cp/ChangeLog


-- 


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



[Bug middle-end/28958] Compiling vpnc with GCC 4.1 and anything other than -O0 causes failure to connect

2006-09-05 Thread william dot grant at ubuntu dot com dot au


--- Comment #7 from william dot grant at ubuntu dot com dot au  2006-09-06 
01:25 ---
Could this cause the bug if optimisations are enabled? I don't know anything
about the vpnc source, I just uploaded the last two Ubuntu revisions.


-- 

william dot grant at ubuntu dot com dot au changed:

   What|Removed |Added

 Status|WAITING |UNCONFIRMED


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



[Bug other/28297] GCC 4.1.1 fails to build on Mac OS X 10.4.6

2006-09-05 Thread craigwd2000 at gmail dot com


--- Comment #11 from craigwd2000 at gmail dot com  2006-09-06 02:43 ---
I just tried building GCC 4.1.1 with the following options:
I ran ../configure --enable-threads --x-includes=/usr/X11R6
--x-libraries=/usr/X11R6 --with-mpfr=/usr/local/lib --with-gmp=/usr/local/lib
from ~/Desktop/Downloads/GCC/gcc-4.1.1/gcc/objdir.  I ran make bootstrap & got
the following errors:
make[1]: *** No rule to make target `dummy-checksum.c', needed by
`dummy-checksum.o'.  Stop.
make: *** [stage1_build] Error 2.  I'm still using GCC 4.0.1 for compiling.


-- 


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



[Bug middle-end/28958] Compiling vpnc with GCC 4.1 and anything other than -O0 causes failure to connect

2006-09-05 Thread pinskia at gcc dot gnu dot org


--- Comment #8 from pinskia at gcc dot gnu dot org  2006-09-06 04:54 ---
(In reply to comment #7)
> Could this cause the bug if optimisations are enabled? I don't know anything
> about the vpnc source, I just uploaded the last two Ubuntu revisions.

It could as the memory layout will be different, why don't you try to use
sizeof(struct in_addr) instead of 4?


-- 


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



[Bug c++/26671] [4.0/4.1/4.2 Regression] Missing "warning: reference to local variable returned"

2006-09-05 Thread jason at gcc dot gnu dot org


--- Comment #4 from jason at gcc dot gnu dot org  2006-09-06 05:25 ---
Subject: Bug 26671

Author: jason
Date: Wed Sep  6 05:25:29 2006
New Revision: 116714

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116714
Log:
PR c++/26671
* typeck.c (maybe_warn_about_returning_address_of_local): Look
through COMPONENT_REF and ARRAY_REF.

Added:
trunk/gcc/testsuite/g++.dg/warn/return-reference2.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/typeck.c


-- 


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



[Bug c++/26571] [4.0/4.1/4.2 regression] Bad diagnostic using type modifier with struct

2006-09-05 Thread jason at gcc dot gnu dot org


--- Comment #3 from jason at gcc dot gnu dot org  2006-09-06 05:28 ---
Subject: Bug 26571

Author: jason
Date: Wed Sep  6 05:28:08 2006
New Revision: 116715

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116715
Log:
PR c++/26571
* parser.c (cp_parser_diagnose_invalid_type_name): Handle the case
where the name is a type used incorrectly.

Added:
trunk/gcc/testsuite/g++.dg/parse/typespec1.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/parser.c


-- 


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



[Bug c++/27371] [4.1/4.2 Regression] Does not warn about unused function result (__attribute__((warn_unused_result)))

2006-09-05 Thread jason at gcc dot gnu dot org


-- 

jason at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jason at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2006-05-04 14:47:45 |2006-09-06 05:49:06
   date||


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



[Bug c++/27371] [4.1/4.2 Regression] Does not warn about unused function result (__attribute__((warn_unused_result)))

2006-09-05 Thread jason at gcc dot gnu dot org


--- Comment #3 from jason at gcc dot gnu dot org  2006-09-06 05:59 ---
This worked in 4.0 by accident, because of the NRV implementation I had in that
release which pushed aggregate return values into the argument list of a call. 
This had some problems, so I later changed it to use a MODIFY_EXPR, which
properly expresses what's going on, but interferes with this warning.


-- 


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



[Bug tree-optimization/28952] [4.2 regression] tree check: expected class 'expression', have 'exceptional' (ssa_name) in vectorizable_condition, at tree-vect-transform.c:2122

2006-09-05 Thread pinskia at gcc dot gnu dot org


--- Comment #6 from pinskia at gcc dot gnu dot org  2006-09-06 06:07 ---
Subject: Bug 28952

Author: pinskia
Date: Wed Sep  6 06:06:55 2006
New Revision: 116716

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116716
Log:
2006-09-05  Andrew Pinski  <[EMAIL PROTECTED]>

PR tree-opt/28952
* tree-vect-transform.c (vectorizable_condition): Move the check
for the type after the check for simple condition.
2006-09-05  Andrew Pinski  <[EMAIL PROTECTED]>

PR tree-opt/28952
* gcc.dg/vect/pr28952.c: New test.


Added:
trunk/gcc/testsuite/gcc.dg/vect/pr28952.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-vect-transform.c


-- 


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



[Bug tree-optimization/28952] [4.1 regression] tree check: expected class 'expression', have 'exceptional' (ssa_name) in vectorizable_condition, at tree-vect-transform.c:2122

2006-09-05 Thread pinskia at gcc dot gnu dot org


--- Comment #7 from pinskia at gcc dot gnu dot org  2006-09-06 06:08 ---
Fixed on the mainline, this is a latent bug on the 4.1 branch which was not
there in 4.0 so I will also apply it to the 4.1 branch after a week or so.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

Summary|[4.2 regression] tree check:|[4.1 regression] tree check:
   |expected class 'expression',|expected class 'expression',
   |have 'exceptional'  |have 'exceptional'
   |(ssa_name) in   |(ssa_name) in
   |vectorizable_condition, at  |vectorizable_condition, at
   |tree-vect-transform.c:2122  |tree-vect-transform.c:2122
   Target Milestone|4.2.0   |4.1.2


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



[Bug tree-optimization/28937] [4.2 regression] ICE in add_virtual_operand, at tree-ssa-operands.c:1309

2006-09-05 Thread pinskia at gcc dot gnu dot org


--- Comment #10 from pinskia at gcc dot gnu dot org  2006-09-06 06:13 
---
Subject: Bug 28937

Author: pinskia
Date: Wed Sep  6 06:13:22 2006
New Revision: 116717

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116717
Log:
2006-09-05  Andrew Pinski  <[EMAIL PROTECTED]>

PR tree-opt/28937
* tree-flow.h (tree_ssa_unswitch_loops): Return unsigned int.
(canonicalize_induction_variables): Likewise.
(tree_unroll_loops_completely): Likewise.
(tree_ssa_prefetch_arrays): Likewise.
(remove_empty_loops): Likewise.
* tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Return
TODO_cleanup_cfg instead of directly calling
cleanup_tree_cfg_loop.
* tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
Likewise.
(tree_unroll_loops_completely): Likewise.
(remove_empty_loops): Likewise.
* tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
* tree-ssa-loop.c (tree_ssa_loop_unswitch): Use the return value
of tree_ssa_unswitch_loops.
(tree_ssa_loop_ivcanon): Use the return value of
canonicalize_induction_variables.
(tree_ssa_empty_loop): Use the return value of
remove_empty_loops.
(tree_complete_unroll): Use the return value of
tree_unroll_loops_completely.
(tree_ssa_loop_prefetch): Use the return value of
tree_ssa_prefetch_arrays.
* passes.c (execute_todo): Before Cleanup CFG, set
updating_used_alone and after cleanup CFG, call
recalculate_used_alone.
2006-09-05  Andrew Pinski  <[EMAIL PROTECTED]>

PR tree-opt/28937
* g++.dg/opt/unroll2.C: New test.



Added:
trunk/gcc/testsuite/g++.dg/opt/unroll2.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/passes.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-flow.h
trunk/gcc/tree-ssa-loop-ivcanon.c
trunk/gcc/tree-ssa-loop-prefetch.c
trunk/gcc/tree-ssa-loop-unswitch.c
trunk/gcc/tree-ssa-loop.c


-- 


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



[Bug tree-optimization/28937] [4.2 regression] ICE in add_virtual_operand, at tree-ssa-operands.c:1309

2006-09-05 Thread pinskia at gcc dot gnu dot org


--- Comment #11 from pinskia at gcc dot gnu dot org  2006-09-06 06:14 
---
Fixed.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug target/28764] [4.2 Regression] libjava build failure on sh4

2006-09-05 Thread pinskia at gcc dot gnu dot org


--- Comment #17 from pinskia at gcc dot gnu dot org  2006-09-06 06:14 
---
Fixed.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug middle-end/28915] [4.2 regression] ICE: tree check: expected class 'constant', have 'declaration' (var_decl) in build_vector, at tree.c:973

2006-09-05 Thread pinskia at gcc dot gnu dot org


--- Comment #9 from pinskia at gcc dot gnu dot org  2006-09-06 06:30 ---
And here is a testcase which is reproducible without the vectorizer:
int t[4];

__attribute__((vector_size(16))) int f(void)
{
__attribute__((vector_size(16))) int t1 = {(int)&t[0], (int)&t[1], (int)&t[2],
(int)&t[3]};
  return t1;
}

That testcase above shows more problems than I actually want to touch right
now.

Here was my fix for the x86 crash (but it does not fix the powerpc-linux with
-maltivec crash):
Index: tree.c
===
--- tree.c  (revision 116689)
+++ tree.c  (working copy)
@@ -969,9 +969,11 @@ build_vector (tree type, tree vals)
   for (link = vals; link; link = TREE_CHAIN (link))
 {
   tree value = TREE_VALUE (link);
-
-  over1 |= TREE_OVERFLOW (value);
-  over2 |= TREE_CONSTANT_OVERFLOW (value);
+  if (CONSTANT_CLASS_P (value))
+   {
+ over1 |= TREE_OVERFLOW (value);
+ over2 |= TREE_CONSTANT_OVERFLOW (value);
+   }
 }

   TREE_OVERFLOW (v) = over1;
Index: expmed.c
===
--- expmed.c(revision 116689)
+++ expmed.c(working copy)
@@ -4945,6 +4945,9 @@ make_tree (tree type, rtx x)

   switch (GET_CODE (x))
 {
+case CONST:
+   return make_tree (type, XEXP (x, 0));
+
 case CONST_INT:
   {
HOST_WIDE_INT hi = 0;
@@ -4979,6 +4982,7 @@ make_tree (tree type, rtx x)
int i, units;
rtx elt;
tree t = NULL_TREE;
+   tree type1 = TREE_TYPE (type);

units = CONST_VECTOR_NUNITS (x);

@@ -4986,7 +4990,7 @@ make_tree (tree type, rtx x)
for (i = units - 1; i >= 0; --i)
  {
elt = CONST_VECTOR_ELT (x, i);
-   t = tree_cons (NULL_TREE, make_tree (type, elt), t);
+   t = tree_cons (NULL_TREE, make_tree (type1, elt), t);
  }

return build_vector (type, t);
@@ -5044,6 +5048,14 @@ make_tree (tree type, rtx x)
  GET_CODE (x) == ZERO_EXTEND);
   return fold_convert (type, make_tree (t, XEXP (x, 0)));

+case SYMBOL_REF:
+  if (SYMBOL_REF_DECL (x))
+   {
+ tree pointer;
+ t = SYMBOL_REF_DECL (x);
+ pointer = build_pointer_type (TREE_TYPE (t));
+ return fold_convert (type, fold_build1 (ADDR_EXPR, pointer, t));
+   }
 default:
   t = build_decl (VAR_DECL, NULL_TREE, type);


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|pinskia 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=28915



[Bug middle-end/28915] [4.2 regression] ICE: tree check: expected class 'constant', have 'declaration' (var_decl) in build_vector, at tree.c:973

2006-09-05 Thread pinskia at gcc dot gnu dot org


--- Comment #10 from pinskia at gcc dot gnu dot org  2006-09-06 06:33 
---
Note I think the PPC-linux-gnu crash is actually caused by:

2006-06-20  Roger Sayle  <[EMAIL PROTECTED]>

* expr.c (expand_expr_real_1) : For vector constants with
integer modes, attempt to directly construct an integer constant.

But I have not checked but the backtrace is:


(gdb)
#8  0x085cda79 in copy_constant (exp=0xb7d40cd8) at ../../gcc/varasm.c:2742
2742ce->value = copy_constant (value);
(gdb)
#9  0x085ce18b in build_constant_desc (exp=0xb7d40cd8)
at ../../gcc/varasm.c:2815
2815  desc->value = copy_constant (exp);
(gdb)
#10 0x085ce4be in output_constant_def (exp=0xb7d40cd8, defer=1)
at ../../gcc/varasm.c:2885
2885  desc = build_constant_desc (exp);
(gdb)
#11 0x0834d3f4 in expand_expr_constant (exp=0xb7d40cd8, defer=1,
modifier=EXPAND_NORMAL) at ../../gcc/expr.c:6433
6433  mem = output_constant_def (exp, defer);
(gdb) up
#12 0x0835084f in expand_expr_real_1 (exp=0xb7d40cd8, target=0xb7d2b954,
tmode=V4SImode, modifier=EXPAND_NORMAL, alt_rtl=0xbf977bf8)
at ../../gcc/expr.c:7119
7119  rtx constructor = expand_expr_constant (exp, 1, modifier);
(gdb)
#13 0x0834df9d in expand_expr_real (exp=0xb7d40cd8, target=0xb7d2b954,
tmode=V4SImode, modifier=EXPAND_NORMAL, alt_rtl=0xbf977bf8)
at ../../gcc/expr.c:6706
6706  ret = expand_expr_real_1 (exp, target, tmode, modifier, alt_rtl);
(gdb)
#14 0x08340493 in store_expr (exp=0xb7d40cd8, target=0xb7d2b954,
call_param_p=0)
at ../../gcc/expr.c:4370
4370  temp = expand_expr_real (exp, target, GET_MODE (target),
(gdb)
#15 0x0833f7dc in expand_assignment (to=0xb7d37660, from=0xb7d40cd8)
at ../../gcc/expr.c:4249
4249  result = store_expr (from, to_rtx, 0);
(gdb)

And then we go into an infinite loop calling copy_constant on a decl.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||sayle at gcc dot gnu dot org
 GCC target triplet|x86-64-linux|


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



[Bug middle-end/28862] [4.0/4.1/4.2 Regression] attribute ((aligned)) ignored on vector variables

2006-09-05 Thread pinskia at gcc dot gnu dot org


--- Comment #8 from pinskia at gcc dot gnu dot org  2006-09-06 06:36 ---
(In reply to comment #2)
This problem is recorded in a different place, we ignore bigger alignment for
stack variables currently.  I don't have the number off hand either but I know
it has been filed.


-- 


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



[Bug middle-end/28862] [4.0/4.1/4.2 Regression] attribute ((aligned)) ignored on vector variables

2006-09-05 Thread thomas at reactsoft dot com


--- Comment #9 from thomas at reactsoft dot com  2006-09-06 06:46 ---
(In reply to comment #8)
> (In reply to comment #2)
> This problem is recorded in a different place, we ignore bigger alignment for
> stack variables currently.  I don't have the number off hand either but I know
> it has been filed.

Thanks. Before I posted the problem I already looked for the bug, this report
came very close (I believed) to what the problem could be. I'll see if I can
find the correct bug report.


-- 


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