--- Comment #5 from bonzini at gnu dot org 2007-03-16 09:03 ---
Subject: Bug 30125
Author: bonzini
Date: Fri Mar 16 09:03:10 2007
New Revision: 122980
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=122980
Log:
2007-03-16 Paolo Bonzini <[EMAIL PROTECTED]>
PR rtl-optimi
ICE on valid code. Might be related to PR 18769.
Taken from PR 29471 comment 5.
real(kind(0d0)) :: NaN = transfer(ishft(int(z'FFF8',8),32),0d0)
print *, NaN
end
gives:
foo.f90:1: internal compiler error: in gfc_conv_constant, at
fortran/trans-const.c:348
--
Summary: NaN t
--- Comment #18 from rguenth at gcc dot gnu dot org 2007-03-16 09:25
---
Gah, let's analyze the effect of this change. First, with
/* Refuse to operate on VARYING ranges, ranges of different kinds
and symbolic ranges. As an exception, we allow BIT_AND_EXPR
because we may
--- Comment #13 from dominiq at lps dot ens dot fr 2007-03-16 09:27 ---
> Darwin people. Or at least someone with enough knowledge of ppc asm...
Do they exist? If yes, are some living on planet earth? If yes,
how do you catch them (at least their attention!-)?
> Fixed. (The ICE, the
--- Comment #1 from burnus at gcc dot gnu dot org 2007-03-16 09:34 ---
I'm not anymore sure whether it is valid or not.
Related:
NaN = transfer(ishft(int(z'FFF8',8),32),0.0_8)
this prints duly "NaN" with NAG f95, sunf95, ifort, g95 and gfortran.
The example of comment 0 prints N
--- Comment #9 from burnus at gcc dot gnu dot org 2007-03-16 09:45 ---
> The current problem is shown in this bit of code:
> write(*,*)'NaN(8)=',real(z'FFF8',8)
> end
Note: gfortran does not support Fortran 2003 BOZ yet.
> gfortran, even with -std=f2003, claims that the
--- Comment #14 from rguenth at gcc dot gnu dot org 2007-03-16 09:50
---
Yes, it's supposed to call cexp(complex(0,x)), but now looking at the code
there
seems to be a typo:
narg = fold_build2 (COMPLEX_EXPR, ctype,
build_real (type, dconst0), arg);
--- Comment #6 from rguenth at gcc dot gnu dot org 2007-03-16 10:11 ---
Subject: Bug 31146
Author: rguenth
Date: Fri Mar 16 10:11:14 2007
New Revision: 122985
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=122985
Log:
2007-03-16 Richard Guenther <[EMAIL PROTECTED]>
PR
a.c:
/*
A \
BC
*/
Excecute a comment-preserving preprocessing:
$ gcc -E -P -C a.c
/*
A BC
C
*/
Notice the extra 'C', which is a bug.
This bug has some significance as in this particular case there is another tool
that has interest in the content of the C comment and now that tool fails.
--- Comment #5 from burnus at gcc dot gnu dot org 2007-03-16 10:57 ---
Subject: Bug 31188
Author: burnus
Date: Fri Mar 16 10:57:45 2007
New Revision: 122987
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=122987
Log:
2007-03-16 Paul Thomas <[EMAIL PROTECTED]>
Tobias
--- Comment #83 from jv244 at cam dot ac dot uk 2007-03-16 11:11 ---
I upgraded trunk, and now the code compiles again with -march=native, but
crashes as follows:
Program received signal SIGILL, Illegal instruction.
0x00afa307 in __qs_resp__resp_fit ()
objdump -d gives me
a
--- Comment #2 from bonzini at gnu dot org 2007-03-16 11:18 ---
the patch was not responsible for the regressions, and it regtested ok if i
paper over the bug in stevenb's patch. so i committed it.
--
bonzini at gnu dot org changed:
What|Removed |
--- Comment #84 from ubizjak at gmail dot com 2007-03-16 11:21 ---
(In reply to comment #83)
> I upgraded trunk, and now the code compiles again with -march=native, but
> crashes as follows:
>
> Program received signal SIGILL, Illegal instruction.
> 0x00afa307 in __qs_resp__resp
With a recent gfortran, the following compiles, but generates the wrong
results:
TYPE datatype
INTEGER :: I
END TYPE
TYPE(datatype) :: data(4)
data=(/(datatype(I),I=1,4)/)
data=RESHAPE(TRANSPOSE(RESHAPE(data,(/2,2/))),SHAPE(data))
IF (ANY(data(:)%I.NE.(/1,3,2,4/))) CALL ABORT()
END
--
With a recent gfortran, the following compiles, but generates the wrong
results:
TYPE data
CHARACTER(LEN=3) :: A
END TYPE
TYPE(data), DIMENSION(10), TARGET :: Z
CHARACTER(LEN=10) :: res
Z(:)%A="123"
write(res,'(10A1)') TRANSPOSE(RESHAPE(Z(:)%A(2:2),(/5,2/)))
IF (res.NE."22") CALL ABORT
EN
With a recent gfortran, the following compiles, but generates the wrong
results:
IF (T1(1.0,1.0) .NE. (1.0,1.0) ) CALL ABORT()
IF (T1(1.0) .NE. (1.0,0.0)) CALL ABORT()
IF (M1(1,2,3) .NE. 3) CALL ABORT()
IF (M1(1,2,A4=4) .NE. 4) CALL ABORT()
CONTAINS
COMPLEX FUNCTION T1(X,Y)
REAL :: X
REAL, OP
With a recent gfortran, the following compiles, but generates the wrong
results:
program write_write
character(len=20) :: a,b,c
write (10,"(a,t1,a,a)") "X", "ABC", "DEF"
write (10,"(a,t1,a)",advance='no') "X", "ABC"
write (10,"(a)") "DEF"
w
With a recent gfortran, the following compiles, but generates the wrong
results:
REAL,TARGET :: x
CALL s3(f(x))
CONTAINS
FUNCTION f(a)
REAL,POINTER :: f
REAL,TARGET :: a
f => a
END FUNCTION
SUBROUTINE s3(targ)
REAL,TARGET :: targ
REAL,POINTER :: p
p => targ
IF
With a recent gfortran, the following compiles, but generates the wrong
results:
integer*8 :: k=2_8**36+10
integer*4 :: j=10
logical ex,op
INQUIRE(unit=k, exist=ex,opened=op)
IF (ex) THEN
OPEN(unit=k)
INQUIRE(unit=j, opened=op)
IF (op) CA
With a recent gfortran, the following compiles, but generates the wrong
results:
! http://gcc.gnu.org/ml/fortran/2005-04/msg00139.html
real*8 :: a
integer*8 :: i1,i2
a=.4999444888487687421729788184165954589843750_8
i2=NINT(.4999444888487687421729788184165954589843750_8)
i1=
With a recent gfortran, the following compiles, but generates the wrong
results:
call s(-3)
call s(2**18)
contains
subroutine s(i)
character(LEN=I) a
IF(LEN(a).NE.MAX(0,I)) CALL ABORT()
end subroutine
end
--
Summary: wrong code generated with gfortran
Product: gcc
With a recent gfortran, the following compiles, but generates the wrong
results:
MODULE mod
INTEGER, PARAMETER :: jmin(1:10) = (/ (i, i = 1, 10) /)
CONTAINS
SUBROUTINE one
i = 99
END SUBROUTINE
SUBROUTINE two
i=0
CALL one
With a recent gfortran, the following compiles, but generates the wrong
results:
MODULE TT
TYPE data_type
INTEGER :: I=2
END TYPE data_type
INTERFACE ASSIGNMENT (=)
MODULE PROCEDURE set
END INTERFACE
CONTAINS
PURE SUBROUTINE set(x1,x2)
TYPE(data_type), INTENT(IN) :: x2
TYPE(dat
With a recent gfortran, the following compiles, but generates the wrong
results:
INTEGER, PARAMETER :: K(3)=1, J(3)=2
INTEGER :: I(1)
write(6,*) MAXLOC(K,J<1)
END
--
Summary: wrong code generated with gfortran
Product: gcc
Version: 4.3.0
Status: UNCO
With a recent gfortran, the following compiles, but generates the wrong
results:
character(len=20) :: b
! write something no advance
open(10,FILE="fort.10",POSITION="REWIND")
write(10, '(a,t1,a)',advance='no') 'XX', 'ABC'
close(10)
! append some data
open(10,FILE="fort.10",POSITION="APPEND")
w
With a recent gfortran, the following compiles, but generates the wrong
results:
SUBROUTINE S1(I,J)
character(len=I-J) :: a
IF (LEN(a)<0) CALL ABORT()
END SUBROUTINE
CALL S1(1,2)
END
--
Summary: wrong code generated with gfortran
Product: gcc
Version: 4.3.0
With a recent gfortran, the following compiles, but generates the wrong
results:
FUNCTION F() RESULT(RES)
INTEGER, POINTER :: RES
ALLOCATE(RES)
RES=2
END FUNCTION F
SUBROUTINE S1(f,*,*)
INTERFACE
FUNCTION F() RESULT(RES)
INTEGER, POINTER :: RES
END FUNCTION F
END INTERFACE
RETURN F()
With a recent gfortran, the following compiles, but generates the wrong
results:
MODULE xml_markups
LOGICAL, PRIVATE :: should_write_tags=.TRUE.
CONTAINS
FUNCTION write_xml_tag(tag) RESULT(res)
CHARACTER(LEN=*), INTENT(IN) :: tag
CHARACTER(LEN=MERGE(LEN_TRIM(tag),0,should_write_
With a recent gfortran, the following compiles, but generates the wrong
results:
MODULE T
INTERFACE cp_log
MODULE PROCEDURE cp_logger_log
END INTERFACE
TYPE cp_logger_type
INTEGER :: a
END TYPE cp_logger_type
PUBLIC :: cp_log, cp_logger_type
CONTAINS
SUBROUTINE cp_logger_l
--- Comment #5 from spop at gcc dot gnu dot org 2007-03-16 11:30 ---
Subject: Bug 31183
Author: spop
Date: Fri Mar 16 11:30:48 2007
New Revision: 122988
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=122988
Log:
PR tree-optimization/31183
* tree-loop-linear.c (ga
A recent gfortran ICEs on the following code:
CHARACTER(LEN=2), DIMENSION(:), POINTER :: a
CHARACTER(LEN=4), DIMENSION(3), TARGET :: b
b=(/"","",""/)
a=>b(:)(2:3)
a="aa"
IF (ANY(b.NE.(/"baab","baab","baab"/))) CALL ABORT()
END
--
Summary: ICE on valid code w
A recent gfortran ICEs on the following code:
module mykinds
implicit none
integer, parameter :: ik1 = selected_int_kind(2)
integer, parameter :: ik2 = selected_int_kind(4)
integer, parameter :: dp = selected_real_kind(15,300)
end module mykinds
module spec_xpr
use mykinds
impli
A recent gfortran ICEs on the following code:
module type_mod
implicit none
type x
integer x
end type x
type y
integer x
end type y
type z
integer x
end type z
interface assignment(=)
module procedure equals
end interface assignment(=)
interface operator(
A recent gfortran ICEs on the following code:
module test1
implicit none
contains
character(f(x)) function test2(x) result(r)
implicit integer (x)
dimension r(modulo(len(r)-1,3)+1)
integer, intent(in) :: x
interface
pure function f(x)
A recent gfortran ICEs on the following code:
INTEGER :: I
CHARACTER(LEN=100) :: data="1.0 3.0"
REAL :: C,D
READ(data,*) C,D
I=TRANSFER(C/D,I)
SELECT CASE(I)
CASE (TRANSFER(1.0/3.0,1))
CASE DEFAULT
CALL ABORT()
END SELECT
END
--
Summary: ICE on valid code with gfortran
Pr
A recent gfortran ICEs on the following code:
character(LEN=12) :: b="123456789012"
character(LEN=12) :: a="123456789012"
FORALL(I=3:10) a(I:I+2)=a(I-2:I)
IF (a.NE."121234567890") CALL ABORT()
END
--
Summary: ICE on valid code with gfortran
Product: gcc
Version:
A recent gfortran ICEs on the following code:
integer, parameter :: i=1
real, parameter :: k=TRANSFER(i,1.0)
integer :: j=TRANSFER(k,i)
character(LEN=2), parameter :: a="a "
real, dimension(2,2), parameter :: r=1.0
character(LEN=4) :: b=REPEAT(a,2)
real, dimension(4) :: l=RESHAPE(r,(/4/))
A recent gfortran ICEs on the following code:
INTEGER :: J
CHARACTER(LEN=8) :: str
J=3
write(str,'(2A4)') (/(F(I,J),I=1,2)/)
IF (str.NE." ODD EVE") CALL ABORT()
CONTAINS
FUNCTION F(K,J) RESULT(I)
INTEGER :: K,J
CHARACTER(LEN=J) :: I
IF (MODULO(K,2).EQ.0) THEN
I="EVEN"
ELSE
I="OD
A recent gfortran ICEs on the following code:
CHARACTER(LEN=4), POINTER :: b
CHARACTER(LEN=10) :: r
b=>F1(1,r)
b=""
b=>F1(2,r)
b=""
b=>F1(3,r)
b=""
IF (r.NE."1-") CALL ABORT()
CONTAINS
FUNCTION F1(I,r) result(b)
INTEGER :: I
CHARACTER(LEN=10), TARGET, SAVE :: a="--"
CHA
A recent gfortran ICEs on the following code:
MODULE M1
integer, parameter :: N=10
integer, parameter :: i1(N)=(/(j,j=1,N)/)
integer, parameter :: i2(N)=MODULO(i1,5)
END MODULE M1
USE M1
k=3
select case(k)
case (i2(7))
case (i1(N-1))
end select
END
--
Summary: ICE on valid code with
--- Comment #85 from jv244 at cam dot ac dot uk 2007-03-16 11:52 ---
(In reply to comment #84)
> Could you post your cpuflags? There should be lahf_lm flag present for
> opterons.
>
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
pat pse36 clflush dts a
--- Comment #86 from jv244 at cam dot ac dot uk 2007-03-16 12:07 ---
(In reply to comment #85)
> (In reply to comment #84)
>
> > Could you post your cpuflags? There should be lahf_lm flag present for
> > opterons.
sorry, the previous post was of the wrong machine... these are the corre
--- Comment #87 from ubizjak at gmail dot com 2007-03-16 12:16 ---
(In reply to comment #86)
>
> sorry, the previous post was of the wrong machine... these are the correct
> flags and no (lahf_lm):
> cpu family : 15
> model : 5
> model name : AMD Opteron(tm) Processor
Reported at
http://groups.google.com/group/comp.lang.fortran/browse_thread/thread/100b8994f011019b/
The following program is rejected with:
bar.f90:5.17:
dimension a(abs(mode)),b(int(dis))
1
Error: 'a' argument of 'abs' intrinsic at (1) must be a numeric type
bar.f90:5.30:
dime
--- Comment #88 from ubizjak at gmail dot com 2007-03-16 12:43 ---
(In reply to comment #83)
> I upgraded trunk, and now the code compiles again with -march=native, but
> crashes as follows:
>
> Program received signal SIGILL, Illegal instruction.
> 0x00afa307 in __qs_resp__resp
With a static gcj build, target=i686-pc-linux, using -findirect-dispatch to
compile a class will result in this compilation error:
/tmp/cciWx2S5.o: In function `main':ccxsXCuN.i:(.text+0x13): undefined
reference to `_Jv_Compiler_Properties'
:ccxsXCuN.i:(.text+0x30): undefined reference to `JvRunMa
--- Comment #1 from mtrudel at gmx dot ch 2007-03-16 12:57 ---
This also breaks the build when a static built GCJ is taken for the compilation
of ecj.jar (because it's compiled with -findirect-dispatch).
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31223
--- Comment #5 from dsb at boyski dot com 2007-03-16 12:58 ---
I just downloaded the latest 4.2 snapshot (gcc-4.2-20070307) and built it but
the behavior is the same. Given that the bugfix cited there dates back to
October and that it says "Known to work: 4.2.0" I assume the patch is pr
--- Comment #1 from burnus at gcc dot gnu dot org 2007-03-16 13:21 ---
Expected result:
1 3 2 4
Gfortran:
1 3 1 3
This is correctly calculated with g95, NAG f95 and sunf95.
gfortran compiles and gives the wrong result and ifort gives an ICE.
--
burnus at gcc dot gnu dot org changed:
--- Comment #1 from burnus at gcc dot gnu dot org 2007-03-16 13:25 ---
Expected:
"22"
The TRANSPOSE(RESHAPE(Z(:)%A(2:2),(/5,2/))) gives:
"22.�L+"
res contains:
"22�+2�?"
--
burnus at gcc dot gnu dot org changed:
What|Removed |
--- Comment #1 from burnus at gcc dot gnu dot org 2007-03-16 13:42 ---
The first two lines work, but the M() calls fail (SIGSEGV):
D.1257 = *a3;
if (D.1257 > M.0)
[...]
D.1258 = *a4;
That is: There is no optional check.
cmplx has one:
D.1260 = y != 0B ? *y : 0.0;
Some scripts and Makefiles used during the bootstrap process use options
provided by GNU tools (bash, test, diff) which are not supported by stock
Solaris 2.8 tools.
The errors I have encountered so far (I'm still fighting with installation)
are:
missing -a flag between two tests
use of test -
--- Comment #1 from burnus at gcc dot gnu dot org 2007-03-16 13:54 ---
Current result:
a = ABCDEFXXX
b = ABCDEF
c = ABCDEFXXX
Expected (g95/ifort):
ABCDEFXXX
ABCDEFXXX
ABCDEFXXX
(NAG f95 has:
ABCDEFXXX
ABCXXDEF
ABCDEFXXX
)
--
burnus at gcc dot gnu dot org changed:
--- Comment #1 from Luc dot Maisonobe at free dot fr 2007-03-16 13:56
---
Created an attachment (id=13213)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13213&action=view)
patch changing commands flags to ones hopefully more widely supported
This patch is neither fully tested nor
--- Comment #2 from Luc dot Maisonobe at free dot fr 2007-03-16 13:59
---
In the provided patch, I replaced a sequence of mkdir commands with a single
mkdir -p. I know the -p flag is not supported everywhere (or at least was not
supported years ago), but since this option is used elsewh
--- Comment #1 from burnus at gcc dot gnu dot org 2007-03-16 14:07 ---
The problem is:
s3(f(x))
which is translated as
{
real4 D.1254;
D.1254 = *f (&x);
s3 (&D.1254);
}
instead of
D.1254 = f(&x)
--
burnus at gcc dot gnu dot org changed:
What|Remov
--- Comment #89 from jv244 at cam dot ac dot uk 2007-03-16 14:16 ---
>
> Thanks for your reports!
>
and you for your fixes... things are back to working now.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29975
--- Comment #15 from dominiq at lps dot ens dot fr 2007-03-16 14:43 ---
> This bug was introduced by the CALL_EXPR changes:
Good catch! Can you date the bug, i.e., was it introduced between snapshots
20070216 and 20070223?
Thanks for the work. i'ld just like to see the darwin people as
--- Comment #19 from dave at hiauly1 dot hia dot nrc dot ca 2007-03-16
14:43 ---
Subject: Re: Bootstrap comparison error at revision 122821
> If the count is actually zero, we can end up doing x << 0 (a left shift of
> zero). Does hppa handle this correctly? Does it, for
The hardwa
The following valid code is rejected by gfortran: (When the lines giving
explicit type to mode and dis are uncommented, gfortran compiles it fine.)
$ cat a.f90
subroutine mysub1(a,b,mode,dis)
! integer :: mode
! real :: dis
dimension a(abs(mode)),b(int(dis))
print *, mod
write (*,*) a
--
fxcoudert at gcc dot gnu dot org changed:
What|Removed |Added
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Known t
--- Comment #1 from fxcoudert at gcc dot gnu dot org 2007-03-16 15:02
---
Reduced testcase:
$ cat a.f90
integer, parameter :: i2(1)=MODULO((/1/),5)
call foo(i2)
end
$ gfortran a.f90
a.f90: In function MAIN__:
a.f90:1: internal compiler error: in gfc_conv_array_initializer, at
--- Comment #5 from fxcoudert at gcc dot gnu dot org 2007-03-16 15:04
---
(In reply to comment #3)
Since this bug is related to PR31221, I tried your patch on the other testcase,
and it fails:
$ cat a.f90
integer, parameter :: i2(1)=MODULO((/1/),5)
call foo(i2)
end
$ gfortran a.
--- Comment #1 from fxcoudert at gcc dot gnu dot org 2007-03-16 15:05
---
*** Bug 31225 has been marked as a duplicate of this bug. ***
--
fxcoudert at gcc dot gnu dot org changed:
What|Removed |Added
--
--- Comment #1 from fxcoudert at gcc dot gnu dot org 2007-03-16 15:05
---
*** This bug has been marked as a duplicate of 31222 ***
--
fxcoudert at gcc dot gnu dot org changed:
What|Removed |Added
-
--- Comment #2 from fxcoudert at gcc dot gnu dot org 2007-03-16 15:06
---
Tobias, you beat me to it, I only got PR31225 :)
Here is the analysis I posted in my bug-report:
The following valid code is rejected by gfortran: (When the lines giving
expl
--- Comment #1 from pinskia at gcc dot gnu dot org 2007-03-16 15:12 ---
*** This bug has been marked as a duplicate of 24024 ***
--
pinskia at gcc dot gnu dot org changed:
What|Removed |Added
--
--- Comment #7 from pinskia at gcc dot gnu dot org 2007-03-16 15:12 ---
*** Bug 31195 has been marked as a duplicate of this bug. ***
--
pinskia at gcc dot gnu dot org changed:
What|Removed |Added
---
--- Comment #1 from fxcoudert at gcc dot gnu dot org 2007-03-16 15:13
---
Confirmed, but it's a duplicate of PR29396. Testcase was reduced to:
FUNCTION F1()
CHARACTER(LEN=4), TARGET, SAVE :: a=""
CHARACTER(LEN=4), POINTER :: F1
F1=>a(1:)
END FUNCTION
*** This bug has been marked a
--- Comment #3 from fxcoudert at gcc dot gnu dot org 2007-03-16 15:13
---
*** Bug 31220 has been marked as a duplicate of this bug. ***
--
fxcoudert at gcc dot gnu dot org changed:
What|Removed |Added
--
"zak at transversal dot com" <[EMAIL PROTECTED]> writes:
| The following code, which compiles fine on gcc 4.1.2 and I believe is valid,
| fails on an up-to-date checkout from the 4.2 branch:
|
| --
| class foo { };
|
| namespace
| {
| extern foo foo1;
--- Comment #2 from gdr at cs dot tamu dot edu 2007-03-16 15:15 ---
Subject: Re: New: [4.2 regression] extern declaration of variable in
anonymous namespace prevents use of its address as template argument
"zak at transversal dot com" <[EMAIL PROTECTED]> writes:
| The following code,
--- Comment #4 from fxcoudert at gcc dot gnu dot org 2007-03-16 15:15
---
Joost filed PR31220, which is a duplicate of this one, but contains an
interesting testcase (compile & run) to check and add to the testsuite when
we're done with this bug:
CHARACTER(LEN=4), POINTER :: b
CHARACTE
--- Comment #3 from pinskia at gcc dot gnu dot org 2007-03-16 15:20 ---
/bin/sh is not a POSIX shell in Solaris and GCC depends a POSIX shell.
test -ef is actually POSIX, read the man page on solaris, it will say it is not
avaible with /bin/sh.
Anyways you did not read:
http://gcc.gnu
--- Comment #17 from pluto at agmk dot net 2007-03-16 15:22 ---
Created an attachment (id=13214)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13214&action=view)
extended patch against gcc-4.2
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=7302
--- Comment #1 from fxcoudert at gcc dot gnu dot org 2007-03-16 15:23
---
Reduced testcase:
$ cat a.f90
call gee( [f(1)] )
contains
function f(k) result(i)
integer :: k
character(len=k) :: i
end function
end
$ ./bin/gfortran a.f90
a.f90:1: internal compiler error: Segmentation
--- Comment #2 from fxcoudert at gcc dot gnu dot org 2007-03-16 15:25
---
Forgot to say: the original tree dump is
f (__result, .__result, k)
{
(void) 0;
MAIN__ ()
{
static void f (char[1:] &, int4, int4 &);
_gfortran_set_std (68, 127, 0);
{
void * D.1377;
void * D.1
Hi,
The following code compiles fine in GCC 4.1.
enum E { e };
struct S {
E v:5;
};
S s;
int main() { if (!s.v) return 0; }
In 4.2 (20070307), it gives the following error:
test.cpp: In function 'int main()':
test02.cpp:6: erro
--- Comment #18 from manu at gcc dot gnu dot org 2007-03-16 15:30 ---
(In reply to comment #17)
> Created an attachment (id=13214)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13214&action=view) [edit]
> extended patch against gcc-4.2
>
Hi Pawel,
if the bug exists in mainline,
--- Comment #1 from fxcoudert at gcc dot gnu dot org 2007-03-16 15:32
---
Reduced testcase:
character(len=1) :: a="1"
forall(i=1:1) a(i:i) = a(i:i)
end
Adding Roger Sayle in the CC list, since you're our FORALL expert :)
Program received signal SIGSEGV, Segmentation fault.
integ
--- Comment #1 from fxcoudert at gcc dot gnu dot org 2007-03-16 15:37
---
All compilers I know reject this code, except g95. The list includes Lahey,
which is a reason for me to doubt whether this code is legal or not.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31215
--- Comment #19 from pluto at agmk dot net 2007-03-16 15:39 ---
(In reply to comment #18)
> The patch needs testcases,
i have a testcase but my tcl/autogen/dejagnu crashes
with magic `spawn failed' message :/
e.g.:
(...)
Executing on host:
/home/users/pluto/rpm/BUILD/gcc-4.2-20070307
--- Comment #2 from burnus at gcc dot gnu dot org 2007-03-16 15:56 ---
(In reply to comment #1)
> All compilers I know reject this code, except g95. The list includes Lahey,
> which is a reason for me to doubt whether this code is legal or not.
NAG f95 and g95 compile it and output:
21
--- Comment #20 from manu at gcc dot gnu dot org 2007-03-16 16:13 ---
(In reply to comment #19)
> (In reply to comment #18)
>
> > The patch needs testcases,
>
> i have a testcase but my tcl/autogen/dejagnu crashes
> with magic `spawn failed' message :/
>
No idea. Ask in the gcc list,
--- Comment #3 from fxcoudert at gcc dot gnu dot org 2007-03-16 16:27
---
Confirmed, this should be fixed for 4.3.0
Intel and Portland compilers use a broken mechanism. Sun gives the following
name to symbol FOO in module MOD: "mod.foo_" It seems clean to me.
--
fxcoudert at gcc do
--- Comment #2 from pault at gcc dot gnu dot org 2007-03-16 17:10 ---
(In reply to comment #1)
> real4 D.1254;
> D.1254 = *f (&x);
> s3 (&D.1254);
> }
> instead of
> D.1254 = f(&x)
Funnily enough, I have been hit by the same problem in implementing procedure
pointers.
The following program does not link:
#include
class A {
public:
static bool const volatile doit = true;
};
using namespace std;
int main()
{
if( A::doit ) cout << "doit is ";
else cout << "doit is ";
}
The link error is:
$ g++ -o mytest mytest.cc
/tmp/ccdPkdpO.o: In function `main':
--- Comment #1 from pinskia at gcc dot gnu dot org 2007-03-16 18:01 ---
You forgot to declare it, you only defined it.
Add:
bool const volatile A::doit;
to your code and it will work.
--
pinskia at gcc dot gnu dot org changed:
What|Removed |Added
typedef __SIZE_TYPE__ size_t;
extern size_t strlen (const char *);
struct iovec
{
void *iov_base;
size_t iov_len;
};
struct S
{
const char *abday[7];
const char *day[7];
const char *abmon[12];
const char *mon[12];
const char *am_pm[2];
};
extern void foo (size_t, struct iovec *);
--- Comment #2 from bangerth at dealii dot org 2007-03-16 18:18 ---
(In reply to comment #1)
> You forgot to declare it, you only defined it.
In fact the other way around: you declared (and initialized) the variable
but you forgot to give a definition (which asks the compiler to actuall
--- Comment #2 from tbm at cyrius dot com 2007-03-16 18:43 ---
Roger once mentioned that he's not receiving messages sent to his gcc account.
I'm CCing his personal one in case this is still true.
--
tbm at cyrius dot com changed:
What|Removed |Ad
Runtime.exec() could fork/exec the external process between the time a file
descriptor is opened and and when close-on-exec is set on it.
--
Summary: Race condition between setting close-on-exec and
Runtime.exec()
Product: gcc
Version: 4.2.0
GNU Fortran (GCC) 4.3.0 20070316 (experimental)
--
Summary: kind parameter in function declaration fails to find
use-associated parameters
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Keywords: rejects-valid
--- Comment #1 from jakub at gcc dot gnu dot org 2007-03-16 19:17 ---
Another testcase, this time from glibc's malloc.c:
struct malloc_chunk {
long prev_size;
long size;
struct malloc_chunk* fd;
struct malloc_chunk* bk;
};
typedef struct malloc_chunk* mchunkptr;
struct malloc_sta
--- Comment #3 from mstein at phenix dot rootshell dot be 2007-03-16 19:18
---
Revisions after 122791 no longer have the reported problem.
--
mstein at phenix dot rootshell dot be changed:
What|Removed |Added
--
--- Comment #4 from brett dot albertson at stratech dot com 2007-03-16
19:23 ---
Is this slated to be fixed before 4.2.0 comes out? Also, I think this can be
marked as confirmed.
Brett
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30222
--- Comment #1 from fxcoudert at gcc dot gnu dot org 2007-03-16 19:30
---
Exact duplicate of PR29396.
*** This bug has been marked as a duplicate of 29396 ***
--
fxcoudert at gcc dot gnu dot org changed:
What|Removed |Added
--
--- Comment #5 from fxcoudert at gcc dot gnu dot org 2007-03-16 19:30
---
*** Bug 31212 has been marked as a duplicate of this bug. ***
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29396
--- Comment #2 from jv244 at cam dot ac dot uk 2007-03-16 19:38 ---
just to keep track, patch here:
http://gcc.gnu.org/ml/gcc-patches/2007-03/msg00129.html
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30965
--- Comment #1 from fxcoudert at gcc dot gnu dot org 2007-03-16 19:42
---
Reduced testcase:
module test
implicit none
interface operator(.foo.)
module procedure b_op_a
end interface operator(.foo.)
contains
function a_op_b()
integer, intent(in) :: a, b
1 - 100 of 148 matches
Mail list logo