[Bug tree-optimization/23817] New: ICE in check_loop_closed_ssa_use, at tree-ssa-loop-manip.c:398

2005-09-11 Thread belyshev at depni dot sinp dot msu dot ru
// test case, compile with -O3

int foo1 (void);
void foo2 (int);

static int foo9 (int k)
{
  return ((k == 0x00) || (k == 0x10) || (k == 0x14));
}

static int foo8 (int *p)
{
  return *p;
}

void foo6 (int *p)
{
  int a, b, c, d, e = 0;
  foo8 (p);
  b = 0;
  do
{
  b++;
  a = foo1();
}
  while (b < 3 && (!foo9 (a)));
 repeat:
  d = 3;
  do
{
  c = foo1 ();
  if (c)
foo1 ();
  d--;
}
  while (c && d);
  if (c && !e)
{
  foo2 (c);
  return;
}
  if (!e)
{
  e = 1;
  goto repeat;
}
}

// compiler output:
sd.i: In function 'foo6':
sd.i:15: internal compiler error: in check_loop_closed_ssa_use, at
tree-ssa-loop-manip.c:398

-- 
   Summary: ICE in check_loop_closed_ssa_use, at tree-ssa-loop-
manip.c:398
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Keywords: ice-on-valid-code
  Severity: normal
  Priority: P2
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: belyshev at depni dot sinp dot msu dot ru
CC: gcc-bugs at gcc dot gnu dot org


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


[Bug c/10719] invalid code generated (x86, "int $5") with __builtin_va_arg(va, char);

2005-09-11 Thread appfault at hotmail dot com

--- Additional Comments From appfault at hotmail dot com  2005-09-11 08:04 
---
Invalid?  So whenever behavior is undefined by the C standard, would it be ok 
to delete the user's harddrive as well?  This is ridiculous - fix the bug.

-- 


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


[Bug tree-optimization/23818] New: ICE in dominated_by_p, at dominance.c:827

2005-09-11 Thread belyshev at depni dot sinp dot msu dot ru
// testcase, compile with -O1 -fno-tree-dominator-opts :

void foo (int p[100], int k, ...)
{
  int j, *q;
  __builtin_va_list ap;
  __builtin_va_start (ap, k);
  q = __builtin_va_arg (ap, int *);
  for (j = 0; j < 100; j++)
p [j] = q [j];
  __builtin_va_end(ap);
}

// compiler output:
capifunc.i: In function 'foo':
capifunc.i:2: internal compiler error: in dominated_by_p, at dominance.c:827

-- 
   Summary: ICE in dominated_by_p, at dominance.c:827
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Keywords: ice-on-valid-code
  Severity: normal
  Priority: P2
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: belyshev at depni dot sinp dot msu dot ru
CC: gcc-bugs at gcc dot gnu dot org


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


[Bug tree-optimization/23820] New: ICE in lambda_loopnest_to_gcc_loopnest, at lambda-code.c:1982

2005-09-11 Thread belyshev at depni dot sinp dot msu dot ru
// test case, compile with -O1 -ftree-loop-linear

int t [2][4];

void foo (void)
{
  int i, j, k, v;
  float e;
  for (;;)
{
  v = 0;
  for (j = 0; j < 2; j ++)
{
  for (k = 2; k < 4; k ++)
{
  e = 0.0;
  for (i = 0; i < 4; i ++)
e += t [j][i];
  if (e)
v = j;
}
}
  t [v][0] = 0;
}
}

// compiler output:
1.i: In function 'foo':
1.i:4: internal compiler error: in lambda_loopnest_to_gcc_loopnest, at
lambda-code.c:1982

-- 
   Summary: ICE in lambda_loopnest_to_gcc_loopnest, at lambda-
code.c:1982
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Keywords: ice-on-valid-code
  Severity: normal
  Priority: P2
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: belyshev at depni dot sinp dot msu dot ru
CC: dberlin at gcc dot gnu dot org,gcc-bugs at gcc dot gnu
dot org


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


[Bug libstdc++/23781] Implicit conversion from NULL to list::iterator

2005-09-11 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-09-11 
09:48 ---
Subject: Bug 23781

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-09-11 09:48:41

Modified files:
libstdc++-v3   : ChangeLog 
libstdc++-v3/include/ext: slist 
libstdc++-v3/include/tr1: hashtable array 
libstdc++-v3/include/bits: list.tcc stl_list.h stl_tree.h 
libstdc++-v3/testsuite/23_containers/map/operators: 1_neg.cc 
libstdc++-v3/testsuite/23_containers/set/operators: 1_neg.cc 
Added files:
libstdc++-v3/testsuite/ext/slist: 23781.cc 
libstdc++-v3/testsuite/tr1/6_containers/unordered: 23781.cc 
libstdc++-v3/testsuite/23_containers/list: 23781.cc 
libstdc++-v3/testsuite/23_containers/map: 23781.cc 
libstdc++-v3/testsuite/23_containers/multimap: 23781.cc 
libstdc++-v3/testsuite/23_containers/multiset: 23781.cc 
libstdc++-v3/testsuite/23_containers/set: 23781.cc 

Log message:
2005-09-11  Paolo Carlini  <[EMAIL PROTECTED]>

PR libstdc++/23781
* include/bits/stl_list.h (_List_iterator<>::
_List_iterator(_List_node_base*), _List_const_iterator<>::
_List_const_iterator(const _List_node_base*)): Make explicit.
(list<>::begin(), list<>::end(), list<>::pop_back()): Adjust
consistently.
* include/bits/list.tcc (list<>::insert, list<>::erase): Adjust
consistently.
* include/bits/stl_tree.h (_Rb_tree_iterator<>::
_Rb_tree_iterator(_Link_type), _Rb_tree_const_iterator<>::
_Rb_tree_const_iterator(_Link_type)): Make explicit.
(_Rb_tree<>::begin(), _Rb_tree<>::end()): Adjust consistently.
* include/ext/slist (_Slist_iterator<>::_Slist_iterator(_Node*)):
Make explicit.
(slist<>::erase(iterator), slist<>::erase(iterator, iterator)):
Adjust consistently.
* include/tr1/hashtable (hashtable_iterator<>::
hashtable_iterator(hash_node<>**)): Make explicit.
* testsuite/23_containers/list/23781.cc: New.
* testsuite/23_containers/map/23781.cc: Likewise.
* testsuite/23_containers/multimap/23781.cc: Likewise.
* testsuite/23_containers/multiset/23781.cc: Likewise.
* testsuite/23_containers/set/23781.cc: Likewise.
* testsuite/ext/slist/23781.cc: Likewise.
* testsuite/tr1/6_containers/unordered/23781.cc: Likewise.
* testsuite/23_containers/map/operators/1_neg.cc: Adjust dg-error
line numbers.
* testsuite/23_containers/set/operators/1_neg.cc: Likewise.

* include/tr1/array (array<>::begin(), array<>::end()): Adjust
stylistically for consistency with the other containers.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/ChangeLog.diff?cvsroot=gcc&r1=1.3094&r2=1.3095
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/include/ext/slist.diff?cvsroot=gcc&r1=1.27&r2=1.28
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/include/tr1/hashtable.diff?cvsroot=gcc&r1=1.8&r2=1.9
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/include/tr1/array.diff?cvsroot=gcc&r1=1.7&r2=1.8
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/ext/slist/23781.cc.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/tr1/6_containers/unordered/23781.cc.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/include/bits/list.tcc.diff?cvsroot=gcc&r1=1.21&r2=1.22
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/include/bits/stl_list.h.diff?cvsroot=gcc&r1=1.51&r2=1.52
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/include/bits/stl_tree.h.diff?cvsroot=gcc&r1=1.47&r2=1.48
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/23_containers/list/23781.cc.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/23_containers/map/23781.cc.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/23_containers/map/operators/1_neg.cc.diff?cvsroot=gcc&r1=1.7&r2=1.8
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/23_containers/multimap/23781.cc.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/23_containers/multiset/23781.cc.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/23_containers/set/23781.cc.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/23_containers/set/operators/1_neg.cc.diff?cvsroot=gcc&r1=1.7&r2=1.8



-- 


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


[Bug libstdc++/23781] Implicit conversion from NULL to list::iterator

2005-09-11 Thread pcarlini at suse dot de

--- Additional Comments From pcarlini at suse dot de  2005-09-11 09:52 
---
Fixed for 4.1.

-- 
   What|Removed |Added

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


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


[Bug tree-optimization/23817] ICE in check_loop_closed_ssa_use, at tree-ssa-loop-manip.c:398

2005-09-11 Thread belyshev at depni dot sinp dot msu dot ru

--- Additional Comments From belyshev at depni dot sinp dot msu dot ru  
2005-09-11 10:39 ---
// another testcase, compile with -O3

int b;
void foo1 (int);

void foo (void)
{
  int i, j, k, l;
  short v;
  for (i = 0; i < 10; i ++)
{
  for (l = 0; l < 10; l++)
{
  asm volatile ("\n" : "=a" (v));
  j = v;
  if (j)
{
  k = 1;
  goto out;
}
}
  if (b)
foo1 (j);
  k = 0;
out:
  if (!k)
return;
}
}


-- 


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


[Bug tree-optimization/23821] New: Dom creating harder to optimize code

2005-09-11 Thread rakdver at gcc dot gnu dot org
Dom transforms the following testcase:

static int a[199];

int
main ()
{
  int i, x;
  for (i = 0; i < 199; i++)
{
  x = a[i];
  if (x != i)
abort ();
}
  return 0;
}

to

int
main ()
{
  int i;
  for (i = 0; i < 199; i = x + 1)
{
  x = a[i];
  if (x != i)
abort ();
}
  return 0;
}

Now we are not able to determine that i is an induction variable.

