[Bug c++/27547] New: [4.0/4.1/4.2 regression] ICE on invalid operator=

2006-05-11 Thread reichelt at gcc dot gnu dot org
Since GCC 3.4.0 the C++ frontend ICEs on the following invalid code snippet:


int operator=(int);

void foo()
{
  operator=(0);
}


bug.cc:1: error: 'int operator=(int)' must be a nonstatic member function
bug.cc: In function 'void foo()':
bug.cc:5: internal compiler error: in copy_fn_p, at cp/decl.c:8821
Please submit a full bug report, [etc.]

I'll post a patch soon.


-- 
   Summary: [4.0/4.1/4.2 regression] ICE on invalid operator=
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Keywords: ice-on-invalid-code, error-recovery, monitored
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: reichelt at gcc dot gnu dot org


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



[Bug target/27537] XMM alignment fault when compiling for i386 with -Os

2006-05-11 Thread agner at agner dot org


--- Comment #4 from agner at agner dot org  2006-05-11 07:11 ---
Thanks for confirming this bug. If Gcc relies on the stack being aligned then
it has to be an official ABI requirement. 

It makes perfectly sense to compile the whole program, or some of it, with -Os
and also use XMM. -Os can be the optimal option if code cache or data cache is
a critical resource. It is also a perfectly justifiable solution to compile the
part of the program that contains the innermost loop with -O3 and the rest of
the program with -Os. The error also occurs if part of the program is compiled
with the Intel C++ compiler, because the Intel people follow the official ABI
which hasn't been updated for many years. The Intel compiler is intended to be
100% binary compatible with Gnu.

Gcc is no longer a hobby project for a limited group of nerds. It is one of the
most used compilers in the world and it is used for critical applications.
Therefore, you have to be strict about ABI standards. Either the ABI must be
changed and made public, or the compiler must be changed so that it doesn't
rely on the stack being aligned by 16.

I can find the "SYSTEM V. APPLICATION BINARY INTERFACE. Intel386 Architecture
Processor Supplement" at www.caldera.com. It says "DRAFT COPY, March 19, 1997".
Nothing indicates that this is the official or the latest version. It says
nothing about MMX or XMM. I have documented the things that are not clear from
the ABI in http://www.agner.org/assem/calling_conventions.pdf as good as I can.
I am going to change this document when this issue is resolved.


-- 


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



[Bug c++/27547] [4.0/4.1/4.2 regression] ICE on invalid operator=

2006-05-11 Thread reichelt at gcc dot gnu dot org


-- 

reichelt at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |reichelt at gcc dot gnu dot
   |dot org |org
URL||http://gcc.gnu.org/ml/gcc-
   ||patches/2006-
   ||05/msg00445.html
   Target Milestone|--- |4.0.4


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



[Bug c++/27384] [4.0/4.1/4.2 regression] ICE with invalid array size

2006-05-11 Thread patchapp at dberlin dot org


--- Comment #3 from patchapp at dberlin dot org  2006-05-11 07:15 ---
Subject: Bug number PR27384

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-05/msg00443.html


-- 


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



[Bug middle-end/27488] [4.1/4.2 regression] ICE in tree_expr_nonnegative_p

2006-05-11 Thread patchapp at dberlin dot org


--- Comment #3 from patchapp at dberlin dot org  2006-05-11 07:15 ---
Subject: Bug number PR27488

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-05/msg00444.html


-- 


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



[Bug c++/27547] [4.0/4.1/4.2 regression] ICE on invalid operator=

2006-05-11 Thread patchapp at dberlin dot org


--- Comment #1 from patchapp at dberlin dot org  2006-05-11 07:16 ---
Subject: Bug number PR c++/27547

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-05/msg00445.html


-- 


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



[Bug c++/27505] [4.2 Regression] ICE in const folding with bitfields

2006-05-11 Thread kazu at gcc dot gnu dot org


--- Comment #3 from kazu at gcc dot gnu dot org  2006-05-11 07:31 ---
Some analysis at:

http://gcc.gnu.org/ml/gcc/2006-05/msg00263.html


-- 


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



[Bug tree-optimization/27283] [4.2 regression] ICE: SSA corruption - Conflict across an abnormal edge

2006-05-11 Thread tbm at cyrius dot com


--- Comment #7 from tbm at cyrius dot com  2006-05-11 08:22 ---
While the test case submitted to this PR indeed works now, the software program
which originally showed the bug shows that it's still there.  Here's a new test
case.


-- 

tbm at cyrius dot com changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|FIXED   |


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



[Bug tree-optimization/27283] [4.2 regression] ICE: SSA corruption - Conflict across an abnormal edge

2006-05-11 Thread tbm at cyrius dot com


--- Comment #8 from tbm at cyrius dot com  2006-05-11 08:24 ---
Created an attachment (id=11438)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11438&action=view)
new test case

1657:[EMAIL PROTECTED]: ~] /usr/lib/gcc-snapshot/bin/g++ -c -O1 mini.c

 Conflict NewMins$maxdex_407(ab) and NewMins$maxdex_379(ab) across an abnormal
edge from BB8->BB42
mini.c: In member function 'gIndexOdometer
gIndexOdometer::AfterExcisionOf(int&) const':
mini.c:45: internal compiler error: SSA corruption
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html> for instructions.
zsh: exit 1 /usr/lib/gcc-snapshot/bin/g++ -c -O1 mini.c
1658:[EMAIL PROTECTED]: ~] /usr/lib/gcc-snapshot/bin/g++ -c mini.c
1659:[EMAIL PROTECTED]: ~] /usr/lib/gcc-snapshot/bin/g++ -v
Using built-in specs.
Target: powerpc-linux-gnu
Configured with: ../src/configure -v
--enable-languages=c,c++,java,fortran,objc,obj-c++,treelang
--prefix=/usr/lib/gcc-snapshot --enable-shared --with-system-zlib --disable-nls
--enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug
--enable-java-awt=gtk --enable-gtk-cairo
--with-java-home=/usr/lib/gcc-snapshot/jre --enable-mpfr --disable-multilib
--disable-werror powerpc-linux-gnu
Thread model: posix
gcc version 4.2.0 20060508 (experimental)
1660:[EMAIL PROTECTED]: ~]


-- 


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



[Bug tree-optimization/27283] [4.2 regression] ICE: SSA corruption - Conflict across an abnormal edge

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


--- Comment #9 from pinskia at gcc dot gnu dot org  2006-05-11 08:26 ---
The orginal problem is fixed and Martin is opening a new bug for the other
issue.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution||FIXED


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



[Bug tree-optimization/27548] New: [4.2 regression] ICE: SSA corruption - Conflict across an abnormal edge

2006-05-11 Thread tbm at cyrius dot com
I get a SSA corruption ICE with the following test case.  This is not the same
as PR27283 which I originally submitted: the test case from the previous bug
indeed works now, but the original software package still ICEs.  Here's a test
case that still procudes an ICE.

gcc version 4.2.0 20060508 (experimental)


1657:[EMAIL PROTECTED]: ~] /usr/lib/gcc-snapshot/bin/g++ -c -O1 mini.c

 Conflict NewMins$maxdex_407(ab) and NewMins$maxdex_379(ab) across an abnormal
edge from BB8->BB42
mini.c: In member function 'gIndexOdometer
gIndexOdometer::AfterExcisionOf(int&) const':
mini.c:45: internal compiler error: SSA corruption
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html> for instructions.
zsh: exit 1 /usr/lib/gcc-snapshot/bin/g++ -c -O1 mini.c
1658:[EMAIL PROTECTED]: ~] /usr/lib/gcc-snapshot/bin/g++ -c mini.c
1659:[EMAIL PROTECTED]: ~]


-- 
   Summary: [4.2 regression] ICE: SSA corruption - Conflict across
an abnormal edge
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: tbm at cyrius dot com
 GCC build triplet: powerpc-linux-gnu
  GCC host triplet: powerpc-linux-gnu
GCC target triplet: powerpc-linux-gnu


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



[Bug middle-end/27529] Does not fold (char *)(size_t)char_ptr or (size_t)(char *)size_t_var

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


--- Comment #2 from rguenth at gcc dot gnu dot org  2006-05-11 08:30 ---
Subject: Bug 27529

Author: rguenth
Date: Thu May 11 08:29:40 2006
New Revision: 113692

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

PR middle-end/27529
* fold-const.c (fold_unary): Handle intermediate conversion
to a pointer type like intermediate conversion to an integer
type in folding of (T1)(T2)var to var.
Match the code to the comment in the final conversion for
(T1)(T2)var to (T1)var regarding to type precision.  Rather
than disallow T1 being of pointer type, assert that both T1
and var are of pointer type or not.  Make sure not to fall
over the frontends lazyness wrt array to pointer decay though.

* gcc.dg/tree-ssa/foldcast-1.c: New testcase.

Added:
trunk/gcc/testsuite/gcc.dg/tree-ssa/foldcast-1.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/fold-const.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug middle-end/27529] Does not fold (char *)(size_t)char_ptr or (size_t)(char *)size_t_var

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


--- Comment #3 from rguenth at gcc dot gnu dot org  2006-05-11 08:30 ---
Fixed.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.2.0


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



[Bug tree-optimization/27283] [4.2 regression] ICE: SSA corruption - Conflict across an abnormal edge

2006-05-11 Thread tbm at cyrius dot com


--- Comment #10 from tbm at cyrius dot com  2006-05-11 08:30 ---
See PR27548 for the new one.


-- 


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



[Bug tree-optimization/27548] [4.2 regression] ICE: SSA corruption - Conflict across an abnormal edge

2006-05-11 Thread tbm at cyrius dot com


--- Comment #1 from tbm at cyrius dot com  2006-05-11 08:31 ---
Created an attachment (id=11439)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11439&action=view)
test case


-- 


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



[Bug tree-optimization/27548] [4.2 regression] ICE: SSA corruption - Conflict across an abnormal edge

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


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||pinskia at gcc dot gnu dot
   ||org
   Keywords||ice-on-valid-code
   Target Milestone|--- |4.2.0


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



[Bug tree-optimization/27549] New: [4.1 Regression] ICE in coalesce_abnormal_edges

2006-05-11 Thread jakub at gcc dot gnu dot org
typedef __SIZE_TYPE__ size_t;

struct E
{
  virtual ~E () {}
  virtual size_t e () const = 0;
  virtual void f (char *x) const = 0;
};

struct F : public E
{
  virtual ~F () {}
  virtual size_t e () const { return 0; }
  virtual void f (char *x) const { *x = '\0'; }
};

