[Bug ada/27999] FAIL: c64005c

2007-05-04 Thread charlet at gcc dot gnu dot org


--- Comment #2 from charlet at gcc dot gnu dot org  2007-05-04 08:26 ---
Let's assume this is fixed, as per your latest 4.3.0 results


-- 

charlet at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.3.0


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



[Bug ada/29685] testsuite hang running c910002

2007-05-04 Thread charlet at gcc dot gnu dot org


--- Comment #2 from charlet at gcc dot gnu dot org  2007-05-04 08:28 ---
Assuming you haven't disabled this test manually, this is fixed as per your
latest test results on 4.3.0


-- 

charlet at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.3.0


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



[Bug ada/25819] CXF3A01 core dump

2007-05-04 Thread charlet at gcc dot gnu dot org


--- Comment #4 from charlet at gcc dot gnu dot org  2007-05-04 08:25 ---
>From the test results you posted yesterday on 4.3.0, I assume this is fixed:

<<
=== acats tests ===
FAIL:   c37215h
FAIL:   cd10002
FAIL:   cxh1001

Native configuration is hppa-unknown-linux-gnu
>>


-- 

charlet at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.3.0


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



[Bug fortran/25071] dummy argument larger than actual argument

2007-05-04 Thread burnus at gcc dot gnu dot org


--- Comment #4 from burnus at gcc dot gnu dot org  2007-05-04 08:54 ---
Subject: Bug 25071

Author: burnus
Date: Fri May  4 07:54:06 2007
New Revision: 124411

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=124411
Log:
2007-05-04  Tobias Burnus  <[EMAIL PROTECTED]>

PR fortran/25071
* interface.c (compare_actual_formal): Check character length.

2007-05-04  Tobias Burnus  <[EMAIL PROTECTED]>

PR fortran/25071
* gfortran.dg/char_length_3.f90: New test.
* gfortran.dg/char_result_2.f90: Fix test.


Added:
trunk/gcc/testsuite/gfortran.dg/char_length_3.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/interface.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/char_result_2.f90


-- 


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



[Bug fortran/25071] dummy argument larger than actual argument

2007-05-04 Thread burnus at gcc dot gnu dot org


--- Comment #5 from burnus at gcc dot gnu dot org  2007-05-04 08:55 ---
Note: Only the string length problem is fixed; the array storage extend still
needs to be fixed.


-- 


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



[Bug fortran/31803] ICE for character pointer => target(range)

2007-05-04 Thread burnus at gcc dot gnu dot org


--- Comment #2 from burnus at gcc dot gnu dot org  2007-05-04 08:57 ---
Note: Please uncomment also the two marked lines in
gcc/testsuite/gfortran.dg/char_result_2.f90 when you fix this PR.

http://gcc.gnu.org/viewcvs/trunk/gcc/testsuite/gfortran.dg/char_result_2.f90?r1=124411&r2=124410&pathrev=124411


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

Summary|ICE when for character  |ICE for character  pointer
   |pointer => target(range)|=> target(range)


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



[Bug tree-optimization/31797] gcc-4.2.0 racing

2007-05-04 Thread pinskia at gcc dot gnu dot org


--- Comment #5 from pinskia at gcc dot gnu dot org  2007-05-04 09:05 ---
On the mainline I get an ICE:
t.c:20: internal compiler error: in compute_antic, at tree-ssa-pre.c:1968


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||dberlin at gcc dot gnu dot
   ||org
  Component|middle-end  |tree-optimization


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



[Bug fortran/29975] [meta-bugs] ICEs with CP2K

2007-05-04 Thread jv244 at cam dot ac dot uk


--- Comment #96 from jv244 at cam dot ac dot uk  2007-05-04 09:15 ---
(In reply to comment #91)
> current (i.e. this morning) mainline seems to miscompile CP2K (tested current
> CVS of CP2K). 

Current SVN gfortran compiles CP2K again correctly. Closing the bug again


-- 

jv244 at cam dot ac dot uk changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution||FIXED


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



[Bug fortran/31812] New: Better message than "syntax error" when truncating long lines

2007-05-04 Thread burnus at gcc dot gnu dot org
gfortran silently trunkates lines which gives syntax errors. Especially in free
format, the truncation is usually not intended. (In fixed format is sometimes
is.)

Other compiles print a warning (such as g95, all options; syntax error
afterwards), give an error (such as NAG f95) or (silently) accept longer lines
(ifort, all options).

gfortran prints a warning, but only with -Wall not with -pedantic -std=f95.

Real-world example:
http://gcc.gnu.org/ml/fortran/2007-05/msg00042.html

Message:

"," name=",1H",A,1H",">",A,"")',ADVANCE="Yes") blank(1:inden),tag,str(1
  1
Error: Syntax error in argument list at (1)


-- 
   Summary: Better message than "syntax error" when truncating long
lines
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: diagnostic
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: burnus at gcc dot gnu dot org


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



[Bug libstdc++/29286] [4.0/4.1/4.2/4.3 Regression] placement new does not change the dynamic type as it should

2007-05-04 Thread pcarlini at suse dot de


--- Comment #41 from pcarlini at suse dot de  2007-05-04 09:41 ---
In case it wasn't clear already, many thanks Ian and everyone for fixing this
annoying issue.


-- 


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



[Bug fortran/31813] New: Warn about deleted feature: H edit descriptor

2007-05-04 Thread burnus at gcc dot gnu dot org
>From Fortran 95 standard, Annex B, B1: Deleted Features:

"H edit descriptor.
In FORTRAN 77, and for consistency also in Fortran 90, there was an alternative
form of character string edit descriptor, which had been the only such form in
FORTRAN 66; this has been deleted."

Other compiles warn:

NAG: f95
Deleted feature used: H edit descriptor

Intel: ifort -stand f95
Warning: The cH edit descriptor has been deleted in Fortran 95.

g95 -std=f95
Warning (100): The H format specifier is a deleted language feature in format
string at (1)

Example:
  SUBROUTINE ERROR_SUB(TAG,STR,BLANK)
IMPLICIT none
CHARACTER (LEN=*) :: TAG
CHARACTER (LEN=*) :: STR
CHARACTER (LEN=*) :: BLANK
INTEGER inden, uixml, i
i=LEN_TRIM(str)
inden = 10
WRITE(uixml,'(A,"",A,"")',ADVANCE="Yes") blank(1:inden),tag,str(1:i)
  END SUBROUTINE ERROR_SUB


-- 
   Summary: Warn about deleted feature: H edit descriptor
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: diagnostic
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: burnus at gcc dot gnu dot org


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



[Bug ada/26465] Ada.Characters.Conversions comment announces Ada.Characters.Handling

2007-05-04 Thread charlet at gcc dot gnu dot org


--- Comment #1 from charlet at gcc dot gnu dot org  2007-05-04 09:58 ---
Was fixed on 2006-10-31


-- 

charlet at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.3.0


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



[Bug ada/30686] ada: ICE in expand_expr_addr_expr_1, at expr.c:6563

2007-05-04 Thread charlet at gcc dot gnu dot org


--- Comment #4 from charlet at gcc dot gnu dot org  2007-05-04 10:08 ---
Fixed in 4.3.0


-- 

charlet at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.3.0


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



[Bug ada/29157] gnattools fail on cross compilation - Makefile bug?

2007-05-04 Thread charlet at gcc dot gnu dot org


--- Comment #5 from charlet at gcc dot gnu dot org  2007-05-04 10:13 ---
install.texi would be the place to add this documentation.


-- 


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



[Bug fortran/31781] fortran regressions on trunk if you --disable-checking

2007-05-04 Thread fxcoudert at gcc dot gnu dot org


--- Comment #5 from fxcoudert at gcc dot gnu dot org  2007-05-04 10:26 
---
Subject: Bug 31781

Author: fxcoudert
Date: Fri May  4 09:26:41 2007
New Revision: 124412

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=124412
Log:
PR fortran/31781
* simplify.c (gfc_simplify_repeat): Don't put function call with
side effect in a gcc_assert().

Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/simplify.c


-- 


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



[Bug fortran/31781] fortran regressions on trunk if you --disable-checking

2007-05-04 Thread fxcoudert at gcc dot gnu dot org


--- Comment #6 from fxcoudert at gcc dot gnu dot org  2007-05-04 10:29 
---
Fixed.


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/31809] [4.1/4.2/4.3 Regression] sometimes TREE_READONLY is still set for non read only variables causing wrong code

2007-05-04 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2007-05-04 10:33 ---
Confirmed.  Should be easy to work around.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||rguenth at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-05-04 10:33:41
   date||


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



[Bug fortran/31251] Non-integer character length leads to segfault

2007-05-04 Thread fxcoudert at gcc dot gnu dot org


--- Comment #11 from fxcoudert at gcc dot gnu dot org  2007-05-04 10:44 
---
(In reply to comment #10)
> Again, I am unable to really test this, but here is a suggestion

This patch fixes the ICE, and I agree it's the right thing to do.

I retested your other patch from scratch (the one to decl.c) and it doesn't fix
the double-error problem. Maybe your forgot some part of it?


-- 


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



[Bug ada/24564] Bug box in Ada compiler: in create_tmp_var, at gimplify.c:368

2007-05-04 Thread charlet at gcc dot gnu dot org


--- Comment #6 from charlet at gcc dot gnu dot org  2007-05-04 10:55 ---
Fixed on trunk


-- 

charlet at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug ada/24381] Error in visibility rules of formal generic packages

2007-05-04 Thread charlet at gcc dot gnu dot org


--- Comment #1 from charlet at gcc dot gnu dot org  2007-05-04 11:22 ---
Compiles cleanly on trunk