-- 
   Summary: Dom creating harder to optimize code
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: rakdver at gcc dot gnu dot org
CC: gcc-bugs at gcc dot gnu dot org


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


[Bug libfortran/21820] Really, really, horrible IO performance

2005-09-11 Thread jblomqvi at cc dot hut dot fi

--- Additional Comments From jblomqvi at cc dot hut dot fi  2005-09-11 
11:10 ---
The patch from #12 has been committed to mainline.

-- 


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


[Bug libfortran/23363] gfortran 30 x slower that g77 on random I/O

2005-09-11 Thread jblomqvi at cc dot hut dot fi

--- Additional Comments From jblomqvi at cc dot hut dot fi  2005-09-11 
11:15 ---
The patch from #5 has been committed to mainline, so now we lose to g77 only by
a factor of 30 and not 500 in case the file exists.

-- 


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


[Bug fortran/23814] unformatted files from gfortran are incompatible with g77 unformatted files and solaris f95 unformatted files

2005-09-11 Thread jblomqvi at cc dot hut dot fi

--- Additional Comments From jblomqvi at cc dot hut dot fi  2005-09-11 
12:09 ---
Bud Davis is back and working on the pluggable record markers patch. Expect it
to be completed and committed within a few weeks.

There is no simple solution that is right for all situations. Gfortran uses
64-bit record markers by default since we want compatibility between LP32 and
LP64 bit platforms (which incidentally g77 doesn't provide), and we want to
support records bigger than 2 GB.

There has been some discussion about a byteswapio patch, but nothing has been
done. Patches are welcome, of course.

And, I would hardly classify the bug as "critical".

If you want portable binary io you're probably better off using a library such
as netcdf anyway.

-- 


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


[Bug fortran/23814] unformatted files from gfortran are incompatible with g77 unformatted files and solaris f95 unformatted files

2005-09-11 Thread rrr6399 at futuretek dot com

--- Additional Comments From rrr6399 at futuretek dot com  2005-09-11 13:24 
---
I believe it really is critical since myself and many others who may use
gfortran need to interoperate with data generated by legacy codes on the same
system that were compiled with g77 or on other systems (Sun, SGI) compiled with
their native f77 or f90/f95 compilers. Some of the codes are proprietary, many
are from other third parties, it isn't really feasible to force them to use
another binary file library. Plus, I've been working with unformatted FORTRAN
files for 15 years and this is the first time I've had this type of issue with
the structure of an unformatted file. 

So given the current situtation, I'll have to write a format convertor for
unformatted data from any gfortran code to the "standard" g77 format in order to
interoperate. 

I would've thought that the FORTRAN spec would've covered this kind of thing.

-- 


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


[Bug c++/23823] New: Is this right?

2005-09-11 Thread igodard at pacbell dot net
struct foo {
template
voidf();
template
voidg();
};

template<>
voidfoo::f() {}
template<>
voidfoo::f() {}
template
voidfoo::g() {}
template
voidfoo::g() {}


gets you:

~/ootbc/members/src$ g++ foo.cc
foo.cc:13: error: partial specialization `g' of function template
foo.cc:13: error: got 1 template parameters for `void foo::g()'
foo.cc:13: error:   but 2 required
foo.cc:15: error: partial specialization `g' of function template
foo.cc:15: error: redefinition of `void foo::g()'
foo.cc:13: error: `void foo::g()' previously declared here
foo.cc:15: error: got 1 template parameters for `void foo::g()'
foo.cc:15: error:   but 2 required


The error message is hosed, because there are in fact two parameters. Not sure
whether the code is valid or not (but it should be :-)

-- 
   Summary: Is this right?
   Product: gcc
   Version: 3.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: igodard at pacbell dot net
CC: gcc-bugs at gcc dot gnu dot org


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


[Bug libfortran/20179] cannot mix C and Fortran I/O

2005-09-11 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-09-11 
13:35 ---
Subject: Bug 20179

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-09-11 13:34:57

Modified files:
libgfortran: ChangeLog 
libgfortran/io : io.h transfer.c unix.c 

Log message:
PR libfortran/20179
* io/unix.c (is_preconnected): Add function to test if a stream
corresponds to a preconnected unit.
* io/io.h: Add prototype for is_preconnected.
* io/transfer.c (data_transfer_init): Do not truncate
preconnected units.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/ChangeLog.diff?cvsroot=gcc&r1=1.301&r2=1.302
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/io/io.h.diff?cvsroot=gcc&r1=1.29&r2=1.30
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/io/transfer.c.diff?cvsroot=gcc&r1=1.57&r2=1.58
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/io/unix.c.diff?cvsroot=gcc&r1=1.38&r2=1.39



-- 


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


[Bug target/23809] Misleading documentation for -mmmx/msse/...

2005-09-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-09-11 
14:18 ---
Target bug and not related to the C front-end at all.

-- 
   What|Removed |Added

  Component|c   |target
   Keywords||documentation


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


[Bug rtl-optimization/23812] swapping DImode halves produces poor x86 register allocation

2005-09-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-09-11 
14:22 ---
This is the normal subreg problem with the current RA.  There are a couple 
other bugs about this 
already opened.

-- 
   What|Removed |Added

   Severity|normal  |enhancement
   Keywords||missed-optimization, ra


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


[Bug rtl-optimization/23813] redundant register assignments not eliminated

2005-09-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-09-11 
14:24 ---
This is the same issue as PR 23812.  GCC's RA likes to keep double sized 
variables in registers next to 
one another.

This is the normal subreg problem with the current RA.  There are a couple 
other bugs about this 
already opened.

-- 


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


[Bug fortran/23814] unformatted files from gfortran are incompatible with g77 unformatted files and solaris f95 unformatted files

2005-09-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-09-11 
14:27 ---
More than that this is a dup of bug 19303.  unformatted was never supposed to 
be used with different 
versions of the compiler, or across different targets.  It is just like using
write in C.

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

-- 
   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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


[Bug libfortran/19303] Unformatted record header is 4-bytes on 32-bit targets

2005-09-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-09-11 
14:27 ---
*** Bug 23814 has been marked as a duplicate of this bug. ***

-- 
   What|Removed |Added

 CC||rrr6399 at futuretek dot com


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


[Bug target/23816] ICE in extract_insn, at recog.c:2084

2005-09-11 Thread pinskia at gcc dot gnu dot org


-- 
   What|Removed |Added

  Component|tree-optimization   |target
   Keywords||ssemmx


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


[Bug target/23816] ICE in extract_insn, at recog.c:2084

2005-09-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-09-11 
14:30 ---
This is a target bug as the tree optimizers get it right:
  MEM[base: vect_p.55, index: D.1801] =  VEC_COND_EXPR < vect_var_.40 > 
vect_var_.47 , vect_var_.40 
, vect_var_.47 > ;


-- 


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


[Bug tree-optimization/23817] [4.1 Regression] ICE in check_loop_closed_ssa_use, at tree-ssa-loop-manip.c:398

2005-09-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-09-11 
14:31 ---
Confirmed a regression.

-- 
   What|Removed |Added

 CC||pinskia at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed||1
   Last reconfirmed|-00-00 00:00:00 |2005-09-11 14:31:58
   date||
Summary|ICE in  |[4.1 Regression] ICE in
   |check_loop_closed_ssa_use,  |check_loop_closed_ssa_use,
   |at tree-ssa-loop-manip.c:398|at tree-ssa-loop-manip.c:398
   Target Milestone|--- |4.1.0


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


[Bug libstdc++/23767] std::vector iterator implementation wrong

2005-09-11 Thread pcarlini at suse dot de


-- 
   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |pcarlini at suse dot de
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed||1
   Last reconfirmed|-00-00 00:00:00 |2005-09-11 14:32:44
   date||


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


[Bug c/10719] invalid code generated (x86, "int $5") with __builtin_va_arg(va, char);

2005-09-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-09-11 
14:34 ---
(In reply to comment #12)
> Invalid?  So whenever behavior is undefined by the C standard, would it be ok 
> to delete the user's harddrive as well?  This is ridiculous - fix the bug.

It is undefined which means anything can happen.  The comment about delete the 
user's harddrive is 
mainly a joke about the C standard says about this.

There is no bug here except in your code as the variable is passed as an int 
and not as a char.
To fix your code, replace char with int and it works just fine.

-- 


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


[Bug tree-optimization/23818] ICE in dominated_by_p, at dominance.c:827

2005-09-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-09-11 
14:36 ---
Note this is only reproducible on x86_64 because of the way var_args are 
implemented.

-- 
   What|Removed |Added

 GCC target triplet||x86_64-*-linux-gnu


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


[Bug tree-optimization/23818] [4.1 Regression] ICE in dominated_by_p, at dominance.c:827

2005-09-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-09-11 
14:38 ---
Confirmed, it is ICE while doing std args which is also new for 4.1.0.

-- 
   What|Removed |Added

 CC||jakub at gcc dot gnu dot org
 Status|UNCONFIRMED |NEW
 Ever Confirmed||1
   Last reconfirmed|-00-00 00:00:00 |2005-09-11 14:38:58
   date||
Summary|ICE in dominated_by_p, at   |[4.1 Regression] ICE in
   |dominance.c:827 |dominated_by_p, at
   ||dominance.c:827
   Target Milestone|--- |4.1.0


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


[Bug tree-optimization/23820] ICE in lambda_loopnest_to_gcc_loopnest, at lambda-code.c:1982

2005-09-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-09-11 
14:42 ---
Confirmed but not a regression.

-- 
   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed||1
  Known to fail||4.0.0 4.1.0
   Last reconfirmed|-00-00 00:00:00 |2005-09-11 14:42:37
   date||


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


[Bug c++/23823] Is this right?

2005-09-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-09-11 
14:46 ---
(In reply to comment #0)
> foo.cc:13: error: partial specialization `g' of function template
> foo.cc:13: error: got 1 template parameters for `void foo::g()'
> foo.cc:13: error:   but 2 required

No, there are only one:
template

-- 


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


[Bug target/23816] [4.1 Regression] ICE in extract_insn, at recog.c:2084

2005-09-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-09-11 
15:10 ---
Confirmed, a 4.1 regression.

-- 
   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed||1
   Last reconfirmed|-00-00 00:00:00 |2005-09-11 15:10:41
   date||
Summary|ICE in extract_insn, at |[4.1 Regression] ICE in
   |recog.c:2084|extract_insn, at
   ||recog.c:2084
   Target Milestone|--- |4.1.0


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


[Bug tree-optimization/23821] [4.0/4.1 Regression] Dom creating harder to optimize code

2005-09-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-09-11 
15:16 ---
Confirmed a regression.
The mainline and 4.0.0 on PPC gives:
L3:
addi r9,r9,1
bdz L10
L2:
slwi r0,r9,2
lwzx r2,r11,r0
cmpw cr7,r2,r9
beq+ cr7,L3

While 3.3 gives:
L7:
lwz r3,0(r9)
addi r9,r9,4
cmpw cr0,r3,r2
beq+ cr0,L4
bl L_abort$stub
L4:
addi r2,r2,1
cmpwi cr1,r2,198
ble+ cr1,L7

-- 
   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed||1
   Keywords||missed-optimization
   Last reconfirmed|-00-00 00:00:00 |2005-09-11 15:16:17
   date||
Summary|Dom creating harder to  |[4.0/4.1 Regression] Dom
   |optimize code   |creating harder to optimize
   ||code
   Target Milestone|--- |4.0.2


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


[Bug tree-optimization/23821] [4.0/4.1 Regression] DOM and VRP creating harder to optimize code

2005-09-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-09-11 
15:19 ---
It is not just DOM on the mainline, it is also VRP

-- 
   What|Removed |Added

Summary|[4.0/4.1 Regression] Dom|[4.0/4.1 Regression] DOM and
   |creating harder to optimize |VRP creating harder to
   |code|optimize code


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


[Bug tree-optimization/23817] [4.1 Regression] ICE in check_loop_closed_ssa_use, at tree-ssa-loop-manip.c:398

2005-09-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-09-11 
15:23 ---
This is after complete unrolling.

-- 


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


[Bug tree-optimization/23817] [4.1 Regression] ICE in check_loop_closed_ssa_use, at tree-ssa-loop-manip.c:398

2005-09-11 Thread rakdver at gcc dot gnu dot org

--- Additional Comments From rakdver at gcc dot gnu dot org  2005-09-11 
15:35 ---
Smaller testcase:

int b;
void foo1 (int);

void foo (void)
{
  int i, j, k, l;
  short v;
  for (i = 0; i < 10; i ++)
{
  for (l = 0; l < 10; l++)
{
  asm volatile ("\n" : "=a" (v));
  j = v;
  if (j)
goto out;
}
  if (b)
foo1 (j);
  return;
out: ;
}
}


-- 
   What|Removed |Added

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


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


Re: [Bug middle-end/23125] [4.0/4.1 Regression] OpenBSD's zic.c causes g++ but not gcc to segfault

2005-09-11 Thread Andrew Pinski


On Sep 10, 2005, at 4:34 PM, geoffk at geoffk dot org wrote:


You should be able to tell if the user set the name because it will
start with a '*'.


Except currently, we do:
  else if (C_DECL_REGISTER (decl))
change_decl_assembler_name (decl, get_identifier (asmspec));
  else
set_user_assembler_name (decl, asmspec);

-- Pinski



[Bug middle-end/23125] [4.0/4.1 Regression] OpenBSD's zic.c causes g++ but not gcc to segfault

2005-09-11 Thread pinskia at physics dot uc dot edu

--- Additional Comments From pinskia at physics dot uc dot edu  2005-09-11 
15:40 ---
Subject: Re:  [4.0/4.1 Regression] OpenBSD's zic.c causes g++ but not gcc to 
segfault


On Sep 10, 2005, at 4:34 PM, geoffk at geoffk dot org wrote:

> You should be able to tell if the user set the name because it will
> start with a '*'.

Except currently, we do:
   else if (C_DECL_REGISTER (decl))
 change_decl_assembler_name (decl, get_identifier (asmspec));
   else
 set_user_assembler_name (decl, asmspec);

-- Pinski



-- 


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


[Bug c++/23823] Is this right?

2005-09-11 Thread igodard at pacbell dot net

--- Additional Comments From igodard at pacbell dot net  2005-09-11 15:44 
---
Nah, tried:

struct foo {
template
voidf();
template
voidg();
};

template<>
voidfoo::f() {}
template<>
voidfoo::f() {}
template
voidfoo::g() {}
template
voidfoo::g() {}


which gets me:

~/ootbc/members/src$ g++ foo.cc
foo.cc:13: error: partial specialization `g' of function template
foo.cc:15: error: partial specialization `g' of function template
foo.cc:15: error: redefinition of `void foo::g()'
foo.cc:13: error: `void foo::g()' previously declared here
~/ootbc/members/src$ fg




-- 


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


[Bug c++/23730] [4.0/4.1 Regression] ICE instead of reporting a call to a non-existent member function

2005-09-11 Thread reichelt at gcc dot gnu dot org

--- Additional Comments From reichelt at gcc dot gnu dot org  2005-09-11 
15:55 ---
Even shorter testcase:

===
struct A;

void foo(A& a)
{
a();
}
===


-- 
   What|Removed |Added

 CC||reichelt at gcc dot gnu dot
   ||org
   Keywords||monitored
Summary|[4.0/4.1 Regression] ICE|[4.0/4.1 Regression] ICE
   |instead of reporting a call |instead of reporting a call
   |to a non existant member|to a non-existent member
   |function|function


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


[Bug c++/23797] [3.4/4.0/4.1 Regression] ICE on typename outside template

2005-09-11 Thread reichelt at gcc dot gnu dot org

--- Additional Comments From reichelt at gcc dot gnu dot org  2005-09-11 
15:58 ---
Even shorter testcase:


struct A { typedef int X; };

int i = typename A::X();



-- 
   What|Removed |Added

 CC||reichelt at gcc dot gnu dot
   ||org
   Keywords||monitored
Summary|[3.4/4.0/4.1 Regression] ICE|[3.4/4.0/4.1 Regression] ICE
   |(on invalid)|on typename outside template


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


Re: c++/8431: compile short program to get internal compilation error

2005-09-11 Thread William J. Evans
You wrote:
:Synopsis: compile short program to get internal compilation error
:
:State-Changed-From-To: open->feedback
:State-Changed-By: paolo
:State-Changed-When: Sat Nov  2 17:23:38 2002
:State-Changed-Why:
:Unfortunately the files didn't reach us. Could you possibly
:send them again?
:Thanks, Paolo.
:
:http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=8431

I'm not sure your mechanism is lynx-friendly, so I'll include them
here as plain text.  Sorry for the inconvenience.

I get an internal compilation error when using
gcc version 2.95.3 20010315 (release)
to compile this code, whether or not I use -Wall or -save-temps.  I use no
other switches, no includes, just a straight compile.

=== code begins immediately after this line
#define X(a) if(a);

int main(void) { long long little_doggie;

/*
 * It makes no difference whether the offending expressions are surrounded by
 * () or (()).  I used (()) because of your suggestion to check the
 * compilation against -Wall.
 */

   X((little_doggie=0x01030507090B0D0FLL)) /* internal error */
/* X((little_doggie=0x01030507090B0D0FL)) internal error */
/* X((little_doggie=0x01030507090B0D0F))  internal error */
/* X((little_doggie=0x0103050709))internal error */
/* X((little_doggie=0x01030507))  compiles ok*/

return 0; }

=== code ends immediately before this line

The output I get is this:

/tmp/e1.cxx: In function `int main()':
/tmp/e1.cxx:11: Internal compiler error in `do_jump', at expr.c:10976
Please submit a full bug report.
See http://www.gnu.org/software/gcc/bugs.html> for instructions.

The output from the -v switch is this:

Reading specs from /usr/lib/gcc-lib/i386-slackware-linux/2.95.3/specs
gcc version 2.95.3 20010315 (release)

/usr/lib/gcc-lib/i386-slackware-linux/2.95.3/specs contains this:

===content begins immediately after this line
*asm:
%{v:-V} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}

*asm_final:
%|

*cpp:
%(cpp_cpu) %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} 
%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}