struct S
{
  S () { a = new char[32]; b = 32; c = 0; a[0] = 0; }
  void s (const char *x, size_t y) { v (c + y + 1); __builtin_memcpy(a + c, x,
y); c += y; a[c] = '\0'; }
  void s (const E *x) { size_t l = x->e(); v (c + l + 1); x->f (a + c); c += l;
}
  const char *t () { return a; }
  void v (size_t n)
{
  if (b >= n) return;

  size_t b2 = b;
  char *a2 = a;

  for (;;)
{
  b *= 2;
  if (b >= n)
break;
}

  a = new char[b];

  if (b2)
{
  __builtin_memcpy(a, a2, c);
  a2[0] = 0;
  for (size_t i = 1; i < b2; i++)
a2[i] = a2[i - 1];
  delete[] a2;
}
}

  ~S ()
{
  if (b)
{
  a[0] = 0;
  for (size_t i = 1; i < b; i++)
a[i] = a[i - 1];
}
  delete[] a;
}
  char * a;
  size_t b, c;
};

const char *p;
size_t q;
const F u;

const char *
foo ()
{
  S s;
  s.s (p, q);
  s.s (&u);
  return s.t ();
}

ICEs at -O{1,2,3} in coalesce_abnormal_edges, at least on x86_64 and i386
linux.


-- 
   Summary: [4.1 Regression] ICE in coalesce_abnormal_edges
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jakub at gcc dot gnu dot org


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



[Bug tree-optimization/27548] [4.2 regression] ICE: SSA corruption - Conflict across an abnormal edge

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


--- Comment #2 from pinskia at gcc dot gnu dot org  2006-05-11 08:44 ---
The good news is that IV-OPTs is not the cause.


-- 


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



[Bug tree-optimization/27549] [4.1 Regression] ICE in coalesce_abnormal_edges

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


--- Comment #1 from pinskia at gcc dot gnu dot org  2006-05-11 08:48 ---
This worked in "4.1.0 20060208" and in "4.1.0 20051026".


-- 


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



[Bug tree-optimization/27549] [4.1 Regression] ICE in coalesce_abnormal_edges

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


--- Comment #2 from pinskia at gcc dot gnu dot org  2006-05-11 08:50 ---
Does the patch for PR 27283 fix this?


-- 


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



[Bug tree-optimization/27341] [4.2 Regression] ICE in in add_virtual_operand with complex types

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


--- Comment #5 from rguenth at gcc dot gnu dot org  2006-05-11 08:56 ---
Reduced testcase:

double zero;
double matmul_c8 (_Complex double * dest)
{
  *dest += 1;
  return zero;
}

we go from before cplxlower

matmul_c8 (dest)
{
  double D.1526;
  complex double D.1525;
  complex double D.1524;

:
  #   VUSE ;
  D.1524_2 = *dest_1;
  D.1525_3 = D.1524_2 + __complex__ (1.0e+0, 0.0);
  #   zero_7 = V_MAY_DEF ;
  *dest_1 = D.1525_3;
  #   VUSE ;
  D.1526_5 = zero;
  return D.1526_5;

}

to after it

;; basic block 2, loop depth 0, count 0
;; prev block 0, next block 1
;; pred:   ENTRY [100.0%]  (fallthru,exec)
;; succ:   EXIT [100.0%] 
:
#   VUSE ;
D.1538 = REALPART_EXPR <*dest_1>;
#   VUSE ;
D.1539 = IMAGPART_EXPR <*dest_1>;
D.1524_2 = COMPLEX_EXPR ;
CR.9_9 = D.1538;
CI.10_10 = D.1539;
D.1542 = CR.9_9 + 1.0e+0;
D.1525_3 = COMPLEX_EXPR ;
CR.11_11 = D.1542;
#   zero_7 = V_MAY_DEF ;
*dest_1 = D.1525_3;
#   VUSE ;
D.1526_5 = zero;
return D.1526_5;

note that for the complex dest, we have Vops for zero only, but later
a SMT falls out of the sky.


-- 


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



[Bug middle-end/27536] [4.2 Regression] -fsection-anchors breaks Ada

2006-05-11 Thread schwab at suse dot de


--- Comment #3 from schwab at suse dot de  2006-05-11 09:03 ---
(gdb) bt
#0  fancy_abort (file=0x10849bb8 "../../gcc/emit-rtl.c", line=1784, 
function=0x10849954 "change_address_1") at ../../gcc/diagnostic.c:642
#1  0x103d975c in change_address_1 (memref=0xf7976af0, mode=BLKmode, 
addr=0xf7a906e0, validate=)
at ../../gcc/emit-rtl.c:1784
#2  0x103e73f0 in use_anchored_address (x=0xf7976af0) at ../../gcc/explow.c:592
#3  0x10401c68 in expand_expr_real_1 (exp=, 
target=, tmode=, 
modifier=EXPAND_CONST_ADDRESS, alt_rtl=0x0) at ../../gcc/expr.c:6831
#4  0x88004282 in ?? ()
#5  0x10408970 in expand_expr_real (exp=0xf7f4d000, target=0x0, tmode=SImode, 
modifier=EXPAND_CONST_ADDRESS, alt_rtl=0x0) at ../../gcc/expr.c:6638
#6  0x1040e9e4 in expand_expr_addr_expr_1 (exp=0x10849bb8, target=0x0, 
tmode=SImode, modifier=EXPAND_NORMAL) at ../../gcc/expr.h:494
#7  0x103ff4f0 in expand_expr_real_1 (exp=, target=0x0, 
tmode=, modifier=EXPAND_NORMAL, alt_rtl=0x0)
at ../../gcc/expr.c:6525
#8  0x88004282 in ?? ()
#9  0x10408970 in expand_expr_real (exp=0xf7f78680, target=0x0, 
tmode=VOIDmode, modifier=EXPAND_NORMAL, alt_rtl=0x0)
at ../../gcc/expr.c:6638
#10 0x103df6b0 in output_ttype (type=0xf7f78680, tt_format=155, 
tt_format_size=4) at ../../gcc/expr.h:500
#11 0x103e3a90 in output_function_exception_table () at ../../gcc/except.c:3787
#12 0x4282 in ?? ()
#13 0x10416158 in rest_of_handle_final () at ../../gcc/final.c:3929
#14 0x105d9a00 in execute_one_pass (pass=0x1098d30c) at ../../gcc/passes.c:864
#15 0x105d9c08 in execute_pass_list (pass=0x1098d30c) at ../../gcc/passes.c:911
#16 0x105d9c20 in execute_pass_list (pass=0x1098de98) at ../../gcc/passes.c:912
#17 0x105d9c20 in execute_pass_list (pass=0x1098de64) at ../../gcc/passes.c:912
#18 0x102da51c in tree_rest_of_compilation (fndecl=0xf7efbb00)
at ../../gcc/tree-optimize.c:418
#19 0x1001d8a4 in gnat_expand_body (gnu_decl=0x10849bb8)
at ../../gcc/ada/misc.c:653
#20 0x1063f8d8 in cgraph_expand_function (node=0xf7f49300)
at ../../gcc/cgraphunit.c:1106
#21 0x10642c4c in cgraph_optimize () at ../../gcc/cgraphunit.c:1171
#22 0x1001e48c in gnat_parse_file (set_yydebug=)
at ../../gcc/ada/misc.c:245
#23 0x1059b724 in toplev_main (argc=, 
argv=) at ../../gcc/toplev.c:999
#24 0x102d04d0 in main (argc=277126072, argv=0x6f8) at ../../gcc/main.c:35
(gdb) up
#1  0x103d975c in change_address_1 (memref=0xf7976af0, mode=BLKmode, 
addr=0xf7a906e0, validate=)
at ../../gcc/emit-rtl.c:1784
1784gcc_assert (memory_address_p (mode, addr));
(gdb) p addr
$1 = (rtx) 0xf7a906e0
(gdb) pr
(symbol_ref:SI ("*.LANCHOR1") [flags 0x182])
(gdb) up
#2  0x103e73f0 in use_anchored_address (x=0xf7976af0) at ../../gcc/explow.c:592
592   return replace_equiv_address (x, plus_constant (base, offset));
(gdb) p x
$2 = (rtx) 0xf7976af0
(gdb) pr
(mem/s/c:BLK (symbol_ref:SI ("copy_error.1376") [flags 0x82] ) [98 copy_error+0 S24 A32])


-- 


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



[Bug tree-optimization/27550] New: [4.1 Regression] ICE in coalesce_abnormal_edges

2006-05-11 Thread jakub at gcc dot gnu dot org
typedef __SIZE_TYPE__ size_t;

struct E
{
  virtual ~E () {}
  virtual size_t e () const = 0;
  virtual void f (char *x) const = 0;
};

struct F : public E
{
  virtual ~F () {}
  virtual size_t e () const { return 0; }
  virtual void f (char *x) const { *x = '\0'; }
};

struct S
{
  S () { a = new char[32]; b = 32; c = 0; a[0] = 0; }
  void s (const char *x, size_t y) { v (c + y + 1); __builtin_memcpy(a + c, x,
y); c += y; a[c] = '\0'; }
  void s (const E *x) { size_t l = x->e(); v (c + l + 1); x->f (a + c); c += l;
}
  const char *t () { return a; }
  void v (size_t n)
{
  if (b >= n) return;

  size_t b2 = b;
  char *a2 = a;

  for (;;)
{
  b *= 2;
  if (b >= n)
break;
}

  a = new char[b];

  if (b2)
{
  __builtin_memcpy(a, a2, c);
  a2[0] = 0;
  for (size_t i = 1; i < b2; i++)
a2[i] = a2[i - 1];
  delete[] a2;
}
}

  ~S ()
{
  if (b)
{
  a[0] = 0;
  for (size_t i = 1; i < b; i++)
a[i] = a[i - 1];
}
  delete[] a;
}
  char * a;
  size_t b, c;
};

const char *p;
size_t q;
const F u;

const char *
foo ()
{
  S s;
  s.s (p, q);
  s.s (&u);
  return s.t ();
}

ICEs at -O{1,2,3} in coalesce_abnormal_edges, at least on x86_64 and i386
linux.


-- 
   Summary: [4.1 Regression] ICE in coalesce_abnormal_edges
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jakub at gcc dot gnu dot org


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



[Bug tree-optimization/27551] New: [4.1 Regression] ICE in coalesce_abnormal_edges

2006-05-11 Thread jakub at gcc dot gnu dot org
typedef __SIZE_TYPE__ size_t;

struct E
{
  virtual ~E () {}
  virtual size_t e () const = 0;
  virtual void f (char *x) const = 0;
};

struct F : public E
{
  virtual ~F () {}
  virtual size_t e () const { return 0; }
  virtual void f (char *x) const { *x = '\0'; }
};