-- 

charlet at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.3.0


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



[Bug ada/22251] Bug box in Ada compiler: Assert_Failure sinfo.adb:2479, Error detected at test.adb:12:16

2007-05-04 Thread charlet at gcc dot gnu dot org


--- Comment #3 from charlet at gcc dot gnu dot org  2007-05-04 11:31 ---
Now compiles properly (and generates error message as expected).

Arno


-- 

charlet at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug libstdc++/29286] [4.0/4.1/4.2/4.3 Regression] placement new does not change the dynamic type as it should

2007-05-04 Thread rguenth at gcc dot gnu dot org


--- Comment #42 from rguenth at gcc dot gnu dot org  2007-05-04 11:45 
---
I put it on the tester.  A testcase that does regress (simplified from
tramp3d):

template 
class Vector
{
public:
   Vector()
   {
 for (int i = 0; i < D; ++i)
new (&x_m[i]) T();
   }
   T& operator[](int i) { return x_m[i]; }

private:
   T x_m[D];
};

void foo(Vector *m)
{
  Vector v;
  v[0] = 1.0;
  v[1] = 2.0;
  v[3] = 3.0;
  *m = v;
}

where we can no longer optimize the redundant stores to v:

:
  v.x_m[0] = 0.0;
  __asm__ __volatile__("":"=m" v.x_m[0]:"m" v.x_m[0]);
  v.x_m[1] = 0.0;
  __asm__ __volatile__("":"=m" v.x_m[1]:"m" v.x_m[1]);
  v.x_m[2] = 0.0;
  __asm__ __volatile__("":"=m" v.x_m[2]:"m" v.x_m[2]);
  v.x_m[0] = 1.0e+0;
  v.x_m[1] = 2.0e+0;
  v.x_m[3] = 3.0e+0;
  *m = v;
  return;

vs.

:
  v.x_m[2] = 0.0;
  v.x_m[0] = 1.0e+0;
  v.x_m[1] = 2.0e+0;
  v.x_m[3] = 3.0e+0;
  *m = v;
  return;

and assembly:

_Z3fooP6VectorIdLi3EE:
.LFB17:
xorl%r9d, %r9d
movq%r9, -40(%rsp)
movq%r9, -32(%rsp)
movq%r9, -24(%rsp)
movabsq $4607182418800017408, %r8
movabsq $4611686018427387904, %rsi
movq-24(%rsp), %rax
movq%r8, -40(%rsp)
movq%rsi, -32(%rsp)
movq-40(%rsp), %rcx
movq-32(%rsp), %rdx
movq%rax, 16(%rdi)
movq%rcx, (%rdi)
movq%rdx, 8(%rdi)
ret

vs.

_Z3fooP6VectorIdLi3EE:
.LFB17:
movabsq $4607182418800017408, %r8
movabsq $4611686018427387904, %rsi
movq$0, -24(%rsp)
movq%r8, -40(%rsp)
movq%rsi, -32(%rsp)
movq-40(%rsp), %rcx
movq-32(%rsp), %rdx
movq-24(%rsp), %rax
movq%rcx, (%rdi)
movq%rdx, 8(%rdi)
movq%rax, 16(%rdi)
ret

this happens in hot tramp3d loops and is a quite common idiom for initializing
storage.  To fix this we need to avoid creating the asm if the type of the
original storage is the same as the other.


-- 


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



[Bug c/31804] gcc segfaults on very long pointer chains

2007-05-04 Thread joseph at codesourcery dot com


--- Comment #4 from joseph at codesourcery dot com  2007-05-04 12:00 ---
Subject: Re:  gcc segfaults on very long pointer chains

On Fri, 4 May 2007, bangerth at dealii dot org wrote:

> But seriously, while I do think that we should strive to compile even
> programs that are "weird" or "unusual" in their requirements on the 
> compiler, I think that this one goes a little overboard. I would,
> however, be interested to hear how many levels of pointers gcc
> actually *can* compile. I would imagine it's at least a few
> hundred, maybe thousand. Maybe you could try to figure out?

That would depend on your stack limit (so the question would really be, 
for each extra MB of stack limit how many more levels can it compile)?  
For such extreme programs I think it's reasonable to expect users to 
increase their stack limit when running the compiler.

Although in this case, it would be reasonably straightforward to make 
c_parser_declarator iterative (with an internal linked list on the parser 
obstack) rather than recursive - if that were actually of use in compiling 
real code with real stack limits.


-- 


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



[Bug libstdc++/29286] [4.0/4.1/4.2/4.3 Regression] placement new does not change the dynamic type as it should

2007-05-04 Thread pcarlini at suse dot de


--- Comment #43 from pcarlini at suse dot de  2007-05-04 12:03 ---
(In reply to comment #42)
> this happens in hot tramp3d loops and is a quite common idiom for initializing
> storage.  To fix this we need to avoid creating the asm if the type of the
> original storage is the same as the other.

Many thanks Richard. Indeed, I find this already mentioned optimization a very
sensible thing to add.

(By the way, someone should tell the tramp3d developers that using placement
new for a POD type like double isn't a very smart idea ;) The only tricky point
for default inizialization is whether using memset or a plain loop)


-- 


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



[Bug libstdc++/29286] [4.0/4.1/4.2/4.3 Regression] placement new does not change the dynamic type as it should

2007-05-04 Thread pcarlini at suse dot de


--- Comment #44 from pcarlini at suse dot de  2007-05-04 12:07 ---
(In reply to comment #43)
> (By the way, someone should tell the tramp3d developers that using placement
> new for a POD type like double isn't a very smart idea ;) The only tricky 
> point
> for default inizialization is whether using memset or a plain loop)

Forgot to add a detail that may be of interest, however: C++03 *fails* to
classify as POD some very common and simple types which are morally PODs:

  http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2172.html

Thus let's not assume users to be too good here: sometimes, in generic code,
they may end-up calling placement new also for very simple types.


-- 


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



[Bug fortran/31251] Non-integer character length leads to segfault

2007-05-04 Thread fxcoudert at gcc dot gnu dot org


--- Comment #12 from fxcoudert at gcc dot gnu dot org  2007-05-04 12:10 
---
Subject: Bug 31251

Author: fxcoudert
Date: Fri May  4 11:10:06 2007
New Revision: 124415

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=124415
Log:
PR fortran/31251
* simplify.c (gfc_simplify_len): Only simplify integer lengths.

Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/simplify.c


-- 


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



[Bug fortran/31218] ICE on valid code with gfortran

2007-05-04 Thread fxcoudert at gcc dot gnu dot org


--- Comment #5 from fxcoudert at gcc dot gnu dot org  2007-05-04 12:31 
---
RESHAPE is not simplified, because "x" has type EXPR_CONSTANT (scalar constant)
which is not accepted by the simplification routine gfc_simplify_reshape,
because it wants arguments to be EXPR_ARRAY (ie array constructor). Thus, the
following code fails to compile:
  integer, parameter :: x(1) = 1, y(1) = reshape(x,(/1/))
  print *, y
  end
while that other one works fine:
  integer, parameter :: x(1) = (/1/), y(1) = reshape(x,(/1/))
  print *, y
  end

I don't know if it's OK for x to have type EXPR_CONSTANT, but I think it is. In
that case, gfc_simplify_reshape should be modified to account for this
possibility.


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||fxcoudert at gcc dot gnu dot
   ||org
   Last reconfirmed|2007-03-17 15:42:32 |2007-05-04 12:31:41
   date||


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



[Bug fortran/31764] NEW_LINE with array argument

2007-05-04 Thread fxcoudert at gcc dot gnu dot org


--- Comment #2 from fxcoudert at gcc dot gnu dot org  2007-05-04 12:52 
---
(Side note: NEW_LINE is not an elemental function. It can be used with an array
argument, but it's different from being elemental.)

As for the bug itself, there's no reason that the argument to NEW_LINE should
be constant: the only requirement is that it's of character kind (all that is
used in NEW_LINE is the character kind, which is always known at compile-time).
So, the following patch fixes it, and I believe it does the right thing:

Index: simplify.c
===
--- simplify.c  (revision 124415)
+++ simplify.c  (working copy)
@@ -2641,13 +2641,8 @@ gfc_simplify_new_line (gfc_expr *e)
 {
   gfc_expr *result;

-  if (e->expr_type != EXPR_CONSTANT)
-return NULL;
-
   result = gfc_constant_result (BT_CHARACTER, e->ts.kind, &e->where);
-
   result->value.character.string = gfc_getmem (2);
-
   result->value.character.length = 1;
   result->value.character.string[0] = '\n';
   result->value.character.string[1] = '\0'; /* For debugger */


This patch is donated to whomever has time to confirm that it does what it
should, that it conforms to the standard and that it regtests. (I'll take care
of it next week if noone has time before then.) The following testcase now
passes:

$ cat a.f90 
  character(len=10) :: a1
  character(len=10) :: a2(2)
  character(len=10), parameter :: a3 = "1234567890"
  character(len=10), parameter :: a4(2) = "1234567890"
  character(len=10), parameter :: a5(2) = repeat("1234567890",2)

  print *, ichar(new_line(a1))
  print *, ichar(new_line(a2))
  print *, ichar(new_line(a3))
  print *, ichar(new_line(a4))
  print *, ichar(new_line(a5))
  end
$ gfortran a.f90 && ./a.out
  10
  10
  10
  10
  10


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||fxcoudert at gcc dot gnu dot
   ||org
   Keywords||patch
  Known to fail||4.3.0
   Last reconfirmed|2007-04-30 15:43:12 |2007-05-04 12:52:17
   date||
Summary|[f2003] ice in new_line if  |NEW_LINE with array argument
   |used as elemental function  |
   Target Milestone|--- |4.3.0


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



[Bug libstdc++/29286] [4.0/4.1/4.2/4.3 Regression] placement new does not change the dynamic type as it should

2007-05-04 Thread rguenth at gcc dot gnu dot org


--- Comment #45 from rguenth at gcc dot gnu dot org  2007-05-04 13:03 
---
Of course in the tramp3d case the code is written in such a generic way that it
supports non-POD data members...  (And yes, "upstream" has this optimized, but
tramp3d-v4.cpp is about having a gcc testcase, not perfectly user-written code
;))


-- 


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



[Bug target/31674] [4.3 Regression] internal consistency failure on ia64 with -O

2007-05-04 Thread tbm at cyrius dot com


--- Comment #7 from tbm at cyrius dot com  2007-05-04 13:17 ---
Alexandre, can you investigate this issue?


-- 


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



[Bug ada/19002] GNAT BUG DETECTED, unqualified record aggregate triggers

2007-05-04 Thread charlet at gcc dot gnu dot org


--- Comment #4 from charlet at gcc dot gnu dot org  2007-05-04 13:26 ---
gcc -c matter.ads no longer crashes the compiler


-- 

charlet at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug ada/18876] Bug box, Assert_Failure at namet.adb:630, on legal program

2007-05-04 Thread charlet at gcc dot gnu dot org


--- Comment #2 from charlet at gcc dot gnu dot org  2007-05-04 13:42 ---
Compiles cleanly on trunk


-- 

charlet at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug ada/18845] Illegal program not detected, RM 4.7(3)

