[Bug fortran/31144] Gfortran module names are not Standards compliant

2007-03-12 Thread kargl at gcc dot gnu dot org


--- Comment #2 from kargl at gcc dot gnu dot org  2007-03-12 07:05 ---
(In reply to comment #1)
 I don't think underscores are part of Fortran's identifier character space.
 

An underscore can appear in a symbol except as the first character.


-- 


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



[Bug fortran/31139] sum(w_re(1:nn,1)*fi(i(1:nn, ii))) up to 3.5x slower than C version

2007-03-12 Thread burnus at gcc dot gnu dot org


--- Comment #5 from burnus at gcc dot gnu dot org  2007-03-12 07:58 ---
 complex * complex is not a simple cross product in FP world.
Well, the program calculates: real * complex


-- 


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



[Bug fortran/31139] sum(w_re(1:nn,1)*fi(i(1:nn, ii))) up to 3.5x slower than C version

2007-03-12 Thread burnus at gcc dot gnu dot org


--- Comment #6 from burnus at gcc dot gnu dot org  2007-03-12 08:16 ---
 Can someone try instead of doing __real__ a += w[j] *__real__ mfi[*index];
 Use a+= xxx* yyy and also use -std=c99 to get the correct multiplication?

Well, -std=c99 was used already and the real(!) * complex calculation was
already correct. c_cmplx below uses now:
  a += w[j] * mfi[*index++];

Compiled with:
gcc -std=c99 -O3 -funroll-loops -ftree-vectorize -march=opteron -msse3
-ffast-math -m64
gfortran -O3 -funroll-loops -ftree-vectorize -march=opteron -msse3 -ffast-math
-m64

 Fortran:   0.4360271
 Fortran:   0.4280267
 c_nosse:   0.2440166
 c_nosse:   0.2320151
 c_sse: 0.2320137
 c_sse: 0.2400150
 c_struct:  0.2320151
 c_struct:  0.2320147
 c_cmplx:   0.2360163
 c_cmplx:   0.2320147
And using a non-manually unrolled version: 0.3760242, 0.3760242
  for(i = 0; i  np ; i++) {
for(j = 1; j  n; j++)
  a += w[j] * mfi[*index++];
fo[i] = a;
  }
Thus the unrolling seems to do most of the speed up. With -funroll-all-loops,
the timings of fortran an the non-unrolled version remain the same.


-- 


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



[Bug fortran/30922] IMPORT fails for same symbol in multiple interface bodies of same interface block

2007-03-12 Thread burnus at gcc dot gnu dot org


--- Comment #3 from burnus at gcc dot gnu dot org  2007-03-12 08:50 ---
Created an attachment (id=13193)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13193action=view)
Patch draft (by Paul Thomas)

Notes by Paul:

(i) gfc_find_symbol searches via proc_name-ns to overcome standard
problem with interfaces in enclosed procedures.
(ii) Add field imported to gfc_symtree
(iii) Set it when a symbol is imported
(iv)resolve.c 5658 to use imported to stop false error for individually
imported symbols.


Note, it does not fix the problem of comment 1 (which was found later).

It causes some regressions (filelist below) with such errors:
gfortran.fortran-torture/execute/der_io.f90:55.20:
subroutine foo(t)
   1
gfortran.fortran-torture/execute/der_io.f90:5.15:

  type xyz_type
  2
Error: The type xyz_type cannot be host associated at (1) because it is
blocked by an incompatible object of the same name at (2)

Files:
gfortran.dg/automatic_default_init_1.f90
gfortran.dg/char_result_11.f90
gfortran.dg/char_result_5.f90
gfortran.dg/char_result_6.f90
gfortran.dg/default_initialization_2.f90
gfortran.dg/dependency_19.f90
gfortran.dg/der_charlen_1.f90
gfortran.dg/der_io_2.f90
gfortran.dg/der_io_3.f90
gfortran.dg/der_pointer_3.f90
[...]


-- 


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



[Bug objc++/31134] [4.3 Regression] Objective-C++ has ran into the tree number limit

2007-03-12 Thread pcarlini at suse dot de


--- Comment #8 from pcarlini at suse dot de  2007-03-12 09:07 ---
(In reply to comment #7)
 Also adding new features should not break old features

Here we are not talking about trade-offs, that should be rather clear by now.
We are talking about fixing for real the underlying very serious issue with the
tree code limit which otherwise blocks development in many new areas.
Temporarily, Doug can well revert his patch but the limit **must** be removed
anyway.


-- 


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



[Bug c++/20599] variadic template support

2007-03-12 Thread pcarlini at suse dot de


--- Comment #15 from pcarlini at suse dot de  2007-03-12 09:26 ---
Actually in the latest mailing there are two new papers, N2151 and N2152.


-- 


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



[Bug c++/29164] Overloaded operator delete[] doesn't get called

2007-03-12 Thread Andreas dot Kowarz at tu-dresden dot de


--- Comment #10 from Andreas dot Kowarz at tu-dresden dot de  2007-03-12 
09:30 ---
THS (The Holy Standard :-) ) 3.7.4.2/3 reads to me that for standard library
implementations the delete operators must be called in any case but return
immediately if the first argument is NULL = NULL-check inside the operator.

Taking the context into account, it reads to me as if standard library delete
calls can be treated as special cases. In the more general case, i.e., the user
supplied delete operators, no special assumptions can be done. Again, the
operators must be called in any case but it is up to the user to handle special
cases correctly. Whatever the latter may look like.

Andreas


-- 


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



[Bug c++/29365] Unnecessary anonymous namespace warnings

2007-03-12 Thread Woebbeking at web dot de


--- Comment #7 from Woebbeking at web dot de  2007-03-12 09:37 ---
Any news on this? It's really annoying if you've many pimpls which often use
anonymous namespace.


-- 

Woebbeking at web dot de changed:

   What|Removed |Added

 CC||Woebbeking at web dot de


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



[Bug c++/31145] New: ICE: in cse_find_path, at cse.c:5930 with -O3 -ftracer

2007-03-12 Thread wouter dot vermaelen at pi dot be
I'm using SVN revision 122834.

 cat bug.cc
int buf[2];
int f(int x) {
return (x  1) ? buf[0] : buf[1];
}
void g() {
for (int x = 0; x  100  f(x); ++x);
}

 g++ -O3 -ftracer bug.ccbug.cc: In function 'void g()':
bug.cc:7: internal compiler error: in cse_find_path, at cse.c:5930

 g++ -v
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../configure -v --enable-languages=c,c++
--prefix=/home/wouter/gcc/local --enable-shared --with-system-zlib --enable-nls
--enable-threads=posix --without-included-gettext --disable-werror
--enable-__cxa_atexit --enable-libstdcxx-allocator=mt --enable-clocale=gnu
--enable-libstdcxx-debug i486-linux-gnu --enable-libmudflap
--enable-checking=release
Thread model: posix
gcc version 4.3.0 20070312 (experimental)


-- 
   Summary: ICE: in cse_find_path, at cse.c:5930with -O3 -
ftracer
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: wouter dot vermaelen at pi dot be


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



[Bug c++/28774] Request for warning where const/volatile is ignored in a cast

2007-03-12 Thread manu at gcc dot gnu dot org


--- Comment #6 from manu at gcc dot gnu dot org  2007-03-12 12:10 ---
This seems a duplicate of PR 14710.


-- 


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



[Bug tree-optimization/31146] New: forwprop does not look through casts

2007-03-12 Thread rguenth at gcc dot gnu dot org
The following two testcases should produce the same code after forwprop1:

struct foo { int i[3]; };

void bar (void)
{
  struct foo Foo;
  int i;

  for (i=0; i3; ++i)
{
  void *p = Foo.i[i];
  int *pi = (int *)p;
  if (pi != 0)
{
  *pi = 0;
}
}
}

---

struct foo { int i[3]; };

void bar (void)
{
  struct foo Foo;
  int i;

  for (i=0; i3; ++i)
{
  void *p = Foo.i[i];
  int *pi = (int *)p;
  if (p != 0)
{
  *pi = 0;
}
}
}


(the difference is testing p != 0 vs. pi != 0)

This happens in tramp3d-v4 via placement new:

  for (i=0; i3; ++i)
new (a[i]) double;

where placement new expands to the wrong test sequence.

Mine.


-- 
   Summary: forwprop does not look through casts
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: missed-optimization
  Severity: enhancement
  Priority: P3
 Component: tree-optimization
