[Bug ada/19037] constant renaming creates new constant

2006-01-07 Thread ebotcazou at gcc dot gnu dot org


-- 

ebotcazou at gcc dot gnu dot org changed:

   What|Removed |Added

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


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




[Bug fortran/25051] NULL doesn't get its argument type (rank)

2006-01-07 Thread pinskia at gcc dot gnu dot org


--- Comment #3 from pinskia at gcc dot gnu dot org  2006-01-08 06:19 ---
Oh, my example is just PR 20858.  I think they are the same problem but I don't
know for sure.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

  BugsThisDependsOn||20858
Summary|NULL doesn't get its|NULL doesn't get its
   |argument type   |argument type (rank)


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




[Bug fortran/25051] ranks do not match in pointer assignment with NULL

2006-01-07 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2006-01-08 06:17 ---
Hmm, (I have not looked at the source yet but) I suspect we are not recording
the type of NULL so that we get a NULL without a kind.
This shows that I am more likely correct:
REAL, POINTER, DIMENSION(:,:) :: i
INTEGER, POINTER, DIMENSION(:,:) :: a
a=>NULL(i)
END


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||pinskia at gcc dot gnu dot
   ||org
Summary|ranks do not match in   |ranks do not match in
   |pointer assignment  |pointer assignment with NULL


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




[Bug fortran/23308] named common block confused as procedure - runtime segfault

2006-01-07 Thread pinskia at gcc dot gnu dot org