2007-05-04 Thread charlet at gcc dot gnu dot org


--- Comment #2 from charlet at gcc dot gnu dot org  2007-05-04 13:44 ---
Fixed on trunk:

$ gcc -c test_134.adb
test_134.adb:11:24: expected type "T1" defined at line 3
test_134.adb:11:24: found type "T1'Class" defined at line 3
test_134.adb:13:17: expected type "T1" defined at line 3
test_134.adb:13:17: found type "T1'Class" defined at line 3


-- 

charlet at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug ada/17960] GNAT.Sockets Stream feature not working properly

2007-05-04 Thread charlet at gcc dot gnu dot org


--- Comment #5 from charlet at gcc dot gnu dot org  2007-05-04 14:29 ---
Closing, since it's not clear what behavior the reporter is expecting.


-- 

charlet at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug c++/31816] New: If a function foo is defined before declaring a template class A, overloaded version of foo defined after the class declaration will not be available within class A.

2007-05-04 Thread gcc-bugzilla at gcc dot gnu dot org


Let us consider the following code:
-
void qHash(double) {}

template 
struct QSet
{
  void foo()
  {
qHash(T());
  }
};

// void qHash(double) {} // ok if placed here
void qHash(int*) {}

int main()
{
  QSet s;
  s.foo(); // ok

  QSet sp;
  sp.foo(); // do not compile, qHash(int*) is not considered.
}
-

It does not compile, because the overloaded version of qHash() for
int* is not available in QSet, even if QSet is instantiated after the
declaration of qHash(int*). If no qHash function is defined before the
declaration of QSet, it works fine. Although I'm not absolutely
certain that this code is valid, my intuition tells me this behavior
is strongly suspect ..

It works fine with g++ 4.0.4, 3.3 and 2.95.

Environment:
System: Linux stageuei9 2.6.18-3-686 #1 SMP Mon Dec 4 16:41:14 UTC 2006 i686
GNU/Linux
Architecture: i686


host: i486-pc-linux-gnu
build: i486-pc-linux-gnu
target: i486-pc-linux-gnu
configured with: ../src/configure -v
--enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr
--enable-shared --with-system-zlib --libexecdir=/usr/lib
--without-included-gettext --enable-threads=posix --enable-nls
--program-suffix=-4.1 --enable-__cxa_atexit --enable-clocale=gnu
--enable-libstdcxx-debug --enable-mpfr --with-tune=i686
--enable-checking=release i486-linux-gnu

How-To-Repeat:

Compile the given code.


--- Comment #1 from nicolas dot burrus at ensta dot fr  2007-05-04 14:31 
---
Fix:

Do not overload a function before and after a template class
using it.


-- 
   Summary: If a function foo is defined before declaring a template
class A, overloaded version of foo defined after the
class declaration will not be available within class
A.
   Product: gcc
   Version: 4.1.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: nicolas dot burrus at ensta dot fr
 GCC build triplet: i486-pc-linux-gnu
  GCC host triplet: i486-pc-linux-gnu
GCC target triplet: i486-pc-linux-gnu


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



[Bug fortran/31251] Non-integer character length leads to segfault

2007-05-04 Thread jvdelisle at gcc dot gnu dot org


--- Comment #13 from jvdelisle at gcc dot gnu dot org  2007-05-04 14:36 
---
I noticed after applying the patch to simplify.c the double error problem
returned.  I will continue on that part. Subtle things going on here. Side
effects.  At least we have the segfault resolved.


-- 


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



[Bug fortran/31803] ICE for character pointer => target(range)

2007-05-04 Thread burnus at gcc dot gnu dot org


--- Comment #3 from burnus at gcc dot gnu dot org  2007-05-04 14:40 ---
Subject: Bug 31803

Author: burnus
Date: Fri May  4 13:40:32 2007
New Revision: 124419

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=124419
Log:
2007-05-04  Tobias Burnus  <[EMAIL PROTECTED]>

PR fortran/31803
* expr.c (gfc_check_pointer_assign): Check for NULL pointer.

2007-05-04  Tobias Burnus  <[EMAIL PROTECTED]>

PR fortran/31803
* gfortran.dg/char_pointer_assign_3.f90: New test.
* gfortran.dg/char_result_2.f90: Re-enable test.


Added:
trunk/gcc/testsuite/gfortran.dg/char_pointer_assign_3.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/expr.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/char_result_2.f90


-- 


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



[Bug fortran/31803] ICE for character pointer => target(range)

2007-05-04 Thread burnus at gcc dot gnu dot org


--- Comment #4 from burnus at gcc dot gnu dot org  2007-05-04 14:46 ---
Fixed in 4.3. Not for 4.2.0. If someone has strong feelings about 4.2.1, please
reopen.


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
  Known to fail||4.3.0 4.2.0 4.1.2
 Resolution||FIXED
   Target Milestone|--- |4.3.0


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



[Bug ada/16101] Illegal program not detected, pragma Convention after freeze

2007-05-04 Thread charlet at gcc dot gnu dot org


--- Comment #2 from charlet at gcc dot gnu dot org  2007-05-04 14:50 ---
Fixed on trunk:
$ gcc -c test_248687.ads
test_248687.ads:6:04: representation item appears too late


-- 

charlet at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug fortran/31210] I/O of string with (non-constant) zero length

2007-05-04 Thread fxcoudert at gcc dot gnu dot org


--- Comment #2 from fxcoudert at gcc dot gnu dot org  2007-05-04 15:06 
---
Reduced testcase:

  integer :: l = 0
  write(*,'(A,I1)') foo(), 0
contains
   function foo()
 character(len=l) :: foo
 foo = ""
   end function
end

When a function result is a string of length 0, and that length is not known at
compile time, we create it with _gfortran_internal_malloc(0), which returns
NULL. The library is gets confused when seeing that NULL pointer, even though
the length is also passed and is zero, and requests more data elements (thus
munching the next integer in the I/O list).

If it's deemed that this is a library problem, as I think, I propose the
following patch (which fixes both the original and the reduced testcases, and
regtests fine on i686-linux):