AssignedTo: rguenth at gcc dot gnu dot org
ReportedBy: rguenth at gcc dot gnu dot org


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



[Bug c++/31147] New: increased size of debug information

2007-03-12 Thread Woebbeking at web dot de
Hi,

compared to 4.1.2 the size increased by 50% and more. E.g. Qt 4.2.2
libQtGui.so.4.2.2.debug
- 4.2.0 97902763 bytes
- 4.1.2 62435403 bytes

We compile with -O2 -g. Is this a regression or just more (useful?)
information?


-- 
   Summary: increased size of debug information
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: Woebbeking at web dot de


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



[Bug inline-asm/23200] [4.0/4.1/4.2/4.3 regression] rejects i(var + 1)

2007-03-12 Thread amacleod at redhat dot com


--- Comment #30 from amacleod at redhat dot com  2007-03-12 13:11 ---
Err, yeah. thats right. TER doesn't run without optimization, and I forgot this
was more than just an optimization issue.  Where is that work to do basic SSA
optimizations at -O0 when you need it?? :-)


-- 


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



[Bug tree-optimization/30604] Unable to coalesce ssa_names x and y which are marked as MUST COALESCE

2007-03-12 Thread amacleod at redhat dot com


--- Comment #10 from amacleod at redhat dot com  2007-03-12 13:33 ---
They do all have the (ab) next to them, I was just indicating that they all
occurred in a PHI together, and hence needed to be coalesced. I should have
been more precise.

Well, _t_3 definately does have the (ab) flag, and I don't know what all it
does do, but it does introduce the situation where we have overlapping abnormal
ssa-names which have to be coalesced.  

I see it does a bunch of replacements which include _t_3(ab), lines such as:
Replaced (struct  *) #ref#17#7_8338 with _t_3(ab) in #ref#17#7.2741_8343 =
(struct  *) #ref#17#7_8338;

(Just an example, not meant to be the erroneous replacement). So it is clearly
doing something with it.


-- 

amacleod at redhat dot com changed:

   What|Removed |Added

 CC||amacleod at redhat dot com


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



[Bug c++/31147] increased size of debug information

2007-03-12 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2007-03-12 14:03 ---
It's more information - whether it's useful depends.


-- 


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



[Bug c++/31147] increased size of debug information

2007-03-12 Thread Woebbeking at web dot de


--- Comment #2 from Woebbeking at web dot de  2007-03-12 14:22 ---
Subject: Re:  increased size of debug information

On Monday 12 March 2007, rguenth at gcc dot gnu dot org wrote:
 It's more information - whether it's useful depends.

Wow, more than 50%. Are there any docs to this change?


-- 


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



[Bug c++/30975] ptr to member func __delta is 0 if ptr declaration does not match function porototype

2007-03-12 Thread ingo dot donasch at L-3com dot com


--- Comment #5 from ingo dot donasch at L-3com dot com  2007-03-12 14:32 
---
Subject: RE:  ptr to member func __delta is 0 if ptr declar
ation does not match function porototype

I know our code is wrong, but my point is that gcc34 generated correct code
and gcc4x is not. A Gcc4x workaround that was mentioned to me is to double
cast.
The gcc4x compiler is NOT generating the offset to point into the correct
subclass, it should either be compatible w/ gcc34 or better signal an error!

I disagree with marking this bug report as resolved invalid but would
accept a deferral because 2 workarounds exists and the code was bad anyways.
Still I'm expecting the compiler to reject bad code if it can't generate
code for it!

ingo

Ps. (we ran into that problem because someone added a parameter to the
callback year ago w/o updating all the receiving function declarations #8-(
ingo

 -Original Message-
 From: bangerth at dealii dot org [mailto:[EMAIL PROTECTED] 
 Sent: Thursday, March 08, 2007 23:41
 To: Donasch, Ingo
 Subject: [Bug c++/30975] ptr to member func __delta is 0 if 
 ptr declaration does not match function porototype
 
 
 
 
 --- Comment #4 from bangerth at dealii dot org  
 2007-03-09 04:40 --- What exactly are you trying to achieve here:
 -
 typedef void (B::*FPTR)(int);
 
 ...
 
 struct C : public A , public B {
 virtual void C_bad() { }
 };
 
 
   c.t((FPTR)C::C_bad);
 --
 Clearly, C::Cbad is a void function, but you assign it to a 
 pointer to a function that takes an int. That can't possibly 
 work. Indeed, if you let C_bad take an int, the segfault goes away.
 
 W.
 
 
 -- 
 
 bangerth at dealii dot org changed:
 
What|Removed |Added
 --
 --
  CC||bangerth at 
 dealii dot org
  Status|UNCONFIRMED |RESOLVED
  Resolution||INVALID
 
 
 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30975
 
 --- You are receiving this mail because: ---
 You reported the bug, or are watching the reporter.
 


-- 


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



[Bug fortran/30922] IMPORT fails for same symbol in multiple interface bodies of same interface block

2007-03-12 Thread patchapp at dberlin dot org


--- Comment #4 from patchapp at dberlin dot org  2007-03-12 14:50 ---
Subject: Bug number PR30922

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/2007-03/msg00728.html


-- 


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



[Bug c++/31147] increased size of debug information

2007-03-12 Thread pinskia at gcc dot gnu dot org


--- Comment #3 from pinskia at gcc dot gnu dot org  2007-03-12 14:51 ---
Figure out which source causes the increase and then attach the preprocessed
source and then we might be able to decide.

It could be that in 4.1.2, that we were not emitting enums and some other types
which should have been emitting.


-- 


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



[Bug c++/31145] ICE: in cse_find_path, at cse.c:5930 with -O3 -ftracer

2007-03-12 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2007-03-12 14:56 ---


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


-- 

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



[Bug middle-end/31127] [4.3 regression] ICE in cse_find_path, at cse.c:5930

2007-03-12 Thread pinskia at gcc dot gnu dot org


--- Comment #6 from pinskia at gcc dot gnu dot org  2007-03-12 14:56 ---
*** Bug 31145 has been marked as a duplicate of this bug. ***


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||wouter dot vermaelen at pi
   ||dot be


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



[Bug tree-optimization/31146] forwprop does not look through casts

2007-03-12 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2007-03-12 14:59 ---
forwprop should NOT, I repeat should NOT look through casts for conditional if
the SSA_NAME that defines the cast is still used after the conditional.

Really this non zero optimization should be done by VRP.


-- 


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



[Bug tree-optimization/31146] forwprop does not look through casts

2007-03-12 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2007-03-12 15:09 ---
I should mention, unless it can produce a constant result.
For an example this function:

void bar (void * a)
{
  struct foo Foo;
  int i;

  for (i=0; i3; ++i)
{
  void *p = a;
  int *pi = (int *)p;
  if (pi != 0)
{
  *pi = 0;
}
}
}

Should not be transformed into:

void bar (void * a)
{
  struct foo Foo;
  int i;

  for (i=0; i3; ++i)
{
  void *p = a;
  int *pi = (int *)p;
  if (p != 0)
{
  *pi = 0;
}
}
}

As VRP is not as smart as there is no back tracking of ranges.


-- 


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



[Bug fortran/30922] IMPORT fails for same symbol in multiple interface bodies of same interface block

2007-03-12 Thread pault at gcc dot gnu dot org


--- Comment #5 from pault at gcc dot gnu dot org  2007-03-12 15:24 ---
The testcase in comment 1 should be lifted and deposited in another PR; it is
going to be quite difficult to fix because the type and kind of an interface
function is established before the specification statements that inlude the
IMPORT statement.  This problem is related to that of implicit type definition
within interfaces that I just fixed (PR30883).

Paul 


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |pault at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2007-03-02 16:14:27 |2007-03-12 15:24:48
   date||


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



[Bug fortran/30870] GENERIC non-INTRINSIC procedure rejected as actual argument

2007-03-12 Thread pault at gcc dot gnu dot org


--- Comment #3 from pault at gcc dot gnu dot org  2007-03-12 15:25 ---
I just submitted a patch for this PR.

Paul


-- 


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



[Bug tree-optimization/31146] forwprop does not look through casts

2007-03-12 Thread rguenth at gcc dot gnu dot org


--- Comment #3 from rguenth at gcc dot gnu dot org  2007-03-12 15:35 ---
The problem is that for example FRE value numbers

  void *p_4 = a[0];
  int *q_1 = (int *)p_4;

p_4 with void* type (even if a[0] is of int* type) and so re-generates the
conversion to int* even though it is about to replace (int *)p_4 with p_4
(as tree_ssa_useless_type_conversion_1 is false for converting void* to int*).

At the same time tree-combining the conversion (int *)a[0] leads to
a[0] for which we have a value already, the void* p_4 :/

Maybe the new VN will fix this testcase as well.  With the series of forwprop
patches in my queue (which you obviously don't like at all, but I blame you
for that) we get for

  (void) (TARGET_EXPR D.2605, (double *) operator new (8, (void *) a[i]);,
D.2605 != 0B ? try
{
  *D.2605 = 0.0;
}
  catch
{
  operator delete ((void *) D.2605, (void *) a[i]);
}, D.2605 : D.2605;)

instead of

  __p_5 = a[i_3];
  iftmp.3_6 = (double *) __p_5;
  if (iftmp.3_6 != 0B) goto L1; else goto L2;

L1:;
  *iftmp.3_6 = 0.0;

L2:;

just

  a[i_3] = 0.0;


-- 


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



[Bug fortran/30879] Syntax error for derived type's compounds in a data-stmt-value-set

2007-03-12 Thread pault at gcc dot gnu dot org


--- Comment #2 from pault at gcc dot gnu dot org  2007-03-12 15:40 ---
I just submitted a patch for this PR.

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |pault at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2007-02-20 17:00:22 |2007-03-12 15:40:57
   date||


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



[Bug fortran/31148] New: optional argument of elemental function

2007-03-12 Thread vivekrao4 at yahoo dot com
Since ivec is not passed to sub, I think the two calls
to set_optional should be equivalent, but gfortran crashes
upon the second call. 

u:\vrao\fortran type xopt_bug.f90 
module sub_mod
contains
elemental subroutine set_optional(i,idef,iopt)
! set i to (iopt,idef) if iopt (is,is not) PRESENT
integer, intent(out)  :: i
integer, intent(in)   :: idef
integer, intent(in), optional :: iopt
if (present(iopt)) then
   i = iopt
else
   i = idef
end if
end subroutine set_optional
!
subroutine sub(ivec)
integer  , intent(in), optional :: ivec(:)
integer :: ivec_(2)
call set_optional(ivec_,(/1,2/))
print*,ivec_=,ivec_
call set_optional(ivec_,(/1,2/),ivec)
print*,ivec_=,ivec_
end subroutine sub
end module sub_mod

program main
use sub_mod, only: sub
call sub()
end program main

U:\vrao\fortrangfortran -v 
Using built-in specs.
Target: i386-pc-mingw32
Configured with: ../trunk/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 --host=i386-pc-mingw32 --disable-shared
--enable-libgomp
Thread model: win32
gcc version 4.3.0 20061021 (experimental)

U:\vrao\fortrangfortran -W -Wall -pedantic-errors -std=f2003 -fbounds-check
-Werror xopt_bug.f90 

U:\vrao\fortrana.exe
Fortran runtime error: Array bound mismatch, size mismatch for dimension 1 of
array 'ivec' (in file 'xopt_bug.f90', at line 20)
 ivec_=   1   2


-- 
   Summary: optional argument of elemental function
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: vivekrao4 at yahoo dot com


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



[Bug tree-optimization/31146] forwprop does not look through casts

2007-03-12 Thread pinskia at gcc dot gnu dot org


--- Comment #4 from pinskia at gcc dot gnu dot org  2007-03-12 15:41 ---
I think really this comes down to our type system, I remember posting a patch
for the LTO branch which adds back the explict cast to void*, I can test
that, it should fix this testcase also :).


-- 


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



[Bug tree-optimization/31146] forwprop does not look through casts

2007-03-12 Thread rguenth at gcc dot gnu dot org


--- Comment #5 from rguenth at gcc dot gnu dot org  2007-03-12 16:01 ---
Well sure - if we then would get

 int *p_1 = a[0];
 void *q_1 = (void *)p_1;
 int *r_1 = (int *)q_1;
 if (r_1 != NULL)
   ...

then FRE would figure out that r_1 == p_1 and the forwprop pass after FRE will
fold the comparison.


-- 


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



[Bug fortran/31149] New: gfortran: no diagnostics about too many arguments in legacy code (vs. g77)

2007-03-12 Thread bartoldeman at users dot sourceforge dot net
Consider this code:

  SUBROUTINE FOO(I)
  I=0
  END

  SUBROUTINE BAR()
  CALL FOO(1,2)
  END

compiled with g77 3.4.6:

f77.f: In subroutine `bar':
f77.f:1: 
 SUBROUTINE FOO(I)
1
f77.f:6: (continued):
 CALL FOO(1,2)
  2
Too many arguments passed to `foo' at (2) versus definition at (1) [info -f g77
M GLOBALS]