struct S
{
  S () { a = new char[32]; b = 32; c = 0; a[0] = 0; }
  void s (const char *x, size_t y) { v (c + y + 1); __builtin_memcpy(a + c, x,
y); c += y; a[c] = '\0'; }
  void s (const E *x) { size_t l = x->e(); v (c + l + 1); x->f (a + c); c += l;
}
  const char *t () { return a; }
  void v (size_t n)
{
  if (b >= n) return;

  size_t b2 = b;
  char *a2 = a;

  for (;;)
{
  b *= 2;
  if (b >= n)
break;
}

  a = new char[b];

  if (b2)
{
  __builtin_memcpy(a, a2, c);
  a2[0] = 0;
  for (size_t i = 1; i < b2; i++)
a2[i] = a2[i - 1];
  delete[] a2;
}
}

  ~S ()
{
  if (b)
{
  a[0] = 0;
  for (size_t i = 1; i < b; i++)
a[i] = a[i - 1];
}
  delete[] a;
}
  char * a;
  size_t b, c;
};

const char *p;
size_t q;
const F u;

const char *
foo ()
{
  S s;
  s.s (p, q);
  s.s (&u);
  return s.t ();
}

ICEs at -O{1,2,3} in coalesce_abnormal_edges, at least on x86_64 and i386
linux.


-- 
   Summary: [4.1 Regression] ICE in coalesce_abnormal_edges
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jakub at gcc dot gnu dot org


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



[Bug tree-optimization/27550] [4.1 Regression] ICE in coalesce_abnormal_edges

2006-05-11 Thread jakub at gcc dot gnu dot org


--- Comment #1 from jakub at gcc dot gnu dot org  2006-05-11 09:06 ---
Oops, sorry.

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


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug tree-optimization/27549] [4.1 Regression] ICE in coalesce_abnormal_edges

2006-05-11 Thread jakub at gcc dot gnu dot org


--- Comment #3 from jakub at gcc dot gnu dot org  2006-05-11 09:06 ---
*** Bug 27550 has been marked as a duplicate of this bug. ***


-- 


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



[Bug tree-optimization/27551] [4.1 Regression] ICE in coalesce_abnormal_edges

2006-05-11 Thread jakub at gcc dot gnu dot org


--- Comment #1 from jakub at gcc dot gnu dot org  2006-05-11 09:06 ---
Oops, sorry.

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


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug tree-optimization/27549] [4.1 Regression] ICE in coalesce_abnormal_edges

2006-05-11 Thread jakub at gcc dot gnu dot org


--- Comment #4 from jakub at gcc dot gnu dot org  2006-05-11 09:06 ---
*** Bug 27551 has been marked as a duplicate of this bug. ***


-- 


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



[Bug tree-optimization/27549] [4.1 Regression] ICE in coalesce_abnormal_edges

2006-05-11 Thread jakub at gcc dot gnu dot org


--- Comment #5 from jakub at gcc dot gnu dot org  2006-05-11 09:07 ---
Yes, PR 27283 patch fixes this.  So, we need it on gcc-4_1-branch too...


-- 


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



[Bug tree-optimization/27548] [4.2 regression] ICE: SSA corruption - Conflict across an abnormal edge

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


--- Comment #3 from pinskia at gcc dot gnu dot org  2006-05-11 09:22 ---
This is a SCCP issue:
--- t.cc.073t.lim   2006-05-11 02:21:50.0 -0700
+++ t.cc.075t.sccp  2006-05-11 02:21:50.0 -0700
@@ -53,8 +53,8 @@ void f(int&) (to_be_zapped)
 :;
   goto  ();

-  # i_29 = PHI ;
 :;
+  i_29 = NewMins$maxdex_2(ab);

   # i_7 = PHI ;
 :;

-
Reduced testcase:
void g(void);
struct Array
{
int mindex, maxdex;
int InsertAt (const int & t, int n)
{
int *new_data = new int[++this->maxdex - this->mindex + 1];
int i;
for (i = this->mindex; i <= n - 1; i++)
new_data[i] = 1;
new_data[i] = t;
}
Array (void) : mindex (1) {}
};
int NoIndices(void);
void f (int &to_be_zapped)
{
Array NewMins;
int i;
try
{
for (i = 1; i <= NoIndices (); i++)
NewMins.InsertAt (to_be_zapped, NewMins.maxdex);
}catch(...) {}
if (NewMins.maxdex >= 1)
g();
}


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug tree-optimization/27548] [4.2 regression] ICE: SSA corruption - Conflict across an abnormal edge

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


--- Comment #4 from pinskia at gcc dot gnu dot org  2006-05-11 09:23 ---
Oh, note with my reduced testcase you have to compile with -fno-ivopts.


-- 


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



[Bug fortran/25090] Bad automatic character length

2006-05-11 Thread paul dot richard dot thomas at cea dot fr


--- Comment #1 from paul dot richard dot thomas at cea dot fr  2006-05-11 
10:22 ---
The following patch fixes this bug.  It makes use of existing calls to
gfc_resolve_expr, whilst resolving specification expressions, to check that
variables used are parameters of each and every entry.  Since existing code is
recycled and the test in gfc_resolve_epr is pretty exclusive, the load on
resolution is negligible.

I will submit asap.

Paul

Index: gcc/fortran/resolve.c
===
--- gcc/fortran/resolve.c   (révision 113111)
+++ gcc/fortran/resolve.c   (copie de travail)
@@ -60,6 +60,9 @@
resets the flag each time that it is read.  */
 static int formal_arg_flag = 0;

+/* True if we are resolving a specification expression.  */
+static int resolving_index_expr = 0;
+
 int
 gfc_is_formal_arg (void)
 {
@@ -2623,6 +2639,50 @@
 }


+/* Emits an error if the expression is a variable that is
+   not a parameter in all entry formal argument lists for
+   the namespace.  */
+
+static void
+entry_parameter (gfc_expr *e)
+{
+  gfc_symbol *sym, *esym;
+  gfc_entry_list *entry;
+  gfc_formal_arglist *f;
+  bool p;
+
+  if (e->expr_type != EXPR_VARIABLE)
+return;
+
+  sym = e->symtree->n.sym;
+  if (sym->ns->entries
+   && !sym->attr.use_assoc
+   && sym->attr.dummy
+   && sym->ns == gfc_current_ns)
+{
+  entry = sym->ns->entries;
+  for (; entry; entry = entry->next)
+   {
+ esym = entry->sym;
+ p = false;
+ f = esym->formal;
+ for (; f && !p; f = f->next)
+   {
+ if (f->sym && f->sym->name
+   && sym->name == f->sym->name)
+   {
+ p = true;
+   }
+   }
+ if (!p)
+   gfc_error ("%s at %L must be a parameter of the entry at %L",
+  sym->name, &e->where, &esym->declared_at);
+   }
+}
+  return;
+}
+
+
 /* Resolve an expression.  That is, make sure that types of operands agree
with their operators, intrinsic operators are converted to function calls
for overloaded types and unresolved function references are resolved.  */
@@ -2647,6 +2707,10 @@

 case EXPR_VARIABLE:
   t = resolve_variable (e);
+
+  if (gfc_current_ns->entries && resolving_index_expr)
+   entry_parameter (e);
+
   if (t == SUCCESS)
expression_rank (e);
   break;
@@ -4597,7 +4661,6 @@
 static try
 resolve_index_expr (gfc_expr * e)
 {
-
   if (gfc_resolve_expr (e) == FAILURE)
 return FAILURE;

@@ -4620,9 +4683,12 @@

   cl->resolved = 1;

+  resolving_index_expr = 1;
+
   if (resolve_index_expr (cl->length) == FAILURE)
 return FAILURE;

+  resolving_index_expr = 0;
   return SUCCESS;
 }

@@ -4709,20 +4775,29 @@
   if (resolve_fl_var_and_proc (sym, mp_flag) == FAILURE)
 return FAILURE;