Index: libgfortran/io/transfer.c
===
--- libgfortran/io/transfer.c   (revision 124285)
+++ libgfortran/io/transfer.c   (working copy)
@@ -1401,8 +1401,17 @@ transfer_logical (st_parameter_dt *dtp, 
 void
 transfer_character (st_parameter_dt *dtp, void *p, int len)
 {
+  static char *empty_string[0];
+
   if ((dtp->common.flags & IOPARM_LIBRETURN_MASK) != IOPARM_LIBRETURN_OK)
 return;
+
+  /* Strings of zero length can have p == NULL, which confuses the
+ transfer routines into thinking we need more data elements.  To avoid
+ this, we give them a nice pointer.  */
+  if (len == 0 && p == NULL)
+p = empty_string;
+
   /* Currently we support only 1 byte chars, and the library is a bit
  confused of character kind vs. length, so we kludge it by setting
  kind = length.  */


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||jvdelisle at gcc dot gnu dot
   ||org, fxcoudert at gcc dot
   ||gnu dot org
   Keywords||patch
  Known to fail||4.1.3 4.2.0 4.3.0
   Last reconfirmed|2007-03-21 17:05:21 |2007-05-04 15:06:10
   date||
Summary|wrong code generated:   |I/O of string with (non-
   |character MERGE(...) with   |constant) zero length
   |MASK=.false.|
   Target Milestone|--- |4.3.0


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



[Bug libstdc++/29286] [4.0/4.1/4.2/4.3 Regression] placement new does not change the dynamic type as it should

2007-05-04 Thread rguenth at gcc dot gnu dot org


--- Comment #46 from rguenth at gcc dot gnu dot org  2007-05-04 15:31 
---
http://www.suse.de/~gcctest/c++bench/tramp3d/  2nd graph from the top :(

boost ICEs:
/gcc/spec/sb-vangelis-head-64/boost_1_33_1/boost/wave/util/unput_queue_iterator.hpp:221:
warning: suggest parentheses around && within ||
../cpp.cpp: In member function 'typename
boost::spirit::parser_result, ScannerT>::type
boost::spirit::sequence::parse(const ScannerT&) const [with ScannerT =
boost::spirit::scanner,
boost::spirit::match_policy, boost::spirit::action_policy> >, A =
boost::spirit::sequence >, boost::spirit::ref_value_actor >,
boost::spirit::action, boost::spirit::ref_value_actor > >, B =
boost::spirit::action, boost::spirit::ref_value_actor >]':
../cpp.cpp:715: internal compiler error: in get_indirect_ref_operands, at
tree-ssa-operands.c:1704
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html> for instructions.

the run is not yet finished (currently mico is running).


-- 


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



[Bug fortran/31210] I/O of string with (non-constant) zero length

2007-05-04 Thread jvdelisle at gcc dot gnu dot org


--- Comment #3 from jvdelisle at gcc dot gnu dot org  2007-05-04 16:04 
---
I agree, this patch is OK for trunk Thanks.


-- 


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



[Bug target/31786] error: unable to find a register to spill in class 'BASE_POINTER_REGS'

2007-05-04 Thread eweddington at cso dot atmel dot com


--- Comment #9 from eweddington at cso dot atmel dot com  2007-05-04 16:06 
---
>From Bjoern Haase:

Hi all,

I think that we could resolve this ICE by adding an unnamed pattern like

(define_insn "*strangeMovhi"
  [(set (mem:HI (plus:HI (reg:HI 28)
 (const_int 1)))
(match_operand:HI 0 "general_operand" "r"))]
  ""
  "st %A0,y+1 \n\t st %B0,y+2"
  [(set_attr "length" "2")])


to the machine description "avr.md" . That might cure the symptoms and does not
resolve the underlying problem with reload, but this might be a fix for the
immediate issue.

Note that above remark is untested pseudo-code.

Yours,

Bjoern.

P.S.: Eric, you might add this remark to the bugzilla entry.


-- 


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



[Bug fortran/31210] I/O of string with (non-constant) zero length

2007-05-04 Thread fxcoudert at gcc dot gnu dot org


--- Comment #4 from fxcoudert at gcc dot gnu dot org  2007-05-04 16:14 
---
Subject: Bug 31210

Author: fxcoudert
Date: Fri May  4 15:14:07 2007
New Revision: 124428

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=124428
Log:
PR libfortran/31210
* io/transfer.c (transfer_character): Avoid passing a NULL
pointer as source to the transfer routines, if the string length
is zero.

Modified:
trunk/libgfortran/ChangeLog
trunk/libgfortran/io/transfer.c


-- 


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



[Bug fortran/31210] I/O of string with (non-constant) zero length

2007-05-04 Thread fxcoudert at gcc dot gnu dot org


--- Comment #5 from fxcoudert at gcc dot gnu dot org  2007-05-04 16:20 
---
Subject: Bug 31210

Author: fxcoudert
Date: Fri May  4 15:20:17 2007
New Revision: 124429

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=124429
Log:
PR libfortran/31210
* gfortran.dg/zero_length_1.f90: New test.

Added:
trunk/gcc/testsuite/gfortran.dg/zero_length_1.f90
Modified:
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug libfortran/31210] I/O of string with (non-constant) zero length

2007-05-04 Thread fxcoudert at gcc dot gnu dot org


--- Comment #6 from fxcoudert at gcc dot gnu dot org  2007-05-04 16:21 
---
Fixed on mainline.


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
  Component|fortran |libfortran
 Resolution||FIXED


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



[Bug fortran/29523] [4.1/4.2 only] ICE with some non up-to date .mod files

2007-05-04 Thread fxcoudert at gcc dot gnu dot org


--- Comment #7 from fxcoudert at gcc dot gnu dot org  2007-05-04 16:38 
---
I can reproduce that ICE with 4.2.0. It's working fine with gfortran 4.3 (even
under ElectricFence and valgrind). It's not a regression from the 4.1 branch,
since you already had that problem there, as far as I understand. It has small
impact (if you add dependencies to your makefile, it won't happen, right?) so
it will not be fixed.

Thanks for reporting, and I hope this bad news for you won't put you off
reporting other bugs in the future!


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||fxcoudert at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |RESOLVED
  GCC build triplet|x86_64-linux-gnu|
   GCC host triplet|x86_64-linux-gnu|
 GCC target triplet|x86_64-linux-gnu|
   Keywords||ice-on-invalid-code
  Known to fail||4.1.3 4.2.0
  Known to work||4.3.0
 Resolution||WONTFIX
Summary|ICE with some non up-to date|[4.1/4.2 only] ICE with some
   |.mod files  |non up-to date .mod files


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



[Bug fortran/31467] internal compiler error when compiling with gfortran

2007-05-04 Thread fxcoudert at gcc dot gnu dot org


--- Comment #6 from fxcoudert at gcc dot gnu dot org  2007-05-04 16:40 
---
Closing.


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
  Known to fail||4.2.0
  Known to work||4.3.0
 Resolution||FIXED


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



[Bug fortran/31720] [4.1/4.2 only] ICE for module function returning automatic array

2007-05-04 Thread fxcoudert at gcc dot gnu dot org


--- Comment #2 from fxcoudert at gcc dot gnu dot org  2007-05-04 16:49 
---
Also happens on i686-linux. It's a 4.1/4.2 regression, which means we could
theoretically try to fix it. I'm closing this as WONTFIX nonetheless due to the
small impact of the bug (it's triggered by invalid code) and the fact that we
have already much on our plates.

If someone wants to take care of it, of if you (Terry) want to provide a patch,
it will be welcome!


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

   Severity|normal  |minor
 Status|UNCONFIRMED |RESOLVED
   GCC host triplet|x86_64-unknown-linux-gnu|
   Keywords||ice-on-invalid-code
  Known to fail|4.1.2 4.2.0 |4.1.0 4.1.2 4.2.0
  Known to work|4.3.0   |4.3.0 4.0.4
 Resolution||WONTFIX
Summary|ICE for module function |[4.1/4.2 only] ICE for
   |returning automatic array   |module function returning
   ||automatic array


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



[Bug libstdc++/29286] [4.0/4.1/4.2/4.3 Regression] placement new does not change the dynamic type as it should

2007-05-04 Thread ian at airs dot com


--- Comment #47 from ian at airs dot com  2007-05-04 16:54 ---
Unfortunately there is no obvious way to avoid creating the asm if the types
are the same.  The reason is that the dynamic types are different, and we don't
know the dynamic type.

Look at your original test case:

  Bar *b = new (f) Bar;
  b->p = 0;
  f = new (f) Foo;

Here f has type Foo*.  So if we test whether the types are the same, we
conclude that we don't need any blockage in the last statement quoted above. 
But that misses the fact that although the static type of *f is Foo, the
dynamic type of *f is Bar.

Any ideas?


-- 


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



[Bug libstdc++/29286] [4.0/4.1/4.2/4.3 Regression] placement new does not change the dynamic type as it should

2007-05-04 Thread rguenth at gcc dot gnu dot org


--- Comment #48 from rguenth at gcc dot gnu dot org  2007-05-04 16:57 
---
Doh, you are right.  So we're back to doing it in the aliasing machinery and
with
a new tree-code I think.  On IRC Danny said he "can do it" ;)


-- 


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



[Bug fortran/31197] [4.3/4.2 regression^2] TRANSPOSE/RESHAPE and strings

2007-05-04 Thread jvdelisle at gcc dot gnu dot org


--- Comment #5 from jvdelisle at gcc dot gnu dot org  2007-05-04 17:20 
---
Segafult is because sym->ts.cl is NULL coming into gfc_conv_function_call.  I
suspect reshape is not getting resolved correctly.


-- 


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



[Bug fortran/31817] New: Give at least a warning for specification function without explicit interface

2007-05-04 Thread burnus at gcc dot gnu dot org
"A function is a specification function if it is a pure function, is not a
standard intrinsic function, is not an internal function, is not a statement
function, and does not have a dummy procedure argument."

This is true for "fn" in:

  function f2 (fn, i)
integer :: i, fn
character (len = fn (i)) :: f2

Other compilers give an error as "fn" has no explicit interface (with "PURE").
gfortran simply accepts this statement function. It should at least spit out a
warning.

$ ifort gfortran.dg/char_result_7.f90
fortcom: Error: gfortran.dg/char_result_7.f90, line 36: An explicit interface
is required for a specification function.   [FN]

$ NAG f95  gfortran.dg/char_result_7.f90
Error: gfortran.dg/char_result_7.f90, line 36: Reference to non-specification
function FN in specification expression

$ g95  gfortran.dg/char_result_7.f90 [...]
Error: Specification function 'fn' at (1) must be PURE


-- 
   Summary: Give at least a warning for specification function
without explicit interface
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: diagnostic
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: burnus at gcc dot gnu dot org


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



[Bug fortran/31197] [4.3/4.2 regression^2] TRANSPOSE/RESHAPE and strings

2007-05-04 Thread fxcoudert at gcc dot gnu dot org


--- Comment #6 from fxcoudert at gcc dot gnu dot org  2007-05-04 17:29 
---
(In reply to comment #5)
> Segafult is because sym->ts.cl is NULL coming into gfc_conv_function_call.  I
> suspect reshape is not getting resolved correctly.

I've given this one a look this afternoon, and I couldn't see where the problem
is when resolving reshape. It is in fact more general, since TRANSPOSE also has
this issue, and I think other transformational intrinsics would behave the
same:

  type data
character(len=1) :: a
  end type
  type(data), target :: z(1,1)
  z(:,:)%a = "1"
  write(*,*) transpose(z(:,:)%a(:))
  write(*,*) transpose(z(:,:)%a(1:1))
end

That being said, I don't have the slightest idea where the charlen should be
set. (In the above code, the first TRANSPOSE line works fine: where is that
charlen set?)


-- 


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



[Bug fortran/31720] [4.1/4.2 only] ICE for module function returning automatic array

2007-05-04 Thread terry at chem dot gu dot se


--- Comment #3 from terry at chem dot gu dot se  2007-05-04 17:46 ---
While being a reasonably uncommon case, AFAICT it's a legal construct.  That
is: not invalid code.


-- 


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



[Bug fortran/31720] [4.1/4.2 only] ICE for module function returning automatic array

2007-05-04 Thread terry at chem dot gu dot se


--- Comment #4 from terry at chem dot gu dot se  2007-05-04 17:50 ---
(I guess I should qualify that.  I don't have a copy of the standard laying
around to check, but it's legal according to the Ellis, Philips and Lahey
book.)


-- 


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



[Bug fortran/31197] [4.3/4.2 regression^2] TRANSPOSE/RESHAPE and strings

2007-05-04 Thread jvdelisle at gcc dot gnu dot org


--- Comment #7 from jvdelisle at gcc dot gnu dot org  2007-05-04 17:51 
---
The problem is transpose related. In gfc_conv_intrinsic_funcall we pull in the
symbol with gfc_get_symbol_for_expr and then do nothing with it before calling
gfc_conv_function_call.  The symbol type is BT_UNKNOWN and the name is
_gfortran_transpose_char.  cl is not set, so at this point I think we look at
where that symbol is first generated in simplyfy.c or intrinsic.c.  I will have
to grep for it later.


-- 


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



[Bug fortran/31818] New: Wrongly accepts namelists with assumed-sized arrays

2007-05-04 Thread burnus at gcc dot gnu dot org
subroutine test(cha)
  implicit none
  character(len=10) :: cha(:)
  namelist /z/  cha
end subroutine test

See also:
  gfortran.dg/namelist_14.f90

This is invalid:
"5.4 NAMELIST statement"
"C574 (R553) A namelist-group-object shall not be an assumed-size array."

Other compilers reject this:

ifort:  A NAMELIST group object must not be an array with nonconstant bounds.
[CHA]
g95:  Variable 'cha' at (1) must have an explicit shape to be in a NAMELIST
NAG f95: Namelist-group-object CHA is an array dummy with non-constant bounds


-- 
   Summary: Wrongly accepts namelists with assumed-sized arrays
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: accepts-invalid
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: burnus at gcc dot gnu dot org


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



[Bug fortran/31820] New: Warning if case label value exceeds maximum value for type

2007-05-04 Thread burnus at gcc dot gnu dot org
integer(kind=1) i  ! kind = 1, -128 <= i < 127
select case (i)
case (200) ! kind = 4, unreachable because of range of i

Taken from gfortran.dg/select_5.f90.

This is valid, but one should print a warning. One may also print an error
since having such a case label does not make sense.

NAG f95:  warning: case label value exceeds maximum value for type

g95: Error: Integer overflow in CASE statement at (1)

ifort:  Error: select_5.f90, line 11: The case-value is out-of-range.


-- 
   Summary: Warning if case label value exceeds maximum value for
type
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: diagnostic
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: burnus at gcc dot gnu dot org


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



[Bug fortran/31720] [4.1/4.2 only] ICE for module function returning automatic array

2007-05-04 Thread kargl at gcc dot gnu dot org


--- Comment #5 from kargl at gcc dot gnu dot org  2007-05-04 18:14 ---
(In reply to comment #4)
> (I guess I should qualify that.  I don't have a copy of the standard laying
> around to check, but it's legal according to the Ellis, Philips and Lahey
> book.)
> 

It is not valid code.  The variable i is being used without it being set
to some value, ie., i is undefined.


-- 


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



[Bug fortran/31720] [4.1/4.2 only] ICE for module function returning automatic array

2007-05-04 Thread terry at chem dot gu dot se


--- Comment #6 from terry at chem dot gu dot se  2007-05-04 18:35 ---
Created an attachment (id=13507)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13507&action=view)
Revised acmod.f90


-- 


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



[Bug fortran/31720] [4.1/4.2 only] ICE for module function returning automatic array

2007-05-04 Thread terry at chem dot gu dot se


--- Comment #7 from terry at chem dot gu dot se  2007-05-04 18:35 ---
Created an attachment (id=13508)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13508&action=view)
Revised nnh.f90


-- 


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



[Bug fortran/31720] [4.1/4.2 only] ICE for module function returning automatic array

2007-05-04 Thread terry at chem dot gu dot se


--- Comment #8 from terry at chem dot gu dot se  2007-05-04 18:37 ---
(In reply to comment #5)
> (In reply to comment #4)
> > (I guess I should qualify that.  I don't have a copy of the standard laying
> > around to check, but it's legal according to the Ellis, Philips and Lahey
> > book.)
> > 
> 
> It is not valid code.  The variable i is being used without it being set
> to some value, ie., i is undefined.


Well, obviously.  Also obviously in the code in which I discovered the bug the
dimensioning variable was set.

Attached are revised codes that are 100% legal, give no warnings or errors with
either g95 or ifort, pass Lahey's online standards conformance test and still
produce the ICE with gfortran 4.2.

Interestingly, if i is defined in nnh.f90 before the call to f the ICE goes
away.

Thus, while it may not effect the WONTFIX, I'm changing the keyword to
ice-on-valid-code.

(OK, that's the end of my "I know Fortran!" rant! ;-)


-- 

terry at chem dot gu dot se changed:

   What|Removed |Added

   Keywords|ice-on-invalid-code |ice-on-valid-code


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



[Bug target/22539] Internal compiler error with maximum sized array

2007-05-04 Thread dfranke at gcc dot gnu dot org


--- Comment #3 from dfranke at gcc dot gnu dot org  2007-05-04 19:02 ---
Subject: Bug 22539

Author: dfranke
Date: Fri May  4 18:02:18 2007
New Revision: 124437

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=124437
Log:
gcc/fortran:
2007-05-04  Daniel Franke  <[EMAIL PROTECTED]>

PR fortran/22539
* intrinsic.c (add_subroutines): Added FSEEK.
* intrinsic.h (gfc_resolve_fseek_sub, gfc_check_fseek_sub): New.
* iresolve.c (gfc_resolve_fseek_sub): New.
* check.c (gfc_check_fseek_sub): New.
* intrinsic.texi (FSEEK): Updated.

gcc/testsuite:
2007-05-01  Daniel Franke  <[EMAIL PROTECTED]>

PR fortran/22539
* gfortran.dg/fseek.f90: New test.

libgfortran:
2007-05-04  Daniel Franke  <[EMAIL PROTECTED]>

PR fortran/22539
* io/intrinsics.c (fseek_sub): New.
* io/unix.c (fd_fseek): Change logical and physical offsets only
if seek succeeds.
* gfortran.map (fseek_sub): New.


Added:
trunk/gcc/testsuite/gfortran.dg/fseek.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/check.c
trunk/gcc/fortran/intrinsic.c
trunk/gcc/fortran/intrinsic.h
trunk/gcc/fortran/intrinsic.texi
trunk/gcc/fortran/iresolve.c
trunk/gcc/testsuite/ChangeLog
trunk/libgfortran/ChangeLog
trunk/libgfortran/gfortran.map
trunk/libgfortran/io/intrinsics.c
trunk/libgfortran/io/unix.c


-- 


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



[Bug fortran/22359] [4.1/4.2 regression] fseek intrinsic not implemented

2007-05-04 Thread dfranke at gcc dot gnu dot org


--- Comment #2 from dfranke at gcc dot gnu dot org  2007-05-04 19:34 ---
Fixed in trunk. 
Due to a typo in the PR number, the commit message went to PR22539. 
Sorry for that :(

As it is a regression wrt g77, this patch probably needs to be backported to
4.1/4.2. Unassigning myself for now.


-- 

dfranke at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|dfranke at gcc dot gnu dot  |unassigned at gcc dot gnu
   |org |dot org
 Status|ASSIGNED|NEW
  Known to fail|4.1.2 4.2.0 4.3.0   |4.1.2 4.2.0
  Known to work||4.3.0
Summary|fseek intrinsic appears to  |[4.1/4.2 regression] fseek
   |be unimplemented|intrinsic not implemented
   Target Milestone|--- |4.3.0


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



[Bug fortran/22359] fseek intrinsic not implemented

2007-05-04 Thread pinskia at gcc dot gnu dot org


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

Summary|[4.1/4.2 regression] fseek  |fseek intrinsic not
   |intrinsic not implemented   |implemented
   Target Milestone|4.3.0   |---


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



[Bug libgcj/31659] config-int.h:327:1: error: "INT8_MIN" redefined

2007-05-04 Thread ebotcazou at gcc dot gnu dot org


--- Comment #6 from ebotcazou at gcc dot gnu dot org  2007-05-04 19:58 
---
The same happens on Solaris up to and including release 9.


-- 

ebotcazou at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||ebotcazou at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-05-04 19:58:44
   date||


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



[Bug fortran/31821] New: character pointer => target(range) should detect if lengths don't match

2007-05-04 Thread burnus at gcc dot gnu dot org
character (len=4), s1
  character (len=20), pointer :: p1
  s1 = 'abcd'
  p1 => s1(2:3)

should be rejected at compile time as len(s1(2:3)) == 2 but p1 has the length
20.

This is not detected because primary.c's match_varspec contains:

if (substring)
primary->ts.cl = NULL;

If one removes this check, the proper error:
   Error: Different character lengths in pointer assignment at (1)
is shown. The solution is to resolve ts.cl->length for substrings if possible
and only set it to NULL if it is not known at compile time.


-- 
   Summary: character pointer => target(range) should detect if
lengths don't match
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: accepts-invalid
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: burnus at gcc dot gnu dot org


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



[Bug fortran/31822] New: Missing run-time bound checks for character pointer => target

2007-05-04 Thread burnus at gcc dot gnu dot org
Test case. The comments show what NAG f95 -C=all prints at run time.

program ptr
  implicit none
  character(len=10), target :: s1
  character(len=5), pointer :: p1
  integer, volatile :: i
  i = 8
! Unequal character lengths (5 and 8) in pointer assignment
  p1 => s1(1:i)
  call bar(s1)
contains
  subroutine bar(s)
character(len=*),target  :: s
character(len=17),pointer :: p
! Unequal character lengths (17 and 10) in pointer assignment
p => s
  end subroutine bar
end program ptr


-- 
   Summary: Missing run-time bound checks for character pointer =>
target
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: diagnostic
  Severity: enhancement
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: burnus at gcc dot gnu dot org
OtherBugsDependingO 27766
 nThis:


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



[Bug libgomp/28482] Cannot use libgomp in shared library

2007-05-04 Thread jakub at gcc dot gnu dot org


--- Comment #3 from jakub at gcc dot gnu dot org  2007-05-04 20:21 ---
Subject: Bug 28482

Author: jakub
Date: Fri May  4 19:21:18 2007
New Revision: 124445

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=124445
Log:
PR libgomp/28482
* configure.tgt: Don't link with -Wl,-z,nodlopen even on Linux.

Modified:
trunk/libgomp/ChangeLog
trunk/libgomp/configure.tgt


-- 


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



[Bug libfortran/31760] missing elemental applicability

2007-05-04 Thread dfranke at gcc dot gnu dot org


--- Comment #5 from dfranke at gcc dot gnu dot org  2007-05-04 20:24 ---
Subject: Bug 31760

Author: dfranke
Date: Fri May  4 19:24:43 2007
New Revision: 124446

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=124446
Log:
gcc/fortran:
2007-05-04  Daniel Franke  <[EMAIL PROTECTED]>

PR fortran/31760
* intrinsic.c (add_functions): Replaced calls to gfc_check_g77_math1
by gfc_check_fn_r to avoid checks for scalarity.
* check.c (gfc_check_besn): Removed check for scalarity.
(gfc_check_g77_math1): Removed.
* intrinsic.h (gfc_check_g77_math1): Removed.

gcc/testsuite:
2007-05-04  Daniel Franke  <[EMAIL PROTECTED]>

PR fortran/31760
* gfortran.dg/erf.f90: New test.
* gfortran.dg/besxy.f90: New test.


[gcc/fortran/ChangeLog was already committed in r124441 by accident]

Added:
trunk/gcc/testsuite/gfortran.dg/besxy.f90
trunk/gcc/testsuite/gfortran.dg/erf.f90
Modified:
trunk/gcc/fortran/check.c
trunk/gcc/fortran/intrinsic.c
trunk/gcc/fortran/intrinsic.h
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug libfortran/31760] missing elemental applicability

2007-05-04 Thread dfranke at gcc dot gnu dot org


--- Comment #6 from dfranke at gcc dot gnu dot org  2007-05-04 20:29 ---
Fixed in trunk. Closing.


-- 

dfranke at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to fail||4.1.2 4.2.0
  Known to work||4.3.0
 Resolution||FIXED
   Target Milestone|--- |4.3.0


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



[Bug fortran/31197] [4.3/4.2 regression^2] TRANSPOSE/RESHAPE and strings

2007-05-04 Thread jvdelisle at gcc dot gnu dot org


--- Comment #8 from jvdelisle at gcc dot gnu dot org  2007-05-04 20:39 
---
I have been chasing this around a bit, clear into decl.c and matchexp.c 
Nowhere does cl get set.  I wonder if there is a separate code path taken when
A is defined as a component of a derived type.  Stating the obvious, we are
missing something here.


-- 


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



[Bug fortran/31821] character pointer => target(range) should detect if lengths don't match

2007-05-04 Thread jvdelisle at gcc dot gnu dot org


--- Comment #1 from jvdelisle at gcc dot gnu dot org  2007-05-04 20:43 
---
This looks suspiciously like the problem we are hunting down in pr31197.  Can
you have a look and see if its related, if not the same bug?


-- 


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



[Bug fortran/31627] -bounds-check doesn't check lower bound of assumed-sized array

2007-05-04 Thread fxcoudert at gcc dot gnu dot org


--- Comment #1 from fxcoudert at gcc dot gnu dot org  2007-05-04 21:32 
---
Created an attachment (id=13509)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13509&action=view)
Tentative patch for this bug

Not yet fully tested, nor regtested, but it should do the deed.


-- 


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



[Bug libgcj/31659] config-int.h:327:1: error: "INT8_MIN" redefined

2007-05-04 Thread andreast at gcc dot gnu dot org


--- Comment #7 from andreast at gcc dot gnu dot org  2007-05-04 22:06 
---
builds here too: sparc-sun-solaris2.8, multilib, native 32-bit.
Tests are failing due to boehm-gc stuff:
sp out of bounds

and compilation complains about:
/export/data/devel-test/gcc-svn/trunk/libjava/classpath/tools/gnu/classpath/tools/jar/Messages.java:64:
warning: visibility attribute not supported in this configuration; ignored


-- 


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



[Bug fortran/31823] New: [4.2 regression] COMPLEX not documented

2007-05-04 Thread brooks at gcc dot gnu dot org
The COMPLEX intrinsic is not documented in 4.2.


-- 
   Summary: [4.2 regression] COMPLEX not documented
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: brooks at gcc dot gnu dot org


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



[Bug fortran/31823] [4.2 regression] COMPLEX not documented

2007-05-04 Thread brooks at gcc dot gnu dot org


--- Comment #1 from brooks at gcc dot gnu dot org  2007-05-04 22:11 ---
Created an attachment (id=13510)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13510&action=view)
Documentation patch for COMPLEX


-- 

brooks at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |brooks at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED


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



[Bug fortran/31821] character pointer => target(range) should detect if lengths don't match

2007-05-04 Thread burnus at gcc dot gnu dot org


--- Comment #2 from burnus at gcc dot gnu dot org  2007-05-04 22:14 ---
See also: http://gcc.gnu.org/ml/fortran/2007-05/msg00072.html

One also needs a run-time test for:

character (len=4), target :: s1
character (len=2), pointer :: p1
s1 = 'abcd'
p1 => s1(1:2)
if(s1 /= 'abcd') call abort()
if(p1 /= 'ab')   call abort()
  end

There might be already such a check, though.


-- 


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



[Bug fortran/31725] substring bound evaluated multiple times: wrong code for string(function():) = 'X'

2007-05-04 Thread fxcoudert at gcc dot gnu dot org


--- Comment #5 from fxcoudert at gcc dot gnu dot org  2007-05-04 22:15 
---
Here's a patch that avoids multiple evaluation of substring start and end
indices. It was tested on the testcase, also by changing the (start:) range
into a (:end) range, and also by using -fbounds-check (which evaluated the
start and end indices a few other times). It's not fully regtested yet, though.



Index: trans-expr.c
===
--- trans-expr.c(revision 124285)
+++ trans-expr.c(working copy)
@@ -261,6 +261,9 @@ gfc_conv_substring (gfc_se * se, gfc_ref
 gfc_conv_string_parameter (se);
   else
 {
+  /* Avoid multiple evaluation of substring start.  */
+  start.expr = gfc_evaluate_now (start.expr, &se->pre);
+
   /* Change the start of the string.  */
   if (TYPE_STRING_FLAG (TREE_TYPE (se->expr)))
tmp = se->expr;
@@ -279,6 +282,8 @@ gfc_conv_substring (gfc_se * se, gfc_ref
   gfc_conv_expr_type (&end, ref->u.ss.end, gfc_charlen_type_node);
   gfc_add_block_to_block (&se->pre, &end.pre);
 }
+  end.expr = gfc_evaluate_now (end.expr, &se->pre);
+
   if (flag_bounds_check)
 {
   tree nonempty = fold_build2 (LE_EXPR, boolean_type_node,


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |fxcoudert at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Keywords||patch
   Last reconfirmed|2007-04-27 18:59:17 |2007-05-04 22:15:38
   date||


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



[Bug ada/31824] New: Code generation problem with gnat-4.1.2

2007-05-04 Thread theorizer at freemail dot hu
I've realized a strange code generation behavior I cannot explain and I think
to be a bug. It's merely about that a function calls to another one with a
parameter read from a constant array. The constant array superfluously gets
copied onto the stack.

I've attached the test code with one can reproduce the problem. Compile it with
command:

gnatmake -c -s bug.adb (copying "manually" byte for byte)
gnatmake -c -Os -s bug.adb (copying by calling to memcpy)

with objdump -D bug.o you can check the result.


-- 
   Summary: Code generation problem with gnat-4.1.2
   Product: gcc
   Version: 4.1.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: ada
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: theorizer at freemail dot hu
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


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



[Bug ada/31824] Code generation problem with gnat-4.1.2

2007-05-04 Thread theorizer at freemail dot hu


--- Comment #1 from theorizer at freemail dot hu  2007-05-04 22:20 ---
Created an attachment (id=13511)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13511&action=view)
the code snippet for reproducing the problem


-- 


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



[Bug fortran/31197] [4.3/4.2 regression^2] TRANSPOSE/RESHAPE and strings

2007-05-04 Thread burnus at gcc dot gnu dot org


--- Comment #9 from burnus at gcc dot gnu dot org  2007-05-04 22:29 ---
If ts.cl->length is set to one, the test case of comment 6 works; see also
http://gcc.gnu.org/ml/fortran/2007-05/msg00072.html which contains a bogus
patch which fixes this.

As that patch messes around with length, the test case of comment 0 fails. (The
"res" variable contains "1" instead of "22", i.e. the value of
a(1:1) instead of a(2:2) is used.)


-- 


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



[Bug c++/31825] New: bug in g++ a.out for stl::map

2007-05-04 Thread lbana at hotmail dot com
# gcc -v
Reading specs from /usr/local/lib/gcc/i686-pc-linux-gnu/3.4.4/specs
Configured with: ./configure
Thread model: posix
gcc version 3.4.4


I have compiled a simple test program in C++ using stl::map. 

#g++ -DDOESNT_WORK test.cpp
#./a.out
Added value
TYpe=0name = varnum0value =199
Added value
TYpe=1name = varnum1value =200
Added value
TYpe=2name = varnum2value =201
Added value
TYpe=3name = varnum3value =202
Added value
TYpe=4name = varnum4value =203
Added value
TYpe=5name = varnum5value =204
Added value
TYpe=6name = varnum6value =205
Added value
TYpe=7name = varnum7value =206
Added value
TYpe=8name = varnum8value =207
Added value
TYpe=9name = varnum9value =208
Size = 1
Type = 0Name = varnum0value= 199

#g++ -DTHIS_WORKS test.cpp
# ./a.out
Added value
TYpe=0name = varnum0value =199
Added value
TYpe=1name = varnum1value =199
Added value
TYpe=2name = varnum2value =100
Added value
TYpe=3name = varnum3value =100
Added value
TYpe=4name = varnum4value =100
Added value
TYpe=5name = varnum5value =100
Added value
TYpe=6name = varnum6value =100
Size = 7
Type = 0Name = varnum0value= 199
Type = 1Name = varnum1value= 199
Type = 2Name = varnum2value= 100
Type = 3Name = varnum3value= 100
Type = 4Name = varnum4value= 100
Type = 5Name = varnum5value= 100
Type = 6Name = varnum6value= 100

File : test.cpp
#include "uv_type.h"

int main(const int argc, const char **argv)
{
UserVariable uv;
char name[10];
char var[20];

#if defined (DOESNT_WORK)
for (int i = 0; i < 10; i++)
{
sprintf(name, "varnum%d", i);
sprintf(var, "%d", i + 199);

uv.AddUserVar(i, name, var);
}
#endif
#if defined (THIS_WORKS)
uv.AddUserVar(0, "varnum0", "199");
uv.AddUserVar(1, "varnum1", "199");
uv.AddUserVar(2, "varnum2", "100");
uv.AddUserVar(3, "varnum3", "100");
uv.AddUserVar(4, "varnum4", "100");
uv.AddUserVar(5, "varnum5", "100");
uv.AddUserVar(6, "varnum6", "100");
#endif
uv.Print();
return 0;
}

file: uv_type.h
#ifndef UV_TYPE_H
#define UV_TYPE_H

#include 
#include 

typedef struct
{
int  type;
char name[40];
char data[80];
}
UserVar;

typedef std::mapUVTable;
typedef UVTable::value_type UVEntry;

class UserVariable
{
public:
UserVariable() {}
~UserVariable() {}
int AddUserVar(int type, char *name, char *value)
{
UserVar var;
int ret = 0;
UVTable::iterator iter;

var.type = type;
if (strlen(name) < 40)
{
strcpy(var.name, name);
}
else
{
return 1;
}

if (strlen(value) < 80)
{
strcpy(var.data, value);
}
else
{
return 1;
}

UVEntry entry(name, var);

tbl.insert(UVEntry(name, var));
std::cout << "Added value" << std::endl;
std::cout << "TYpe=" << type << "name = "<< name << "value ="
  << value << std::endl;

return 0;
}

int DelUserVar(int type, char *name)
{
}

void Print()
{
UVTable::iterator iter;

std::cout << "Size = " << tbl.size() << std::endl;

for (iter = tbl.begin(); iter != tbl.end(); iter++)
{
UserVar &var = iter->second;
std::cout << "Type = " << var.type
  << "Name = " << var.name
  << "value= " << var.data << std::endl;
}
}
protected:
UVTable tbl;
};

#endif


-- 
   Summary: bug in g++ a.out for stl::map
   Product: gcc
   Version: 3.4.4
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: lbana at hotmail dot com
  GCC host triplet: Linux 2.6.19-1.2911.6.5.fc6 #1 SMP i686 i686 i386
GNU/Linux


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



[Bug libstdc++/31825] bug in g++ a.out for stl::map

2007-05-04 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2007-05-04 23:05 ---
I don't think this is a bug as you changing the key from underneath of
std::map.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

  Component|c++ |libstdc++


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



[Bug libgcj/31659] config-int.h:327:1: error: "INT8_MIN" redefined

2007-05-04 Thread dave at hiauly1 dot hia dot nrc dot ca


--- Comment #8 from dave at hiauly1 dot hia dot nrc dot ca  2007-05-04 
23:10 ---
Subject: Re:  config-int.h:327:1: error: "INT8_MIN" redefined

> and compilation complains about:
> /export/data/devel-test/gcc-svn/trunk/libjava/classpath/tools/gnu/classpath/tools/jar/Messages.java:64:
> warning: visibility attribute not supported in this configuration; ignored

I also see lots of these on hppa*-hp-hpux11*.

Dave


-- 


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



[Bug libstdc++/31826] New: Invalid read of size 1

2007-05-04 Thread shw_mail at wp dot pl
Dears

Valgrind reports me something shown below.

==1193== Invalid read of size 1
==1193==at 0x4023694: strcpy (in
/usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)
==1193==by 0x41D8837: (below main) (in /lib/libc-2.5.so)
==1193==  Address 0x42F1455 is 13 bytes inside a block of size 15 free'd
==1193==at 0x4020FEC: operator delete(void*) (in
/usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)
==1193==by 0x413EDDC: std::string::_Rep::_M_destroy(std::allocator
const&) (in /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/libstdc++.so.6.0.8)

Regards.


-- 
   Summary: Invalid read of size 1
   Product: gcc
   Version: 4.1.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: shw_mail at wp dot pl


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



[Bug libffi/31574] FAIL: libffi.call/cls_6byte.c -O3 output pattern test

2007-05-04 Thread danglin at gcc dot gnu dot org


--- Comment #1 from danglin at gcc dot gnu dot org  2007-05-04 23:43 ---
This test is no longer failing.  I believe that the problem was fixed
by this change:
http://gcc.gnu.org/ml/gcc-patches/2007-04/msg02036.html


-- 

danglin at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug middle-end/31493] FAIL: gcc.c-torture/execute/991118-1.c execution at -Os and -O3

2007-05-04 Thread danglin at gcc dot gnu dot org


--- Comment #4 from danglin at gcc dot gnu dot org  2007-05-04 23:46 ---
This test is no longer failing.  I believe that this problem was
fixed by this change:
http://gcc.gnu.org/ml/gcc-patches/2007-04/msg02036.html


-- 

danglin at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug middle-end/31492] FAIL: gcc.c-torture/execute/20040709-2.c execution at -O1 and above

2007-05-04 Thread danglin at gcc dot gnu dot org


--- Comment #3 from danglin at gcc dot gnu dot org  2007-05-04 23:48 ---
This test is no longer failing.  I believe that the problem was fixed
by this change:
http://gcc.gnu.org/ml/gcc-patches/2007-04/msg02036.html


-- 

danglin at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug testsuite/31168] FAIL: g++.dg/eh/ia64-2.C (test for excess errors)

2007-05-04 Thread danglin at gcc dot gnu dot org


--- Comment #1 from danglin at gcc dot gnu dot org  2007-05-04 23:53 ---


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


-- 

danglin at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug testsuite/30459] FAIL: g++.dg/eh/ia64-2.C (test for excess errors)

2007-05-04 Thread danglin at gcc dot gnu dot org


--- Comment #1 from danglin at gcc dot gnu dot org  2007-05-04 23:53 ---
*** Bug 31168 has been marked as a duplicate of this bug. ***


-- 


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



[Bug other/31827] New: limits-exprparen.c: Pid 2297 received a SIGSEGV for stack growth failure

2007-05-04 Thread danglin at gcc dot gnu dot org
Executing on host: /test/gnu/gcc/objdir/gcc/xgcc -B/test/gnu/gcc/objdir/gcc/  
-
O0  -w -fno-show-column -c  -o limits-exprparen.o
/test/gnu/gcc/gcc/gcc/testsuit
e/gcc.c-torture/compile/limits-exprparen.c(timeout = 300)
^M
Pid 2297 received a SIGSEGV for stack growth failure.^M
Possble causes: insufficient memory or swap space,^M
or stack size exceeded maxssiz. ^M
xgcc: Internal error: Segmentation fault (program cc1)

Fails at all optimizations.

-bash-2.05b$ ./xgcc -B./ -v
Reading specs from ./specs
Target: hppa64-hp-hpux11.11
Configured with: ../gcc/configure --with-gnu-as --with-as=/opt/gnu64/bin/as
--with-ld=/usr/ccs/bin/ld --enable-shared --disable-nls
--with-local-prefix=/opt/gnu64 --prefix=/opt/gnu64/gcc/gcc-4.3.0
--host=hppa64-hp-hpux11.11 --enable-threads=posix --disable-libmudflap
--with-gmp=/opt/gnu64/gcc/gcc-4.3.0
--enable-languages=c,c++,fortran,objc,obj-c++,java
Thread model: posix
gcc version 4.3.0 20070503 (experimental)


-- 
   Summary: limits-exprparen.c: Pid 2297 received a SIGSEGV for
stack growth failure
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: other
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: danglin at gcc dot gnu dot org
 GCC build triplet: hppa64-hp-hpux11.11
  GCC host triplet: hppa64-hp-hpux11.11
GCC target triplet: hppa64-hp-hpux11.11


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



[Bug testsuite/31828] New: FAIL: gcc.dg/float-range-[3-5].c (test for excess errors)

2007-05-04 Thread danglin at gcc dot gnu dot org
FAIL: gcc.dg/float-range-3.c (test for excess errors)
Excess errors:
/test/gnu/gcc/gcc/gcc/testsuite/gcc.dg/float-range-3.c:10: error: 'FP_INFINITE'
undeclared (first use in this function)
/test/gnu/gcc/gcc/gcc/testsuite/gcc.dg/float-range-3.c:10: error: (Each
undeclar
ed identifier is reported only once
/test/gnu/gcc/gcc/gcc/testsuite/gcc.dg/float-range-3.c:10: error: for each
funct
ion it appears in.)


-- 
   Summary: FAIL: gcc.dg/float-range-[3-5].c (test for excess
errors)
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: testsuite
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: danglin at gcc dot gnu dot org
 GCC build triplet: hppa64-hp-hpux11.11
  GCC host triplet: hppa64-hp-hpux11.11
GCC target triplet: hppa64-hp-hpux11.11


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



[Bug libstdc++/31825] bug in g++ a.out for stl::map

2007-05-04 Thread pcarlini at suse dot de


--- Comment #2 from pcarlini at suse dot de  2007-05-05 00:11 ---
You are only passing around a pointer to name and not allocating memory for the
various "C" strings, instead overwriting each time in the loop the same char
array. Well, there are also other problems in the code, like not passing to
std::map as third template argument an appropriate comparison object:

struct ltstr
{
  bool operator()(const char* s1, const char* s2) const
  {
return std::strcmp(s1, s2) < 0;
  }
};

I would suggest always using std::string, instead of "C" strings, at least
while you are still learning std::map.


-- 

pcarlini at suse dot de changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug libstdc++/31826] Invalid read of size 1