*cc1:
%(cc1_cpu) %{profile:-p}

*cc1plus:


*endfile:
%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s

*link:
-m elf_i386 %{shared:-shared}   %{!shared: %{!ibcs:   %{!static:
%{rdynamic:-export-dynamic} %{!dynamic-linker:-dynamic-linker 
/lib/ld-linux.so.2}}  %{static:-static}}}

*lib:
%{shared: -lc}%{!shared: %{mieee-fp:-lieee} %{pthread:-lpthread}
%{profile:-lc_p} %{!profile: -lc}}

*libgcc:
-lgcc

*startfile:
%{!shared:  %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s}   
%{!p:%{profile:gcrt1.o%s} %{!profile:crt1.o%s
crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}

*switches_need_spaces:


*signed_char:
%{funsigned-char:-D__CHAR_UNSIGNED__}

*predefines:
-D__ELF__ -Dunix -D__i386__ -Dlinux -Asystem(posix)

*cross_compile:
0

*version:
2.95.3

*multilib:
. ;

*multilib_defaults:


*multilib_extra:


*multilib_matches:


*linker:
collect2

*cpp_486:
%{!ansi:-Di486} -D__i486 -D__i486__

*cpp_586:
%{!ansi:-Di586 -Dpentium}   -D__i586 -D__i586__ -D__pentium -D__pentium__

*cpp_k6:
%{!ansi:-Di586 -Dk6}-D__i586 -D__i586__ -D__k6 -D__k6__

*cpp_686:
%{!ansi:-Di686 -Dpentiumpro}-D__i686 -D__i686__ -D__pentiumpro 
-D__pentiumpro__

*cpp_cpu_default:


*cpp_cpu:
-Acpu(i386) -Amachine(i386) %{!ansi:-Di386} -D__i386 -D__i386__ 
%{mcpu=i486:%(cpp_486)} %{m486:%(cpp_486)} %{mpentium:%(cpp_586)} 
%{mcpu=pentium:%(cpp_586)} %{mpentiumpro:%(cpp_686)} 
%{mcpu=pentiumpro:%(cpp_686)} %{mcpu=k6:%(cpp_k6)} 
%{!mcpu*:%{!m486:%{!mpentium*:%(cpp_cpu_default)}}}

*cc1_cpu:
%{!mcpu*: %{m386:-mcpu=i386 -march=i386} %{m486:-mcpu=i486 -march=i486} 
%{mpentium:-mcpu=pentium} %{mpentiumpro:-mcpu=pentiumpro}}

*link_command:
%{!fsyntax-only:  %{!c:%{!M:%{!MM:%{!E:%{!S:%(linker) %l %X %{o*} %{A} %{d} 
%{e*} %{m} %{N} %{n}%{r} %{s} %{t} %{u*} %{x} %{z} %{Z} 
%{!A:%{!nostdlib:%{!nostartfiles:%S}}}  
%{static:} %{L*} %D %o  %{!nostdlib:%{!nodefaultlibs:%G %L %G}} 
%{!A:%{!nostdlib:%{!nostartfiles:%E}}}  %{T*}   

 }}

===content ends immediately before this line

Hope this helps!


[Bug c/23824] New: Using mipsel to compile BigEndian -O2 does not work

2005-09-11 Thread ondrap at penguin dot cz
extern void * memcpy(void *, void *, int );
int test(char *from, char *to)
{
memcpy(from,to,8);
}

Compilation:
mipsel-linux-gnu-gcc -O2 -EB -o test.o -c test.c
Gives output:
 :
   0:   88a20003lwl v0,3(a1)
   4:   88a30007lwl v1,7(a1)
   8:   98a2lwr v0,0(a1)
   c:   98a30004lwr v1,4(a1)
  10:   a8820003swl v0,3(a0)
  14:   b882swr v0,0(a0)
  18:   a8830007swl v1,7(a0)
  1c:   03e8jr  ra
  20:   b8830004swr v1,4(a0)

And trying it with:
mips-sgi-irix5-gcc -O2 -EB -o test.o -c test.c
 :
   0:   88a2lwl v0,0(a1)
   4:   88a30004lwl v1,4(a1)
   8:   98a20003lwr v0,3(a1)
   c:   98a30007lwr v1,7(a1)
  10:   a882swl v0,0(a0)
  14:   b8820003swr v0,3(a0)
  18:   a8830004swl v1,4(a0)
  1c:   03e8jr  ra
  20:   b8830007swr v1,7(a0)

The second way is the correct one (at least the hardware likes it more).

-- 
   Summary: Using mipsel to compile BigEndian -O2 does not work
   Product: gcc
   Version: 4.0.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: ondrap at penguin dot cz
CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: gcc-4.0.1/configure --host=i686-pc-linux-gnu --
target=mipsel-lin
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: mipsel-linux-gnu


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


[Bug target/23824] Using mipsel to compile BigEndian -O2 does not work

2005-09-11 Thread pinskia at gcc dot gnu dot org


-- 
   What|Removed |Added

  Component|c   |target


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


[Bug fortran/16861] segfault with doubly used module

2005-09-11 Thread pault at gcc dot gnu dot org

--- Additional Comments From pault at gcc dot gnu dot org  2005-09-11 16:28 
---
(In reply to comment #22)
A thoroughly reduced testcase is:

module foo
 INTEGER :: i
end module foo

module bar
contains
 subroutine sub(j)
   use foo
   integer, dimension(i) :: j   !change dimension to explicit clears bug
 end subroutine sub
end module bar

module foobar
   use foo  !or eliminate this to clear bug
   use bar
end module foobar

The ICE occurs whilst writing foobar because the symtree for the arrayspec for j
has no symbol for i, as said in the discussion in the PR.  This has the effect
of causing the ICE here:

static void
mio_symtree_ref (gfc_symtree ** stp)
{
 pointer_info *p;
 fixup_t *f;

 if (iomode == IO_OUTPUT)
   {
 mio_symbol_ref (&(*stp)->n.sym);  http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16861


[Bug libfortran/19872] [4.0 only] closed and re-opened file not overwriten

2005-09-11 Thread fxcoudert at gcc dot gnu dot org

--- Additional Comments From fxcoudert at gcc dot gnu dot org  2005-09-11 
18:40 ---
Patch was never committed to 4.0.

-- 


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


[Bug libfortran/19872] [4.0 only] closed and re-opened file not overwriten

2005-09-11 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-09-11 
18:55 ---
Subject: Bug 19872

CVSROOT:/cvs/gcc
Module name:gcc
Branch: gcc-4_0-branch
Changes by: [EMAIL PROTECTED]   2005-09-11 18:55:16

Modified files:
gcc/testsuite  : ChangeLog 
libgfortran: ChangeLog 
libgfortran/io : io.h transfer.c unix.c 
Added files:
gcc/testsuite/gfortran.dg: overwrite_1.f 

Log message:
PR libfortran/19872
* gfortran.dg/overwrite_1.f: New test.

PR libfortran/19872
PR libfortran/20179
* io/unix.c (is_preconnected): Add function to test if a stream
corresponds to a preconnected unit.
* io/io.h: Add prototype for is_preconnected.
* io/transfer.c (data_transfer_init): Truncate overwritten files
on first write, but not preconnected units.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.5084.2.397&r2=1.5084.2.398
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/overwrite_1.f.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.1.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.163.2.90&r2=1.163.2.91
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/io/io.h.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.16.10.7&r2=1.16.10.8
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/io/transfer.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.32.2.16&r2=1.32.2.17
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/io/unix.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.21.10.14&r2=1.21.10.15



-- 


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


[Bug libfortran/20179] cannot mix C and Fortran I/O

2005-09-11 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-09-11 
18:55 ---
Subject: Bug 20179

CVSROOT:/cvs/gcc
Module name:gcc
Branch: gcc-4_0-branch
Changes by: [EMAIL PROTECTED]   2005-09-11 18:55:16

Modified files:
gcc/testsuite  : ChangeLog 
libgfortran: ChangeLog 
libgfortran/io : io.h transfer.c unix.c 
Added files:
gcc/testsuite/gfortran.dg: overwrite_1.f 

Log message:
PR libfortran/19872
* gfortran.dg/overwrite_1.f: New test.

PR libfortran/19872
PR libfortran/20179
* io/unix.c (is_preconnected): Add function to test if a stream
corresponds to a preconnected unit.
* io/io.h: Add prototype for is_preconnected.
* io/transfer.c (data_transfer_init): Truncate overwritten files
on first write, but not preconnected units.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.5084.2.397&r2=1.5084.2.398
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/overwrite_1.f.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.1.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.163.2.90&r2=1.163.2.91
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/io/io.h.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.16.10.7&r2=1.16.10.8
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/io/transfer.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.32.2.16&r2=1.32.2.17
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/io/unix.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.21.10.14&r2=1.21.10.15



-- 


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


[Bug libfortran/19872] [4.0 only] closed and re-opened file not overwriten

2005-09-11 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-09-11 
19:39 ---
Subject: Bug 19872

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-09-11 19:39:35

Modified files:
gcc/testsuite  : ChangeLog 
Added files:
gcc/testsuite/gfortran.dg: overwrite_1.f 

Log message:
PR libfortran/19872
* gfortran.dg/overwrite_1.f: New test.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.6045&r2=1.6046
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/overwrite_1.f.diff?cvsroot=gcc&r1=1.1&r2=1.2



-- 


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


[Bug fortran/23814] unformatted files from gfortran are incompatible with g77 unformatted files and solaris f95 unformatted files

2005-09-11 Thread rrr6399 at futuretek dot com

--- Additional Comments From rrr6399 at futuretek dot com  2005-09-11 20:47 
---
Well, just to warn you, you're going to have a lot of steamed engineers on your
hands when they discover that they either have to recompile all of their FORTRAN
codes on every platform with gfortran, write all of their data (50 - 1000MB
binaries and larger) as ASCII, or convert their files to the traditional g77
format to interoperate with the rest of their processes. What will actually
happen is that users will get burnt once and then they'll drop gfortran like a
hot potato and put in a request to purchase a commercial compiler from Intel or 
PGI.

Another reason that this feature is so painful is that engineers tend to
pipeline their unformatted files from one process to the next. There can
literally be 10 or more programs in a process that will read from or write to a
given unformatted file. Any program in the process that was compiled with
gfortran will break the process and probably in such a subtle way that it'll
take each user hours to figure out what went wrong. (I spent four hours
on it yesterday discovering what the problem was in my process and that's with
knowing how to read the output from "od".)

Furthermore, when one writes binary in C, you get exactly what your variables
are sized to in your code. If the platform is a 32 bit machine and is IEEE
compliant, you pretty much know that a short is 16bit, an int is 32 bit, a long
is 32 bit and a long long is 64 bit. Typically, many times developers even
define macros or new types that guarantee that the variables are the same
lengths independent of 32 bit or 64 bit architectures. There are also compiler
switches many times that govern the length of the various primitive types. So if
portability of the data is important to you, the resulting binary file is
interoperable except for big-Endian versus little-Endian issues...(that can be
worked with a flag at the top or always writing in one endianess.) With C binary
files, of course, you don't have to worry about the the silly record markers
either that muck up the works.

I think the goal of allowing record lengths > 2GB is a good long time target,
but having been in the field for many years, I imagine that the current use
cases for record lengths > 2GBs are very very few compared to those involving
interoperability with other compilers and platforms. The few users requiring
>2GB record lengths can easily modify their write statement to output multiple
records as well rather than one large one.

Hopefully, once there is a compiler switch in place, everybody will be happy. 
:-)

p.s. It is too bad the FORTRAN spec (even the 2003) threw in the towel 
on interoperable binary files. It forces everybody to deal with these issues
in different ways using various third party libaries or ad hoc cobbled-together
solutions. As shown by the CORBA standard and others, the specification of
interoperable binary files is completely doable.

I imagine the FORTRAN vendors will continue to ensure that their binary file
format can be completely specified by the user just to meet the needs of their
customers even though the spec doesn't force them to.

-- 


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


[Bug c/23439] [4.1 regression] "f(){for" crashes the C frontend

2005-09-11 Thread reichelt at gcc dot gnu dot org


-- 
   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/2005-
   ||09/msg00680.html
 Status|NEW |ASSIGNED
   Keywords||patch


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


[Bug c++/23440] [4.0/4.1 regression] "void f(){for" crashes the C++ frontend

2005-09-11 Thread reichelt at gcc dot gnu dot org


-- 
   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/2005-
   ||09/msg00680.html
 Status|NEW |ASSIGNED
   Keywords||patch


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


[Bug fortran/21647] INQUIRE errors when using -fdefault-integer-8

2005-09-11 Thread fxcoudert at gcc dot gnu dot org

--- Additional Comments From fxcoudert at gcc dot gnu dot org  2005-09-11 
21:27 ---
This is a front-end bug. We generate wrong code for all the ioparm members that
are passed by reference (the pointers are cast, instead of creating
temporaries). All cases handled by set_parameter_ref (in trans-io.c) are handled
incorrectly when given a kind different that the GFC_INTEGER_4. Exhaustive list
(hopefully) is: iostat, exist, opened, number, named, recl, nextrec, size and
iolength. Two examples:


$ cat a.f90
  logical*8 ex
  inquire (file="foo",exist=ex)
  end
$ gfortran -fdump-tree-original a.f90
$ cat a.f90.t02.original 
MAIN__ ()
{
  logical8 ex;

  _gfortran_filename = "a.f90";
  _gfortran_line = 2;
  _gfortran_ioparm.file = "foo";
  _gfortran_ioparm.file_len = 3;
  _gfortran_ioparm.exist = (int4 *) &ex;
  _gfortran_st_inquire ();
}


$ cat b.f90
  integer*8 i
  write(*,"()",iostat=i)
  end
$ gfortran -fdump-tree-original b.f90
$ cat b.f90.t02.original 
MAIN__ ()
{
  int8 i;

  _gfortran_filename = "b.f90";
  _gfortran_line = 2;
  _gfortran_ioparm.unit = 6;
  _gfortran_ioparm.format = "()";
  _gfortran_ioparm.format_len = 2;
  _gfortran_ioparm.iostat = (int4 *) &i;
  _gfortran_st_write ();
  _gfortran_st_write_done ();
}

My guess is that in both cases, we should create a temporary before the call,
set the ioparm member to that temporary, make the library call and then get the
value from the temporary back to the real variable. Unfortunately, I have no
idea how to do that (i'm not much of a front-end guy).

-- 
   What|Removed |Added

  Component|libfortran  |fortran
   Keywords||wrong-code
   Last reconfirmed|2005-05-19 16:51:29 |2005-09-11 21:27:46
   date||


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


[Bug c++/2316] g++ fails to overload on language linkage

2005-09-11 Thread sebor at roguewave dot com

--- Additional Comments From sebor at roguewave dot com  2005-09-11 21:34 
---
In reply to comment #6:
The vanilla EDG eccp 3.5 compiles the test case w/o an error:

$ eccp -v t.cpp && ./a.out; echo $?
Edison Design Group C/C++ Front End, version 3.5 (Nov  9 2004 20:00:33)
Copyright 1988-2004 Edison Design Group, Inc.

0

Intel C++ 9.0 (based on eccp 3.4.1) does reject the code, but that's most likely
for compatibility with gcc. I wouldn't rely on its behavior to determine whether
gcc is or isn't correct. (Note that HP aCC 6.0 which is also based on EDG eccp
accepts the code as expected.)

In reply to comment #4:
I don't think DR 4 is related since it's about internal linkage.

The test case is well-formed according to 7.5.1, p1, "Two function types with
different language linkages are distinct types even if they are otherwise
identical."

I.e., the first foo() can only take the address of an extern "C" function as an
argument (and not extern "C++") while the second foo() only an extern "C++"
function (and not extern "C"). Thus, each foo() is a distinct overload.

-- 


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


[Bug libfortran/19872] [4.0 only] closed and re-opened file not overwriten

2005-09-11 Thread pinskia at gcc dot gnu dot org


-- 
   What|Removed |Added

   Target Milestone|4.0.1   |4.0.2


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


[Bug fortran/18315] wrong result for lbound with single argument

2005-09-11 Thread fxcoudert at gcc dot gnu dot org

--- Additional Comments From fxcoudert at gcc dot gnu dot org  2005-09-11 
21:51 ---
Are you sure about that, Thomas? Most compilers I have access to (Intel, g95,
g77, Sun, Lahey) says something similar to "The left and right hand sides of
this array syntax assignment must be conformable arrays." or "Array assignment
at (1) has different sizes". I think this code is not standard-conforming.

-- 
   What|Removed |Added

 Status|NEW |WAITING


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


[Bug fortran/20971] gfortran - internal compiler error on bad program -fdefault-integer-8

2005-09-11 Thread fxcoudert at gcc dot gnu dot org

--- Additional Comments From fxcoudert at gcc dot gnu dot org  2005-09-11 
22:01 ---
Aren't these fixed? Trying to compile these testcases with an up-to-date
compiler, I don't get ICEs...

-- 


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


[Bug fortran/23814] unformatted files from gfortran are incompatible with g77 unformatted files and solaris f95 unformatted files

2005-09-11 Thread kargl at gcc dot gnu dot org

--- Additional Comments From kargl at gcc dot gnu dot org  2005-09-11 22:05 
---
(In reply to comment #5)
> 
> Furthermore, when one writes binary in C, you get exactly what your variables
> are sized to in your code. If the platform is a 32 bit machine and is IEEE
> compliant,

What happens when one or the other of these conditions isn't met?

> I imagine the FORTRAN vendors 

The correct spelling of the name of the language is Fortran.

Your comments #3 and #5 are nice little rants.  Actual code to fix
the problem speaks volumes over your rants.  In particular, you've
been told that Bud Davis is working on the problem.  If there was
an easy solution to the problem, Bud (or one the others working on
gfortran) would have fixed it long ago.




-- 


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


[Bug java/21418] Order of source files matters when compiling

2005-09-11 Thread mark at gcc dot gnu dot org

--- Additional Comments From mark at gcc dot gnu dot org  2005-09-11 22:29 
---
And I tracked our problems with The javax.swing.Box inner class AccessibleBox
extends AccessibleAWTContainer in GNU Classpath to a similar order problem.

Take the following source files:

p/AClass.java
::
package p;
public class AClass
{
  protected abstract class InnerA
  {
protected InnerA()
{
}
  }
}
::
q/BClass.java
::
package q;
import p.*;
public class BClass extends AClass
{
  protected class InnerB extends AClass.InnerA
  {
  }
}
::
q/CClass.java
::
package q;
import p.AClass;
public class CClass extends BClass
{
  protected class InnerC extends AClass.InnerA
  {
  }
}

When compiled as follows all goes well:
$ gcj -C p/AClass.java q/BClass.java q/CClass.java

But when we change the order to:
$ gcj -C p/AClass.java q/CClass.java q/BClass.java
q/CClass.java:5: error: Nested class p.AClass$InnerA is protected; cannot be
accessed from here.
 protected class InnerC extends AClass.InnerA
^
1 error


-- 


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


[Bug c++/23825] New: [4.0/4.1 Regression] Extra C++ failures

2005-09-11 Thread hjl at lucon dot org
Starting from

http://gcc.gnu.org/ml/gcc-testresults/2005-09/msg00497.html

there are extra C++ failures:

FAIL: g++.dg/other/error8.C  (test for errors, line 8)
FAIL: g++.dg/other/error8.C  (test for errors, line 9)
FAIL: g++.dg/other/error8.C duplicate error messages (test for bogus messages,
line 8)
FAIL: g++.dg/other/error8.C duplicate error messages (test for bogus messages,
line 9)
FAIL: g++.dg/template/union1.C (test for excess errors)
WARNING: g++.dg/template/union1.C compilation failed to produce executable

They aren't fixed as in

http://gcc.gnu.org/ml/gcc-testresults/2005-09/msg00544.html

-- 
   Summary: [4.0/4.1 Regression] Extra C++ failures
   Product: gcc
   Version: 4.0.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hjl at lucon dot org
CC: gcc-bugs at gcc dot gnu dot org


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


[Bug c++/23825] [4.0/4.1 Regression] Extra C++ failures

2005-09-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-09-11 
23:02 ---
See http://gcc.gnu.org/ml/gcc-regression/2005-09/msg00022.html

-- 
   What|Removed |Added

   Target Milestone|--- |4.0.2


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


[Bug rtl-optimization/23098] [4.1 Regression] store of 0.0 to float

2005-09-11 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-09-11 
23:22 ---
Subject: Bug 23098

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-09-11 23:22:11

Modified files:
gcc: ChangeLog 
gcc/config/rs6000: predicates.md rs6000.md rs6000.c altivec.md 

Log message:
PR rtl-optimization/23098
* config/rs6000/predicates.md (easy_fp_constant): SFmode constant
0.0f is easy.
* config/rs6000/rs6000.md (movdf splitter): Use
const_double_operand predicate for TARGET_POWERPC64.
* config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Expand
SYMBOL_REF method to ABI_V4.

* config/rs6000/altivec.md (build_vector_mask_for_load): Use
replace_equiv_address.
* config/rs6000/rs6000.c (rs6000_emit_eh_reg_restore): Mark MEM as
rs6000_sr_alias_set and MEM_NOTRAP.
(rs6000_aix_emit_builtin_unwind_init): Use gen_frame_mem().

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.9933&r2=2.9934
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/rs6000/predicates.md.diff?cvsroot=gcc&r1=1.25&r2=1.26
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/rs6000/rs6000.md.diff?cvsroot=gcc&r1=1.406&r2=1.407
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/rs6000/rs6000.c.diff?cvsroot=gcc&r1=1.866&r2=1.867
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/rs6000/altivec.md.diff?cvsroot=gcc&r1=1.44&r2=1.45



-- 


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


[Bug fortran/23814] unformatted files from gfortran are incompatible with g77 unformatted files and solaris f95 unformatted files

2005-09-11 Thread rrr6399 at futuretek dot com

--- Additional Comments From rrr6399 at futuretek dot com  2005-09-11 23:22 
---
I'm not sure why I'm getting so much pushback on this silly thing.

I realize that disagreeing with the assumptions made during the design may be
regarded by some as "rants", but what I was attempting to do (perhaps poorly) is
illustrate why simple decisions that might seem fairly benign can have huge
efficiency impacts on a large population of users. There has been a pattern of
these decisions made over the years that have wasted thousands (if not millions)
of hours of people's precious time. (Big Endian vs. Little Endian, \ versus /,
CR vs CR/LF vs LF, 8 byte vs 4 byte markers, etc.)

If you read some of the previous comments, you'll see that some don't think it's
an issue. It really is a problem that should take high priority. I know Bud is
going to apply a variation of the patch he wrote a few months ago soon and I'm
happy about that. I hope there isn't any pushback from the rest of the
developers. I think the default should actually be 4 byte markers, but that's
just my humble opinion.

BTW, I think both spellings of FORTRAN (FORmula TRANslation) 
are correct actually: http://www.ibiblio.org/pub/languages/fortran/ch1-1.html
http://www.engin.umd.umich.edu/CIS/course.des/cis400/fortran/fortran.html
(Not that it really matters in the big scheme of things.)

I'll also post a small C program to convert to the g77 format soon as a
temporary fix until the patch is in place. (I'm completely hammered with
work right now, but I'll try to contribute more in the future. I've already
sent in some code snippets on the little endian/big endian issue.)

Also, if I wanted to be condescended to I'd go talk to my wife. :-)
I hope that we can all keep this professional in the future and 
respect people's time (development, trouble shooting and bug reporting) 
that they put into this to help make a better product for
everybody.

-- 


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


[Bug c++/23826] New: invalid use of constructor as a template

2005-09-11 Thread harold at alum dot mit dot edu
The following code compiled in g++ 3.3.4, but does not compile in the latest 
4.0.x
Seems like a regression testing oversight.
 
 
template 
class db_reference {
  private:
T r;
  public:
ID_TYPE &id;
db_reference(ID_TYPE req_id=0);
T &get();
std::string print(int full_subtables=0, int show_ids=1, int no_refs=0) 
const;
std::string print_xml(int full_subtables=1, int show_ids=0, int no_refs=1,
const char *tag=0) const;
void parse_xml(std::string &buf, const char *tag);
void parse(const std::string &buf);
void parse(const SQL_ROW &buf);
operator T() const;
T *operator ->();
const T *operator ->() const;
db_reference &operator =(T &t);
db_reference &operator =(const db_reference &t);
};
 
template 
db_reference::db_reference(ID_TYPE req_id) : id(*(ID_TYPE
*)(&(r.id))) {
  id=req_id;
}
 
The error is
  error: invalid use of constructor as a template
  note: use ‘db_reference::db_reference’ instead of ‘db_reference::db_reference’ to name the constructor in a qualified name

-- 
   Summary: invalid use of constructor as a template
   Product: gcc
   Version: 4.0.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: harold at alum dot mit dot edu
CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: 4.0.x
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


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


[Bug java/21418] Order of source files matters when compiling

2005-09-11 Thread cvs-commit at developer dot classpath dot org

--- Additional Comments From cvs-commit at developer dot classpath dot org  
2005-09-11 23:36 ---
Subject: Bug 21418

CVSROOT:/cvsroot/classpath
Module name:classpath
Branch: 
Changes by: Mark Wielaard <[EMAIL PROTECTED]>   05/09/11 23:15:58

Modified files:
.  : ChangeLog 
lib: gen-classlist.sh.in 

Log message:
* lib/gen-classlist.sh.in: Use sort -r to work around bug #21418.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/ChangeLog.diff?tr1=1.4725&tr2=1.4726&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/lib/gen-classlist.sh.in.diff?tr1=1.30&tr2=1.31&r1=text&r2=text






-- 


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


[Bug c++/23823] Is this right?

2005-09-11 Thread bangerth at dealii dot org

--- Additional Comments From bangerth at dealii dot org  2005-09-11 23:38 
---
The code is illegal (you can only partially specialize class templates, 
not function templates). I think the error message is clear: you only 
give one template parameter (and try, illegally, to fix the other), 
instead of having two template parameters as required (note the function 
has two parameters, but in your attempt of a partial specialization, you 
only leave one as a template while fixing the other to a particular value). 
 
W. 

-- 
   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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


[Bug c++/23826] invalid use of constructor as a template

2005-09-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-09-11 
23:39 ---
(In reply to comment #0)
> The following code compiled in g++ 3.3.4, but does not compile in the latest 
> 4.0.x
> Seems like a regression testing oversight.
Nope, see below.

> The error is
>   error: invalid use of constructor as a template
>   note: use ‘db_reference::db_reference’ instead of 
> ‘db_reference ID_TYPE>::db_reference’ to name the constructor in a qualified 
> name

The error even says how to fix your code.  In fact the note part was added so 
people don't confuse
what the error message meant.

-- 
   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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


[Bug c++/23826] invalid use of constructor as a template

2005-09-11 Thread steven at gcc dot gnu dot org

--- Additional Comments From steven at gcc dot gnu dot org  2005-09-11 
23:46 ---
For the reporter: what the compiler is telling you is that your code is not 
valid ISO C++.  What it is not telling you is that G++ 3.3.4 did not really 
actually know what is valid C++ and what is not. 
 
In GCC 3.4 and later there is a new C++ parser that is ISO C++ conforming.  
Sadly for you, this means that while older G++ versions accepted your invalid 
C++, newer G++ releases do not, and you have to fix your code to make it work. 

-- 


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


[Bug preprocessor/23827] New: standard C++ should not have hex float preprocessing tokens

2005-09-11 Thread jsm28 at gcc dot gnu dot org
Standard C++ does not include hexadecimal floating point numbers.  The
preprocessor correctly pedwarns for C++ if such a preprocessing token is
converted to a token, but it incorrectly allows p+ and p- in preprocessing
tokens in standard C++ mode in the first place.  The problem is probably the 
table

static const struct lang_flags lang_defaults[] =
{ /*  c99 c++ xnum std  //   digr  */
  /* CXX98  */  { 0,  1,  1,   1,   1,   1 },

in libcpp/init.c: xnum should be 0 not 1.  The valid C++ testcases this affects
(compile with -std=c++98 -pedantic-errors, should execute OK, instead aborts)
are along the lines of gcc.dg/c90-hexfloat-2.c:

#define f (
#define l )
#define str(x) #x
#define xstr(x) str(x)

/* C90 and C++: "0x1p+( 0x1p+)"; C99: "0x1p+f 0x1p+l" */
const char *s = xstr(0x1p+f 0x1p+l);

extern "C" void abort (void);
extern "C" int strcmp (const char *, const char *);

int
main (void)
{
  if (strcmp (s, "0x1p+( 0x1p+)"))
abort ();
  else
return 0; /* Correct C90 and C++ behavior.  */
}

-- 
   Summary: standard C++ should not have hex float preprocessing
tokens
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: preprocessor
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jsm28 at gcc dot gnu dot org
CC: gcc-bugs at gcc dot gnu dot org


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


[Bug preprocessor/23827] standard C++ should not have hex float preprocessing tokens

2005-09-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-09-12 
00:32 ---
Confirmed.

-- 
   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed||1
   Keywords||accepts-invalid
  Known to fail||2.95.3 3.0.4 3.2.2 3.2.3
   ||3.3.1 4.0.0 3.4.0
   Last reconfirmed|-00-00 00:00:00 |2005-09-12 00:32:38
   date||


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


[Bug fortran/23814] unformatted files from gfortran are incompatible with g77 unformatted files and solaris f95 unformatted files

2005-09-11 Thread kargl at gcc dot gnu dot org

--- Additional Comments From kargl at gcc dot gnu dot org  2005-09-12 00:35 
---
(In reply to comment #7)
> 
> I realize that disagreeing with the assumptions made during the design may be
> regarded by some as "rants", but what I was attempting to do (perhaps poorly) 
> is
> illustrate why simple decisions that might seem fairly benign can have huge
> efficiency impacts on a large population of users.

Why do you think that this was a "simple decision" in the initial design?
The world is moving to 64-bit CPUs, and a 32-bit record marker effects
performance (think about alignment issues).  Bud has thought about this
problem for several months, produced a plausible patch, and then Real Life
got into his way.  A fix to this problem takes time. There is no simple 
solution. 

> If you read some of the previous comments, you'll see that some don't think 
> it's
> an issue. It really is a problem that should take high priority.

This isn't pushback but reality.  There are only a handful of 
volunteers hacking on the code.  What is a high priority to you
may not be very high on some hacker's lists.  To me, fixing the
known bugs in modules is much higher priority than changing a
functioning portion of the compiler. 

> I know Bud is going to apply a variation of the patch he wrote a
> few months ago soon and I'm happy about that. I hope there isn't
> any pushback from the rest of the developers.

I doubt that there will be pushback.  Yes, we will review the code
and make suggestions. But, most of the developers will welcome Bud's
effort.

> I think the default should actually be 4 byte markers, but that's
> just my humble opinion.

I only use opteron base systems where a 64-bit marker is preferred.

> 
> BTW, I think both spellings of FORTRAN (FORmula TRANslation) 
> are correct actually: http://www.ibiblio.org/pub/languages/fortran/ch1-1.html
> http://www.engin.umd.umich.edu/CIS/course.des/cis400/fortran/fortran.html
> (Not that it really matters in the big scheme of things.)

Read the Standard.  It very carefully uses "FORTRAN 77" to identify
specific references to ISO 1539:1980.  Indeed, the passage in 1.6 
says  "Each Fortran International Standard since ISO 1539:1980 (informally
referred to as FORTRAN 77)".  Note, "ORTRAN" actually appears in small
caps.  Everywhere else the Standard carefully uses Fortran.

> I'll also post a small C program to convert to the g77 format soon as a
> temporary fix until the patch is in place.

Thanks.

> (I'm completely hammered with
> work right now, but I'll try to contribute more in the future. I've already
> sent in some code snippets on the little endian/big endian issue.)

So, you can appreciate the demands on the developers. :-)
I would love to devote several hours a week to gfortran, but
time is occupied by Real Life.

> I hope that we can all keep this professional in the future and 
> respect people's time (development, trouble shooting and bug reporting) 
> that they put into this to help make a better product for
> everybody.

Sorry if my comment appeared to be too strong, but your Comment #3 and
#5 appeared to be "preaching to the choir".  We know there's a problem.
Bud is working on it.


-- 


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


[Bug c++/23823] Is this right?

2005-09-11 Thread igodard at pacbell dot net

--- Additional Comments From igodard at pacbell dot net  2005-09-12 01:14 
---
Well, you may think it's clear but I am am counter-example :-)  Perhaps
"template parameter" (in the message) is a formal term in the language syntax
specification (who but acompiler maven would know that?), but I expected that
"template parameter" refered to the template parameters, not the template
argument specifications. That is, I thought (in the example) that it referred to
"T, true" in "voidfoo::g() {}", rather than to "template".

That is, you know what the message means only if you already know what it means,
which is by definition a bad diagnostic.

-- 
   What|Removed |Added

 Status|RESOLVED|UNCONFIRMED
 Resolution|INVALID |


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


[Bug rtl-optimization/11261] Weak code generated for JPEG compression

2005-09-11 Thread pinskia at gcc dot gnu dot org


-- 
   What|Removed |Added

 Status|WAITING |NEW
   Last reconfirmed|2003-11-22 20:18:21 |2005-09-12 01:18:36
   date||


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


[Bug c++/18803] [3.4.5 regression] rejects access to operator() in template

2005-09-11 Thread bangerth at dealii dot org

--- Additional Comments From bangerth at dealii dot org  2005-09-12 01:18 
---
Folks,   
I find that this bug is now present on the 3.4.x branch. I don't know   
for how long, but believe that it broke somewhere between 5 and 15 days   
ago. It would be good if we could fix this before 3.4.5 finally comes  
out. Note that both 4.0.x and mainline seem to be unaffected, so it may 
be one of the patches that were backported that caused this... 
  
W.  

-- 
   What|Removed |Added

 CC||gdr at gcc dot gnu dot org,
   ||nathan at gcc dot gnu dot
   ||org, reichelt at gcc dot gnu
   ||dot org
 Status|RESOLVED|REOPENED
 Resolution|FIXED   |
Summary|[4.0 regression] rejects|[3.4.5 regression] rejects
   |access to operator() in |access to operator() in
   |template|template


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


[Bug c++/18803] [3.4 regression] rejects access to operator() in template

2005-09-11 Thread pinskia at gcc dot gnu dot org


-- 
   What|Removed |Added

  Known to fail||3.4.5
  Known to work||3.4.4
Summary|[3.4.5 regression] rejects  |[3.4 regression] rejects
   |access to operator() in |access to operator() in
   |template|template
   Target Milestone|4.0.0   |3.4.5


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


[Bug rtl-optimization/23828] New: local calling convention not used when using -fwhole-program --combine

2005-09-11 Thread dann at godzilla dot ics dot uci dot edu
When compiling the files in the attachment for PR22574 using the command line:

gcc -fwhole-program --combine -march=i686 -O2 button.i charproc.i charsets.i
cursor.i data.i doublechr.i fontutils.i input.i main.i menu.i misc.i print.i
ptydata.i screen.i scrollbar.i tabs.i util.i xstrings.i VTPrsTbl.i -S

the function ClearLeft looks like:

ClearLeft.221553:
pushl   %ebp
movl%esp, %ebp
subl$8, %esp
movl3748(%eax), %ecx
movl3752(%eax), %edx
movl$0, (%esp); <- 0 is passed on the stack
incl%ecx
movl%ecx, 4(%esp)
callClearInLine.221545
leave
ret

When compiling just the file util.i that contains ClearLeft using 
-march=i686 -O2 the assembly is:

ClearLeft:
pushl   %ebp
movl%esp, %ebp
subl$8, %esp
movl3748(%eax), %ecx
movl3752(%eax), %edx
incl%ecx
movl%ecx, (%esp)
xorl%ecx, %ecx   ; 0 is passed in a register
callClearInLine
leave
ret

When using -fwhole-program --combine the parameter "0" to the ClearInLine
function is passed on the stack instead of being passed in a register. 

Is there a reason for that? Shouldn't it be more better to pass it in a 
register?

-- 
   Summary: local calling convention not used when using -fwhole-
program --combine
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: rtl-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dann at godzilla dot ics dot uci dot edu
CC: gcc-bugs at gcc dot gnu dot org
GCC target triplet: i686-pc-linux-gnus


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


[Bug middle-end/23828] local calling convention not used when using -fwhole-program --combine

2005-09-11 Thread pinskia at gcc dot gnu dot org


-- 
   What|Removed |Added

  Component|rtl-optimization|middle-end
   Keywords||missed-optimization


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


[Bug java/23829] New: FreeBSD 5 support for libjava

2005-09-11 Thread chat95 at mac dot com
FreeBSD 5 has -lpthread but not activated.

-- 
   Summary: FreeBSD 5 support for libjava
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: java
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: chat95 at mac dot com
CC: gcc-bugs at gcc dot gnu dot org,java-prs at gcc dot gnu
dot org
 GCC build triplet: i386-unknown-freebsd5.4
  GCC host triplet: i386-unknown-freebsd5.4
GCC target triplet: i386-unknown-freebsd5.4


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


[Bug java/23829] FreeBSD 5 support for libjava

2005-09-11 Thread chat95 at mac dot com

--- Additional Comments From chat95 at mac dot com  2005-09-12 01:54 ---
Created an attachment (id=9708)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=9708&action=view)
FreeBSD >=5.3 has -lpthread


-- 


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


[Bug c++/23823] Is this right?

2005-09-11 Thread bangerth at dealii dot org

--- Additional Comments From bangerth at dealii dot org  2005-09-12 01:55 
---
Well, but then tell me what you expect for the case you have:  
  template  
  voidfoo::g() {}  
How many template parameters do you give? I count one (in the   
'template <...>' angle brackets). And how many are expected (the  
language says it would be 2)?. Propose a better wording for the  
message, rather than just complaining about the existing text.  
  
W.  

-- 


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


[Bug libgcj/23829] FreeBSD 5 support for libjava

2005-09-11 Thread pinskia at gcc dot gnu dot org


-- 
   What|Removed |Added

  Component|java|libgcj


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


[Bug libfortran/19303] Unformatted record header is 4-bytes on 32-bit targets

2005-09-11 Thread rrr6399 at futuretek dot com

--- Additional Comments From rrr6399 at futuretek dot com  2005-09-12 02:20 
---
FYI: Here's what Intel did for to address the record sizes larger than 2 GB: 
http://www.intel.com/software/products/compilers/flin/docs/main_for/mergedProjects/bldaps_for/format_of_record_types_.htm
The nice thing about this approach is that the files are compatible with files
generated by f77/g77 and other vendors' f90/f95 compilers. The tradeoff is that
it makes the i/o logic a little more complicated.

I believe that PGI (Portland Group) compiler generates f77 compliant unformatted
files as well. I haven't found their approach yet for dealing with >2GB record
sizes, but the docs are at http://www.pgroup.com/resources/docs.htm

I'm going to check Cray, SGI and Sun as well to see what format they output.

-- 


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


[Bug c++/23823] Is this right?

2005-09-11 Thread igodard at pacbell dot net

--- Additional Comments From igodard at pacbell dot net  2005-09-12 03:17 
---
In the case you give I count one template argument specificatiob, and two
template parameters.

As for a better message, how about: "A template definition must have same number
of formal template specifications (within "template<...>") as the definition;
the actual arguments (within "name<...>") may differ."

Ivan

-- 


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


[Bug c/23830] New: inline optimization possibility - reorder compilation step

2005-09-11 Thread Atif dot Hussain at gmail dot com
subj: For functions specified inline, decision to inline them should be based on
inlined code size instead of un-inlined function length.

Here is a simple snippet of a larger complex.

inline int changePrecision(int x, int x_prec, int y_prec) {
if (y_prec>x_prec) return (x<<(y_prec-x_prec));
else
if (y_prec>(x_prec-y_prec));
else
return k;
}
which is intended to be called with constants x_prec & y_prec.
This code though assigned inline (it would be 0 or 1 cycles) is 
first created into a function, observed to be long enough, and not inlined.

-- 
   Summary: inline optimization possibility - reorder compilation
step
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P2
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: Atif dot Hussain at gmail dot com
CC: Atif dot Hussain at gmail dot com,gcc-bugs at gcc dot
gnu dot org
  GCC host triplet: frontend


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


[Bug libstdc++/22309] mt allocator doesn't pthread_key_delete it's keys

2005-09-11 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-09-12 
04:49 ---
Subject: Bug 22309

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-09-12 04:49:11

Modified files:
libstdc++-v3   : ChangeLog 
libstdc++-v3/config: linker-map.gnu 
libstdc++-v3/include/ext: mt_allocator.h 
libstdc++-v3/src: mt_allocator.cc 
libstdc++-v3/testsuite/lib: dg-options.exp libstdc++.exp 
Added files:
libstdc++-v3/testsuite: testsuite_shared.cc 
libstdc++-v3/testsuite/ext/mt_allocator: 22309_thread.cc 

Log message:
2005-09-11  Benjamin Kosnik  <[EMAIL PROTECTED]>

PR libstdc++/19265
PR libstdc++/22309
* include/ext/mt_allocator.h
(__gnu_cxx::__create_handler): Remove.
(__pool::_M_destroy_thread_key): Compatibility only.
(__pool::_M_initialize(__destroy): Same.
(__pool::_M_initialize): New.
(__pool::_M_initialize_once): Nothing fancy.
(__pool::_M_once): Remove.
(__common_pool): New.
(__common_pool_base): New.
(__per_type_pool): New.
(__per_type_pool_base): New.
* src/mt_allocator.cc: Same.
* config/linker-map.gnu (__pool::_M_initialize()): Add.

2005-09-11  Jakub Jelinek  <[EMAIL PROTECTED]>

PR libstdc++/19265
PR libstdc++/22309
* src/mt_allocator.cc (__gnu_internal::freelist_mutex): Make static.
(__gnu_internal::__freelist): New type.
(__gnu_internal::freelist): New variable.
(__gnu_internal::_M_destroy_thread_key): New function.
(__gnu_cxx::__pool::_M_destroy): Don't delete
_M_thread_freelist_initial.
(__gnu_cxx::__pool::_M_initialize): Make argument nameless.
Don't use _M_thread_freelist and _M_thread_freelist_initial
__pool fields, instead use __gnu_internal::freelist fields, call
gthread_key_create just once.  Use
__gnu_internal::_M_destroy_thread_key as key destructor.
(__gnu_cxx::__pool::_M_get_thread_id): Store size_t id
rather than _Thread_record* in the thread specific value.  Don't
use _M_thread_freelist __pool field, instead use
__gnu_internal::freelist fields.
(__gnu_cxx::__pool::_M_destroy_thread_key): Do nothing.

2005-09-11  Benjamin Kosnik  <[EMAIL PROTECTED]>
Jakub Jelinek  <[EMAIL PROTECTED]>

PR libstdc++/19265
PR libstdc++/22309
* testsuite/testsuite_shared.cc: New.
* testsuite/lib/dg-options.exp (dg-require-sharedlib): New.
* testsuite/lib/libstdc++.exp (libstdc++_init): Look for shared
library, and set v3-sharedlib based on this.
(check_v3_target_sharedlib): New.
(proc v3-build_support): Build shared objects.
* testsuite/ext/mt_allocator/22309_thread.cc: New, use above.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/ChangeLog.diff?cvsroot=gcc&r1=1.3095&r2=1.3096
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/config/linker-map.gnu.diff?cvsroot=gcc&r1=1.84&r2=1.85
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/include/ext/mt_allocator.h.diff?cvsroot=gcc&r1=1.47&r2=1.48
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/src/mt_allocator.cc.diff?cvsroot=gcc&r1=1.12&r2=1.13
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/testsuite_shared.cc.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/ext/mt_allocator/22309_thread.cc.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/lib/dg-options.exp.diff?cvsroot=gcc&r1=1.4&r2=1.5
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/lib/libstdc++.exp.diff?cvsroot=gcc&r1=1.45&r2=1.46



-- 


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


[Bug libstdc++/19265] problem with _S_destroy_thread_key when using dynamic libraries

2005-09-11 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-09-12 
04:49 ---
Subject: Bug 19265

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-09-12 04:49:11

Modified files:
libstdc++-v3   : ChangeLog 
libstdc++-v3/config: linker-map.gnu 
libstdc++-v3/include/ext: mt_allocator.h 
libstdc++-v3/src: mt_allocator.cc 
libstdc++-v3/testsuite/lib: dg-options.exp libstdc++.exp 
Added files:
libstdc++-v3/testsuite: testsuite_shared.cc 
libstdc++-v3/testsuite/ext/mt_allocator: 22309_thread.cc 

Log message:
2005-09-11  Benjamin Kosnik  <[EMAIL PROTECTED]>

PR libstdc++/19265
PR libstdc++/22309
* include/ext/mt_allocator.h
(__gnu_cxx::__create_handler): Remove.
(__pool::_M_destroy_thread_key): Compatibility only.
(__pool::_M_initialize(__destroy): Same.
(__pool::_M_initialize): New.
(__pool::_M_initialize_once): Nothing fancy.
(__pool::_M_once): Remove.
(__common_pool): New.
(__common_pool_base): New.
(__per_type_pool): New.
(__per_type_pool_base): New.
* src/mt_allocator.cc: Same.
* config/linker-map.gnu (__pool::_M_initialize()): Add.

2005-09-11  Jakub Jelinek  <[EMAIL PROTECTED]>

PR libstdc++/19265
PR libstdc++/22309
* src/mt_allocator.cc (__gnu_internal::freelist_mutex): Make static.
(__gnu_internal::__freelist): New type.
(__gnu_internal::freelist): New variable.
(__gnu_internal::_M_destroy_thread_key): New function.
(__gnu_cxx::__pool::_M_destroy): Don't delete
_M_thread_freelist_initial.
(__gnu_cxx::__pool::_M_initialize): Make argument nameless.
Don't use _M_thread_freelist and _M_thread_freelist_initial
__pool fields, instead use __gnu_internal::freelist fields, call
gthread_key_create just once.  Use
__gnu_internal::_M_destroy_thread_key as key destructor.
(__gnu_cxx::__pool::_M_get_thread_id): Store size_t id
rather than _Thread_record* in the thread specific value.  Don't
use _M_thread_freelist __pool field, instead use
__gnu_internal::freelist fields.
(__gnu_cxx::__pool::_M_destroy_thread_key): Do nothing.

2005-09-11  Benjamin Kosnik  <[EMAIL PROTECTED]>
Jakub Jelinek  <[EMAIL PROTECTED]>

PR libstdc++/19265
PR libstdc++/22309
* testsuite/testsuite_shared.cc: New.
* testsuite/lib/dg-options.exp (dg-require-sharedlib): New.
* testsuite/lib/libstdc++.exp (libstdc++_init): Look for shared
library, and set v3-sharedlib based on this.
(check_v3_target_sharedlib): New.
(proc v3-build_support): Build shared objects.
* testsuite/ext/mt_allocator/22309_thread.cc: New, use above.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/ChangeLog.diff?cvsroot=gcc&r1=1.3095&r2=1.3096
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/config/linker-map.gnu.diff?cvsroot=gcc&r1=1.84&r2=1.85
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/include/ext/mt_allocator.h.diff?cvsroot=gcc&r1=1.47&r2=1.48
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/src/mt_allocator.cc.diff?cvsroot=gcc&r1=1.12&r2=1.13
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/testsuite_shared.cc.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/ext/mt_allocator/22309_thread.cc.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/lib/dg-options.exp.diff?cvsroot=gcc&r1=1.4&r2=1.5
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/lib/libstdc++.exp.diff?cvsroot=gcc&r1=1.45&r2=1.46



-- 


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


[Bug middle-end/23830] inline optimization possibility - reorder compilation step

2005-09-11 Thread pinskia at gcc dot gnu dot org


-- 
   What|Removed |Added

 CC||pinskia at gcc dot gnu dot
   ||org
  Component|c   |middle-end


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


[Bug middle-end/23830] inline optimization possibility - reorder compilation step

2005-09-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-09-12 
05:01 ---
For 4.1 we do have IPA based constant propagation which basically implements 
what you want.

-- 


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


[Bug fortran/23379] compiler segfault with internal write

2005-09-11 Thread jvdelisle at verizon dot net

--- Additional Comments From jvdelisle at verizon dot net  2005-09-12 05:39 
---
I have confirmed that the test case given is resolved by the patch discusssed in
comment #3.  The patch is in review.

-- 


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


[Bug middle-end/19419] Overlapping memcpy with discriminated types

2005-09-11 Thread ebotcazou at gcc dot gnu dot org

--- Additional Comments From ebotcazou at gcc dot gnu dot org  2005-09-12 
06:14 ---
Investigating.


-- 
   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |ebotcazou at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2005-07-15 21:34:21 |2005-09-12 06:14:13
   date||


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


[Bug c/10719] invalid code generated (x86, "int $5") with __builtin_va_arg(va, char);

2005-09-11 Thread appfault at hotmail dot com

--- Additional Comments From appfault at hotmail dot com  2005-09-12 06:17 
---
I agree that gcc apparently complies with the standard as currently 
implemented.  So this zilla is not a defect, but an enhancement request.

Why not reopen this to add a -Wundefined-behavior, so that at least bugs like 
that could be caught up front when using -Werror?

-- 


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