no object file is generated.

gfortran, even with -Wall, emits are no warnings or errors at all and an object
file is generated.

With a module or interface block gfortran does a lot better but then it is no
longer Fortran 77 of course.


-- 
   Summary: gfortran: no diagnostics about too many arguments in
legacy code (vs. g77)
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: bartoldeman at users dot sourceforge dot net
 GCC build triplet: i386-pc-linux-gnu
  GCC host triplet: i386-pc-linux-gnu
GCC target triplet: i386-pc-linux-gnu


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



[Bug c++/30108] [4.0/4.1/4.2/4.3 Regression] internal compiler error: in make_decl_rtl, at varasm.c:890

2007-03-12 Thread mmitchel at gcc dot gnu dot org


--- Comment #10 from mmitchel at gcc dot gnu dot org  2007-03-12 16:24 
---
Subject: Bug 30108

Author: mmitchel
Date: Mon Mar 12 16:24:18 2007
New Revision: 122844

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=122844
Log:
PR c++/30108
* call.c (convert_default_arg): Copy non-constant arguments.

PR c++/30108
* g++.dg/other/default6.C: New test.

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


-- 


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



[Bug c++/31147] increased size of debug information

2007-03-12 Thread Woebbeking at web dot de


--- Comment #4 from Woebbeking at web dot de  2007-03-12 16:46 ---
Created an attachment (id=13194)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13194action=view)
preprocessed qcombobox.cpp

I added both versions (4.2.0 and 4.1.2). It's compiled with

-c -fno-exceptions -pipe -O2 -g -fvisibility=hidden -fvisibility-inlines-hidden
-fPIC


-- 


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



[Bug middle-end/31150] New: [4.1/4.2/4.3 Regression] Not promoting an whole array to be static const

2007-03-12 Thread pinskia at gcc dot gnu dot org
Take:
int main()
{
  char str[2][34] = {a,b};

  __builtin_puts(str[0]);

  return 0;
}

In 4.0.2, we used to get:
  static char C.0[2][34] = {a, b};
  char str[2][34];

  str = C.0;
  __builtin_puts (str[0][0]);


But in 4.1.1 and above, we get:
  char str[2][34];

  str = {};
  str[0] = a;
  str[1] = b;

Which causes us to first zero out the array and then do load/stores on the
stack.


-- 
   Summary: [4.1/4.2/4.3 Regression] Not promoting an whole array to
be static const
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: missed-optimization
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: pinskia at gcc dot gnu dot org


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



[Bug middle-end/31150] [4.1/4.2/4.3 Regression] Not promoting an whole array to be static const

2007-03-12 Thread pinskia at gcc dot gnu dot org


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.1.3


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



[Bug c++/20478] poor diagnostic

2007-03-12 Thread manu at gcc dot gnu dot org


--- Comment #3 from manu at gcc dot gnu dot org  2007-03-12 16:47 ---
It would be helpful if you could reduce the testcase. Thanks.


-- 

manu at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||manu at gcc dot gnu dot org


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



[Bug bootstrap/31151] New: During 'make bootstrap': Syntax error at line 1 : `' is not expected

2007-03-12 Thread jkurpa at co dot volusia dot fl dot us
Am receiving following error during 'make bootstrap' for GCC v4.1.2 on AIX 5.3:
srcdir=/usr/local/gcc-4.1.2/fixincludes /bin/sh
/usr/local/gcc-4.1.2/f
ixincludes/mkfixinc.sh powerpc-ibm-aix5.3.0.0
sed -e 's/@gcc_version@//'mkheadersT
/bin/sh: 0403-057 Syntax error at line 1 : `' is not expected.
make: 1254-004 The error code from the last command is 2.

This occurs after running for quite some time. Just don't know enough about
this stuff to figure out the possible cause.