--- Comment #8 from pinskia at gcc dot gnu dot org  2006-01-08 06:13 ---
(In reply to comment #7)
> In fact, it regtests OK, apart from the above.

I want to say that PR 20881 is the same issue too.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

OtherBugsDependingO||20881
  nThis||


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




[Bug fortran/20877] result may not be entry

2006-01-07 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2006-01-08 06:09 ---
We should be erroring out before adding the symbol to namespace, which is not
happening.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||pinskia at gcc dot gnu dot
   ||org


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




[Bug fortran/20894] parentheses ignored

2006-01-07 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2006-01-08 06:03 ---
This looks like another case for PR 14771.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

OtherBugsDependingO||14771
  nThis||


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




[Bug fortran/19260] & not required when splitting a token in continuation

2006-01-07 Thread pinskia at gcc dot gnu dot org


--- Comment #3 from pinskia at gcc dot gnu dot org  2006-01-08 06:00 ---
(In reply to comment #2)
> Isn't this a dup of bug 19101?
No but it is related to it.


-- 


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




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

2006-01-07 Thread pinskia at gcc dot gnu dot org


--- Comment #4 from pinskia at gcc dot gnu dot org  2006-01-08 05:53 ---
Lahey's says:
  2317-S: "SOURCE.F90", line 5, column 3: Shape of arrays on left and right
sides of assignment do not conform.


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


-- 


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




[Bug fortran/20869] EXTERNAL and INTRINSIC cannot be used together

2006-01-07 Thread pinskia at gcc dot gnu dot org


--- Comment #3 from pinskia at gcc dot gnu dot org  2006-01-08 05:47 ---
Confirmed.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|REOPENED|NEW


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




[Bug fortran/20869] error needed

2006-01-07 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2006-01-08 05:44 ---
Actually this is not a dup of bug 20373.  I don't know where I got that from.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|DUPLICATE   |


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




[Bug fortran/19262] more than thirty-nine continuation lines should issue a std-warn

2006-01-07 Thread pinskia at gcc dot gnu dot org


--- Comment #4 from pinskia at gcc dot gnu dot org  2006-01-08 05:43 ---
I think in fortran 2003, the number of continuations went up, way up to around
255.  (this is based on the May 2004 draft):
A statement shall not have more than 255 continuation lines.


-- 


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




[Bug tree-optimization/19637] Missed VRP and FRE opportunities in the presence of casts

2006-01-07 Thread pinskia at gcc dot gnu dot org


--- Comment #9 from pinskia at gcc dot gnu dot org  2006-01-08 05:35 ---
(In reply to comment #8)
> Another one is the following (without any possible aliasing problems):

Actually that is still a violation of the aliasing rules, as you are acessing a
character as a Foo.  Yes that is violation, though I think GCC does not define
it as one.


-- 


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




[Bug tree-optimization/8781] Pessimization of C++ (functional) code

2006-01-07 Thread pinskia at gcc dot gnu dot org


--- Comment #19 from pinskia at gcc dot gnu dot org  2006-01-08 05:32 
---
Hmm, maybe there is really something else going on here:
  struct noop_tD.1999 D.2016;
  struct noop_tD.1999 predD.2575;


  predD.2575 = (struct noop_tD.1999) D.2016;


Hmm, why is there a cast there?  They are the same types.


-- 


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




[Bug glibc] Problem in configuring glibc

2006-01-07 Thread Sandeep Kumar
Hello everyone,


I am  trying to compile glibc2.3.5 on Red Hat 9.0(2.4.20-8) on a x86
machine with
binutilies 2.16.1 installed on it but i am are getting an error :


.
checking for stdint.h... yes
checking for unistd.h... yes
checking for long double... yes
checking size of long double... 12
running configure fragment for sysdeps/i386/elf
checking for i386 TLS support... yes
running configure fragment for nptl/sysdeps/unix/sysv/linux
running configure fragment for nptl/sysdeps/pthread
checking for forced unwind support... no
configure: error: forced unwind support is required


.


Can any body direct me how to proceed further ?




--
Regards,
Sandeep



[Bug rtl-optimization/24626] [4.1/4.2 Regression] internal compiler error: verify_flow_info failed

2006-01-07 Thread pinskia at gcc dot gnu dot org


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

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


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




[Bug rtl-optimization/24626] [4.1/4.2 Regression] internal compiler error: verify_flow_info failed

2006-01-07 Thread pinskia at gcc dot gnu dot org


--- Comment #23 from pinskia at gcc dot gnu dot org  2006-01-08 05:18 
---
I am no longer working on this bug, from what I hear it is really just to
change the check "n_branch != 1" to "n_branch > 2" but I don't know if that is
true or not.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

URL|http://gcc.gnu.org/ml/gcc-  |
   |patches/2005-   |
   |12/msg00832.html|
   Keywords|patch   |


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




[Bug fortran/25714] concat of strings create an extra temporary variable

2006-01-07 Thread pinskia at gcc dot gnu dot org


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

   Severity|normal  |enhancement


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




[Bug fortran/25714] New: concat of strings create an extra temporary variable

2006-01-07 Thread pinskia at gcc dot gnu dot org
Take:
character(2) :: c
character(1) :: a
character(1) :: b
c = a//b
end


We get:
  _gfortran_concat_string (2, str.1, 1, &a, 1, &b);
  _gfortran_copy_string (2, &c, 2, str.1);


We should be able to get:
  _gfortran_concat_string (2, &c, 1, &a, 1, &b);

Instead and get rid of the tempory variable of str.1.


-- 
   Summary: concat of strings create an extra temporary variable
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Keywords: missed-optimization
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: pinskia at gcc dot gnu dot org


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




[Bug fortran/19292] [meta-bug] g77 features lacking in gfortran

2006-01-07 Thread sgk at troutmask dot apl dot washington dot edu


--- Comment #15 from sgk at troutmask dot apl dot washington dot edu  
2006-01-08 02:43 ---
Subject: Re:  [meta-bug] g77 features lacking in gfortran

On Sun, Jan 08, 2006 at 02:30:51AM -, Tobias dot Schlueter at physik dot
uni-muenchen dot de wrote:
> 
> I find this very offensive.  As you will have noticed we have a problem report
> about this, which is not closed as "WONTFIX", and thus we're definitely not
> just calling this feature "excremental".  Also, you're saying that Paul Thomas
> (who wrote the original bug report where this wording is used) is
> unprofessional and undedicated.  The latter is easily disproved by taking a
> look at the ChangeLog.   In fact, everybody working on gfortran is doing so
> out of dedication, as noone of us is getting paid for this work, and everybody
> has access to commercial compilers.
> 
> This construct in non-standard for the reasons quoted by Steve and and so far
> the people working on gfortran have considered the importance of this bug
> second to the other bugs they were fixing.  If somebody cares enough he may
> bring forth a patch, which -- provided sufficient quality -- will be
> integrated, and we will be one step closer to a complete Fortran 66 compiler.
> 

Wow.  You took the words out of my mouth.  It took me nearly 
40 minutes to write my last reply.  Self editing of some rather
pointed comments.


-- 


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




[Bug fortran/19292] [meta-bug] g77 features lacking in gfortran

2006-01-07 Thread Tobias dot Schlueter at physik dot uni-muenchen dot de


--- Comment #14 from Tobias dot Schlueter at physik dot uni-muenchen dot de 
 2006-01-08 02:30 ---
Subject: Re:  [meta-bug] g77 features lacking in gfortran

malitzke at metronets dot com wrote:
> --- Comment #8 from malitzke at metronets dot com  2006-01-07 20:30 
> ---
> Not all of the underlying are just g77 features. Some like 18540/25705 are
> legal f90, f95, f06 code an just calling them "excremental" is unprofessional.
> This diminishes the 90% plus of dedicated people working on GCC. If something
> is clearly impoosible to continue as part of fortran then an effort to change
> the specs should be made. 

I find this very offensive.  As you will have noticed we have a problem report
about this, which is not closed as "WONTFIX", and thus we're definitely not
just calling this feature "excremental".  Also, you're saying that Paul Thomas
(who wrote the original bug report where this wording is used) is
unprofessional and undedicated.  The latter is easily disproved by taking a
look at the ChangeLog.   In fact, everybody working on gfortran is doing so
out of dedication, as noone of us is getting paid for this work, and everybody
has access to commercial compilers.

This construct in non-standard for the reasons quoted by Steve and and so far
the people working on gfortran have considered the importance of this bug
second to the other bugs they were fixing.  If somebody cares enough he may
bring forth a patch, which -- provided sufficient quality -- will be
integrated, and we will be one step closer to a complete Fortran 66 compiler.


-- 


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




[Bug fortran/24268] gfortran rejects valid format statement

2006-01-07 Thread jvdelisle at gcc dot gnu dot org


--- Comment #15 from jvdelisle at gcc dot gnu dot org  2006-01-08 02:22 
---
Fixed on 4.1 and 4.2


-- 

jvdelisle at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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




[Bug libfortran/25598] [4.1/4.2 Regression] gfortran - Fortran runtime error: Invalid argument

2006-01-07 Thread jvdelisle at gcc dot gnu dot org


--- Comment #10 from jvdelisle at gcc dot gnu dot org  2006-01-08 02:21 
---
Fixed in 4.1 and 4.2


-- 

jvdelisle at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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




[Bug libfortran/25598] [4.1/4.2 Regression] gfortran - Fortran runtime error: Invalid argument

2006-01-07 Thread jvdelisle at gcc dot gnu dot org


--- Comment #9 from jvdelisle at gcc dot gnu dot org  2006-01-08 02:17 
---
Subject: Bug 25598

Author: jvdelisle
Date: Sun Jan  8 02:17:54 2006
New Revision: 109470

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=109470
Log:
2005-01-07  Jerry DeLisle  <[EMAIL PROTECTED]>

PR fortran/25598
* gfortran.dg/backspace_3.f: New test.
* gfortran.dg/backspace_4.f: New test.

Added:
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/backspace_3.f
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/backspace_4.f
Modified:
branches/gcc-4_1-branch/gcc/testsuite/ChangeLog


-- 


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




[Bug libfortran/25598] [4.1/4.2 Regression] gfortran - Fortran runtime error: Invalid argument

2006-01-07 Thread jvdelisle at gcc dot gnu dot org


--- Comment #8 from jvdelisle at gcc dot gnu dot org  2006-01-08 02:16 
---
Subject: Bug 25598

Author: jvdelisle
Date: Sun Jan  8 02:16:11 2006
New Revision: 109469

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=109469
Log:
2006-01-07  Jerry DeLisle  <[EMAIL PROTECTED]>

PR libgfortran/25598
* io/file_pos.c (unformatted_backspace): Assure the new file position
to seek is not less than zero.
(st_backspace): Set unit bytes_left to zero.
* io/transfer.c (next_record_r): Fix line lengths, no functional
change.

Modified:
branches/gcc-4_1-branch/libgfortran/ChangeLog
branches/gcc-4_1-branch/libgfortran/io/file_pos.c
branches/gcc-4_1-branch/libgfortran/io/transfer.c


-- 


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




Pixels That Rock

2006-01-07 Thread Dan
Sorry for the previous blank email. I saw your name and email address on a
website and thought you might be interested in taking a look at my new site.

www.pixelsthatrock.com 

If you are interested in trading links or something let me know. Thanks!

- Dan



[Bug fortran/19292] [meta-bug] g77 features lacking in gfortran

2006-01-07 Thread sgk at troutmask dot apl dot washington dot edu


--- Comment #13 from sgk at troutmask dot apl dot washington dot edu  
2006-01-08 01:58 ---
Subject: Re:  [meta-bug] g77 features lacking in gfortran

On Sun, Jan 08, 2006 at 12:33:29AM -, malitzke at metronets dot com wrote:
> 
> Last things first: The code posted in 25705 is copyrighted 1994 and published
> in Computer Physics Communications; hence just modification by a third party
> could be legally questionable. The two academics (one in computer Science)
> conceivably were cogniscent of the f90 standard.

So, contact the original authors!  Posting the copryrighted code to
a mailing list is also questionable.  

> Anyhow, standards should be quoted in context, I have the Sep 2002
> working draft (only abrogating f77, f90, and f95, per Annex B) which
> per Para 8.1.1.2 matches the quotation in comment 10.  However, the
> 105 label precedes the first executable statement. Now, line
> 18 of 8.1 reads as follows:
> 
> Any of these constructs may be named. If a construct is named, the
> name shall be the first lexical token of the first statement of the
> construct and the last lexical token of the construct. In fixed source
> form, the name preceding the construct shall be placed after character
> position 6. 
>
> Therefore, the 105 GOTO address clearly is not inside the construct,
> because it immediately follows the ELSE and precedes character position
> 6 of the construct proper; and 8.1.1.2 does not apply.

There are no named constructs in the code posted!  The 105 in is a
*statement label*.  A named construct in fixed form would be

c234567
  n = 2
  AAA: if (n == 1) then
 n = 100
  else if (n == 2) then AAA
 n = 200
  else AAA 
 n = 0
  end if AAA
  print *, n
  end


> If label 105 would not precede the block, but be inside, then error message,
> pertaining to the inside of the block would be proper.

It is in a block.  If we remove the unneeded lines, you have


   506 IF(IX.EQ.0. AND. IY.EQ.1) THEN
A IF(IBACK3.EQ.0) THEN
AB   IF(MGO.EQ.0) THEN
ABD N=4
AB   ELSEIF(MGO.EQ.1) THEN
ABE IF(IBACK3.EQ.1) THEN
ABEF   GO TO 105 ! rmg questionable goto
ABE ELSE
ABEG   N=4
ABE ENDIF
AB   ELSE
ABD GO TO 108
AB   ENDIF
A ELSE
AC 105   IRHO=NU
AC   RETURN
A ENDIF
A  108 MEMR=IRHO
  ENDIF

Everything marked with an A is in the constituent block of the 
outermost IF...ENDIF.  Everything marked with the AB is in the
constituent block of the IF(IBACK3.EQ.0) THEN ... ELSE. Everything
marked with AC is in the constituent block of the ELSE ... ENDIF
that corresponds the IF(IBACK3.EQ.0) THEN.   The "GO TO 105" is
transferring control into the AC block, which is prohibited!

> Also, if commercial compilers would have a clear basis to issue an error
> message, they probably would do so and get off the hook.

The wording in 8.1.1.2 is such that a compiler is not required by
the standard to issue an error here.  The words are "Transfer of
control to the interior of a block from outside the block is 
prohibited."  The "is" provides wiggle room for a vendor.  If the
"is" were "shall be", then an error message would be required.

> As I am clearly no the author the the code, I have no real position
> to defend.  As my post 25705 makes clear legalistic arguments should
> be avoided.

We're trying to write a Fortran 95 conforming compiler.  We can't
avoid legalistic arguments.  I'm sorry if this view offends you.

> I also coded a parallel C program and used f2c on the code fragment
> posted. In both cases gcc-4.1.0 emitted object code without complaint.
> In this respect C and fortran are both block structured languages
> without nesting of subroutines.  Therefore, if gcc-4.1.0 can handle
> it for C a parallel construct should do it for fortran.

C and Fortran are two different languages with two different standards.
f2c is at best a Fortran 77 compiler.  The behavior you want may be
permitted by Fortran 77, but I would need to study the Fortran 77
standard before I make any judgement.


-- 


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




[Bug fortran/24268] gfortran rejects valid format statement

2006-01-07 Thread jvdelisle at gcc dot gnu dot org


--- Comment #14 from jvdelisle at gcc dot gnu dot org  2006-01-08 01:56 
---
Subject: Bug 24268

Author: jvdelisle
Date: Sun Jan  8 01:56:22 2006
New Revision: 109468

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=109468
Log:
2005-01-07  Jerry DeLisle  <[EMAIL PROTECTED]>

PR fortran/24268
* gfortran.dg/fmt_white.f: Update test.

Modified:
branches/gcc-4_1-branch/gcc/testsuite/ChangeLog
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/fmt_white.f


-- 


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




[Bug fortran/24268] gfortran rejects valid format statement

2006-01-07 Thread jvdelisle at gcc dot gnu dot org


--- Comment #13 from jvdelisle at gcc dot gnu dot org  2006-01-08 01:53 
---
Subject: Bug 24268

Author: jvdelisle
Date: Sun Jan  8 01:53:06 2006
New Revision: 109467

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=109467
Log:
2006-01-07  Jerry DeLisle  <[EMAIL PROTECTED]>

PR fortran/24268
* io.c (next_char_not_space): New function that returns the next
character that is not white space.
(format_lex): Use the new function to skip whitespace within
a format string.

Modified:
branches/gcc-4_1-branch/gcc/fortran/ChangeLog
branches/gcc-4_1-branch/gcc/fortran/io.c


-- 


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




[Bug fortran/19292] [meta-bug] g77 features lacking in gfortran

2006-01-07 Thread pinskia at gcc dot gnu dot org


--- Comment #12 from pinskia at gcc dot gnu dot org  2006-01-08 00:51 
---
(In reply to comment #11)
> As I am clearly no the author the the code, I have no real position to defend.
> As my post 25705 makes clear legalistic arguments should be avoided. I also
> coded a parallel C program and used f2c on the code fragment posted. In both
> cases gcc-4.1.0 emitted object code without complaint. In this respect C and
> fortran are both block structured languages without nesting of subroutines.
> Therefore, if gcc-4.1.0 can handle it for C a parallel construct should do it
> for fortran.

C is different than Fortran.  I am not clear why you are bring that up at all.

Also ICC warns about the code which is why I put in PR 25705 which makes me
question the code  and if other compiler also warns (or even errors out) about
it (by default), it is even more questionable.

Also fortran does have nesting of subroutines, I don't get why you said it is
not, it is a feature of Fortran 90.  You can do something like:
function g(f)
REAL :: g
REAL :: f
g = h()
contains
function h()
REAL :: h
h = f +1.0
end function
end function


-- 


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




[Bug rtl-optimization/24257] [4.1/4.2 Regression] ICE: in extract_insn with -O -fgcse -fgcse-sm

2006-01-07 Thread steven at gcc dot gnu dot org


--- Comment #12 from steven at gcc dot gnu dot org  2006-01-08 00:45 ---
I looked at what is going on here with "GNU C version 4.1.0 20060107
(prerelease) (x86_64-unknown-linux-gnu)"

We produce the invalid insn in replace_store_insn, where we have:
(gdb) p debug_rtx(del)
(insn 19 17 21 0 (parallel [
(set (mem/s:SI (reg/v/f:DI 63 [ s ]) [3 .buf+0 S4 A32])
(ashift:SI (mem/s:SI (reg/v/f:DI 63 [ s ]) [3 .buf+0
S4 A32])
(subreg:QI (reg/v:SI 64 [ n ]) 0)))
(clobber (reg:CC 17 flags))
]) 413 {*ashlsi3_1} (nil)
(nil))

gen_move_insn is used to produce a move for this:
replace_store_insn (reg=0x2afcc000, del=0x2afc73c0, bb=0x2afb9780,
smexpr=0xcdae70) at gcse.c:6296
6296  mem = smexpr->pattern;
(gdb) p debug_rtx(del)
(insn 19 17 21 0 (parallel [
(set (mem/s:SI (reg/v/f:DI 63 [ s ]) [3 .buf+0 S4 A32])
(ashift:SI (mem/s:SI (reg/v/f:DI 63 [ s ]) [3 .buf+0
S4 A32])
(subreg:QI (reg/v:SI 64 [ n ]) 0)))
(clobber (reg:CC 17 flags))
]) 413 {*ashlsi3_1} (nil)
(nil))
$8 = void
(gdb) next
6297  insn = gen_move_insn (reg, SET_SRC (single_set (del)));
(gdb) p debug_rtx(mem)
(mem/s:SI (reg/v/f:DI 63 [ s ]) [3 .buf+0 S4 A32])
$9 = void
(gdb) next
6298  insn = emit_insn_after (insn, del);
(gdb) p debug_rtx(insn)
(insn 57 0 0 (set (reg:SI 65)
(ashift:SI (mem/s:SI (reg/v/f:DI 63 [ s ]) [3 .buf+0 S4 A32])
(subreg:QI (reg/v:SI 64 [ n ]) 0))) -1 (nil)
(nil))
$10 = void
(gdb) p recog_memoized (insn)
$11 = -1


-- 


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




[Bug fortran/19292] [meta-bug] g77 features lacking in gfortran

2006-01-07 Thread malitzke at metronets dot com


--- Comment #11 from malitzke at metronets dot com  2006-01-08 00:33 ---
Last things first: The code posted in 25705 is copyrighted 1994 and published
in Computer Physics Communications; hence just modification by a third party
could be legally questionable. The two academics (one in computer Science)
conceivably were cogniscent of the f90 standard. Anyhow, standards sould be
quoted in context, I have the Sep 2002 working draft (only abrogating f77, f90,
and f95, per Annex B) which per Para 8.1.1.2 matches the quotation in comment
10. However, the 105 label precedes the first executable statement. Now, line
18 of 8.1 reads as follows:

Any of these constructs may be named. If a construct is named, the name shall
be the first lexical token of the first statement of the construct and the last
lexical token of the construct. In fixed source form, the name preceding the
construct shall be placed after character position 6. 

Therefore, the 105 GOTO address clearly is not inside the construct, because it
 immediately follows the ELSE and precedes character position 6 of the
construct proper; and 8.1.1.2 does not apply.

If label 105 would not precede the block, but be inside, then error message,
pertaining to the inside of the block would be proper.

Also, if commercial compilers would have a clear basis to issue an error
message, they probably would do so and get off the hook.

As I am clearly no the author the the code, I have no real position to defend.
As my post 25705 makes clear legalistic arguments should be avoided. I also
coded a parallel C program and used f2c on the code fragment posted. In both
cases gcc-4.1.0 emitted object code without complaint. In this respect C and
fortran are both block structured languages without nesting of subroutines.
Therefore, if gcc-4.1.0 can handle it for C a parallel construct should do it
for fortran.


-- 


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




[Bug fortran/25093] PUBLIC function of PRIVATE type

2006-01-07 Thread eedelman at gcc dot gnu dot org


--- Comment #2 from eedelman at gcc dot gnu dot org  2006-01-08 00:14 
---
Working on a patch.


-- 

eedelman at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||eedelman at gcc dot gnu dot
   ||org
   Keywords|diagnostic  |accepts-invalid


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




[Bug target/25662] [4.0/4.1 Regression] Unrecognizable insn with -O on PPC

2006-01-07 Thread dje at gcc dot gnu dot org


--- Comment #7 from dje at gcc dot gnu dot org  2006-01-07 22:23 ---
Subject: Bug 25662

Author: dje
Date: Sat Jan  7 22:23:27 2006
New Revision: 109456

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=109456
Log:
2005-01-07  Ian Lance Taylor  
David Edelsohn  <[EMAIL PROTECTED]>

PR rtl-optimization/25662
* optabs.c (simplify_expand_binop): Use simplify_binary_operation
for constant operands instead of simplify_gen_binary.
* simplify-rtx.c (simplify_gen_binary): Swap commutative operands
after trying simplify_binary_operation

Modified:
trunk/gcc/ChangeLog
trunk/gcc/optabs.c
trunk/gcc/simplify-rtx.c


-- 


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




[Bug fortran/19292] [meta-bug] g77 features lacking in gfortran

2006-01-07 Thread sgk at troutmask dot apl dot washington dot edu


--- Comment #10 from sgk at troutmask dot apl dot washington dot edu  
2006-01-07 22:17 ---
Subject: Re:  [meta-bug] g77 features lacking in gfortran

On Sat, Jan 07, 2006 at 09:55:07PM -, kargl at gcc dot gnu dot org wrote:
> 
> 
> Well, in looking at the code in 25705, I think the code is nonconforming via
> 8.1.1.2 of the Fortran 95 standard.  I don't have a copy of the Fortran 90
> standard, but I suspect that it will also show that the code is nonconforming.
> 

I'll also note that Lahey's web base checking utility calls out
the "goto 105" with a warning.  NAG's Fortran 95 compiler issues
an error similar to gfortran's message.  The exact text of 8.1.1.2
is:

Transfer of control to the interior of a block from outside the block
is prohibited.  Transfers within a block and transfers from the interior
of a block to outside the block may occur.

This statement is followed with 

NOTE 8.3
For example, if a statement inside the block has a statement label,
a GO TO statement using that label is only allowed to appear in the
same block.

My advice would be to fix the code to make it portable.


-- 


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




[Bug other/25712] cc1: error: unrecognized command line option "-fdump-tree-vars"

2006-01-07 Thread steven at gcc dot gnu dot org


--- Comment #1 from steven at gcc dot gnu dot org  2006-01-07 22:00 ---
http://gcc.gnu.org/ml/gcc-patches/2006-01/msg00416.html


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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




[Bug fortran/19292] [meta-bug] g77 features lacking in gfortran

2006-01-07 Thread kargl at gcc dot gnu dot org


--- Comment #9 from kargl at gcc dot gnu dot org  2006-01-07 21:55 ---
(In reply to comment #8)
> Not all of the underlying are just g77 features. Some like 18540/25705 are
> legal f90, f95, f06 code an just calling them "excremental" is unprofessional.
> This diminishes the 90% plus of dedicated people working on GCC. If something
> is clearly impoosible to continue as part of fortran then an effort to change
> the specs should be made. 

Well, in looking at the code in 25705, I think the code is nonconforming via
8.1.1.2 of the Fortran 95 standard.  I don't have a copy of the Fortran 90
standard, but I suspect that it will also show that the code is nonconforming.


-- 

kargl at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||kargl at gcc dot gnu dot org


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




[Bug fortran/23308] named common block confused as procedure - runtime segfault

2006-01-07 Thread paulthomas2 at wanadoo dot fr


--- Comment #7 from paulthomas2 at wanadoo dot fr  2006-01-07 21:46 ---
Subject: Re:  named common block confused as procedure
 - runtime segfault

> The enclosed patch catches Andrew's PR but also snags on 
> g77/19990905-1.f (The Burley test case).  

In fact, it regtests OK, apart from the above.

Paul


-- 


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




[Bug fortran/23308] named common block confused as procedure - runtime segfault

2006-01-07 Thread paulthomas2 at wanadoo dot fr


--- Comment #6 from paulthomas2 at wanadoo dot fr  2006-01-07 21:44 ---
Subject: Re:  named common block confused as procedure
 - runtime segfault

Steve and Andrew,

>--- Comment #5 from kargl at gcc dot gnu dot org  2006-01-07 20:19 ---
>Andrew, Lahey's code checking utility gives
>
>Compiling program unit f at line 1:
>Compiling program unit test at line 5:
>Encountered 0 errors, 0 warnings, 0 informations in file SOURCE.F90.
>Compiling file SOURCE.F90.
>
>NAG's compiler also compiles the code without an error or warning.
>
>
>  
>
The enclosed patch catches Andrew's PR but also snags on 
g77/19990905-1.f (The Burley test case).  I will sit down with the 
standard and sort out what is and is not required of global symbols, 
contained symbols and scopes in general.  If nothing else, the enclosed 
will catch some nasties that are escaping at the moment.

Best regards

Paul
Index: gcc/fortran/resolve.c
===
*** gcc/fortran/resolve.c   (revision 109449)
--- gcc/fortran/resolve.c   (working copy)
*** resolve_function (gfc_expr * expr)
*** 1157,1162 
--- 1157,1172 
try t;
int temp;

+   gfc_gsymbol * gsym;
+ 
+   gsym = NULL;
+   if (expr->symtree && expr->symtree->n.sym)
+ gsym = gfc_find_gsymbol (gfc_gsym_root, expr->symtree->n.sym->name);
+ 
+   if ((gsym && gsym->type != GSYM_UNKNOWN && gsym->type != GSYM_FUNCTION))
+ gfc_warning_now ("reference at %L to %s which is not a function",
+&expr->where, expr->symtree->n.sym->name);
+ 
/* Switch off assumed size checking and do this again for certain kinds
   of procedure, once the procedure itself is resolved.  */
need_full_assumed_size++;
*** resolve_call (gfc_code * c)
*** 1510,1515 
--- 1520,1535 
  {
try t;

+   gfc_gsymbol * gsym;
+ 
+   gsym = NULL;
+   if (c->symtree && c->symtree->n.sym)
+ gsym = gfc_find_gsymbol (gfc_gsym_root, c->symtree->n.sym->name);
+ 
+   if ((gsym && gsym->type != GSYM_UNKNOWN && gsym->type != GSYM_SUBROUTINE))
+ gfc_warning_now ("CALL at %L to %s which is not a subroutine",
+&c->loc, c->symtree->n.sym->name);
+ 
/* Switch off assumed size checking and do this again for certain kinds
   of procedure, once the procedure itself is resolved.  */
need_full_assumed_size++;
Index: gcc/fortran/match.c
===
*** gcc/fortran/match.c (revision 109448)
--- gcc/fortran/match.c (working copy)
*** gfc_match_common (void)
*** 2247,2252 
--- 2247,2253 
gfc_array_spec *as;
gfc_equiv * e1, * e2;
match m;
+   gfc_gsymbol *gsym;

old_blank_common = gfc_current_ns->blank_common.head;
if (old_blank_common)
*** gfc_match_common (void)
*** 2263,2268 
--- 2264,2278 
if (m == MATCH_ERROR)
goto cleanup;

+   gsym = gfc_get_gsymbol (name);
+   if (gsym->type != GSYM_UNKNOWN && gsym->type != GSYM_COMMON)
+   {
+ gfc_error ("Symbol '%s' at %C is already an external symbol that is
not COMMON",
+sym->name);
+ goto cleanup;
+   }
+   gsym->type = GSYM_COMMON;
+ 
if (name[0] == '\0')
{
  t = &gfc_current_ns->blank_common;


-- 


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




[Bug other/25712] New: cc1: error: unrecognized command line option "-fdump-tree-vars"

2006-01-07 Thread danglin at gcc dot gnu dot org
Executing on host: /mnt/gnu/gcc-3.3/objdir/gcc/xgcc
-B/mnt/gnu/gcc-3.3/objdir/gc
c/ /mnt/gnu/gcc-3.3/gcc/gcc/testsuite/gcc.dg/tree-ssa/loop-15.c   -O2
-fdump-tre
e-vars -fno-show-column -S  -o loop-15.s(timeout = 300)
cc1: error: unrecognized command line option "-fdump-tree-vars"
compiler exited with status 1
output is:
cc1: error: unrecognized command line option "-fdump-tree-vars"

FAIL: gcc.dg/tree-ssa/loop-15.c (test for excess errors)
Excess errors:
cc1: error: unrecognized command line option "-fdump-tree-vars"

ERROR: gcc.dg/tree-ssa/loop-15.c: error executing dg-final: no files matched
glo
b pattern "loop-15.c.t[0-9][0-9].vars"
UNRESOLVED: gcc.dg/tree-ssa/loop-15.c: error executing dg-final: no files
matche
d glob pattern "loop-15.c.t[0-9][0-9].vars"


-- 
   Summary: cc1: error: unrecognized command line option "-fdump-
tree-vars"
   Product: gcc
   Version: 4.2.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: hppa2.0w-hp-hpux11.11
  GCC host triplet: hppa2.0w-hp-hpux11.11
GCC target triplet: hppa2.0w-hp-hpux11.11


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




[Bug fortran/19292] [meta-bug] g77 features lacking in gfortran

2006-01-07 Thread malitzke at metronets dot com


--- Comment #8 from malitzke at metronets dot com  2006-01-07 20:30 ---
Not all of the underlying are just g77 features. Some like 18540/25705 are
legal f90, f95, f06 code an just calling them "excremental" is unprofessional.
This diminishes the 90% plus of dedicated people working on GCC. If something
is clearly impoosible to continue as part of fortran then an effort to change
the specs should be made. 


-- 

malitzke at metronets dot com changed:

   What|Removed |Added

 CC||malitzke at metronets dot
   ||com


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




[Bug fortran/23308] named common block confused as procedure - runtime segfault

2006-01-07 Thread kargl at gcc dot gnu dot org


--- Comment #5 from kargl at gcc dot gnu dot org  2006-01-07 20:19 ---
Andrew, Lahey's code checking utility gives

Compiling program unit f at line 1:
Compiling program unit test at line 5:
Encountered 0 errors, 0 warnings, 0 informations in file SOURCE.F90.
Compiling file SOURCE.F90.

NAG's compiler also compiles the code without an error or warning.


-- 

kargl at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||kargl at gcc dot gnu dot org


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




[Bug fortran/23308] named common block confused as procedure - runtime segfault

2006-01-07 Thread pinskia at gcc dot gnu dot org


--- Comment #4 from pinskia at gcc dot gnu dot org  2006-01-07 19:27 ---
(In reply to comment #3)
> Index: gcc/fortran/resolve.c
> ===
> *** gcc/fortran/resolve.c   (revision 109449)
> --- gcc/fortran/resolve.c   (working copy)
> *** resolve_function (gfc_expr * expr)
> *** 1157,1162 
> --- 1157,1172 
> try t;
> int temp;

The only question I have with this patch is the following still passes (this is
the main reason why I filed PR 25710 because I could not get the testcase in
there and this testcase working):
function f()
REAL :: f
f = 1.0
end function
call f
contains
SUBROUTINE f
end SUBROUTINE
end


-- 


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




[Bug target/21715] [4.0/4.1 regression] code-generation performance regression

2006-01-07 Thread steven at gcc dot gnu dot org


--- Comment #7 from steven at gcc dot gnu dot org  2006-01-07 18:41 ---
GCC 4.1-20060107 still produces the code reported in the original bug report:

 :
   0:   48 89 f8mov%rdi,%rax
   3:   48 f7 d8neg%rax
   6:   48 21 c7and%rax,%rdi
   9:   48 89 f8mov%rdi,%rax
   c:   c3  retq

What patch may have fixed this on the trunk?


-- 


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




[Bug target/20754] ACATS cxg1005 fails at runtime on hppa-linux

2006-01-07 Thread danglin at gcc dot gnu dot org


--- Comment #9 from danglin at gcc dot gnu dot org  2006-01-07 18:37 ---
I'm changing this to a target bug.  The bug is in the define for
SECONDARY_MEMORY_NEEDED_RTX(MODE):

#define SECONDARY_MEMORY_NEEDED_RTX(MODE) \
  gen_rtx_MEM (MODE, gen_rtx_PLUS (Pmode, stack_pointer_rtx, GEN_INT (-16)))

There are a number of places where this memory location gets used during
final code generation.  I don't think we can add clobbers.

When we define SECONDARY_MEMORY_NEEDED_RTX as above, reload introduces
store-load insns into the RTL to copy a value from a general/floating
register to a floating/general register.  Subsequently, scheduling may
copy separate the load and store insns.  This then can introduce a conflict
with the use of this memory location during code generation.

I'm not sure about the validity of scheduling moving the "fldws
-16(%r30),%fr21L"
over a call.  The call_insn is marked as a const or pure call:

(call_insn/u 80 4722 4769 0 cxg1005.adb:88 (parallel [
(set (reg:SC 28 %r28)
(call (mem:SI (symbol_ref/v:SI
("@cxg1005__test_block__complex_p
ack__compose_from_cartesian__3___395") ) [0 S4 A32])
(const_int 16 [0x10])))
(clobber (reg:SI 1 %r1))
(clobber (reg:SI 2 %r2))
(use (const_int 0 [0x0]))
]) 204 {call_val_symref} (insn_list:REG_DEP_TRUE 60
(insn_list:REG_DEP_O
UTPUT 63 (insn_list:REG_DEP_ANTI 66 (insn_list:REG_DEP_ANTI 65
(insn_list:REG_DE
P_OUTPUT 20 (insn_list:REG_DEP_ANTI 22 (insn_list:REG_DEP_OUTPUT 21
(insn_list:R
EG_DEP_TRUE 79 (insn_list:REG_DEP_ANTI 64 (nil))
(expr_list:REG_DEAD (reg:SF 32 %fr4)
(expr_list:REG_UNUSED (reg:SI 2 %r2)
(expr_list:REG_UNUSED (reg:SI 1 %r1)
(nil
(expr_list:REG_DEP_TRUE (use (reg:SF 32 %fr4))
(nil)))

The decision as to whether the function is pure is made before reload and
that doesn't change when the SECONDARY_MEMORY_NEEDED_RTX MEM is used (ie.,
we use a special location in the frame of the caller for the copy.  This
problem can be avoided if we always ensure that the function has a frame.
However, this adds instructions and still doesn't fix the issue that the
MEM might be used between the store and load in other situations.

Thus, I think the best fix is to remove the SECONDARY_MEMORY_NEEDED_RTX
define and do the register copy in the move patterns directly.  This keeps
the MEM from being exposed in the RTL.  We lose the performance benefit
of scheduling the store and load.  However, we don't need a frame to
do floating-general copies.

As an aside, the problem is introduced in the RTL in the sched2 pass:

call_insn/u 80 4722 5740 0 cxg1005.adb:88 (parallel [
(set (reg:SC 28 %r28)
(call (mem:SI (symbol_ref/v:SI
("@cxg1005__test_block__complex_p
ack__compose_from_cartesian__3___395") ) [0 S4 A32])
(const_int 16 [0x10])))
(clobber (reg:SI 1 %r1))
(clobber (reg:SI 2 %r2))
(use (const_int 0 [0x0]))
]) 204 {call_val_symref} (insn_list:REG_DEP_OUTPUT 63
(insn_list:REG_DEP
_ANTI 4765 (insn_list:REG_DEP_ANTI 4763 (insn_list:REG_DEP_OUTPUT 12
(insn_list:
REG_DEP_OUTPUT 10 (insn_list:REG_DEP_OUTPUT 17 (insn_list:REG_DEP_ANTI 22
(insn_
list:REG_DEP_OUTPUT 15 (insn_list:REG_DEP_ANTI 4767 (insn_list:REG_DEP_ANTI
4768
 (insn_list:REG_DEP_OUTPUT 4677 (insn_list:REG_DEP_ANTI 5372
(insn_list:REG_DEP_
ANTI 5391 (insn_list:REG_DEP_ANTI 5392 (insn_list:REG_DEP_ANTI 5393
(insn_list:R
EG_DEP_ANTI 5394 (insn_list:REG_DEP_ANTI 5395 (insn_list:REG_DEP_ANTI 5396
(insn
_list:REG_DEP_ANTI 5397 (insn_list:REG_DEP_ANTI 5398 (insn_list:REG_DEP_ANTI
539
9 (insn_list:REG_DEP_ANTI 5400 (insn_list:REG_DEP_OUTPUT 5390
(insn_list:REG_DEP
_TRUE 79 (insn_list:REG_DEP_TRUE 5373 (insn_list:REG_DEP_ANTI 64
(nil)))

(expr_list:REG_DEAD (reg:SF 32 %fr4)
(expr_list:REG_UNUSED (reg:SI 2 %r2)
(expr_list:REG_UNUSED (reg:SI 1 %r1)
(nil
(expr_list:REG_DEP_TRUE (use (reg:SF 32 %fr4))
(nil)))

(note 5740 80 4766 0 ("cxg1005.adb") 87)

(insn 4766 5740 5741 0 cxg1005.adb:87 (set (reg:SF 66 %fr21 [orig:778+4 ]
[778])
(mem:SF (plus:SI (reg/f:SI 30 %r30)
(const_int -16 [0xfff0])) [0 S4 A32])) 77 {*pa.md:4325}
(ins
n_list:REG_DEP_ANTI 5391 (insn_list:REG_DEP_TRUE 5373 (insn_list:REG_DEP_ANTI
64
 (insn_list:REG_DEP_TRUE 4763 (insn_list:REG_DEP_TRUE 4765 (nil))
(nil))



-- 

danglin at gcc dot gnu dot org changed:

   What|Removed |Added

  Component|ada |target


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




[Bug middle-end/23181] [4.1 Regression] Slowdown of the bresenham line drawing by roughly 20%

2006-01-07 Thread steven at gcc dot gnu dot org


--- Comment #22 from steven at gcc dot gnu dot org  2006-01-07 18:33 ---
I compiled the test case nodom.c with "xgcc (GCC) 4.1.0 20060107 (prerelease)"
and ran the resulting executables with "time ./a.out".  And the numbers speak
for themselves:

x86-64 (Nocona):

options: -O2
real0m0.400s0m0.394s0m0.392s
user0m0.408s0m0.404s0m0.400s
sys 0m0.004s0m0.000s0m0.000s

options: -O2 -fno-tree-dominator-opts
real0m0.428s0m0.433s0m0.427s
user0m0.436s0m0.440s0m0.436s
sys 0m0.000s0m0.004s0m0.000s


x86-64 -m32 (Nocona)

options: -O2 -m32
real0m0.394s0m0.364s0m0.387s
user0m0.404s0m0.372s0m0.396s
sys 0m0.000s0m0.000s0m0.000s

options: -O2 -m32 -fno-tree-dominator-opts
real0m0.554s0m0.553s0m0.557s
user0m0.568s0m0.564s0m0.572s
sys 0m0.000s0m0.000s0m0.000s


x86-64 -m32 -march=pentium4

options: -O2 -m32 -march=pentium4
real0m0.335s0m0.338s0m0.343s
user0m0.344s0m0.344s0m0.352s
sys 0m0.000s0m0.000s0m0.000s

options: -O2 -m32 -fno-tree-dominator-opts -march=pentium4
real0m0.405s0m0.407s0m0.400s
user0m0.416s0m0.416s0m0.408s
sys 0m0.000s0m0.000s0m0.000s


'nuff said.  Closing as fixed.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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




[Bug middle-end/23181] [4.1 Regression] Slowdown of the bresenham line drawing by roughly 20%

2006-01-07 Thread steven at gcc dot gnu dot org


--- Comment #21 from steven at gcc dot gnu dot org  2006-01-07 18:23 ---
Using ``.ident  "GCC: (GNU) 4.1.0 20060107 (prerelease)"'' on AMD64 with -m32,
I get the following assembly outputs:

options: -O2 -fno-tree-dominator-opts
.L2:
movl$videoram, %eax
movl$-2, %edx
jmp .L5
.p2align 4,,7
.L14:
addl$18, %edx
.L5:
testl   %edx, %edx
movb$5, (%eax)
js  .L6
addl$21, %eax
subl$40, %edx
.L6:
incl%eax
cmpl%eax, %ecx
jne .L14
incl%ebx
movb$5, videoram+209
cmpl$1000, %ebx
jne .L2

options: -O2
.L2:
movb$5, videoram
movl$videoram, %eax
movl$-2, %edx
.L18:
incl%eax
cmpl%eax, %ecx
je  .L20
.p2align 4,,7
.L5:
addl$18, %edx
movb$5, (%eax)
js  .L18
addl$21, %eax
subl$40, %edx
incl%eax
cmpl%eax, %ecx
jne .L5
.L20:
incl%ebx
movb$5, videoram+209
cmpl$1000, %ebx
jne .L2


-- 


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




[Bug libgcj/24940] libjava/configure uses $SED without defining it

2006-01-07 Thread jakub at gcc dot gnu dot org


--- Comment #3 from jakub at gcc dot gnu dot org  2006-01-07 18:14 ---
Subject: Bug 24940

Author: jakub
Date: Sat Jan  7 18:14:24 2006
New Revision: 109453

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=109453
Log:
PR libgcj/24940
* shlibpath.m4: Replace $SED with sed.
* configure: Rebuilt.

Modified:
branches/gcc-4_1-branch/libjava/ChangeLog
branches/gcc-4_1-branch/libjava/configure
branches/gcc-4_1-branch/libjava/shlibpath.m4


-- 


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




[Bug libgcj/24940] libjava/configure uses $SED without defining it

2006-01-07 Thread jakub at gcc dot gnu dot org


--- Comment #2 from jakub at gcc dot gnu dot org  2006-01-07 18:13 ---
Subject: Bug 24940

Author: jakub
Date: Sat Jan  7 18:13:36 2006
New Revision: 109452

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=109452
Log:
PR libgcj/24940
* shlibpath.m4: Replace $SED with sed.
* configure: Rebuilt.

Modified:
trunk/libjava/ChangeLog
trunk/libjava/configure
trunk/libjava/shlibpath.m4


-- 


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




[Bug fortran/25707] support for Fortran 2003 USE statements, INTRINSIC and NONINTRINSIC

2006-01-07 Thread jb at gcc dot gnu dot org


--- Comment #2 from jb at gcc dot gnu dot org  2006-01-07 18:09 ---
Actually, you got the syntax slightly wrong (sorry for not noticing it right
away).

The standard (and from my reading of the ibm docs it seems that they agree with
the standard) specifices the use statement as

use [[, module-nature] ::] module-name [etc...]

where module-nature is either intrinsic or non_intrinsic. That is, if
module-nature is specified the ',' and '::' are mandatory, so the statement in
comment #1 must be of the form

use, intrinsic :: iso_fortran_env


-- 


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




[Bug tree-optimization/14295] [tree-ssa] copy propagation for aggregates

2006-01-07 Thread steven at gcc dot gnu dot org


--- Comment #4 from steven at gcc dot gnu dot org  2006-01-07 18:04 ---
On AMD64 with GNU C version 4.2.0 20060107, I get this .optimized dump:

;; Function foo (foo)

foo (r)
{
  int r$b;
  int r$a;
  char r$d;

:
  r$b = r.b;
  r$a = r.a;
  r$d = r.d;
  .m = r.m;
  .b = r$b;
  .a = r$a;
  .d = r$d;
  return ;

}


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

   Last reconfirmed|2005-05-08 18:01:19 |2006-01-07 18:04:40
   date||


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




[Bug fortran/25709] BIND (Fortran 2003) is not supported at all

2006-01-07 Thread jb at gcc dot gnu dot org


--- Comment #3 from jb at gcc dot gnu dot org  2006-01-07 18:02 ---
Confirmed


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2006-01-07 18:02:49
   date||


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




[Bug fortran/25707] support for Fortran 2003 USE statements, INTRINSIC and NONINTRINSIC

2006-01-07 Thread jb at gcc dot gnu dot org


--- Comment #1 from jb at gcc dot gnu dot org  2006-01-07 17:58 ---
Confirmed. 

Incidentally, you can find the final draft of F2003 (which differs very little
from the published standard) at
http://www.j3-fortran.org/doc/year/04/04-007.pdf


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2006-01-07 17:58:22
   date||


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




[Bug fortran/25709] BIND (Fortran 2003) is not supported at all

2006-01-07 Thread kargl at gcc dot gnu dot org


--- Comment #2 from kargl at gcc dot gnu dot org  2006-01-07 17:39 ---
BTW, this feature is actively being worked upon.  See
http://gcc.gnu.org/ml/fortran/2005-12/msg00270.html


-- 


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




[Bug fortran/23308] named common block confused as procedure - runtime segfault

2006-01-07 Thread pault at gcc dot gnu dot org


--- Comment #3 from pault at gcc dot gnu dot org  2006-01-07 17:07 ---
(In reply to comment #2)
> Note I think fixing PR 25710 and the mentioned problem of not keeping symbols
> correctly will fix this bug.  I have been trying to fix this but it is hard.

I notice that there is a handle in gfortran.h to deal with this:

/* Global symbols are symbols of global scope. Currently we only use
   this to detect collisions already when parsing.
   TODO: Extend to verify procedure calls.  */

typedef struct gfc_gsymbol
{
  BBT_HEADER(gfc_gsymbol);

  const char *name;
  enum { GSYM_UNKNOWN=1, GSYM_PROGRAM, GSYM_FUNCTION, GSYM_SUBROUTINE,
GSYM_MODULE, GSYM_COMMON, GSYM_BLOCK_DATA } type;

  int defined, used;
  locus where;
}
gfc_gsymbol;

extern gfc_gsymbol *gfc_gsym_root;

and in symbol.c

/* Search a tree for the global symbol.  */

gfc_gsymbol *
gfc_find_gsymbol (gfc_gsymbol *symbol, const char *name)
{

friends

Astonishingly, none of this is ever used!

The experimental patch below picks up pr25710 but not this one.  COMMON blocks
need to be given a gsymbol, methinks.

Paul

Index: gcc/fortran/resolve.c
===
*** gcc/fortran/resolve.c   (revision 109449)
--- gcc/fortran/resolve.c   (working copy)
*** resolve_function (gfc_expr * expr)
*** 1157,1162 
--- 1157,1172 
try t;
int temp;

+   gfc_gsymbol * gsym;
+ 
+   gsym = gfc_find_gsymbol (gfc_gsym_root, expr->symtree->n.sym->name);
+ 
+   if ((gsym && gsym->type != GSYM_UNKNOWN && gsym->type != GSYM_FUNCTION)
+||
+   (expr->symtree && !expr->symtree->n.sym->attr.external &&
!expr->symtree->n.sym->attr.subroutine))
+ gfc_warning_now ("CALL at %L to procedure %s which is not a function",
+&expr->where, expr->symtree->n.sym->name);
+ 
/* Switch off assumed size checking and do this again for certain kinds
   of procedure, once the procedure itself is resolved.  */
need_full_assumed_size++;
*** resolve_call (gfc_code * c)
*** 1510,1515 
--- 1520,1535 
  {
try t;

+   gfc_gsymbol * gsym;
+ 
+   gsym = gfc_find_gsymbol (gfc_gsym_root, c->symtree->n.sym->name);
+ 
+   if ((gsym && gsym->type != GSYM_UNKNOWN && gsym->type != GSYM_SUBROUTINE)
+||
+   (c->symtree && !c->symtree->n.sym->attr.external &&
!c->symtree->n.sym->attr.subroutine))
+ gfc_warning_now ("CALL at %L to procedure %s which is not a subroutine",
+&c->loc, c->symtree->n.sym->name);
+ 
/* Switch off assumed size checking and do this again for certain kinds
   of procedure, once the procedure itself is resolved.  */
need_full_assumed_size++;


-- 


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




[Bug rtl-optimization/16803] PowerPC - invariant code motion could be removed from loop.

2006-01-07 Thread pinskia at gcc dot gnu dot org


--- Comment #17 from pinskia at gcc dot gnu dot org  2006-01-07 16:24 
---
I forgot to say the loop now looks like:
L4:
sthx r0,r2,r11
addi r2,r2,2
bdnz L4


-- 


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




[Bug rtl-optimization/16803] PowerPC - invariant code motion could be removed from loop.

2006-01-07 Thread pinskia at gcc dot gnu dot org


--- Comment #16 from pinskia at gcc dot gnu dot org  2006-01-07 16:23 
---
Fixed in 4.2.0 by the patch which fixed PR 18527.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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




[Bug tree-optimization/25643] VRP does not remove -fbounds-check for Fortran

2006-01-07 Thread pinskia at gcc dot gnu dot org


--- Comment #3 from pinskia at gcc dot gnu dot org  2006-01-07 16:20 ---
This was NOT fixed by the patch which fixed PR 18527.


-- 


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




[Bug tree-optimization/25644] Not vectorizing F90 array expressions

2006-01-07 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2006-01-07 16:04 ---
Fixed.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

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


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




[Bug tree-optimization/18527] cannot determine number of iterations for loops with <=

2006-01-07 Thread pinskia at gcc dot gnu dot org


--- Comment #10 from pinskia at gcc dot gnu dot org  2006-01-07 16:03 
---
Fixed for 4.2.0.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

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


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




[Bug c/25682] [4.0/4.1/4.2 Regression] ICE when using old sytle offsetof (with non zero start) as array size

2006-01-07 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2006-01-07 16:01 ---
This only happens with a non NULL pointer.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

Summary|[4.0/4.1/4.2 Regression] ICE|[4.0/4.1/4.2 Regression] ICE
   |when using old sytle|when using old sytle
   |offsetof as array size  |offsetof (with non zero
   ||start) as array size


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




[Bug c/24372] Internal error due to really long assignement statement

2006-01-07 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2006-01-07 15:33 ---
No feedback in 3 months (T-7 days).


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||INVALID


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




[Bug bootstrap/22396] bootstrap of f95 enabled gcc fails because gfortran.1 is missing

2006-01-07 Thread pinskia at gcc dot gnu dot org


--- Comment #3 from pinskia at gcc dot gnu dot org  2006-01-07 15:33 ---
No feedback in 3 months (T-2 days).


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||INVALID


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




[Bug bootstrap/25695] [4.2 Regression] bootstrap no longer does a comparision

2006-01-07 Thread pinskia at gcc dot gnu dot org


--- Comment #3 from pinskia at gcc dot gnu dot org  2006-01-07 15:11 ---
Oh, unlike the makefile in gcc/Makefile, there is @ there that makes everyone
confused.


-- 


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




[Bug fortran/20870] reference to size of assumed-size array

2006-01-07 Thread pault at gcc dot gnu dot org


--- Comment #2 from pault at gcc dot gnu dot org  2006-01-07 14:14 ---
Subject: Bug 20870

Author: pault
Date: Sat Jan  7 14:14:08 2006
New Revision: 109449

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=109449
Log:
2006-01-07  Paul Thomas  <[EMAIL PROTECTED]>

PR fortran/22146
* trans-array.c (gfc_reverse_ss): Remove static attribute.
(gfc_walk_elemental_function_args): Replace gfc_expr * argument for
the function call with the corresponding gfc_actual_arglist*.  Change
code accordingly.
(gfc_walk_function_expr): Call to gfc_walk_elemental_function_args
now requires the actual argument list instead of the expression for
the function call.
* trans-array.h: Modify the prototype for
gfc_walk_elemental_function_args
and provide a prototype for gfc_reverse_ss.
* trans-stmt.h (gfc_trans_call): Add the scalarization code for the
case
where an elemental subroutine has array valued actual arguments.

PR fortran/25029
PR fortran/21256
PR fortran/20868
PR fortran/20870
* resolve.c (check_assumed_size_reference): New function to check for
upper
bound in assumed size array references.
(resolve_assumed_size_actual): New function to do a very restricted
scan
of actual argument expressions of those procedures for which incomplete
assumed size array references are not allowed.
(resolve_function, resolve_call): Switch off assumed size checking of
actual arguments, except for elemental procedures and intrinsic
inquiry functions, in some circumstances.
(resolve_variable): Call check_assumed_size_reference.

2006-01-07  Paul Thomas  <[EMAIL PROTECTED]>

PR fortran/22146
* gfortran.dg/elemental_subroutine_1.f90: New test.
* gfortran.dg/elemental_subroutine_2.f90: New test.

PR fortran/25029
PR fortran/21256
* gfortran.dg/assumed_size_refs_1.f90: New test.

PR fortran/20868
PR fortran/20870
* gfortran.dg/assumed_size_refs_2.f90: New test.
* gfortran.dg/initialization_1.f90: Change warning message.

Added:
trunk/gcc/testsuite/gfortran.dg/assumed_size_refs_1.f90   (with props)
trunk/gcc/testsuite/gfortran.dg/assumed_size_refs_2.f90   (with props)
trunk/gcc/testsuite/gfortran.dg/elemental_subroutine_1.f90
trunk/gcc/testsuite/gfortran.dg/elemental_subroutine_2.f90
Modified:
trunk/MAINTAINERS
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/resolve.c
trunk/gcc/fortran/trans-array.c
trunk/gcc/fortran/trans-array.h
trunk/gcc/fortran/trans-intrinsic.c
trunk/gcc/fortran/trans-stmt.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/initialization_1.f90

Added: trunk/gcc/testsuite/gfortran.dg/assumed_size_refs_1.f90
URL:
http://gcc.gnu.org/viewcvs/trunk/gcc/testsuite/gfortran.dg/assumed_size_refs_1.f90?root=gcc&view=auto&rev=109449
==
--- trunk/gcc/testsuite/gfortran.dg/assumed_size_refs_1.f90 (added)
+++ trunk/gcc/testsuite/gfortran.dg/assumed_size_refs_1.f90 Sat Jan  7 14:14:08
2006
@@ -1,0 +1,64 @@
+!==assumed_size_refs_1.f90==
+! { dg-do compile }
+! Test the fix for PR25029, PR21256 in which references to
+! assumed size arrays without an upper bound to the last
+! dimension were generating no error. The first version of
+! the patch failed in DHSEQR, as pointed out by Toon Moene
+! in http://gcc.gnu.org/ml/fortran/2005-12/msg00466.html
+!
+! Contributed by Paul Thomas  <[EMAIL PROTECTED]>
+!
+program assumed_size_test_1
+  implicit none
+  real a(2, 4)
+
+  a = 1.0
+  call foo (a)
+
+contains
+  subroutine foo(m)
+real, target :: m(1:2, *)
+real x(2,2,2)
+real, external :: bar
+real, pointer :: p(:,:), q(:,:)
+allocate (q(2,2))
+
+! PR25029
+p => m ! { dg-error "upper bound in the last
dimension" }
+q = m  ! { dg-error "upper bound in the last
dimension" }
+
+! PR21256( and PR25060)
+m = 1  ! { dg-error "upper bound in the last
dimension" }
+
+m(1,1) = 2.0
+x = bar (m)
+x = fcn (m)! { dg-error "upper bound in the last
dimension" }
+m(:, 1:2) = fcn (q)
+call sub (m, x)! { dg-error "upper bound in the last
dimension" }
+call sub (m(1:2, 1:2), x)
+print *, p
+
+call DHSEQR(x)
+
+  end subroutine foo
+
+  elemental function fcn (a) result (b)
+real, intent(in) :: a
+real :: b
+b = 2.0 * a
+  end function fcn
+
+  elemental subroutine sub (a, b)
+real, intent(inout) :: a, b
+b = 2.0 * a
+  end subroutine sub
+  
+  SUBROUTINE DHSEQR( WORK )
+REAL WORK( * )
+EXTERNAL   DLARFX
+INTRINSIC  MIN
+WORK( 1 ) = 1.0
+CALL DLARFX( MIN( 1, 8 ), WORK )
+  END SUBROUTINE DHSEQR
+
+end pr

[Bug fortran/25029] Assumed size array can be associated with array pointer without upper bound of last dimension

2006-01-07 Thread pault at gcc dot gnu dot org


--- Comment #7 from pault at gcc dot gnu dot org  2006-01-07 14:14 ---
Subject: Bug 25029

Author: pault
Date: Sat Jan  7 14:14:08 2006
New Revision: 109449

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=109449
Log:
2006-01-07  Paul Thomas  <[EMAIL PROTECTED]>

PR fortran/22146
* trans-array.c (gfc_reverse_ss): Remove static attribute.
(gfc_walk_elemental_function_args): Replace gfc_expr * argument for
the function call with the corresponding gfc_actual_arglist*.  Change
code accordingly.
(gfc_walk_function_expr): Call to gfc_walk_elemental_function_args
now requires the actual argument list instead of the expression for
the function call.
* trans-array.h: Modify the prototype for
gfc_walk_elemental_function_args
and provide a prototype for gfc_reverse_ss.
* trans-stmt.h (gfc_trans_call): Add the scalarization code for the
case
where an elemental subroutine has array valued actual arguments.

PR fortran/25029
PR fortran/21256
PR fortran/20868
PR fortran/20870
* resolve.c (check_assumed_size_reference): New function to check for
upper
bound in assumed size array references.
(resolve_assumed_size_actual): New function to do a very restricted
scan
of actual argument expressions of those procedures for which incomplete
assumed size array references are not allowed.
(resolve_function, resolve_call): Switch off assumed size checking of
actual arguments, except for elemental procedures and intrinsic
inquiry functions, in some circumstances.
(resolve_variable): Call check_assumed_size_reference.

2006-01-07  Paul Thomas  <[EMAIL PROTECTED]>

PR fortran/22146
* gfortran.dg/elemental_subroutine_1.f90: New test.
* gfortran.dg/elemental_subroutine_2.f90: New test.

PR fortran/25029
PR fortran/21256
* gfortran.dg/assumed_size_refs_1.f90: New test.

PR fortran/20868
PR fortran/20870
* gfortran.dg/assumed_size_refs_2.f90: New test.
* gfortran.dg/initialization_1.f90: Change warning message.

Added:
trunk/gcc/testsuite/gfortran.dg/assumed_size_refs_1.f90   (with props)
trunk/gcc/testsuite/gfortran.dg/assumed_size_refs_2.f90   (with props)
trunk/gcc/testsuite/gfortran.dg/elemental_subroutine_1.f90
trunk/gcc/testsuite/gfortran.dg/elemental_subroutine_2.f90
Modified:
trunk/MAINTAINERS
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/resolve.c
trunk/gcc/fortran/trans-array.c
trunk/gcc/fortran/trans-array.h
trunk/gcc/fortran/trans-intrinsic.c
trunk/gcc/fortran/trans-stmt.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/initialization_1.f90

Added: trunk/gcc/testsuite/gfortran.dg/assumed_size_refs_1.f90
URL:
http://gcc.gnu.org/viewcvs/trunk/gcc/testsuite/gfortran.dg/assumed_size_refs_1.f90?root=gcc&view=auto&rev=109449
==
--- trunk/gcc/testsuite/gfortran.dg/assumed_size_refs_1.f90 (added)
+++ trunk/gcc/testsuite/gfortran.dg/assumed_size_refs_1.f90 Sat Jan  7 14:14:08
2006
@@ -1,0 +1,64 @@
+!==assumed_size_refs_1.f90==
+! { dg-do compile }
+! Test the fix for PR25029, PR21256 in which references to
+! assumed size arrays without an upper bound to the last
+! dimension were generating no error. The first version of
+! the patch failed in DHSEQR, as pointed out by Toon Moene
+! in http://gcc.gnu.org/ml/fortran/2005-12/msg00466.html
+!
+! Contributed by Paul Thomas  <[EMAIL PROTECTED]>
+!
+program assumed_size_test_1
+  implicit none
+  real a(2, 4)
+
+  a = 1.0
+  call foo (a)
+
+contains
+  subroutine foo(m)
+real, target :: m(1:2, *)
+real x(2,2,2)
+real, external :: bar
+real, pointer :: p(:,:), q(:,:)
+allocate (q(2,2))
+
+! PR25029
+p => m ! { dg-error "upper bound in the last
dimension" }
+q = m  ! { dg-error "upper bound in the last
dimension" }
+
+! PR21256( and PR25060)
+m = 1  ! { dg-error "upper bound in the last
dimension" }
+
+m(1,1) = 2.0
+x = bar (m)
+x = fcn (m)! { dg-error "upper bound in the last
dimension" }
+m(:, 1:2) = fcn (q)
+call sub (m, x)! { dg-error "upper bound in the last
dimension" }
+call sub (m(1:2, 1:2), x)
+print *, p
+
+call DHSEQR(x)
+
+  end subroutine foo
+
+  elemental function fcn (a) result (b)
+real, intent(in) :: a
+real :: b
+b = 2.0 * a
+  end function fcn
+
+  elemental subroutine sub (a, b)
+real, intent(inout) :: a, b
+b = 2.0 * a
+  end subroutine sub
+  
+  SUBROUTINE DHSEQR( WORK )
+REAL WORK( * )
+EXTERNAL   DLARFX
+INTRINSIC  MIN
+WORK( 1 ) = 1.0
+CALL DLARFX( MIN( 1, 8 ), WORK )
+  END SUBROUTINE DHSEQR
+
+end pr

[Bug fortran/22146] ICE when calling ELEMENTAL subroutines

2006-01-07 Thread pault at gcc dot gnu dot org


--- Comment #7 from pault at gcc dot gnu dot org  2006-01-07 14:14 ---
Subject: Bug 22146

Author: pault
Date: Sat Jan  7 14:14:08 2006
New Revision: 109449

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=109449
Log:
2006-01-07  Paul Thomas  <[EMAIL PROTECTED]>

PR fortran/22146
* trans-array.c (gfc_reverse_ss): Remove static attribute.
(gfc_walk_elemental_function_args): Replace gfc_expr * argument for
the function call with the corresponding gfc_actual_arglist*.  Change
code accordingly.
(gfc_walk_function_expr): Call to gfc_walk_elemental_function_args
now requires the actual argument list instead of the expression for
the function call.
* trans-array.h: Modify the prototype for
gfc_walk_elemental_function_args
and provide a prototype for gfc_reverse_ss.
* trans-stmt.h (gfc_trans_call): Add the scalarization code for the
case
where an elemental subroutine has array valued actual arguments.

PR fortran/25029
PR fortran/21256
PR fortran/20868
PR fortran/20870
* resolve.c (check_assumed_size_reference): New function to check for
upper
bound in assumed size array references.
(resolve_assumed_size_actual): New function to do a very restricted
scan
of actual argument expressions of those procedures for which incomplete
assumed size array references are not allowed.
(resolve_function, resolve_call): Switch off assumed size checking of
actual arguments, except for elemental procedures and intrinsic
inquiry functions, in some circumstances.
(resolve_variable): Call check_assumed_size_reference.

2006-01-07  Paul Thomas  <[EMAIL PROTECTED]>

PR fortran/22146
* gfortran.dg/elemental_subroutine_1.f90: New test.
* gfortran.dg/elemental_subroutine_2.f90: New test.

PR fortran/25029
PR fortran/21256
* gfortran.dg/assumed_size_refs_1.f90: New test.

PR fortran/20868
PR fortran/20870
* gfortran.dg/assumed_size_refs_2.f90: New test.
* gfortran.dg/initialization_1.f90: Change warning message.

Added:
trunk/gcc/testsuite/gfortran.dg/assumed_size_refs_1.f90   (with props)
trunk/gcc/testsuite/gfortran.dg/assumed_size_refs_2.f90   (with props)
trunk/gcc/testsuite/gfortran.dg/elemental_subroutine_1.f90
trunk/gcc/testsuite/gfortran.dg/elemental_subroutine_2.f90
Modified:
trunk/MAINTAINERS
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/resolve.c
trunk/gcc/fortran/trans-array.c
trunk/gcc/fortran/trans-array.h
trunk/gcc/fortran/trans-intrinsic.c
trunk/gcc/fortran/trans-stmt.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/initialization_1.f90

Added: trunk/gcc/testsuite/gfortran.dg/assumed_size_refs_1.f90
URL:
http://gcc.gnu.org/viewcvs/trunk/gcc/testsuite/gfortran.dg/assumed_size_refs_1.f90?root=gcc&view=auto&rev=109449
==
--- trunk/gcc/testsuite/gfortran.dg/assumed_size_refs_1.f90 (added)
+++ trunk/gcc/testsuite/gfortran.dg/assumed_size_refs_1.f90 Sat Jan  7 14:14:08
2006
@@ -1,0 +1,64 @@
+!==assumed_size_refs_1.f90==
+! { dg-do compile }
+! Test the fix for PR25029, PR21256 in which references to
+! assumed size arrays without an upper bound to the last
+! dimension were generating no error. The first version of
+! the patch failed in DHSEQR, as pointed out by Toon Moene
+! in http://gcc.gnu.org/ml/fortran/2005-12/msg00466.html
+!
+! Contributed by Paul Thomas  <[EMAIL PROTECTED]>
+!
+program assumed_size_test_1
+  implicit none
+  real a(2, 4)
+
+  a = 1.0
+  call foo (a)
+
+contains
+  subroutine foo(m)
+real, target :: m(1:2, *)
+real x(2,2,2)
+real, external :: bar
+real, pointer :: p(:,:), q(:,:)
+allocate (q(2,2))
+
+! PR25029
+p => m ! { dg-error "upper bound in the last
dimension" }
+q = m  ! { dg-error "upper bound in the last
dimension" }
+
+! PR21256( and PR25060)
+m = 1  ! { dg-error "upper bound in the last
dimension" }
+
+m(1,1) = 2.0
+x = bar (m)
+x = fcn (m)! { dg-error "upper bound in the last
dimension" }
+m(:, 1:2) = fcn (q)
+call sub (m, x)! { dg-error "upper bound in the last
dimension" }
+call sub (m(1:2, 1:2), x)
+print *, p
+
+call DHSEQR(x)
+
+  end subroutine foo
+
+  elemental function fcn (a) result (b)
+real, intent(in) :: a
+real :: b
+b = 2.0 * a
+  end function fcn
+
+  elemental subroutine sub (a, b)
+real, intent(inout) :: a, b
+b = 2.0 * a
+  end subroutine sub
+  
+  SUBROUTINE DHSEQR( WORK )
+REAL WORK( * )
+EXTERNAL   DLARFX
+INTRINSIC  MIN
+WORK( 1 ) = 1.0
+CALL DLARFX( MIN( 1, 8 ), WORK )
+  END SUBROUTINE DHSEQR
+
+end pr

[Bug fortran/21256] Illegal use of assumed-sized array in an array expression

2006-01-07 Thread pault at gcc dot gnu dot org


--- Comment #6 from pault at gcc dot gnu dot org  2006-01-07 14:14 ---
Subject: Bug 21256

Author: pault
Date: Sat Jan  7 14:14:08 2006
New Revision: 109449

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=109449
Log:
2006-01-07  Paul Thomas  <[EMAIL PROTECTED]>

PR fortran/22146
* trans-array.c (gfc_reverse_ss): Remove static attribute.
(gfc_walk_elemental_function_args): Replace gfc_expr * argument for
the function call with the corresponding gfc_actual_arglist*.  Change
code accordingly.
(gfc_walk_function_expr): Call to gfc_walk_elemental_function_args
now requires the actual argument list instead of the expression for
the function call.
* trans-array.h: Modify the prototype for
gfc_walk_elemental_function_args
and provide a prototype for gfc_reverse_ss.
* trans-stmt.h (gfc_trans_call): Add the scalarization code for the
case
where an elemental subroutine has array valued actual arguments.

PR fortran/25029
PR fortran/21256
PR fortran/20868
PR fortran/20870
* resolve.c (check_assumed_size_reference): New function to check for
upper
bound in assumed size array references.
(resolve_assumed_size_actual): New function to do a very restricted
scan
of actual argument expressions of those procedures for which incomplete
assumed size array references are not allowed.
(resolve_function, resolve_call): Switch off assumed size checking of
actual arguments, except for elemental procedures and intrinsic
inquiry functions, in some circumstances.
(resolve_variable): Call check_assumed_size_reference.

2006-01-07  Paul Thomas  <[EMAIL PROTECTED]>

PR fortran/22146
* gfortran.dg/elemental_subroutine_1.f90: New test.
* gfortran.dg/elemental_subroutine_2.f90: New test.

PR fortran/25029
PR fortran/21256
* gfortran.dg/assumed_size_refs_1.f90: New test.

PR fortran/20868
PR fortran/20870
* gfortran.dg/assumed_size_refs_2.f90: New test.
* gfortran.dg/initialization_1.f90: Change warning message.

Added:
trunk/gcc/testsuite/gfortran.dg/assumed_size_refs_1.f90   (with props)
trunk/gcc/testsuite/gfortran.dg/assumed_size_refs_2.f90   (with props)
trunk/gcc/testsuite/gfortran.dg/elemental_subroutine_1.f90
trunk/gcc/testsuite/gfortran.dg/elemental_subroutine_2.f90
Modified:
trunk/MAINTAINERS
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/resolve.c
trunk/gcc/fortran/trans-array.c
trunk/gcc/fortran/trans-array.h
trunk/gcc/fortran/trans-intrinsic.c
trunk/gcc/fortran/trans-stmt.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/initialization_1.f90

Added: trunk/gcc/testsuite/gfortran.dg/assumed_size_refs_1.f90
URL:
http://gcc.gnu.org/viewcvs/trunk/gcc/testsuite/gfortran.dg/assumed_size_refs_1.f90?root=gcc&view=auto&rev=109449
==
--- trunk/gcc/testsuite/gfortran.dg/assumed_size_refs_1.f90 (added)
+++ trunk/gcc/testsuite/gfortran.dg/assumed_size_refs_1.f90 Sat Jan  7 14:14:08
2006
@@ -1,0 +1,64 @@
+!==assumed_size_refs_1.f90==
+! { dg-do compile }
+! Test the fix for PR25029, PR21256 in which references to
+! assumed size arrays without an upper bound to the last
+! dimension were generating no error. The first version of
+! the patch failed in DHSEQR, as pointed out by Toon Moene
+! in http://gcc.gnu.org/ml/fortran/2005-12/msg00466.html
+!
+! Contributed by Paul Thomas  <[EMAIL PROTECTED]>
+!
+program assumed_size_test_1
+  implicit none
+  real a(2, 4)
+
+  a = 1.0
+  call foo (a)
+
+contains
+  subroutine foo(m)
+real, target :: m(1:2, *)
+real x(2,2,2)
+real, external :: bar
+real, pointer :: p(:,:), q(:,:)
+allocate (q(2,2))
+
+! PR25029
+p => m ! { dg-error "upper bound in the last
dimension" }
+q = m  ! { dg-error "upper bound in the last
dimension" }
+
+! PR21256( and PR25060)
+m = 1  ! { dg-error "upper bound in the last
dimension" }
+
+m(1,1) = 2.0
+x = bar (m)
+x = fcn (m)! { dg-error "upper bound in the last
dimension" }
+m(:, 1:2) = fcn (q)
+call sub (m, x)! { dg-error "upper bound in the last
dimension" }
+call sub (m(1:2, 1:2), x)
+print *, p
+
+call DHSEQR(x)
+
+  end subroutine foo
+
+  elemental function fcn (a) result (b)
+real, intent(in) :: a
+real :: b
+b = 2.0 * a
+  end function fcn
+
+  elemental subroutine sub (a, b)
+real, intent(inout) :: a, b
+b = 2.0 * a
+  end subroutine sub
+  
+  SUBROUTINE DHSEQR( WORK )
+REAL WORK( * )
+EXTERNAL   DLARFX
+INTRINSIC  MIN
+WORK( 1 ) = 1.0
+CALL DLARFX( MIN( 1, 8 ), WORK )
+  END SUBROUTINE DHSEQR
+
+end pr

[Bug fortran/20868] reference to upper bound of assumed-size array

2006-01-07 Thread pault at gcc dot gnu dot org


--- Comment #2 from pault at gcc dot gnu dot org  2006-01-07 14:14 ---
Subject: Bug 20868

Author: pault
Date: Sat Jan  7 14:14:08 2006
New Revision: 109449

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=109449
Log:
2006-01-07  Paul Thomas  <[EMAIL PROTECTED]>

PR fortran/22146
* trans-array.c (gfc_reverse_ss): Remove static attribute.
(gfc_walk_elemental_function_args): Replace gfc_expr * argument for
the function call with the corresponding gfc_actual_arglist*.  Change
code accordingly.
(gfc_walk_function_expr): Call to gfc_walk_elemental_function_args
now requires the actual argument list instead of the expression for
the function call.
* trans-array.h: Modify the prototype for
gfc_walk_elemental_function_args
and provide a prototype for gfc_reverse_ss.
* trans-stmt.h (gfc_trans_call): Add the scalarization code for the
case
where an elemental subroutine has array valued actual arguments.

PR fortran/25029
PR fortran/21256
PR fortran/20868
PR fortran/20870
* resolve.c (check_assumed_size_reference): New function to check for
upper
bound in assumed size array references.
(resolve_assumed_size_actual): New function to do a very restricted
scan
of actual argument expressions of those procedures for which incomplete
assumed size array references are not allowed.
(resolve_function, resolve_call): Switch off assumed size checking of
actual arguments, except for elemental procedures and intrinsic
inquiry functions, in some circumstances.
(resolve_variable): Call check_assumed_size_reference.

2006-01-07  Paul Thomas  <[EMAIL PROTECTED]>

PR fortran/22146
* gfortran.dg/elemental_subroutine_1.f90: New test.
* gfortran.dg/elemental_subroutine_2.f90: New test.

PR fortran/25029
PR fortran/21256
* gfortran.dg/assumed_size_refs_1.f90: New test.

PR fortran/20868
PR fortran/20870
* gfortran.dg/assumed_size_refs_2.f90: New test.
* gfortran.dg/initialization_1.f90: Change warning message.

Added:
trunk/gcc/testsuite/gfortran.dg/assumed_size_refs_1.f90   (with props)
trunk/gcc/testsuite/gfortran.dg/assumed_size_refs_2.f90   (with props)
trunk/gcc/testsuite/gfortran.dg/elemental_subroutine_1.f90
trunk/gcc/testsuite/gfortran.dg/elemental_subroutine_2.f90
Modified:
trunk/MAINTAINERS
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/resolve.c
trunk/gcc/fortran/trans-array.c
trunk/gcc/fortran/trans-array.h
trunk/gcc/fortran/trans-intrinsic.c
trunk/gcc/fortran/trans-stmt.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/initialization_1.f90

Added: trunk/gcc/testsuite/gfortran.dg/assumed_size_refs_1.f90
URL:
http://gcc.gnu.org/viewcvs/trunk/gcc/testsuite/gfortran.dg/assumed_size_refs_1.f90?root=gcc&view=auto&rev=109449
==
--- trunk/gcc/testsuite/gfortran.dg/assumed_size_refs_1.f90 (added)
+++ trunk/gcc/testsuite/gfortran.dg/assumed_size_refs_1.f90 Sat Jan  7 14:14:08
2006
@@ -1,0 +1,64 @@
+!==assumed_size_refs_1.f90==
+! { dg-do compile }
+! Test the fix for PR25029, PR21256 in which references to
+! assumed size arrays without an upper bound to the last
+! dimension were generating no error. The first version of
+! the patch failed in DHSEQR, as pointed out by Toon Moene
+! in http://gcc.gnu.org/ml/fortran/2005-12/msg00466.html
+!
+! Contributed by Paul Thomas  <[EMAIL PROTECTED]>
+!
+program assumed_size_test_1
+  implicit none
+  real a(2, 4)
+
+  a = 1.0
+  call foo (a)
+
+contains
+  subroutine foo(m)
+real, target :: m(1:2, *)
+real x(2,2,2)
+real, external :: bar
+real, pointer :: p(:,:), q(:,:)
+allocate (q(2,2))
+
+! PR25029
+p => m ! { dg-error "upper bound in the last
dimension" }
+q = m  ! { dg-error "upper bound in the last
dimension" }
+
+! PR21256( and PR25060)
+m = 1  ! { dg-error "upper bound in the last
dimension" }
+
+m(1,1) = 2.0
+x = bar (m)
+x = fcn (m)! { dg-error "upper bound in the last
dimension" }
+m(:, 1:2) = fcn (q)
+call sub (m, x)! { dg-error "upper bound in the last
dimension" }
+call sub (m(1:2, 1:2), x)
+print *, p
+
+call DHSEQR(x)
+
+  end subroutine foo
+
+  elemental function fcn (a) result (b)
+real, intent(in) :: a
+real :: b
+b = 2.0 * a
+  end function fcn
+
+  elemental subroutine sub (a, b)
+real, intent(inout) :: a, b
+b = 2.0 * a
+  end subroutine sub
+  
+  SUBROUTINE DHSEQR( WORK )
+REAL WORK( * )
+EXTERNAL   DLARFX
+INTRINSIC  MIN
+WORK( 1 ) = 1.0
+CALL DLARFX( MIN( 1, 8 ), WORK )
+  END SUBROUTINE DHSEQR
+
+end pr

[Bug bootstrap/25695] [4.2 Regression] bootstrap no longer does a comparision

2006-01-07 Thread bonzini at gnu dot org


--- Comment #2 from bonzini at gnu dot org  2006-01-07 10:01 ---
Huh?  We do in the toplevel make target "compare".

Paolo


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING


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




[Bug bootstrap/25670] [4.2 Regression] build fail with 'make all-gcc'

2006-01-07 Thread bonzini at gnu dot org


--- Comment #2 from bonzini at gnu dot org  2006-01-07 10:01 ---
*** Bug 25694 has been marked as a duplicate of this bug. ***


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 CC||amylaar at gcc dot gnu dot
   ||org


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




[Bug other/25694] selective non-bootstrap build broken

2006-01-07 Thread bonzini at gnu dot org


--- Comment #3 from bonzini at gnu dot org  2006-01-07 10:01 ---


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


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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