2007-05-04 Thread pcarlini at suse dot de


--- Comment #1 from pcarlini at suse dot de  2007-05-05 00:12 ---
We need self-contained, minimal code, before taking any further action. Thanks.


-- 

pcarlini at suse dot de changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING


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



[Bug c++/31829] New: FAIL: g++.dg/warn/multiple-overflow-warn-3.C (test for warnings, line 8)

2007-05-04 Thread danglin at gcc dot gnu dot org
Executing on host: /test/gnu/gcc/objdir/gcc/testsuite/g++/../../g++
-B/test/gnu/
gcc/objdir/gcc/testsuite/g++/../../
/test/gnu/gcc/gcc/gcc/testsuite/g++.dg/warn/
multiple-overflow-warn-3.C  -nostdinc++
-I/test/gnu/gcc/objdir/hppa64-hp-hpux11.
11/libstdc++-v3/include/hppa64-hp-hpux11.11
-I/test/gnu/gcc/objdir/hppa64-hp-hpu
x11.11/libstdc++-v3/include -I/test/gnu/gcc/gcc/libstdc++-v3/libsupc++
-I/test/g
nu/gcc/gcc/libstdc++-v3/include/backward
-I/test/gnu/gcc/gcc/libstdc++-v3/testsu
ite/util -fmessage-length=0  -Woverflow  -S  -o multiple-overflow-warn-3.s   
(t
imeout = 300)
PASS: g++.dg/warn/multiple-overflow-warn-3.C  (test for bogus messages, line 8)
FAIL: g++.dg/warn/multiple-overflow-warn-3.C  (test for warnings, line 8)
PASS: g++.dg/warn/multiple-overflow-warn-3.C (test for excess errors)