-- 
   Summary: During 'make bootstrap': Syntax error at line 1 : `' is
not expected
   Product: gcc
   Version: 4.1.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jkurpa at co dot volusia dot fl dot us


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



[Bug bootstrap/31151] During 'make bootstrap': Syntax error at line 1 : `' is not expected

2007-03-12 Thread jkurpa at co dot volusia dot fl dot us


--- Comment #1 from jkurpa at co dot volusia dot fl dot us  2007-03-12 
16:51 ---
Created an attachment (id=13195)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13195action=view)
Screen output from 'make bootstrap'


-- 


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



[Bug bootstrap/31151] During 'make bootstrap': Syntax error at line 1 : `' is not expected

2007-03-12 Thread jkurpa at co dot volusia dot fl dot us


--- Comment #2 from jkurpa at co dot volusia dot fl dot us  2007-03-12 
16:52 ---
Created an attachment (id=13196)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13196action=view)
Screen output from configure


-- 


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



[Bug tree-optimization/31130] [4.3 Regression] VRP no longer derives range for division after negation

2007-03-12 Thread ian at airs dot com


--- Comment #4 from ian at airs dot com  2007-03-12 17:08 ---
First test case:

int f(int a)
{
  if (a  0)
a = -a;
  return a  0;
}

As far as I can tell the behaviour of this test case in VRP is unchanged by the
patch in this PR.  And the code is still fully optimized.

Second test case:

int f(int a)
{
  if (a  0)
a = -a;
  if (a  0)
a = -a;
  return a  0;
}

In my tests the second conditional is removed during the VRP pass with or
without the patch in this PR.  It is cleaned up by jump threading.

Third test case:

extern void link_error ();
void foo (int a)
{
  if (a  0)
{
  int y;
  a *=-2;
  y  = a / 7;
  if (y  1  30)
link_error ();
}
}

int main()
{
  return 0;
}

I agree that VRP does not sort this out, although the final generated code is
fine.  I personally think the overflow infinity code does the right thing here.

Fourth test case:

extern void link_error ();
void foo (int a)
{
  if (a  0)
{
  int y;
  y  = -a / 7;
  if (y  1  30)
link_error ();
}
}

This does give a warning with -Wstrict-overflow=4


-- 


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



[Bug tree-optimization/31130] [4.3 Regression] VRP no longer derives range for division after negation

2007-03-12 Thread ian at airs dot com


--- Comment #5 from ian at airs dot com  2007-03-12 17:21 ---
Unfortunately my patch in comment #1 doesn't handle this test case correctly:

extern void abort (void);
void
foo (int a)
{
  if (a = (int) 0x8001)
{
  a = - a;
  if (a  0)
abort ();
}
}

It turns it into if (a  0x8001) abort(); with no warning.  The
transformation is OK with -fstrict-overflow, but we should get a warning with
-Wstrict-overflow, because it assumes that -INT_MIN  0 is true.


-- 


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



[Bug c/11051] -Wno-deprecated needed also for C

2007-03-12 Thread manu at gcc dot gnu dot org


--- Comment #14 from manu at gcc dot gnu dot org  2007-03-12 17:22 ---
Tom,

your patch 
http://gcc.gnu.org/ml/gcc-patches/2006-12/msg01853.html
will also fix this by adding Wdeprecated to the C front-end.


-- 

manu at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug target/26090] IA-64 creates DT_TEXTREL binaries

2007-03-12 Thread rth at gcc dot gnu dot org


--- Comment #6 from rth at gcc dot gnu dot org  2007-03-12 17:15 ---
Subject: Bug 26090

Author: rth
Date: Mon Mar 12 17:15:44 2007
New Revision: 122847

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=122847
Log:
PR target/26090
* config/alpha/alpha.c (alpha_elf_select_section): New.
(alpha_elf_unique_section, alpha_elf_section_type_flags): New.
(alpha_elf_select_rtx_section): Force flag_pic true.
(TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
(TARGET_SECTION_TYPE_FLAGS): New.

Modified:
branches/gcc-4_1-branch/gcc/ChangeLog
branches/gcc-4_1-branch/gcc/config/alpha/alpha.c


-- 


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



[Bug preprocessor/23479] Implement binary constants with a 0b prefix

2007-03-12 Thread manu at gcc dot gnu dot org


--- Comment #19 from manu at gcc dot gnu dot org  2007-03-12 17:31 ---
(In reply to comment #18)
 Created an attachment (id=13025)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13025action=view) [edit]
 Updated patch, output from svn diff as of 2007-02-07
 

Joerg, as Andrew said, you need a copyright assignment and you need to submit
the patch to [EMAIL PROTECTED] You can find more info at
http://gcc.gnu.org/contribute.html

Thanks.


-- 

manu at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||manu at gcc dot gnu dot org


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



[Bug tree-optimization/31152] New: -(xy) generates wrong code

2007-03-12 Thread anton at mips dot complang dot tuwien dot ac dot at
The actual gcc version is

gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)

When compiled and run with this gcc version, using the command line

gcc -O xxx.c  a.out

the attached program outputs -1, whereas the correct output is 0.  If
I use gcc 3.3.6 or leave away the -O flag, the program produces
correct output.


-- 
   Summary: -(xy) generates wrong code
   Product: gcc
   Version: 4.1.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: anton at mips dot complang dot tuwien dot ac dot at
  GCC host triplet: arm-linux-gnu
GCC target triplet: arm-linux-gnu


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



[Bug c++/23263] Incomprehensible message for invalid attempt to partially specialize a member

2007-03-12 Thread manu at gcc dot gnu dot org


--- Comment #5 from manu at gcc dot gnu dot org  2007-03-12 17:39 ---
(In reply to comment #4)
 See also PR 23281
[snip]
 Consequently I'm filing this as a DR against the gcc DR reporting machinery
 itself, rather than against the compiler in particular. There needs to be
 categories for QOI defects of varying severity; either that, or complaints 
 about
 diagnostics and other QOI ussues should not by policy be filed as enhancement
 requests, and forgotten.

It doesn't matter whether this is filled this way or that way. The problem is
that there are more tan 2 thousand bugs opened. Logically, most developers tend
to focus on fixing regressions, ICEs or optimisations rather on precise wording
of correct diagnostics.

We need more contributors in this area, you are welcome to participate!


-- 

manu at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||manu at gcc dot gnu dot org


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



[Bug tree-optimization/31152] -(xy) generates wrong code

2007-03-12 Thread anton at mips dot complang dot tuwien dot ac dot at


--- Comment #1 from anton at mips dot complang dot tuwien dot ac dot at  
2007-03-12 17:43 ---
Subject: Re:   New: -(xy) generates wrong code

I cannot create an attachment in Bugzilla, so I'll just append the
test program here:

#include stdio.h
#include limits.h

long foo(long x, long y);

int main()
{
  printf(%d\n,foo(INT_MIN,INT_MAX));
  return 0;
}  

long foo(long x, long y)
{
  return -(xy);
}


-- 


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



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

2007-03-12 Thread janis at gcc dot gnu dot org


--- Comment #6 from janis at gcc dot gnu dot org  2007-03-12 17:45 ---
The link in comment #5 is to David Edelsohn's message that RMS had approved the
license change.  Ben Elliston changed the license in the decNumber files for
mainline and the 4.2 branch.


-- 

janis at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c/24016] Missing warning for unspecified evaluation order

2007-03-12 Thread manu at gcc dot gnu dot org


--- Comment #2 from manu at gcc dot gnu dot org  2007-03-12 17:48 ---
(In reply to comment #1)
 
 It is, however, at least unspecified order of evaluation and a warning 
 here would still make sense.
 

A candidate for -Wsequence-points ?


-- 


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



[Bug c++/30108] [4.0/4.1/4.2/4.3 Regression] internal compiler error: in make_decl_rtl, at varasm.c:890

2007-03-12 Thread mmitchel at gcc dot gnu dot org


--- Comment #11 from mmitchel at gcc dot gnu dot org  2007-03-12 18:07 
---
Subject: Bug 30108

Author: mmitchel
Date: Mon Mar 12 18:07:33 2007
New Revision: 122848

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=122848
Log:
PR c++/30108
* call.c (convert_default_arg): Copy non-constant arguments.
PR c++/30108
* g++.dg/other/default6.C: New test.

Added:
branches/gcc-4_2-branch/gcc/testsuite/g++.dg/other/default6.C
Modified:
branches/gcc-4_2-branch/gcc/cp/ChangeLog
branches/gcc-4_2-branch/gcc/cp/call.c
branches/gcc-4_2-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/30108] [4.0/4.1 Regression] internal compiler error: in make_decl_rtl, at varasm.c:890

2007-03-12 Thread mmitchel at gcc dot gnu dot org


--- Comment #12 from mmitchel at gcc dot gnu dot org  2007-03-12 18:09 
---
Fixed in 4.2.0, 4.3.0.


-- 

mmitchel at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |mark at codesourcery dot com
   |dot org |
 Status|NEW |ASSIGNED
Summary|[4.0/4.1/4.2/4.3 Regression]|[4.0/4.1 Regression]
   |internal compiler error: in |internal compiler error: in
   |make_decl_rtl, at   |make_decl_rtl, at
   |varasm.c:890|varasm.c:890


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



[Bug libstdc++/31117] c++locale.o thread-unsafe in libstdc++

2007-03-12 Thread craig dot lawson at centrify dot com


--- Comment #4 from craig dot lawson at centrify dot com  2007-03-12 18:26 
---
Perhaps there are different degrees of thread safety here.

If I write my multi-threaded program such that only one thread does stream I/O
with libstdc++, I would expect it to operate safely with respect to the locale
issue. But it will not: any other thread which modifies errno (via set_errno)
is potential trouble for my stream I/O thread.

On the other hand, if __convert_to_v was compiled to use the errno address
function, my program would be correct.


-- 


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



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

2007-03-12 Thread mmitchel at gcc dot gnu dot org


--- Comment #22 from mmitchel at gcc dot gnu dot org  2007-03-12 18:27 
---
Danny, please apply the patch to 4.2.0.

Thanks,

-- Mark


-- 


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



[Bug target/28701] [4.1/4.2/4.3 regression] ABI test failures building libstdc++ on a glibc-2.4 based system

2007-03-12 Thread mmitchel at gcc dot gnu dot org


--- Comment #12 from mmitchel at gcc dot gnu dot org  2007-03-12 18:31 
---
It appears from the audit trail that there is no GCC bug here, other than,
perhaps, the configuration options not defaulting to ideal choices.  If that's
a problem, file a new PR; however, AFAICT, we do not have a P1 ABI failure
here.


-- 

mmitchel at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||INVALID


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



[Bug c/31153] New: -Wconversion does not catch return value mismatch

2007-03-12 Thread craig dot lawson at centrify dot com
In functions declared to return unsigned int, -Wconversion correctly warns when
a constant signed int is returned. But -Wconversion fails to warn when the
return value is an identifier with type signed int.

Seen in gcc 3.2.3 (Red Hat) and 4.0.1 (Mac OS X)


-- 
   Summary: -Wconversion does not catch return value mismatch
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: craig dot lawson at centrify dot com


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



[Bug middle-end/30433] [4.1 Regression] no longer folding __complex__(0.0, 1.0) == __complex__(1.0, 0.0)

2007-03-12 Thread sayle at gcc dot gnu dot org


--- Comment #6 from sayle at gcc dot gnu dot org  2007-03-12 18:41 ---
Subject: Bug 30433

Author: sayle
Date: Mon Mar 12 18:40:56 2007
New Revision: 122852

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=122852
Log:
2007-03-12  Roger Sayle  [EMAIL PROTECTED]
Andrew Pinski  [EMAIL PROTECTED]

PR middle-end/30433
* fold-const.c (fold_relational_const): Add back compile-time
evaluation of complex constant equality/inequality comparisons.

* gcc.c-torture/compile/pr30433.c: New testcase to check
that complex constant comparisions are folded.


Added:
branches/gcc-4_1-branch/gcc/testsuite/gcc.c-torture/compile/pr30433.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=30433



[Bug middle-end/30433] [4.1 Regression] no longer folding __complex__(0.0, 1.0) == __complex__(1.0, 0.0)

2007-03-12 Thread pinskia at gcc dot gnu dot org


--- Comment #7 from pinskia at gcc dot gnu dot org  2007-03-12 18:45 ---
Fixed.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug middle-end/30761] [4.1/4.2/4.3 regression] Error: unsupported relocation against sfp

2007-03-12 Thread mmitchel at gcc dot gnu dot org


--- Comment #5 from mmitchel at gcc dot gnu dot org  2007-03-12 18:45 
---
Ulrich --

Did your patch fix this PR on mainline?  Is a backport to 4.1/4.2 possible?

Thanks,

-- Mark


-- 

mmitchel at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||uweigand at gcc dot gnu dot
   ||org


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



[Bug libstdc++/31117] c++locale.o thread-unsafe in libstdc++

2007-03-12 Thread pcarlini at suse dot de


--- Comment #5 from pcarlini at suse dot de  2007-03-12 18:51 ---
(In reply to comment #4)
 Perhaps there are different degrees of thread safety here.
 
 If I write my multi-threaded program such that only one thread does stream I/O
 with libstdc++, I would expect it to operate safely with respect to the locale
 issue. But it will not: any other thread which modifies errno (via set_errno)
 is potential trouble for my stream I/O thread.

That's not correct. Anyone, anywhere, irrespective of I/O can do a setlocale
and that will change the global locale, which is also changed in a
thread-unsafe way at any I/O. 

Anyway, what happens in the GNU systems is that errno is a per-thread variable
and the __convert_to_v code has to do nothing special, just safely use it. In
the systems using the generic locale model a completely different strategy is
needed if the C library of those systems doesn't provide a thread-safe
implementation. I have no idea what that can be and in any case must be solved
together with the setlocale one.


-- 


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



[Bug c/31153] -Wconversion does not catch return value mismatch

2007-03-12 Thread craig dot lawson at centrify dot com


--- Comment #1 from craig dot lawson at centrify dot com  2007-03-12 18:53 
---
Test program (Create a New Attachment is not working for me today):

const int  i = -1;

unsigned int slip_one_by()
{
return i;
}

unsigned int caught_me()
{
return -1;
}

$ gcc -c unsigned_return.c -Wconversion
unsigned_return.c: In function `caught_me':
unsigned_return.c:10: warning: negative integer implicitly converted to
unsigned type