-  /* The shape of a main program or module array needs to be constant.  */
-  if (sym->ns->proc_name
-   && (sym->ns->proc_name->attr.flavor == FL_MODULE
-|| sym->ns->proc_name->attr.is_main_program)
-   && !sym->attr.use_assoc
+  /* Set this flag to check that variables are parameters of all entries.
+ This check is effected by the call to gfc_resolve_expr through
+ is_non_contant_shape_array.  */
+  resolving_index_expr = 1;
+
+  if (!sym->attr.use_assoc
&& !sym->attr.allocatable
&& !sym->attr.pointer
&& is_non_constant_shape_array (sym))
 {
-   gfc_error ("The module or main program array '%s' at %L must "
-"have constant shape", sym->name, &sym->declared_at);
- return FAILURE;
+   /* The shape of a main program or module array needs to be constant. 
*/
+   if (sym->ns->proc_name
+ && (sym->ns->proc_name->attr.flavor == FL_MODULE
+   || sym->ns->proc_name->attr.is_main_program))
+ {
+   gfc_error ("The module or main program array '%s' at %L must "
+  "have constant shape", sym->name, &sym->declared_at);
+   return FAILURE;
+ }
 }

+  resolving_index_expr = 0;
+
   if (sym->ts.type == BT_CHARACTER)
 {
   /* Make sure that character string variables with assumed length are


-- 


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



[Bug tree-optimization/27548] [4.2 regression] ICE: SSA corruption - Conflict across an abnormal edge

2006-05-11 Thread rakdver at gcc dot gnu dot org


-- 

rakdver at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |rakdver at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2006-05-11 09:22:21 |2006-05-11 10:56:00
   date||


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



[Bug c++/26757] [4.1/4.2 regression] C++ front-end producing two DECLs with the same UID

2006-05-11 Thread tbm at cyrius dot com


--- Comment #19 from tbm at cyrius dot com  2006-05-11 11:03 ---
(In reply to comment #17)
> Created an attachment (id=11336)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11336&action=view) [edit]
> Possible patch
> 
> Maybe.  there is a work around I have an initial patch for.  It re-covers up
> the problem I think :-)

Andrew, what's the status of this patch?


-- 

tbm at cyrius dot com changed:

   What|Removed |Added

 CC||tbm at cyrius dot com


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



[Bug c++/26755] [4.0 regression] may fail to generate code for base destructor defined inline with pragma interface

2006-05-11 Thread tbm at cyrius dot com


--- Comment #9 from tbm at cyrius dot com  2006-05-11 11:05 ---
(In reply to comment #8)
> 4.1.0 is correct as it is the same as 3.4.x.  4.0.x is incorrect and does not
> correspond to 3.4.x.  So this is a bug in 4.0.x and not in 4.1.0.
> 
> Confirmed.  Thanks for the short testcase.

Do you think this will be fixed in 4.0.x?


-- 


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



[Bug fortran/27552] New: -fdump-parse-tree doesn't like Holleriths (but then, who does?)

2006-05-11 Thread fxcoudert at gcc dot gnu dot org
The following testcases encounter an ICE when compiled with -fdump-parse-tree:
hollerith2.f90, hollerith4.f90, hollerith_f95.f90 and hollerith_legacy.f90 (in
the gfortran.dg testsuite directory)

(I've been compiling the whole testsuite with -fdump-parse-tree to isolate
potential problems with -fdump-parse-tree, as a consequence of PR 27320).


-- 
   Summary: -fdump-parse-tree doesn't like Holleriths (but then, who
does?)
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Keywords: ice-on-valid-code
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: fxcoudert at gcc dot gnu dot org


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



[Bug fortran/27553] New: Testsuite ICE with -Wall

2006-05-11 Thread fxcoudert at gcc dot gnu dot org
label_2.f90, from the testsuite, encounters an ICE when compiled with -Wall:

$ cat src/label_2.f90 
! { dg-do compile }
! PR fortran/24640.  We needed to check that whitespace follows
! a statement label in free form.
!
program pr24640

10: a=10   ! { dg-error "character in statement" }

end program

$ gfortran -c src/label_2.f90 -Wall
 In file src/label_2.f90:7

10: a=10   ! { dg-error "character in statement" }
  1
Error: Non-numeric character in statement label at (1)
src/label_2.f90:0: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html> for instructions.


-- 
   Summary: Testsuite ICE with -Wall
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Keywords: ice-on-invalid-code
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: fxcoudert at gcc dot gnu dot org


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



[Bug fortran/25392] ICEs with -ff2c

2006-05-11 Thread fxcoudert at gcc dot gnu dot org


--- Comment #4 from fxcoudert at gcc dot gnu dot org  2006-05-11 11:36 
---
File entry-4.f90 from the gfortran testsuite also ICEs with -ff2c:

$ gfortran -c entry_4.f90 -ff2c
src/entry_4.f90: In function ‘f2’:
src/entry_4.f90:12: internal compiler error: in make_decl_rtl, at varasm.c:1002


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||fxcoudert at gcc dot gnu dot
   ||org
   Last reconfirmed|2006-01-27 20:44:10 |2006-05-11 11:36:23
   date||


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



Bug in gfortran libraries statically linked in Linux

2006-05-11 Thread gerdy

I found an other bug in gfortran now for the Linux distribution only.
You must be able to link the gfortran libraries static or linked.
For the linked *.so no problem
For the static *.a it did not work and at the compilation time.
To force the linker to compile the gfortran libraries static and not linked, 
you change the name of the *.so libraries and do not touch the *.a 
libraries.
The -static does not work because now, all the libraries must be static, and 
it did not work with libX11.a, the same problem
so I use this patch : rename the *.so gfortran files such as to only have 
static gfortran files and the others linked.
My program is a mix gfortran and C. You can load the files on my site if 
necessary : http://perso.wanadoo.fr/claude.gerdy on :

download->Linux->new->install.zip
If I use the Intel compiler (freeware with Linux) Fortran95 ifort and C icc 
with the command -i-static which make an exec files with the intel libraries 
only static it works but not with -static because problem with libX11.a.
I have not this problem with Windows because all the libraries are static 
with no choice.
So if you distribute exec files, they must be statically linked with the 
fortran libraries, with Linux I use the Intel compiler on my site and 
gfortran with Windows. All my readers have not the gfortran libraries on 
there Linux system, so static link is vital for my site. 






[Bug fortran/27554] New: Strange assembler produced

2006-05-11 Thread fxcoudert at gcc dot gnu dot org
Humpf, that one is scary... can't even think of what to put as a Summary :)

$ cat abs_complex.f90 
  real x
  x = abs(x)
  call foo(abs)
  end
$ ./bin/gfortran abs_complex.f90 -c
/tmp/ccdGqqDj.s: Assembler messages:
/tmp/ccdGqqDj.s:14: Error: junk `(intrinsic)__abs' after expression

Indeed, the assembler produced on i686-linux is not very nice; note the "movl
$__(intrinsic)__abs, (%esp)" line:

.file   "abs_complex.f90"
.text
.globl MAIN__
.type   MAIN__, @function
MAIN__:
pushl   %ebp
movl%esp, %ebp
subl$40, %esp
movl$0, 8(%esp)
movl$127, 4(%esp)
movl$70, (%esp)
call_gfortran_set_std
andb$127, -1(%ebp)
movl$__(intrinsic)__abs, (%esp)
callfoo_
leave
ret
.size   MAIN__, .-MAIN__
.ident  "GCC: (GNU) 4.2.0 20060510 (experimental)"
.section.note.GNU-stack,"",@progbits


-- 
   Summary: Strange assembler produced
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Keywords: wrong-code
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: fxcoudert at gcc dot gnu dot org


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



[Bug fortran/25082] Subroutine with RETURN value, ICE in gfc_conv_scalarized_array_ref

2006-05-11 Thread paul dot richard dot thomas at cea dot fr


--- Comment #2 from paul dot richard dot thomas at cea dot fr  2006-05-11 
14:02 ---
The patch is simple:

12.5.2.6 RETURN statement
R1226 return-stmt is RETURN [ scalar-int-expr ]

The int-expr part is implemented in resolve.c(resolve_code); a further
condition has been imposed to implement scalar-int-expr.

Paul

Index: gcc/fortran/resolve.c
===
--- gcc/fortran/resolve.c   (r├®vision 113694)
+++ gcc/fortran/resolve.c   (copie de travail)
@@ -4345,9 +4345,10 @@
  break;

case EXEC_RETURN:
- if (code->expr != NULL && code->expr->ts.type != BT_INTEGER)
-   gfc_error ("Alternate RETURN statement at %L requires an INTEGER "
-  "return specifier", &code->expr->where);
+ if (code->expr != NULL
+   && (code->expr->ts.type != BT_INTEGER || code->expr->rank))
+   gfc_error ("Alternate RETURN statement at %L requires an SCALAR-"
+  "INTEGER return specifier", &code->expr->where);
  break;

case EXEC_ASSIGN:


-- 


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



[Bug target/27158] [4.1/4.2 regression] ICE in extract_insn with -maltivec

2006-05-11 Thread sayle at gcc dot gnu dot org


--- Comment #16 from sayle at gcc dot gnu dot org  2006-05-11 14:17 ---
Subject: Bug 27158

Author: sayle
Date: Thu May 11 14:17:19 2006
New Revision: 113695

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113695
Log:

PR target/27158
* reload.c (find_reloads_toplev): Only return the simplified SUBREG
of a reg_equiv_constant if the result is a legitimate constant.

* gcc.target/powerpc/pr27158.c: New test case.


Added:
branches/gcc-4_1-branch/gcc/testsuite/gcc.target/powerpc/pr27158.c
Modified:
branches/gcc-4_1-branch/gcc/ChangeLog
branches/gcc-4_1-branch/gcc/reload.c
branches/gcc-4_1-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug tree-optimization/27003] [4.0 Regression] ivcanon bug

2006-05-11 Thread rakdver at gcc dot gnu dot org


--- Comment #2 from rakdver at gcc dot gnu dot org  2006-05-11 14:19 ---
Patch: http://gcc.gnu.org/ml/gcc-patches/2006-05/msg00463.html


-- 

rakdver at gcc dot gnu dot org changed:

   What|Removed |Added

URL||http://gcc.gnu.org/ml/gcc-
   ||patches/2006-
   ||05/msg00463.html
   Keywords||patch


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



[Bug c/27556] New: Wrong code generation when cross compile for attiny2313

2006-05-11 Thread p dot mateja at sh dot cvut dot cz
I found a bug in gcc compiler. I'm trying to cross compile simple program using
debian package avr-gcc (gcc version 4.1.0) using command

avr-gcc -mmcu=attiny2313 -Wall -Os -c test.c

I have problem with very simple code when using array bigger than 128 bytes.

char text[] = "AB... YZ"; // 128 characters
char *pointer = text;

while (*pointer) {
UDR = *pointer;
while ( !(UCSRA & (1<   ldi r24,lo8(-128)

There is no other code working with the higher byte.
r* registers are just 8bit so it can't work at all.


-- 
   Summary: Wrong code generation when cross compile for attiny2313
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Severity: critical
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: p dot mateja at sh dot cvut dot cz
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: attiny2313


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



[Bug c++/27547] [4.0/4.1/4.2 regression] ICE on invalid operator=

2006-05-11 Thread reichelt at gcc dot gnu dot org


--- Comment #2 from reichelt at gcc dot gnu dot org  2006-05-11 14:41 
---
Subject: Bug 27547

Author: reichelt
Date: Thu May 11 14:41:03 2006
New Revision: 113696

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113696
Log:
PR c++/27547
* decl.c (copy_fn_p): Return early on non-member functions.

* g++.dg/other/operator1.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/other/operator1.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/decl.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/27557] New: OpenMP threadprivate directive does not work with non-POD types

2006-05-11 Thread Georg dot Baum at post dot rwth-aachen dot de
Compiling the fragment

struct A {
A() {}
};
extern A a;
#pragma omp threadprivate(a)
A a;

with svn from yesterday yields
LANG=C g++-4.2 -fopenmp -c x.cpp -o x.o
x.cpp:6: error: 'a' cannot be thread-local because it has non-POD type 'A'
x.cpp:6: error: 'a' is thread-local and so cannot be dynamically initialized

It works if I remove the definition of a (last line).
I could not find anything in the OpenMP spec (version 2.5) stating that non-POD
threadprivate variables are not allowed. If I change the above to

struct A {
A() {}
};
A a;
#pragma omp threadprivate(a)

I get

LANG=C g++-4.2 -fopenmp -c x.cpp -o x.o
x.cpp:5: error: 'a' declared 'threadprivate' after first use

I believe that both variants are allowed by the OpenMP spec (version 2.5) and
they compile fine with icc 8.1. The spec says something about non-POD
variaables with explicit initializers in section 2.8.2 on page 69, but that
does not apply here. Please correct me if I am wrong.


-- 
   Summary: OpenMP threadprivate directive does not work with non-
POD types
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: Georg dot Baum at post dot rwth-aachen dot de


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



[Bug c++/27547] [4.0/4.1/4.2 regression] ICE on invalid operator=

2006-05-11 Thread reichelt at gcc dot gnu dot org


--- Comment #3 from reichelt at gcc dot gnu dot org  2006-05-11 14:46 
---
Subject: Bug 27547

Author: reichelt
Date: Thu May 11 14:45:56 2006
New Revision: 113697

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113697
Log:
PR c++/27547
* decl.c (copy_fn_p): Return early on non-member functions.

* g++.dg/other/operator1.C: New test.

Added:
branches/gcc-4_1-branch/gcc/testsuite/g++.dg/other/operator1.C
Modified:
branches/gcc-4_1-branch/gcc/cp/ChangeLog
branches/gcc-4_1-branch/gcc/cp/decl.c
branches/gcc-4_1-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug c/27558] New: Wrong type in warning

2006-05-11 Thread jm at bourguet dot org
Compiling this code:

#include 

void f(char* line) {
char test_char[40];
sscanf(line, "%s", &test_char);
}

gives the following warning:
warning: format '%s' expects type 'char *', but argument 3 has type 'char
(*)[39u]'

I'd have though that &test_char had type char (*)[40].


-- 
   Summary: Wrong type in warning
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jm at bourguet dot org


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



[Bug c++/27547] [4.0/4.1/4.2 regression] ICE on invalid operator=

2006-05-11 Thread reichelt at gcc dot gnu dot org


--- Comment #4 from reichelt at gcc dot gnu dot org  2006-05-11 14:49 
---
Subject: Bug 27547

Author: reichelt
Date: Thu May 11 14:49:17 2006
New Revision: 113698

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113698
Log:
PR c++/27547
* decl.c (copy_fn_p): Return early on non-member functions.

* g++.dg/other/operator1.C: New test.

Added:
branches/gcc-4_0-branch/gcc/testsuite/g++.dg/other/operator1.C
Modified:
branches/gcc-4_0-branch/gcc/cp/ChangeLog
branches/gcc-4_0-branch/gcc/cp/decl.c
branches/gcc-4_0-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/27547] [4.0/4.1/4.2 regression] ICE on invalid operator=

2006-05-11 Thread reichelt at gcc dot gnu dot org


--- Comment #5 from reichelt at gcc dot gnu dot org  2006-05-11 14:53 
---
Fixed on mainline, 4.1 branch, and 4.0 branch.


-- 

reichelt at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug middle-end/27488] [4.1/4.2 regression] ICE in tree_expr_nonnegative_p

2006-05-11 Thread reichelt at gcc dot gnu dot org


--- Comment #4 from reichelt at gcc dot gnu dot org  2006-05-11 14:59 
---
Subject: Bug 27488

Author: reichelt
Date: Thu May 11 14:58:54 2006
New Revision: 113699

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113699
Log:
PR middle-end/27488
* fold-const.c (tree_expr_nonnegative_p): Return early on invalid
expression.

* gcc.dg/fold-nonneg-1.c: New test.

Added:
trunk/gcc/testsuite/gcc.dg/fold-nonneg-1.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/fold-const.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug middle-end/27488] [4.1/4.2 regression] ICE in tree_expr_nonnegative_p

2006-05-11 Thread reichelt at gcc dot gnu dot org


--- Comment #5 from reichelt at gcc dot gnu dot org  2006-05-11 15:01 
---
Subject: Bug 27488

Author: reichelt
Date: Thu May 11 15:01:40 2006
New Revision: 113700

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113700
Log:
PR middle-end/27488
* fold-const.c (tree_expr_nonnegative_p): Return early on invalid
expression.

* gcc.dg/fold-nonneg-1.c: New test.

Added:
branches/gcc-4_1-branch/gcc/testsuite/gcc.dg/fold-nonneg-1.c
Modified:
branches/gcc-4_1-branch/gcc/ChangeLog
branches/gcc-4_1-branch/gcc/fold-const.c
branches/gcc-4_1-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug middle-end/27488] [4.1/4.2 regression] ICE in tree_expr_nonnegative_p

2006-05-11 Thread reichelt at gcc dot gnu dot org


--- Comment #6 from reichelt at gcc dot gnu dot org  2006-05-11 15:02 
---
Fixed on mainline and 4.1 branch.


-- 

reichelt at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c/27556] Wrong code generation when cross compile for attiny2313

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


--- Comment #1 from rguenth at gcc dot gnu dot org  2006-05-11 15:07 ---
That's not a complete testcase, which we need to reproduce/fix the bug.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING


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



[Bug c++/27384] [4.0/4.1/4.2 regression] ICE with invalid array size

2006-05-11 Thread reichelt at gcc dot gnu dot org


--- Comment #4 from reichelt at gcc dot gnu dot org  2006-05-11 15:08 
---
Subject: Bug 27384

Author: reichelt
Date: Thu May 11 15:07:45 2006
New Revision: 113701

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113701
Log:
PR middle-end/27384
* fold-const.c (size_binop): Move sanity check for arguments to
the beginning of the function.

* g++.dg/other/fold1.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/other/fold1.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/fold-const.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/27384] [4.0/4.1/4.2 regression] ICE with invalid array size

2006-05-11 Thread reichelt at gcc dot gnu dot org


--- Comment #5 from reichelt at gcc dot gnu dot org  2006-05-11 15:12 
---
Subject: Bug 27384

Author: reichelt
Date: Thu May 11 15:11:50 2006
New Revision: 113702

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113702
Log:
PR middle-end/27384
* fold-const.c (size_binop): Move sanity check for arguments to
the beginning of the function.

* g++.dg/other/fold1.C: New test.

Added:
branches/gcc-4_1-branch/gcc/testsuite/g++.dg/other/fold1.C
Modified:
branches/gcc-4_1-branch/gcc/ChangeLog
branches/gcc-4_1-branch/gcc/fold-const.c
branches/gcc-4_1-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug middle-end/27536] [4.2 Regression] -fsection-anchors breaks Ada

2006-05-11 Thread dje at gcc dot gnu dot org


--- Comment #4 from dje at gcc dot gnu dot org  2006-05-11 15:13 ---
It looks like something in exception handling is creating a new object very
late, after reload, and the new address is not validized before being handed to
replace_equiv_address().

Should explow.c:use_anchored_address() add

  if (reload_in_progress || reload_completed)
return x;

Either the block should not be created so late or it should be validized. 
Although, I am curious how this works in expand_expr_real_1 when section
anchors is not enabled.


-- 

dje at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||richard at codesourcery dot
   ||com


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



[Bug c++/27384] [4.0/4.1/4.2 regression] ICE with invalid array size

2006-05-11 Thread reichelt at gcc dot gnu dot org


--- Comment #6 from reichelt at gcc dot gnu dot org  2006-05-11 15:17 
---
Subject: Bug 27384

Author: reichelt
Date: Thu May 11 15:16:49 2006
New Revision: 113703

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113703
Log:
PR middle-end/27384
* fold-const.c (size_binop): Move sanity check for arguments to
the beginning of the function.

* g++.dg/other/fold1.C: New test.

Added:
branches/gcc-4_0-branch/gcc/testsuite/g++.dg/other/fold1.C
Modified:
branches/gcc-4_0-branch/gcc/ChangeLog
branches/gcc-4_0-branch/gcc/fold-const.c
branches/gcc-4_0-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/27384] [4.0/4.1/4.2 regression] ICE with invalid array size

2006-05-11 Thread reichelt at gcc dot gnu dot org


--- Comment #7 from reichelt at gcc dot gnu dot org  2006-05-11 15:17 
---
Fixed on mainline, 4.1 branch, and 4.0 branch.


-- 

reichelt at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/27559] New: [4.2 regression] ICE on templated operator new

2006-05-11 Thread reichelt at gcc dot gnu dot org
The following testcase ICEs on mainline:

===
struct A
{
template
static void* operator new(T) {}
};
===

bug.cc:4: error: 'operator new' takes type 'size_t' ('long unsigned int') as
first parameter
bug.cc:4: error: invalid template declaration of 'static void* A::operator
new(long unsigned int)'
bug.cc:4: error: invalid member template declaration 'static void* A::operator
new(long unsigned int)'
bug.cc: In static member function 'static void* A::operator new(long unsigned
int)':
bug.cc:4: internal compiler error: in dependent_type_p, at cp/pt.c:12383
Please submit a full bug report, [etc.]


-- 
   Summary: [4.2 regression] ICE on templated operator new
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Keywords: ice-on-invalid-code, error-recovery, monitored
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: reichelt at gcc dot gnu dot org


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



[Bug c++/27559] [4.2 regression] ICE on templated operator new

2006-05-11 Thread reichelt at gcc dot gnu dot org


--- Comment #1 from reichelt at gcc dot gnu dot org  2006-05-11 15:35 
---
Testing a patch.


-- 

reichelt at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |reichelt at gcc dot gnu dot
   |dot org |org
   Severity|normal  |minor
   Target Milestone|--- |4.2.0


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



[Bug c++/27560] New: template function not recognized when invoked with enum defined in function

2006-05-11 Thread ian at airs dot com
Compiling this file, with mainline, gcc 4.0, or 4.1

template void f(t a) { }
void g() { enum e { v }; f(v); }

gives this error message:

foo.cc: In function ‘void g()’:
foo.cc:2: error: no matching function for call to ‘f(g()::e)’

If the enum definition is moved out of the function, this works.  With gcc 3.2,
this works.  I didn't try 3.4.

My C++ fu is weak, and I do not know for sure that this is valid C++, although
I don't see anything wrong with it.  But either 1) it is valid and gcc should
accept it, or 2) gcc should provide a list of candidates which did not match,
since there is manifestly a function named 'f'.


-- 
   Summary: template function not recognized when invoked with enum
defined in function
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: ian at airs dot com


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



[Bug fortran/18315] missing error for incompatible array assignment involving lbound

2006-05-11 Thread paul dot richard dot thomas at cea dot fr


--- Comment #5 from paul dot richard dot thomas at cea dot fr  2006-05-11 
15:54 ---

> I think what is happening is that lbound's type is becoming a scalar and not 
> > an array with size of 1.

I believe that I fixed this with either the bounds scalarization patch or some
of the work on conformance or both.  Will close tonight.

Paul

Note the following:

[EMAIL PROTECTED] /cygdrive/d/svn/prs
$ cat pr18315.f90;rm a.exe;/irun/bin/gfortran pr18315.f90;./a
program main
  implicit none
  real :: a(0:9)
  integer :: bn(10)
  bn(1:1) = lbound(a)
  print *, bn(1)
end program main
   0

[EMAIL PROTECTED] /cygdrive/d/svn/prs
$ cat pr18315.f90;rm a.exe;/irun/bin/gfortran pr18315.f90;./a
program main
  implicit none
  real :: a(0:9)
  integer :: bn(10)
  bn = lbound(a)
  print *, bn(1)
end program main
 In file pr18315.f90:5

  bn = lbound(a)
   1
Error: different shape for Array assignment at (1) on dimension 1 (10/1)
bash: ./a: No such file or directory

[EMAIL PROTECTED] /cygdrive/d/svn/prs
$ cat pr18315.f90;rm a.exe;/irun/bin/gfortran pr18315.f90;./a
program main
  implicit none
  real :: a(0:9)
  integer :: bn(10)
  bn(1) = lbound(a)
  print *, bn(1)
end program main
rm: cannot remove `a.exe': No such file or directory
 In file pr18315.f90:5

  bn(1) = lbound(a)
   1
Error: Incompatible ranks 0 and 1 in assignment at (1)
bash: ./a: No such file or directory


-- 

paul dot richard dot thomas at cea dot fr changed:

   What|Removed |Added

 CC||paul dot richard dot thomas
   ||at cea dot fr


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



[Bug c/27558] Wrong type in warning

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


--- Comment #1 from pinskia at gcc dot gnu dot org  2006-05-11 15:55 ---
I cannot reproduce this in "4.1.0 20060208" or "4.2.0 20060507".

t.c:5: warning: format '%s' expects type 'char *', but argument 3 has type
'char (*)[40]'


-- 


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



[Bug middle-end/27536] [4.2 Regression] -fsection-anchors breaks Ada

2006-05-11 Thread richard at codesourcery dot com


--- Comment #5 from richard at codesourcery dot com  2006-05-11 15:56 
---
Subject: Re:  [4.2 Regression] -fsection-anchors breaks Ada

"dje at gcc dot gnu dot org" <[EMAIL PROTECTED]> writes:
> It looks like something in exception handling is creating a new object
> very late, after reload, and the new address is not validized before
> being handed to replace_equiv_address().
>
> Should explow.c:use_anchored_address() add
>
>   if (reload_in_progress || reload_completed)
> return x;
>
> Either the block should not be created so late or it should be validized. 
> Although, I am curious how this works in expand_expr_real_1 when section
> anchors is not enabled.

I find this a little surprising too.  Could someone do:

call debug_tree (...)

on the type that output_ttype is trying to expand?

Richard


-- 


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



[Bug c++/27560] template function not recognized when invoked with enum defined in function

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


--- Comment #1 from pinskia at gcc dot gnu dot org  2006-05-11 15:58 ---
This is not valid, the type is a local type which causes it be rejected for
templates.  The same happens with local classes.


-- 

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



[Bug c++/27560] template function not recognized when invoked with enum defined in function

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


--- Comment #2 from pinskia at gcc dot gnu dot org  2006-05-11 16:07 ---
14.3.1/2
A local type, a type with no linkage, an unnamed type or a type compounded from
any of these types shall 
not be used as atemplate-argument for a template type-parameter.


-- 


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



[Bug middle-end/27536] [4.2 Regression] -fsection-anchors breaks Ada

2006-05-11 Thread schwab at suse dot de


--- Comment #6 from schwab at suse dot de  2006-05-11 16:08 ---
 
unit size 
align 32 symtab -135699664 alias set 98 fields  Ada size 
pointer_to_this  chain >
sizes-gimplified unsigned SI
size 
unit size 
user align 32 symtab 0 alias set -1>
constant invariant
arg 0 
addressable used static BLK file g-os_lib.adb line 296 size
 unit size 
align 32 context 
initial 
(mem/s/c:BLK (symbol_ref:SI ("copy_error.1376") [flags 0x82] ) [98 copy_error+0 S24 A32])
chain 
ignored VOID file g-os_lib.adb line 296
align 1 context 
chain >>>


-- 


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



[Bug c++/16625] Discarded Linkonce sections in .rodata

2006-05-11 Thread perry at kundert dot ca


--- Comment #28 from perry at kundert dot ca  2006-05-11 16:12 ---
This test case *still* exhibits the failure using only g++ 3.3.6, and binutils
2.16.1:

[EMAIL PROTECTED]:binutils-bug$ apt-show-versions g++-3.3
g++-3.3/testing uptodate 1:3.3.6-13
[EMAIL PROTECTED]:binutils-bug$ apt-show-versions binutils
binutils/testing uptodate 2.16.1cvs20060413-1
[EMAIL PROTECTED]:binutils-bug$  cat GNUmakefile
all: main
clean:
rm *.o
lib1.o: lib1.C
lib2.o: lib2.C
main: main.C lib1.o lib2.o
[EMAIL PROTECTED]:binutils-bug$ make clean all
rm *.o
g++-c -o lib1.o lib1.C
g++-c -o lib2.o lib2.C
g++ main.C lib1.o lib2.o   -o main
`.gnu.linkonce.t._ZN3Foo1fEi' referenced in section `.rodata' of lib2.o:
defined in discarded section `.gnu.linkonce.t._ZN3Foo1fEi' of lib2.o
collect2: ld returned 1 exit status
make: *** [main] Error 1
[EMAIL PROTECTED]:binutils-bug$




(In reply to comment #27)
> Here's a relatively simple test case, in case anyone wants one, that 
> reproduces
> either this problem, or a very similar one.  It requires a mix of compilers,
> and of optimization selections, to reproduce, though.  One gcc 3 compiler and
> one gcc 4 one should do it.
> 
> 
> $ cat foo.h
> class Foo {
>  public:
>   virtual ~Foo() {}
>   virtual inline int f(int x) {
> switch (x) {
>   case 0: return 0; break;
>   case 1: return 1; break;
>   case 2: return 2; break;// cases 0 to 2 bulk out the switch 
> statement
> 
>   case 3: return 999; break;  // cases 3 and 4 can be coalesced
>   case 4: return 999; break;
> }
> return -1;
>   }
> };
> 
> extern int g(int);
> extern int h();
> 
> $ cat lib1.cc
> #include "foo.h"
> 
> int g(int i) {
>   Foo f;
>   return f.f(i);
> }
> 
> $ cat lib2.cc
> #include "foo.h"
> 
> int h() {
>   Foo f;
>   return f.f(0) + g(0);
> }
> 
> $ cat main.cc
> #include "foo.h"
> 
> int main() {
>   return g(0) + h();
> }
> 
> $ ./g++-3.4.5 -Wall -W -pedantic -O2 -c lib1.cc
> $ ./g++-3.4.5 -Wall -W -pedantic -O0 -c lib2.cc
> $ ./g++-4.1.0 -Wall -W -pedantic -o main lib1.o lib2.o main.cc
> /path/to/i686-unknown-linux-gnu/bin/ld: `.gnu.linkonce.t._ZN3Foo1fEi'
> referenced in section `.rodata' of lib2.o: defined in discarded section
> `.gnu.linkonce.t._ZN3Foo1fEi' of lib2.o
> ... and so on
> 
> In this case, the ld in gcc 4.1 is version 2.16.1.
> 


-- 

perry at kundert dot ca changed:

   What|Removed |Added

 CC||perry at kundert dot ca


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



[Bug c++/16625] Discarded Linkonce sections in .rodata

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


--- Comment #29 from pinskia at gcc dot gnu dot org  2006-05-11 16:16 
---
(In reply to comment #28)
> This test case *still* exhibits the failure using only g++ 3.3.6, and binutils
> 2.16.1:

Well 3.3.x is no longer being updated (likewise for 3.4.x).


-- 


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



[Bug middle-end/27536] [4.2 Regression] -fsection-anchors breaks Ada

2006-05-11 Thread richard at codesourcery dot com


--- Comment #7 from richard at codesourcery dot com  2006-05-11 16:18 
---
Subject: Re:  [4.2 Regression] -fsection-anchors breaks Ada

Thanks Andreas.  I might be barking up the wrong tree here, but it seems
odd to me is that output_ttype is using expand_normal () to expand this
tree.  That in general allows arbitrary code to be generated.

output_ttype does seem to want an assembly constant.  Shouldn't it be
using EXPAND_INITIALIZER instead?

Richard


-- 


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



[Bug target/27158] [4.1/4.2 regression] ICE in extract_insn with -maltivec

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


--- Comment #17 from pinskia at gcc dot gnu dot org  2006-05-11 16:19 
---
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=27158



[Bug c++/27560] template function not recognized when invoked with enum defined in function

2006-05-11 Thread gdr at integrable-solutions dot net


--- Comment #3 from gdr at integrable-solutions dot net  2006-05-11 16:24 
---
Subject: Re:   New: template function not recognized when invoked with enum
defined in function

"ian at airs dot com" <[EMAIL PROTECTED]> writes:

| Compiling this file, with mainline, gcc 4.0, or 4.1
| 
| template void f(t a) { }
| void g() { enum e { v }; f(v); }
| 
| gives this error message:
| 
| foo.cc: In function ‘void g()’:
| foo.cc:2: error: no matching function for call to ‘f(g()::e)’
| 
| If the enum definition is moved out of the function, this works.  With gcc
3.2,
| this works.  I didn't try 3.4.

There is a core issue for this.  We discussed it again at the last
meeting in Berlin.  There are proposals to make it "just work", but
that is still in the open state.

-- Gaby


-- 


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



[Bug target/27421] [4.0/4.1 regression] ICE with invalid array in struct

2006-05-11 Thread reichelt at gcc dot gnu dot org


--- Comment #8 from reichelt at gcc dot gnu dot org  2006-05-11 16:32 
---
Subject: Bug 27421

Author: reichelt
Date: Thu May 11 16:32:20 2006
New Revision: 113705

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113705
Log:
PR target/27421
* config/i386/i386.c (classify_argument): Skip fields with invalid
types.

* gcc.dg/array-9.c: New test.

Added:
branches/gcc-4_1-branch/gcc/testsuite/gcc.dg/array-9.c
Modified:
branches/gcc-4_1-branch/gcc/ChangeLog
branches/gcc-4_1-branch/gcc/config/i386/i386.c
branches/gcc-4_1-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/27560] template function not recognized when invoked with enum defined in function

2006-05-11 Thread gdr at gcc dot gnu dot org


--- Comment #4 from gdr at gcc dot gnu dot org  2006-05-11 16:33 ---
See

   http://www.open-std.org/JTC1/SC22/WG21/docs/cwg_active.html#488
   http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2006/n1945.pdf

The later paper is under active consideration.

The PR should be suspended, instead of being hastly closed.


-- 

gdr at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||gdr at gcc dot gnu dot org
 Status|RESOLVED|UNCONFIRMED
 Resolution|INVALID |


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



[Bug target/27421] [4.0/4.1 regression] ICE with invalid array in struct

2006-05-11 Thread reichelt at gcc dot gnu dot org


--- Comment #9 from reichelt at gcc dot gnu dot org  2006-05-11 16:34 
---
Subject: Bug 27421

Author: reichelt
Date: Thu May 11 16:34:39 2006
New Revision: 113706

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113706
Log:
PR target/27421
* config/i386/i386.c (classify_argument): Skip fields with invalid
types.

* gcc.dg/array-9.c: New test.

Added:
branches/gcc-4_0-branch/gcc/testsuite/gcc.dg/array-9.c
Modified:
branches/gcc-4_0-branch/gcc/ChangeLog
branches/gcc-4_0-branch/gcc/config/i386/i386.c
branches/gcc-4_0-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug target/27421] [4.0/4.1 regression] ICE with invalid array in struct

2006-05-11 Thread reichelt at gcc dot gnu dot org


--- Comment #10 from reichelt at gcc dot gnu dot org  2006-05-11 16:35 
---
Now also fixed on 4.1 branch and 4.0 branch.


-- 

reichelt at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/27560] template function not recognized when invoked with enum defined in function

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


--- Comment #5 from pinskia at gcc dot gnu dot org  2006-05-11 16:38 ---
(In reply to comment #4)
> The PR should be suspended, instead of being hastly closed.

It was not hastly closed, the current standard says this is invalid.

Anyways there is already a PR open about DR 488.

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


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug c++/20589] [DR 488] error: '' is/uses anonymous type'

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


--- Comment #21 from pinskia at gcc dot gnu dot org  2006-05-11 16:38 
---
*** Bug 27560 has been marked as a duplicate of this bug. ***


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||ian at airs dot com


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



[Bug c++/27560] template function not recognized when invoked with enum defined in function

2006-05-11 Thread gdr at integrable-solutions dot net


--- Comment #6 from gdr at integrable-solutions dot net  2006-05-11 16:47 
---
Subject: Re:  template function not recognized when invoked with enum defined
in function

"pinskia at gcc dot gnu dot org" <[EMAIL PROTECTED]> writes:

| It was not hastly closed, the current standard says this is invalid.

and the current standard is known to be defective in that aspect,
which is why we had the core issue in the first place. 

-- Gaby


-- 


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



[Bug libobjc/13946] ObjC configured --with-objc-gc needs external Boehm gc

2006-05-11 Thread halcy0n at gentoo dot org


--- Comment #6 from halcy0n at gentoo dot org  2006-05-11 17:01 ---
You can't build with objc-gc at all right now since only half of these patches
were applied.  It tries to use the internal boehm-gc, but that hasn't been
built yet since the patch in the first email was never applied.  After adding
these, everything works perfectly.


-- 

halcy0n at gentoo dot org changed:

   What|Removed |Added

 CC||toolchain at gentoo dot org


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



[Bug fortran/27552] -fdump-parse-tree doesn't like Holleriths (but then, who does?)

2006-05-11 Thread fxcoudert at gcc dot gnu dot org


--- Comment #1 from fxcoudert at gcc dot gnu dot org  2006-05-11 17:08 
---
I think this is taken care of by the following patch:

Index: dump-parse-tree.c
===
--- dump-parse-tree.c   (revision 113671)
+++ dump-parse-tree.c   (working copy)
@@ -348,6 +348,13 @@
   break;

 case EXPR_CONSTANT:
+  if (p->from_H)
+{
+ gfc_status ("%dH", p->value.character.length);
+ gfc_status ("%s", p->value.character.string);
+ break;
+   }
+
   switch (p->ts.type)
{
case BT_INTEGER:


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||fxcoudert at gcc dot gnu dot
   ||org
 AssignedTo|unassigned at gcc dot gnu   |fxcoudert at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Keywords||patch
  Known to fail||4.1.1 4.2.0
   Last reconfirmed|-00-00 00:00:00 |2006-05-11 17:08:22
   date||


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



[Bug fortran/27561] New: i386-pc-mingw32 version incorrect error

2006-05-11 Thread dir at lanl dot gov
The i386-pc-mingw32 version errors incorrectly on this program fragment -

[EMAIL PROTECTED] /d/Docume~1/rantad/mydocu~1/tests
$ gfortran -c  eps.f90
 In file eps.f90:10

xmax1 = min ( xx, ONE / epsilon ( xx ) )
1
Error: Division by zero at (1)

[EMAIL PROTECTED] /d/Docume~1/rantad/mydocu~1/tests
$ cat eps.f90
  module test
  implicit none
  integer, parameter :: REAL8 = SELECTED_REAL_KIND(12)
  real(REAL8), parameter :: ONE  = 1.0_REAL8
  contains
  real(REAL8) function digamma (xx)
real(REAL8), intent(in) :: xx
real(REAL8) :: xmax1

xmax1 = min ( xx, ONE / epsilon ( xx ) )
digamma=xmax1;
  end function digamma
  end module test



[EMAIL PROTECTED] /d/Docume~1/rantad/mydocu~1/tests
$ gfortran --v
Using built-in specs.
Target: i386-pc-mingw32
Configured with: ../gcc/configure --prefix=/mingw --enable-languages=c,fortran
--with-gmp=/home/coudert/local --disable-nls --with-ld=/mingw/bin/ld
--with-as=/mingw/bin/as --disable-werror --enable-bootstrap
--enable-threads=win32 --with-win32-nlsapi=unicode --host=i386-pc-mingw32
Thread model: win32
gcc version 4.2.0 20060504 (experimental)


-- 
   Summary: i386-pc-mingw32 version incorrect error
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dir at lanl dot gov
  GCC host triplet: i386-pc-mingw32


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



[Bug target/26600] [4.1/4.2 Regression] internal compiler error: in push_reload, at reload.c:1303

2006-05-11 Thread roger at eyesopen dot com


--- Comment #8 from roger at eyesopen dot com  2006-05-11 17:22 ---
Patch posted here: http://gcc.gnu.org/ml/gcc-patches/2006-05/msg00472.html


-- 


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



[Bug java/20418] ICE if variable name is ommitted in an initialiser and a qualified type for the variable is used

2006-05-11 Thread daney at gcc dot gnu dot org


--- Comment #2 from daney at gcc dot gnu dot org  2006-05-11 17:54 ---
Test case committed as:

* testsuite/libjava.compile/PR20418.java: New.
* testsuite/libjava.compile/PR20418.xfail: New.


-- 


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



[Bug testsuite/24128] ICE in libjava.compile/PR6865.java reported as "PASS" in testsuite.

2006-05-11 Thread daney at gcc dot gnu dot org


--- Comment #1 from daney at gcc dot gnu dot org  2006-05-11 17:55 ---
New testcase for this problme is testsuite/libjava.compile/PR20418.java


-- 


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



[Bug c/27562] New: SSE instruction selection wrong for Athlon processors.

2006-05-11 Thread ramsgar-gccbug at yahoo dot com
GCC provides the programmer the ability to use SIMD instructions by primitives.
These are defined in header files. Unfortunately, GCC follows Intel compiler
conventions. But these conventions, dictated by Intel interests, not always
reflect correctly the reality, specially of AMD processors.

According to these conventions, there are four levels of SIMD instructions:

Pentium MMX: MMX instructions.
Pentium III and higher: MMX + SSE single precission floating point
instructions.
Pentium IV and higher: MMX + SSE single precission + SSE2 integer and double
precission 
Newer Pentium IV: MMX + SSE + SSE2 + SSE3

This model does not reflect correctly AMD Atlon processors, that support SSE
integer SIMD instructions but do not support SSE2 double precission
instructions.

While it is natural that Intel compiler is aligned with the company's
interests, it is not acceptable that a vendor neutral free software project
follows them.

Thus it is necessary to add a new level that includes integer SSE instructions
without including double precission SIMD instructions.

What I request is:

- A flag to support Athlon SSE set of instructions. As it is in the middle of
SSE and SSE2 it might be called SSE1.5, with the option -msse1.5.

- A header file that defines SSE integer instructions without define SSE double
precission instructions. Since GCC already ships xmmintrin.h, a new header file
immintrin.h could be added. This second part is trivial to do and in my opinion
should be included in GCC 4.1.1.

Both changes are backward compatible.


-- 
   Summary: SSE instruction selection wrong for Athlon processors.
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: ramsgar-gccbug at yahoo dot com
GCC target triplet: i586-anyone-linux


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



[Bug target/27562] SSE instruction selection wrong for Athlon processors.

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


--- Comment #1 from pinskia at gcc dot gnu dot org  2006-05-11 18:37 ---
Which Athlon processor, there are so many and some support full SSE2 also (K8).


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

  Component|c   |target
 GCC target triplet|i586-anyone-linux   |i?86-*-*


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



[Bug target/27562] SSE instruction selection wrong for Athlon processors.

2006-05-11 Thread ramon dot garcia dot f+gcc at gmail dot com


--- Comment #2 from ramon dot garcia dot f+gcc at gmail dot com  2006-05-11 
18:42 ---
That is correct. However for those developerers that want to target the
existing installed base of Pentium IV and Athlon processors, a set of flags and
headers that provide the common subset of them is useful.


-- 


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



[Bug target/27538] execute/20030128-1.c FAILs

2006-05-11 Thread kazu at gcc dot gnu dot org


--- Comment #1 from kazu at gcc dot gnu dot org  2006-05-11 18:44 ---
Just for a reference, here is execute/20030128-1.c.

unsigned char x = 50;
volatile short y = -5;

int main ()
{
  x /= y;
  if (x != (unsigned char) -10)
abort ();
  exit (0);
}

Now, with -O1, the load of y completely disappears.
Here is the dump of 20030128-1.c.160r.shorten up to a call to
a division subroutine.

(insn/f 55 8 56 (parallel [
(set (mem/c:BLK (pre_dec:BLK (reg/f:SI 13 sp)) [0 A8])
(unspec:BLK [
(reg:SI 4 r4)
] 2))
(use (reg:SI 14 lr))
]) 302 {*push_multi} (nil)
(expr_list:REG_DEAD (reg:SI 14 lr)
(expr_list:REG_DEAD (reg:SI 4 r4)
(expr_list:REG_FRAME_RELATED_EXPR (sequence [
(set/f (reg/f:SI 13 sp)
(plus:SI (reg/f:SI 13 sp)
(const_int -8 [0xfff8])))
(set/f (mem/c:SI (reg/f:SI 13 sp) [0 S4 A32])
(reg:SI 4 r4))
(set/f (mem/c:SI (plus:SI (reg/f:SI 13 sp)
(const_int 4 [0x4])) [0 S4 A32])
(reg:SI 14 lr))
])
(nil)

(note 56 55 10 NOTE_INSN_PROLOGUE_END)

(note 10 56 11 NOTE_INSN_DELETED)

(note 11 10 13 NOTE_INSN_DELETED)

(note 13 11 14 NOTE_INSN_DELETED)

(note 14 13 15 NOTE_INSN_DELETED)

(insn 15 14 16 (set (reg/f:SI 4 r4 [108])
(mem:SI (label_ref 59) [0 S4 A32])) 145 {*arm_movsi_insn} (nil)
(expr_list:REG_EQUIV (symbol_ref:SI ("x") [flags 0x2] )
(nil)))

(note 16 15 17 NOTE_INSN_DELETED)

(note 17 16 18 NOTE_INSN_DELETED)

(note 18 17 19 NOTE_INSN_DELETED)

(insn 19 18 20 (set (reg:SI 0 r0 [ x ])
(zero_extend:SI (mem/c/i:QI (reg/f:SI 4 r4 [108]) [0 x+0 S1 A8]))) 128
{*arm_zero_extendqis\i2} (insn_list:REG_DEP_TRUE 15 (nil))
(nil))

(insn 20 19 21 (set (reg:SI 1 r1)
(const_int 0 [0x0])) 145 {*arm_movsi_insn} (nil)
(nil))

(call_insn/u 21 20 23 (parallel [
(set (reg:SI 0 r0)
(call (mem:SI (symbol_ref:SI ("__aeabi_idiv") [flags 0x41]) [0
S4 A32])
(const_int 0 [0x0])))
(use (const_int 0 [0x0]))
(clobber (reg:SI 14 lr))
]) 230 {*call_value_symbol} (insn_list:REG_DEP_TRUE 19
(insn_list:REG_DEP_TRUE 20 (nil)))
(expr_list:REG_DEAD (reg:SI 1 r1)
(expr_list:REG_UNUSED (reg:SI 14 lr)
(expr_list:REG_EH_REGION (const_int -1 [0x])
(nil
(expr_list:REG_DEP_TRUE (use (reg:SI 1 r1))
(expr_list:REG_DEP_TRUE (use (reg:SI 0 r0 [ x ]))
(nil


-- 


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



[Bug target/27562] SSE instruction selection wrong for Athlon processors.

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


--- Comment #3 from pinskia at gcc dot gnu dot org  2006-05-11 18:45 ---
Have you tried using the -march=athlon options (where  is replaced with
your CPU type)?

Also do you have a list of instructions which supported on which Athlon?


-- 


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



[Bug fortran/27553] Testsuite ICE with -Wunused-labels

2006-05-11 Thread fxcoudert at gcc dot gnu dot org


--- Comment #1 from fxcoudert at gcc dot gnu dot org  2006-05-11 18:46 
---
The ICE is due to -Wunused-labels. We try to issue a warning about the label
(already marked as an error because it contains a non-numeric character) being
unused, but said label has no locus (because the parser errored out before
assigning it.

Steve, I'm adding you in the CC list since you were the one who rewrote that
codepath a few months ago, IIRC.

I propose we strengthen the errorn in that case and also for the "Too many
digits" and "Zero is not a valid label", by the following patch:

Index: parse.c
===
--- parse.c (revision 113671)
+++ parse.c (working copy)
@@ -439,6 +439,7 @@
  if (!gfc_is_whitespace (c))
gfc_error_now ("Non-numeric character in statement label at %C");

+ return ST_NONE;
}
   else
{


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||fxcoudert at gcc dot gnu dot
   ||org, kargl at gcc dot gnu
   ||dot org
 AssignedTo|unassigned at gcc dot gnu   |fxcoudert at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Keywords||error-recovery, patch
   Last reconfirmed|-00-00 00:00:00 |2006-05-11 18:46:22
   date||
Summary|Testsuite ICE with -Wall|Testsuite ICE with -Wunused-
   ||labels


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



[Bug target/27538] execute/20030128-1.c FAILs

2006-05-11 Thread kazu at gcc dot gnu dot org


--- Comment #2 from kazu at gcc dot gnu dot org  2006-05-11 18:54 ---
Here is a reduced testcase.

volatile short y;

int
foo (void)
{
  return y;
}

With -O1, this function magically turns into "return 0;" like so

foo:
@ Function supports interworking.
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
@ lr needed for prologue
mov r0, #0
bx  lr


-- 


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



[Bug fortran/27553] Testsuite ICE with -Wunused-labels

2006-05-11 Thread sgk at troutmask dot apl dot washington dot edu


--- Comment #2 from sgk at troutmask dot apl dot washington dot edu  
2006-05-11 19:23 ---
Subject: Re:  Testsuite ICE with -Wunused-labels

On Thu, May 11, 2006 at 06:46:22PM -, fxcoudert at gcc dot gnu dot org
wrote:
> The ICE is due to -Wunused-labels. We try to issue a warning about the label
> (already marked as an error because it contains a non-numeric character) being
> unused, but said label has no locus (because the parser errored out before
> assigning it.
> 
> Steve, I'm adding you in the CC list since you were the one who rewrote that
> codepath a few months ago, IIRC.
> 
> I propose we strengthen the errorn in that case and also for the "Too many
> digits" and "Zero is not a valid label", by the following patch:
> 
> Index: parse.c
> ===
> --- parse.c (revision 113671)
> +++ parse.c (working copy)
> @@ -439,6 +439,7 @@
>   if (!gfc_is_whitespace (c))
> gfc_error_now ("Non-numeric character in statement label at %C");
> 
> + return ST_NONE;
> }
>else
> {
> 

Yes, the above looks correct; otherwise, we fall through to
the decode_statement() call.


-- 


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



[Bug target/27538] execute/20030128-1.c FAILs

2006-05-11 Thread kazu at gcc dot gnu dot org


--- Comment #3 from kazu at gcc dot gnu dot org  2006-05-11 19:40 ---
The combiner combines

=== i1 ===
(insn 10 8 11 2 (set (reg/f:SI 103)
(symbol_ref:SI ("y") )) 145 {*arm_movsi_insn}
(nil)
(nil))
=== i2 ===
(insn 11 10 13 2 (set (reg:SI 105 [ y ])
(zero_extend:SI (mem/v/c/i:HI (reg/f:SI 103) [0 y+0 S2 A16]))) 123
{*arm_zero_extendhisi2} (insn_list:REG_DEP_TRUE 10 (nil))
(expr_list:REG_DEAD (reg/f:SI 103)
(nil)))
=== i3 ===
(insn 13 11 14 2 (set (reg:SI 106)
(ashift:SI (reg:SI 105 [ y ])
(const_int 16 [0x10]))) 101 {*arm_shiftsi3} (insn_list:REG_DEP_TRUE
11 (nil))
(expr_list:REG_DEAD (reg:SI 105 [ y ])
(nil)))

into

(set (subreg:HI (reg:SI 106) 0)
(const_int 0 [0x0]))

Doh!


-- 


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



[Bug target/27538] [4.2 Regression] execute/20030128-1.c FAILs

2006-05-11 Thread kazu at gcc dot gnu dot org


--- Comment #4 from kazu at gcc dot gnu dot org  2006-05-11 20:36 ---
I just confirmed that 4.1 generates correct code with -O1,
so this is a regression.


-- 

kazu at gcc dot gnu dot org changed:

   What|Removed |Added

Summary|execute/20030128-1.c FAILs  |[4.2 Regression]
   ||execute/20030128-1.c FAILs
   Target Milestone|--- |4.2.0


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



[Bug fortran/27552] -fdump-parse-tree doesn't like Holleriths (but then, who does?)

2006-05-11 Thread fxcoudert at gcc dot gnu dot org


--- Comment #2 from fxcoudert at gcc dot gnu dot org  2006-05-11 20:58 
---
Patched formally submitted for review on the ml:
http://gcc.gnu.org/ml/gcc-patches/2006-05/msg00485.html


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

URL||http://gcc.gnu.org/ml/gcc-
   ||patches/2006-
   ||05/msg00485.html


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



[Bug target/27565] New: [4.1/4.2 Regression] ICE in assign_stack_temp_for_type for vectors with SPE

2006-05-11 Thread jsm28 at gcc dot gnu dot org
Many GCC tests such as gcc.c-torture/compile/simd-3.c fail on
powerpc-none-eabispe with an ICE in assign_stack_temp_for_type.  This happens
with trunk and 4.1 branch but not with 4.0 branch.  Reduced testcase:

typedef double V __attribute__((vector_size (16)));

void f(void)
{
  volatile V t = { 0.0, 0.0 };
}

t.c: In function 'f':
t.c:5: internal compiler error: in assign_stack_temp_for_type, at
function.c:716
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html> for instructions.


-- 
   Summary: [4.1/4.2 Regression] ICE in assign_stack_temp_for_type
for vectors with SPE
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jsm28 at gcc dot gnu dot org
GCC target triplet: powerpc*-*-*spe


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



[Bug target/27566] New: [4.1/4.2 Regression] ICEs in final_scan_insn and reload_cse_simplify_operands for vectors with SPE

2006-05-11 Thread jsm28 at gcc dot gnu dot org
Some GCC tests such as gcc.c-torture/execute/simd-5.c fail on
powerpc-none-eabispe with an ICE in final_scan_insn (not optimizing) or
reload_cse_simplify_operands (optimizing).  This happens with trunk and 4.1
branch but not with 4.0 branch.  Reduced testcase:

typedef short Q __attribute__((vector_size(8)));

Q a, b, c;

void
f (void)
{
  c = a * b;
}

Non-optimizing:
t.c: In function 'f':
t.c:9: error: insn does not satisfy its constraints:
(insn 45 74 75 (set (reg:V4HI 0 0 [158])
(mem/u/c/i:V4HI (lo_sum:SI (reg:SI 10 10)
(symbol_ref/u:SI ("*.LC0") [flags 0x2])) [0 S8 A64])) 1059
{*movv4hi_internal} (nil)
(nil))
t.c:9: internal compiler error: in final_scan_insn, at final.c:2379
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html> for instructions.

With -O:
t.c: In function 'f':
t.c:9: error: insn does not satisfy its constraints:
(insn 18 68 66 2 (set (reg:V4HI 0 0 [127])
(mem/u/c/i:V4HI (lo_sum:SI (reg:SI 6 6)
(symbol_ref/u:SI ("*.LC0") [flags 0x82])) [0 S8 A64])) 1059
{*movv4hi_internal} (nil)
(nil))
t.c:9: internal compiler error: in reload_cse_simplify_operands, at
postreload.c:393
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html> for instructions.


-- 
   Summary: [4.1/4.2 Regression] ICEs in final_scan_insn and
reload_cse_simplify_operands for vectors with SPE
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jsm28 at gcc dot gnu dot org
GCC target triplet: powerpc*-*-*spe


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



[Bug fortran/27553] Testsuite ICE with -Wunused-labels

2006-05-11 Thread fxcoudert at gcc dot gnu dot org


--- Comment #3 from fxcoudert at gcc dot gnu dot org  2006-05-11 21:37 
---
Subject: Bug 27553

Author: fxcoudert
Date: Thu May 11 21:37:10 2006
New Revision: 113712

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113712
Log:
PR fortran/27553
* parse.c (next_free): Return instead of calling decode_statement
upon error.
* gfortran.dg/label_5.f90: New test.

Added:
trunk/gcc/testsuite/gfortran.dg/label_5.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/parse.c
trunk/gcc/testsuite/ChangeLog


-- 


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



  1   2   >