-- 
   Summary: FAIL: g++.dg/warn/multiple-overflow-warn-3.C  (test for
warnings, line 8)
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: danglin at gcc dot gnu dot org
 GCC build triplet: hppa64-hp-hpux11.11
  GCC host triplet: hppa64-hp-hpux11.11
GCC target triplet: hppa64-hp-hpux11.11


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



[Bug fortran/31823] [4.2 regression] COMPLEX not documented

2007-05-04 Thread brooks at gcc dot gnu dot org


--- Comment #2 from brooks at gcc dot gnu dot org  2007-05-05 00:29 ---
Created an attachment (id=13512)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13512&action=view)
Documentation patch (not corrupted, this time)


-- 

brooks at gcc dot gnu dot org changed:

   What|Removed |Added

  Attachment #13510|0   |1
is obsolete||


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



[Bug target/31830] New: Input parameter trashed with optimization -O when using a union and bit field

2007-05-04 Thread gmorain at gmail dot com
This occurs with a cross compilation from i386-linux to powerpc-elf.  The input
parameter in r3 gets overwritten by the return value from a function call. 
This only occurs when optimization is enabled (-O1 or higher).  This has
something to do with unions and bit fields.  A simple test case follows.

foo.c:
extern int bar1(void);
extern void bar2(int);