Expected a warning for line 5, too.


-- 


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



[Bug fortran/31067] MINLOC should sometimes be inlined (gas_dyn is sooooo sloooow)

2007-03-12 Thread pault at gcc dot gnu dot org


--- Comment #10 from pault at gcc dot gnu dot org  2007-03-12 19:04 ---
(In reply to comment #9)

 
 As a workaround, one could always use minloc(...,dim=1), then
 we get the inline version.
 
Thomas, it's a bit kludgy, but why not add a constant expression = 1, if dim is
not present?

Cheers

Paul


-- 


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



[Bug fortran/31149] gfortran: no diagnostics about too many arguments in legacy code (vs. g77)

2007-03-12 Thread burnus at gcc dot gnu dot org


--- Comment #1 from burnus at gcc dot gnu dot org  2007-03-12 19:09 ---
This is do to the fact that gfortran does no same-file checking; this checking
is outside the Fortran standard but still useful.
It is planed for this year; cf. PR 26227 and references therein.

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


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug fortran/26227] accepts invalid fortran, different dummy types/number

2007-03-12 Thread burnus at gcc dot gnu dot org


--- Comment #8 from burnus at gcc dot gnu dot org  2007-03-12 19:09 ---
*** Bug 31149 has been marked as a duplicate of this bug. ***


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||bartoldeman at users dot
   ||sourceforge dot net


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



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

2007-03-12 Thread dberlin at gcc dot gnu dot org


--- Comment #23 from dberlin at gcc dot gnu dot org  2007-03-12 19:09 
---
Subject: Bug 28544

Author: dberlin
Date: Mon Mar 12 19:09:05 2007
New Revision: 122857

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=122857
Log:
2007-03-12  Daniel Berlin  [EMAIL PROTECTED]

Fix PR tree-optimization/28544
* tree-ssa-operands.c (add_virtual_operand):
Move assert triggering on aliasing violations into
debugging define



Modified:
branches/gcc-4_2-branch/gcc/ChangeLog
branches/gcc-4_2-branch/gcc/tree-ssa-operands.c


-- 


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



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

2007-03-12 Thread dberlin at gcc dot gnu dot org


--- Comment #24 from dberlin at gcc dot gnu dot org  2007-03-12 19:12 
---
Fixed


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug fortran/31154] New: IMPORT fails for imported symbol FUNCTION (...) kind of procedures

2007-03-12 Thread burnus at gcc dot gnu dot org
+++ This bug was initially created as a clone of Bug #30922 +++

gfortran currently does not like the following:

module x
  implicit none
  integer, parameter :: d=8
  interface
real(d) function y()
  import
end function
  end interface
end module x


real(d) function y()
1
Error: Parameter 'd' at (1) has not been declared or is a variable, which does
not reduce to a constant expression

(A real-world example for the latter is:
http://users.erols.com/dnagle/pub/pthread.f03,
which also needs ISO_C_BINDING support.)


-- 
   Summary: IMPORT fails for  imported symbol FUNCTION (...)
kind of procedures
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: rejects-valid
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: burnus at gcc dot gnu dot org
 BugsThisDependsOn: 30922


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



[Bug libstdc++/31117] c++locale.o thread-unsafe in libstdc++

2007-03-12 Thread craig dot lawson at centrify dot com


--- Comment #6 from craig dot lawson at centrify dot com  2007-03-12 19:23 
---
 Anyway, what happens in the GNU systems is that errno is a per-thread variable
 and the __convert_to_v code has to do nothing special, just safely use it.

I agree. The problem is that this is not happening. __convert_to_v is not
safely using the per-thread errno. Instead, it is using the global errno.

The cause is not the __convert_to_v code but something in an include file or a
gcc option which causes the code to be compiled incorrectly. Yet another file
in the same library compiled with the same gcc options does access the
thread-safe errno correctly. That a discrepancy exists indicates a problem
somewhere.

The intent of this bug is to call attention to this misuse of errno and the
indication of an underlying problem.


Thank you for explaining the issues with setlocale. Worse than I thought.


-- 


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



[Bug middle-end/30761] [4.1/4.2 regression] Error: unsupported relocation against sfp

2007-03-12 Thread uweigand at gcc dot gnu dot org


--- Comment #6 from uweigand at gcc dot gnu dot org  2007-03-12 19:34 
---
I haven't verified that this problem is fixed -- the patch was originally
intended to fix another bug uncovered by Peter Bergner, and I just added
this PR number to the check-in due to Andrew's comment #3 on this bug.

Andrew, have you verified that the problem is fixed now?

I could backport the reload1.c change to 4.1/4.2 -- I haven't done so as
there's always some risk associated with such backports, and it appeared
from this bugzilla record that the bug was exposed only with a 4.3 change
anyway.  Was this impression mistaken?


-- 


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



[Bug middle-end/30984] [4.1/4.2/4.3 Regression] ICE with computed goto and constants

2007-03-12 Thread janis at gcc dot gnu dot org


--- Comment #2 from janis at gcc dot gnu dot org  2007-03-12 19:45 ---
A regression hunt on powerpc-linux using the submitter's test case identified
this patch:

http://gcc.gnu.org/viewcvs?view=revrev=96084

r96084 | law | 2005-03-08 03:39:19 + (Tue, 08 Mar 2005)


-- 

janis at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||law at gcc dot gnu dot org


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



[Bug c++/31155] New: priority_queue sorts wrong with std::less

2007-03-12 Thread rmecklenburg at s5w dot com
#define protected public
#include iostream
#include queue

typedef std::vectorint int_collection;
typedef std::priority_queueint, int_collection, std::greaterint  int_queue;

void
print(int_queue  q)
{
for (int_collection::iterator iter(q.c.begin()); iter != q.c.end(); ++iter)
std::cout  *iter   ;
std::cout  std::endl;
}

int
main()
{
int_queue q;
q.push(9); print(q);
q.push(8); print(q);
q.push(7); print(q);
q.push(6); print(q);
q.push(5); print(q);
q.push(4); print(q);
q.push(3); print(q);
q.push(2); print(q);
q.push(1); print(q);
}

// $ g++ --version -o priority_queue_test priority_queue_test.cpp;
./priority_queue_test
// g++ (GCC) 4.1.2 20060928 (prerelease) (Ubuntu 4.1.1-13ubuntu5)
// Copyright (C) 2006 Free Software Foundation, Inc.
// This is free software; see the source for copying conditions.  There is NO
// warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
//
// 9
// 8 9
// 7 9 8
// 6 7 8 9
// 5 6 8 9 7
// 4 6 5 9 7 8
// 3 6 4 9 7 8 5
// 2 3 4 6 7 8 5 9
// 1 2 4 3 7 8 5 9 6

I have a cpp expanded version with configuration parameters, but I couldn't
figure out how to submit them from the web page.


-- 
   Summary: priority_queue sorts wrong with std::less
   Product: gcc
   Version: 4.1.2
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: rmecklenburg at s5w dot com


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



[Bug c++/31155] priority_queue sorts wrong with std::less

2007-03-12 Thread rmecklenburg at s5w dot com


--- Comment #1 from rmecklenburg at s5w dot com  2007-03-12 19:51 ---
Created an attachment (id=13197)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13197action=view)
gcc -v -E version of the test program


-- 


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



[Bug libstdc++/31117] c++locale.o thread-unsafe in libstdc++

2007-03-12 Thread pcarlini at suse dot de


--- Comment #7 from pcarlini at suse dot de  2007-03-12 19:51 ---
(In reply to comment #6)
  Anyway, what happens in the GNU systems is that errno is a per-thread 
  variable
  and the __convert_to_v code has to do nothing special, just safely use it.
 
 I agree. The problem is that this is not happening. __convert_to_v is not
 safely using the per-thread errno. Instead, it is using the global errno.

To be clear, *not* on Linux, right? Because in your report you said Linux and
MacOSX were fine, and that is consistent with my expectations. Indeed, reading
the glibc errno.h it is clear that errno is per-thread.

 The cause is not the __convert_to_v code but something in an include file or a
 gcc option which causes the code to be compiled incorrectly. Yet another file
 in the same library compiled with the same gcc options does access the
 thread-safe errno correctly. That a discrepancy exists indicates a problem
 somewhere.

I have no idea, frankly. Certainly all the sources are compiled with the same
options.

An idea I just had is that maybe we could try to avoid errno completely, at
least in the generic locale model: we could simply check whether the functions
return HUGE_VAL  co. That would mean we can't detect anymore underflows, but
that errno is set on underflows is implementation dependent and, anyway, the
C++ standard mandates that the behavior should be as-if the library used scanf,
which has no notion of underflow. Maybe you can try the change yourself, and
modify __convert_to_v (say the simple one, for double) to check, instead of
errno != ERANGE, d != HUGE_VAL  d != -HUGE_VAL??

One final note: in the forthcoming C++0x standard things will be more tricky
because the C++ library will be able to parse +INF  co, but we should be able
to manage anyway, because we can first detect those and only otherwise, hands
the string to strtod, which then will return HUGE_VAL / -HUGE_VAL only in case
of real overflow (not input of +INF / -INF).


-- 

pcarlini at suse dot de changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING


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



[Bug preprocessor/23479] Implement binary constants with a 0b prefix

2007-03-12 Thread j at uriah dot heep dot sax dot de


--- Comment #20 from j at uriah dot heep dot sax dot de  2007-03-12 19:55 
---
(In reply to comment #19)

 Joerg, as Andrew said, you need a copyright assignment and you need to submit
 the patch to [EMAIL PROTECTED]

Patch submitted to list by 2007-02-09, message-id is
[EMAIL PROTECTED]

I've got a copyright assignment on file since 2003-03-19 (date of
confirmation email from Jessica Natale).

What else do you need?


-- 


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



[Bug bootstrap/30635] --enable-stage1-langauges configure option is not documented.

2007-03-12 Thread brooks at gcc dot gnu dot org


--- Comment #1 from brooks at gcc dot gnu dot org  2007-03-12 20:03 ---
Subject: Bug 30635

Author: brooks
Date: Mon Mar 12 20:03:33 2007
New Revision: 122861

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=122861
Log:
PR 30635
* doc/install.texi: Document --enable-stage1-languages

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


-- 


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



[Bug c++/31155] priority_queue sorts wrong with std::greater

2007-03-12 Thread pcarlini at suse dot de


--- Comment #2 from pcarlini at suse dot de  2007-03-12 20:05 ---
This is how priority_queue works: it makes an heap (in the exact computer
science meaning), therefore, in particular, there is no guarantee that the
contents are all fully sorted, only that the smallest is the first one (the
largest with the default predicate).


-- 

pcarlini at suse dot de changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug middle-end/30984] [4.1/4.2/4.3 Regression] ICE with computed goto and constants