void foo(char x) 
{
union {
int val;
struct {
unsigned a: 8;
} f;
} u;

u.val = bar1();
u.f.a = x;
bar2(u.val);
}

Here is the assembly:

foo:
stwu 1,-16(1)
mflr 0
stw 0,20(1)
bl bar1
rlwimi 3,3,24,0,7
bl bar2
lwz 0,20(1)
mtlr 0
addi 1,1,16
blr
The input paramter to foo() is passed in r3.  r3 is not saved before calling
bar1(), and bar1() returns its value in r3, thereby overwriting the input value
of r3.  But the input value of r3 is required in the next instruction 'rlwimi
3,3,24,0,7'.

This works with gcc 3.3.1.  It also works with gcc 4.1.2 targetted for
mipsisa32-elf.  It fails with gcc 4.1.2 targetted for powerpc-elf.  My target
is an embedded system with no OS.

Here is how I build this:

$ /usr/local/trpz/trpz4.1/bin/powerpc-elf-gcc -v -save-temps -Wall -c -O -o
foo.o foo.c
Using built-in specs.
Target: powerpc-elf
Configured with: ../gcc-4.1.2/configure --prefix=/usr/local/trpz/trpz4.1
--target=powerpc-elf --enable-64-bit-bfd --disable-libssp
Thread model: single
gcc version 4.1.2