2007-03-12 Thread law at redhat dot com


--- Comment #3 from law at redhat dot com  2007-03-12 20:06 ---
Subject: Re:  [4.1/4.2/4.3 Regression] ICE with
computed goto and constants

On Mon, 2007-03-12 at 19:45 +, janis at gcc dot gnu dot org wrote:
 
 --- Comment #2 from janis at gcc dot gnu dot org  2007-03-12 19:45 ---
 A regression hunt on powerpc-linux using the submitter's test case identified
 this patch:
 
 http://gcc.gnu.org/viewcvs?view=revrev=96084
 
 r96084 | law | 2005-03-08 03:39:19 + (Tue, 08 Mar 2005)
Thanks for alerting me to this problem.  I think the right fix is going
to simply be to enforce a rule that we can only optimize a computed goto
if the argument collapses down to a local LABEL_REF rather than a
generic invariant. 

In the case where we have a constant or non-local LABEL_REF, the CFG
(before optimizing) ought to be conservatively correct(*).  Optimizing
is impossible because we don't know which outgoing edge to keep and
which ones to throw away.

This ought to be a 1-2 line fix.

Jeff

(*)  If the argument referred to a constant address in the current
function which does not correspond to any known addressable LABEL_REF
then we're hosed as the original unoptimized CFG is probably bogus.


-- 


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



[Bug libstdc++/31117] c++locale.o thread-unsafe in libstdc++

2007-03-12 Thread craig dot lawson at centrify dot com


--- Comment #8 from craig dot lawson at centrify dot com  2007-03-12 20:07 
---
Not on Linux: correct.

I could give it a try, but I haven't built this library before. If you could
point me to a brief how-to, I could give it a try on a Solaris 10 SPARC.

Rather than code around it, I would first review the preprocessor output from
the two files which access errno. If the compiler options are the same, then
problem is somewhere in a header file. And if that's the case, it would be
useful to understand the issue.


-- 


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



[Bug bootstrap/30635] --enable-stage1-langauges configure option is not documented.

2007-03-12 Thread brooks at gcc dot gnu dot org


--- Comment #2 from brooks at gcc dot gnu dot org  2007-03-12 20:09 ---
Fixed, as per the previous comment.


-- 

brooks at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug libstdc++/31117] c++locale.o thread-unsafe in libstdc++

2007-03-12 Thread pcarlini at suse dot de


--- Comment #9 from pcarlini at suse dot de  2007-03-12 20:14 ---
(In reply to comment #8)
 Not on Linux: correct.

Ok.

 I could give it a try, but I haven't built this library before. If you could
 point me to a brief how-to, I could give it a try on a Solaris 10 SPARC.
 
 Rather than code around it, I would first review the preprocessor output from
 the two files which access errno. If the compiler options are the same, then
 problem is somewhere in a header file. And if that's the case, it would be
 useful to understand the issue.

Indeed, the issue is rather mysterious at the moment, because it's not at all
clear why on the targets you are interested in apparently the thread-safe
version is sometimes used, sometimes not. Anyway, I would suggest fetching the
sources of a recent release, say 4.1.2 from our ftp servers and do a build of
the full compiler, building the library alone is not easy:

   http://gcc.gnu.org/install/

In practice, you can probably use default for most of the configure switches,
besides maybe the --prefix= to tell the build systems were you want the
compiler installed (by default is /usr/local), and --languages for the
languages you are interested in. Please let me know if you need more help.


-- 


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



[Bug preprocessor/23479] Implement binary constants with a 0b prefix

2007-03-12 Thread manu at gcc dot gnu dot org


--- Comment #21 from manu at gcc dot gnu dot org  2007-03-12 20:15 ---
(In reply to comment #20)
 Patch submitted to list by 2007-02-09, message-id is
 [EMAIL PROTECTED]
 
 I've got a copyright assignment on file since 2003-03-19 (date of
 confirmation email from Jessica Natale).
 
 What else do you need?
 

Unfortunately, I think your patch got missed. You need to ping the patch from
time to time (every 2 weeks or so). See the archives of gcc-patches for
examples. Some people check the patch queue http://www.dberlin.org/patches but
adding the patch to the tracker does not ensure that it will be reviewed. You
still need to ping the relevant maintainers.


-- 


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



[Bug middle-end/30704] [4.2/4.3 Regression] Incorrect constant generation for long long

2007-03-12 Thread dje at gcc dot gnu dot org


--- Comment #3 from dje at gcc dot gnu dot org  2007-03-12 20:19 ---
The problem appears to be occurring in real.c conversions from CONST_DOUBLE to
TARGET_DOUBLE.


-- 


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



[Bug middle-end/30761] [4.1/4.2 regression] Error: unsupported relocation against sfp

2007-03-12 Thread pinskia at gcc dot gnu dot org


--- Comment #7 from pinskia at gcc dot gnu dot org  2007-03-12 20:19 ---
 Andrew, have you verified that the problem is fixed now?
Yes the patch fixed the problem for me.

Was this impression mistaken?
Yes but in my own testing of a private tree of GCC 4.1.1 modifed for the PS3
game OS ABI, I found this bug happening there too.


-- 


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



[Bug preprocessor/23479] Implement binary constants with a 0b prefix

2007-03-12 Thread patchapp at dberlin dot org


--- Comment #22 from patchapp at dberlin dot org  2007-03-12 20:40 ---
Subject: Bug number preprocessor/23479

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/2007-02/msg00810.html


-- 


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



[Bug libstdc++/30915] [4.3 regression] bootstrap fails while building libstdc++-v3 on x86_64-pc-linux-gnu

2007-03-12 Thread b33fc0d3 at gmail dot com


--- Comment #17 from b33fc0d3 at gmail dot com  2007-03-12 20:48 ---
I can confirm this patch works on an amd64 gentoo sytem too.


-- 


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



[Bug libstdc++/30915] [4.3 regression] bootstrap fails while building libstdc++-v3 on x86_64-pc-linux-gnu

2007-03-12 Thread pcarlini at suse dot de


--- Comment #18 from pcarlini at suse dot de  2007-03-12 21:08 ---
(In reply to comment #17)
 I can confirm this patch works on an amd64 gentoo sytem too.

And what happens if you just change that #include_next to #include stdio.h,
that would be useful in understanding the issue and how much of it has to do
with #include_next (note that, at the moment, as far as I can see, the
#include_next special features are still not used)


-- 


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



[Bug c++/31156] New: creates reference to copy constructor on use of temporary object

2007-03-12 Thread charles at vmware dot com
The following code fails to compile:

 begin
#include iostream

class Foo
{
Foo(const Foo); // private
public:
Foo(int x) { }
};

std::ostream operator (std::ostream out, const Foo )
{
return out;
}

int main()
{
std::cout  Foo(5);
}

// test.cpp:5: error: 'Foo::Foo(const Foo)' is private
// test.cpp:17: error: within this context
 end

It does compile with EDG's C++ frontend.

reproduced on gcc version 4.1.2 (Gentoo 4.1.2)
reproduced on gcc version 4.1.1 (Gentoo 4.1.1-r3)
_not_ reproduced on gcc version 3.3.6 (Debian 1:3.3.6-15)

The following also fails on (Debian 4.1.1-21):

 begin
class Foo
{
Foo(const Foo); // private
public:
Foo(int x) { }
};

void foo(const Foo ) { }

int main()
{
foo(Foo(5));
}

// test.cpp:3: error: 'Foo::Foo(const Foo)' is private
// test.cpp:12: error: within this context
 end

Likewise, the following test, demonstrating that it's based on temporaries,
successfully compiles:

 begin
class Foo
{
Foo(const Foo); // private
public:
Foo(int x) { }
};

void foo(const Foo ) { }

int main()
{
Foo f(5);
foo(f);
}
 end


-- 
   Summary: creates reference to copy constructor on use of
temporary object
   Product: gcc
   Version: 4.1.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: charles at vmware dot com
 GCC build triplet: gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-
21)
  GCC host triplet: gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-
21)
GCC target triplet: gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-
21)


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



[Bug c++/28774] Request for warning where const/volatile is ignored in a cast

2007-03-12 Thread simon_baldwin at yahoo dot com


--- Comment #7 from simon_baldwin at yahoo dot com  2007-03-12 21:48 ---
PR 14710 isn't really quite the same thing as PR 28774.  PR 14170 is concerned
with unnecessary casts; PR 28774 is concerned with unnecessary const or
volatile qualifiers within otherwise valid and perhaps necessary casts.

That said, this PR really isn't all that useful, is tiny, and hasn't received a
lot of support, so I'm going to withdraw it (by setting resolution to
WONTFIX, which I hope will do the right thing).


-- 

simon_baldwin at yahoo dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||WONTFIX


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



[Bug middle-end/30835] ICE with -O2 -ftree-loop-linear

2007-03-12 Thread rakdver at gcc dot gnu dot org


--- Comment #2 from rakdver at gcc dot gnu dot org  2007-03-12 21:56 ---
Subject: Bug 30835

Author: rakdver
Date: Mon Mar 12 21:56:12 2007
New Revision: 122866

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=122866
Log:
PR tree-optimization/30835
* lambda-code.c (can_convert_to_perfect_nest): Check whether
bb_for_stmt is not NULL before accessing it.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/lambda-code.c


-- 


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



[Bug c++/31156] creates reference to copy constructor on use of temporary object

2007-03-12 Thread fang at csl dot cornell dot edu


--- Comment #1 from fang at csl dot cornell dot edu  2007-03-12 21:56 
---
See PR 25950 and PR 12226 (dup).
The resolution is that you need an accessible copy-constructor, regardless of
whether or not the compiler elides it during temporary creation.  


-- 

fang at csl dot cornell dot edu changed:

   What|Removed |Added

 CC||fang at csl dot cornell dot
   ||edu


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



[Bug c++/31156] creates reference to copy constructor on use of temporary object

2007-03-12 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2007-03-12 21:59 ---


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


-- 

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



[Bug c++/25950] [DR 391] Reference binding and explicit copy constructors

2007-03-12 Thread pinskia at gcc dot gnu dot org


--- Comment #26 from pinskia at gcc dot gnu dot org  2007-03-12 21:59 
---
*** Bug 31156 has been marked as a duplicate of this bug. ***


-- 


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



[Bug middle-end/30704] [4.2/4.3 Regression] Incorrect constant generation for long long

2007-03-12 Thread dje at gcc dot gnu dot org


--- Comment #4 from dje at gcc dot gnu dot org  2007-03-12 22:20 ---
I do not believe this is an endian issue.  It is a coincidence that the output
value looks like the original constant.  GCC converts the __builtin_memcpy()
into a VIEW_CONVERT_EXPRdouble.  The constant is equivalent to a NaN and GCC
uses the value CONST_DOUBLE NaN, not the original bits.  real.c converts the
CONST_DOUBLE NaN into a ieee_double NaN, which happens to look like the value
printed.  On little endian targets, the words are swapped, which just happens
to look like the original constant.

If the VIEW_CONVERT_EXPRdouble is valid, manipulating it like a NaN seems
valid.


-- 


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



[Bug c/31153] -Wconversion does not catch return value mismatch

2007-03-12 Thread manu at gcc dot gnu dot org


--- Comment #2 from manu at gcc dot gnu dot org  2007-03-12 22:25 ---
Wconversion is implemented in the front-end and there is no data-flow solving
on front-ends, so basically it is impossible to know the value of i.

In addition, up to GCC 4.3, Wconversion was not meant to warn about
signed-unsigned conversion, just for the negative constant case. From GCC 4.3,
the behaviour of Wconversion will change. See
http://gcc.gnu.org/wiki/NewWconversion

However, the new Wconversion will not produce warnings for signedness change as
in your testcase, since it results in too many warnings in real-world code
(Mozilla, libstdc++, Linux kernel, etc).


-- 

manu at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||manu at gcc dot gnu dot org
 Status|UNCONFIRMED |RESOLVED
 Resolution||WONTFIX


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



[Bug middle-end/30704] [4.2/4.3 Regression] Incorrect constant generation for long long

2007-03-12 Thread pinskia at gcc dot gnu dot org


--- Comment #5 from pinskia at gcc dot gnu dot org  2007-03-12 22:25 ---
Index: ../../gcc/fold-const.c
===
--- ../../gcc/fold-const.c  (revision 122864)
+++ ../../gcc/fold-const.c  (working copy)
@@ -7357,6 +7357,7 @@ native_interpret_real (tree type, unsign
  up to 192 bits.  */
   REAL_VALUE_TYPE r;
   long tmp[6];
+  long tmp1[6];

   total_bytes = GET_MODE_SIZE (TYPE_MODE (type));
   if (total_bytes  len || total_bytes  24)
@@ -7386,6 +7387,11 @@ native_interpret_real (tree type, unsign
 }

   real_from_target (r, tmp, mode);
+  real_to_target (tmp1, r, mode);
+  /* If the encoded real is going to decode differently, then reject the
constant
+ conversion. */
+  if (memcpy (tmp, tmp1,  total_bytes) != 0)
+return NULL;
   return build_real (type, r);
 }


-- 


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



[Bug libstdc++/30915] [4.3 regression] bootstrap fails while building libstdc++-v3 on x86_64-pc-linux-gnu

2007-03-12 Thread martin dot jansa at mk dot cvut dot cz


--- Comment #19 from martin dot jansa at mk dot cvut dot cz  2007-03-12 
22:30 ---
(In reply to comment #18)
 (In reply to comment #17)
  I can confirm this patch works on an amd64 gentoo sytem too.
 
 And what happens if you just change that #include_next to #include stdio.h,
 that would be useful in understanding the issue and how much of it has to do
 with #include_next (note that, at the moment, as far as I can see, the
 #include_next special features are still not used)

this isn't enough even with building with this brand new
gcc-4.3.0_alpha20070309.
I'll repeat it with include of proper stdio.h, which looks in gentoo multilib
like this

jama gcc # cat /usr/include/stdio.h
/* Autogenerated by create_ml_includes() in multilib.eclass */

#ifdef __i386__
# include gentoo-multilib/x86/stdio.h
#endif /* __i386__ */

#ifdef __x86_64__
# include gentoo-multilib/amd64/stdio.h
#endif /* __x86_64__ */

and with
#include stdio
without .h after that

so I'll send results tomorrow


-- 


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



[Bug middle-end/30704] [4.2/4.3 Regression] Incorrect constant generation for long long

2007-03-12 Thread pinskia at gcc dot gnu dot org


--- Comment #6 from pinskia at gcc dot gnu dot org  2007-03-12 22:38 ---
From native_encode_int, we get:
(gdb) p/x *(unsigned int[2]*)ptr
$14 = {0x0f00, 0x}

Which is obviously wrong, it should have encoded it as:
{0x000f, 0x}

So we get the wrong answer to begin with and it is not an issue with
native_interpret_real, at least right at this moment.


-- 


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



[Bug middle-end/30704] [4.2/4.3 Regression] Incorrect constant generation for long long

2007-03-12 Thread pinskia at gcc dot gnu dot org


--- Comment #7 from pinskia at gcc dot gnu dot org  2007-03-12 22:44 ---
(In reply to comment #6)
 From native_encode_int, we get:
 (gdb) p/x *(unsigned int[2]*)ptr
 $14 = {0x0f00, 0x}

No that is right, I was looking at while doing a cross so (unsigned int[2]*)
meant we have byte endian swap.


-- 


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



[Bug c++/31157] New: Bitfield is not promoted

2007-03-12 Thread ismail at pardus dot org dot tr
Following testcase compiles fine with gcc 3.4.6 but not with gcc 4.2.0 20070307
:

- cut here -
#include iostream

using namespace std;

class Foo
{
public:
Foo() { x=1; y=0; };
unsigned int x:12;
unsigned int y;
};

int main()
{
  Foo bar;

  max(bar.y,bar.x);

  return 0;
}
- cut here -

The error is :

max.cpp: In function 'int main()':
max.cpp:17: error: no matching function for call to 'max(unsigned int, short
unsigned int:12)'


-- 
   Summary: Bitfield is not promoted
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: ismail at pardus dot org dot tr


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



[Bug c++/31157] Bitfield is not promoted

2007-03-12 Thread ismail at pardus dot org dot tr


--- Comment #1 from ismail at pardus dot org dot tr  2007-03-12 23:03 
---
Original code was from WebKit SVN.


-- 


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



[Bug middle-end/30704] [4.2/4.3 Regression] Incorrect constant generation for long long

2007-03-12 Thread pinskia at gcc dot gnu dot org


--- Comment #8 from pinskia at gcc dot gnu dot org  2007-03-12 23:08 ---
the issue is with native_interpret_real really, tmp is getting the wrong words
order.


-- 


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



  1   2   >