/home/gary/trpz/tools/i386-redhat-linux/trpz4.1/bin/../libexec/gcc/powerpc-elf/4.1.2/cc1
-E -quiet -v -iprefix
/home/gary/trpz/tools/i386-redhat-linux/trpz4.1/bin/../lib/gcc/powerpc-elf/4.1.2/
foo.c -Wall -O -fpch-preprocess -o foo.i
ignoring nonexistent directory
"/home/gary/trpz/tools/i386-redhat-linux/trpz4.1/bin/../lib/gcc/powerpc-elf/4.1.2/../../../../powerpc-elf/sys-include"
ignoring nonexistent directory
"/home/gary/trpz/tools/i386-redhat-linux/trpz4.1/bin/../lib/gcc/powerpc-elf/4.1.2/../../../../powerpc-elf/include"
ignoring duplicate directory
"/usr/local/trpz/trpz4.1/lib/gcc/powerpc-elf/4.1.2/include"
ignoring nonexistent directory
"/usr/local/trpz/trpz4.1/lib/gcc/powerpc-elf/4.1.2/../../../../powerpc-elf/sys-include"
ignoring nonexistent directory
"/usr/local/trpz/trpz4.1/lib/gcc/powerpc-elf/4.1.2/../../../../powerpc-elf/include"
#include "..." search starts here:
#include <...> search starts here:

/home/gary/trpz/tools/i386-redhat-linux/trpz4.1/bin/../lib/gcc/powerpc-elf/4.1.2/include
End of search list.

/home/gary/trpz/tools/i386-redhat-linux/trpz4.1/bin/../libexec/gcc/powerpc-elf/4.1.2/cc1
-fpreprocessed foo.i -quiet -dumpbase foo.c -auxbase-strip foo.o -O -Wall
-version -o foo.s
GNU C version 4.1.2 (powerpc-elf)
compiled by GNU C version 3.2 20020903 (Red Hat Linux 8.0 3.2-7).
GGC heuristics: --param ggc-min-expand=98 --param ggc-min-heapsize=129090
Compiler executable checksum: bd93f7309b7da302bc5e08433888e36b

/home/gary/trpz/tools/i386-redhat-linux/trpz4.1/bin/../lib/gcc/powerpc-elf/4.1.2/../../../../powerpc-elf/bin/as
-mppc -many -V -Qy -o foo.o foo.s
GNU assembler version 2.17 (powerpc-elf) using BFD version 2.17

My host system is:
$ uname -por
2.6.20-1.2948.fc6 i686 GNU/Linux


-- 
   Summary: Input parameter trashed with optimization -O when using
a union and bit field
   Product: gcc
   Version: 4.1.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: gmorain at gmail dot com
  GCC host triplet: i386-linux-gnu
GCC target triplet: powerpc-elf


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



[Bug target/31830] Input parameter trashed with optimization -O when using a union and bit field

2007-05-04 Thread gmorain at gmail dot com


--- Comment #1 from gmorain at gmail dot com  2007-05-05 00:47 ---
Created an attachment (id=13513)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13513&action=view)
Source that demonstrates the problem.


-- 


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



  1   2   >