[Bug fortran/16580] gfortran ICE on test g77.f-torture/execute/intrinsic77.f

2006-10-02 Thread fxcoudert at gcc dot gnu dot org


--- Comment #5 from fxcoudert at gcc dot gnu dot org  2006-10-02 07:10 
---
Patch submitted here: http://gcc.gnu.org/ml/fortran/2006-10/msg00022.html


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |fxcoudert at gcc dot gnu dot
   |dot org |org
URL||http://gcc.gnu.org/ml/fortra
   ||n/2006-10/msg00022.html
 Status|NEW |ASSIGNED
   GCC host triplet|i686-pc-cygwin  |
   Keywords||patch
  Known to fail||4.2.0 4.1.2
   Last reconfirmed|2006-07-09 10:14:53 |2006-10-02 07:10:19
   date||
   Target Milestone|--- |4.2.0


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



[Bug fortran/29288] All intrinsics are allowed as actual arguments

2006-10-02 Thread fxcoudert at gcc dot gnu dot org


--- Comment #1 from fxcoudert at gcc dot gnu dot org  2006-10-02 07:11 
---
Patch submitted here: http://gcc.gnu.org/ml/fortran/2006-10/msg00022.html


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

URL||http://gcc.gnu.org/ml/fortra
   ||n/2006-10/msg00022.html
   Keywords||patch
  Known to fail||4.2.0 4.1.2
   Target Milestone|--- |4.2.0


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



[Bug fortran/20541] TR 15581: ALLOCATABLE components

2006-10-02 Thread sfilippone at uniroma2 dot it


--- Comment #31 from sfilippone at uniroma2 dot it  2006-10-02 07:21 ---
For the record: my test application runs to completion with good results
snapshot 20060930 + alloc_comps0929.diff. 


-- 


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



[Bug c++/29226] [4.0/4.1/4.2 regression] ICE in make_decl_rtl, at varasm.c:886

2006-10-02 Thread pinskia at gcc dot gnu dot org


--- Comment #6 from pinskia at gcc dot gnu dot org  2006-10-02 07:31 ---
Hmm, the sizeof expression causes use to create the expression:
(cast)NON_LVALUE_EXPR>


-- 


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



[Bug fortran/29210] Name parameter in complex constant not allowed in F95

2006-10-02 Thread fxcoudert at gcc dot gnu dot org


--- Comment #1 from fxcoudert at gcc dot gnu dot org  2006-10-02 07:34 
---
I'll do it.


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |fxcoudert at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
  Known to fail||4.2.0 4.1.2
   Last reconfirmed|-00-00 00:00:00 |2006-10-02 07:34:51
   date||


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



[Bug fortran/27900] ICE using intrinsics as arguments

2006-10-02 Thread fxcoudert at gcc dot gnu dot org


--- Comment #4 from fxcoudert at gcc dot gnu dot org  2006-10-02 07:39 
---
Further reduced testcase (no need for a module):

  implicit none
  integer i
  i = len("123")
  call sub(len)
  end

When the len in "call sub(len)" is resolved, it is never given its correct
return type, which leads to the ICE. I still don't understand why the implicit
none is doing this on us... Paul, any idea?


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

  GCC build triplet|i686-pc-linux-gnu   |
   GCC host triplet|i686-pc-linux-gnu   |
 GCC target triplet|i686-pc-linux-gnu   |
   Keywords||ice-on-valid-code


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



[Bug fortran/29315] error passing an array derived from type element

2006-10-02 Thread paul dot richard dot thomas at cea dot fr


--- Comment #3 from paul dot richard dot thomas at cea dot fr  2006-10-02 
08:09 ---
(In reply to comment #2)
> Confirmed, we don't set the stride correctly as far as I can tell.

This comes about because of the admitted kludge in the mechanism for passing
components of derived type arrays. At line 1588 in trans-exp.c, you will find
the comment:

/* Returns a reference to a temporary array into which a component of
   an actual argument derived type array is copied and then returned
   after the function call.
   TODO Get rid of this kludge, when array descriptors are capable of
   handling aliased arrays.  */

Maybe the time has come for byte size strides, although it will be a horrific
job to implement.

Paul


-- 


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



[Bug fortran/29210] Name parameter in complex constant not allowed in F95

2006-10-02 Thread fxcoudert at gcc dot gnu dot org


--- Comment #2 from fxcoudert at gcc dot gnu dot org  2006-10-02 08:11 
---
Index: gcc/fortran/primary.c
===
--- gcc/fortran/primary.c   (revision 116798)
+++ gcc/fortran/primary.c   (working copy)
@@ -1084,6 +1084,10 @@
   return MATCH_ERROR;
 }

+  if (gfc_notify_std (GFC_STD_F2003, "Fortran 2003: PARAMETER symbol in "
+ "complex constant at %C") == FAILURE)
+return MATCH_ERROR;
+
   switch (sym->value->ts.type)
 {
 case BT_REAL:


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

   Keywords||patch


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



[Bug fortran/29210] Name parameter in complex constant not allowed in F95

2006-10-02 Thread fxcoudert at gcc dot gnu dot org


--- Comment #3 from fxcoudert at gcc dot gnu dot org  2006-10-02 09:21 
---
Subject: Bug 29210

Author: fxcoudert
Date: Mon Oct  2 09:21:45 2006
New Revision: 117368

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=117368
Log:
PR fortran/29210

* primary.c (match_sym_complex_part): Named constants as real or
imaginary part of complex a named constant are only allowed in
Fortran 2003.

* gfortran.dg/complex_parameter_1.f90: New test.

Added:
trunk/gcc/testsuite/gfortran.dg/complex_parameter_1.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/primary.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug fortran/29210] [4.1 only] Name parameter in complex constant not allowed in F95

2006-10-02 Thread fxcoudert at gcc dot gnu dot org


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

  Known to fail|4.2.0 4.1.2 |4.1.2
  Known to work||4.2.0
Summary|Name parameter in complex   |[4.1 only] Name parameter in
   |constant not allowed in F95 |complex constant not allowed
   ||in F95
   Target Milestone|--- |4.2.0


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



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

2006-10-02 Thread mrs at apple dot com


--- Comment #16 from mrs at apple dot com  2006-10-02 09:32 ---
The dynamic type of the object at &i is indeed float and has the value 7.0 (iff
align and sizes work out).  We permitted this so that can can do:

  class C { ... };
  char buf[1024];
  new (&buf[n]) C

and have the dynamic type of the storage be C.  You can know the dynamic type
is C, by doing a virtual dispatch, or by asking for the name of the type with
rtti.

Likewise, you can do:

  new (&i) float(7.0)

with the same effects.  The dynamic type is float, and the value is 7.0, and
this is in all ways the same as:

  *(float*)&i = 7.0

Thinking about this some more, it would appear that it is unsafe to reorder
writes of otherwise non-conflicting types past each other as type based
analysis alone isn't enough to ensure they don't conflict.  It might be
reasonable to add the C rules that the dynamic type _must_ match the static
(declared) type, if there is one for types other than pointer or pointer to
member the the language standard and to clarify the dynamic type of an object
when a bitwise copy of the object is made to better match the C rules.

Reads should be fine as they are required to be the same type as the write (or
character).  In practice, if the optimizer can't see the placement new, it
can't reorder things so this is safe; if it can see it, then it should do value
based analysis in addition to type analysis and conclude they conflict (or can
conflict) and still avoid doing the wrong thing.

I do agree, that for now, this isn't a bug in the library.  It could be made a
bug in the library by requring a placement new operator as the only way in
which storage can be reused as a different dynamic type.


-- 

mrs at apple dot com changed:

   What|Removed |Added

 CC||mrs at apple dot com


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



[Bug fortran/29317] New: gfortran.dg/exponent_1.f90 failure

2006-10-02 Thread fxcoudert at gcc dot gnu dot org
gfortran.dg/exponent_1.f90 is failing at all optimization levels on
x86_64-linux (see http://gcc.gnu.org/ml/gcc-testresults/2006-10/msg00081.html).
Here is the problem:

$ cat exponent_1.f90 
  real, parameter :: one = 1.0
  print *, exponent(one)
  if (exponent(one) /= 1.0) call abort
  end
$ gfortran -v
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ../trunk/configure --prefix=/utmp/coudert/gfortran/irun
--enable-languages=c,fortran : (reconfigured) ../trunk/configure
--prefix=/utmp/coudert/gfortran/irun --enable-languages=c,fortran
--enable-maintainer-mode : (reconfigured) ../trunk/configure
--prefix=/utmp/coudert/gfortran/irun --enable-languages=c,fortran
--enable-maintainer-mode
Thread model: posix
gcc version 4.2.0 20061001 (experimental)
$ gfortran -static exponent_1.f90 && ./a.out 
   0
zsh: abort  ./a.out


-- 
   Summary: gfortran.dg/exponent_1.f90 failure
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Keywords: wrong-code
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: fxcoudert at gcc dot gnu dot org
 GCC build triplet: x86_64-unkown-linux-gnu
  GCC host triplet: x86_64-unkown-linux-gnu
GCC target triplet: x86_64-unkown-linux-gnu


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



[Bug libfortran/18791] [4.1 only] CABS specifics declared of wrong type

2006-10-02 Thread fxcoudert at gcc dot gnu dot org


--- Comment #4 from fxcoudert at gcc dot gnu dot org  2006-10-02 09:37 
---
Subject: Bug 18791

Author: fxcoudert
Date: Mon Oct  2 09:37:09 2006
New Revision: 117369

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=117369
Log:
PR fortran/18791

* gfortran.dg/specifics_1.f90: New test.
* gfortran.fortran-torture/execute/specifics.f90: Add tests for
complex specifics.

* m4/specific.m4: Special-case cabs so that its return type is
real. Special-case conjg so that their suffices are _4, _8, _10 and
_16 instead of _c4, _c8, _c10 and _c16.
* intrinsics/f2c_specifics.F90: Special-case conjg functions so
that their suffices are _4 and _8 instead of _c4 and _c8.
* generated/_conjg_c4.F90: Regenerate.
* generated/_conjg_c8.F90: Regenerate.
* generated/_conjg_c10.F90: Regenerate.
* generated/_conjg_c16.F90: Regenerate.
* generated/_abs_c4.F90: Regenerate.
* generated/_abs_c8.F90: Regenerate.
* generated/_abs_c10.F90: Regenerate.
* generated/_abs_c16.F90: Regenerate.

Added:
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/specifics_1.f90
  - copied unchanged from r117317,
trunk/gcc/testsuite/gfortran.dg/specifics_1.f90
Modified:
branches/gcc-4_1-branch/gcc/testsuite/ChangeLog
   
branches/gcc-4_1-branch/gcc/testsuite/gfortran.fortran-torture/execute/specifics.f90
branches/gcc-4_1-branch/libgfortran/ChangeLog
branches/gcc-4_1-branch/libgfortran/generated/_abs_c10.F90
branches/gcc-4_1-branch/libgfortran/generated/_abs_c16.F90
branches/gcc-4_1-branch/libgfortran/generated/_abs_c4.F90
branches/gcc-4_1-branch/libgfortran/generated/_abs_c8.F90
branches/gcc-4_1-branch/libgfortran/generated/_conjg_c10.F90
branches/gcc-4_1-branch/libgfortran/generated/_conjg_c16.F90
branches/gcc-4_1-branch/libgfortran/generated/_conjg_c4.F90
branches/gcc-4_1-branch/libgfortran/generated/_conjg_c8.F90
branches/gcc-4_1-branch/libgfortran/intrinsics/f2c_specifics.F90
branches/gcc-4_1-branch/libgfortran/m4/specific.m4


-- 


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



[Bug libfortran/18791] CABS specifics declared of wrong type

2006-10-02 Thread fxcoudert at gcc dot gnu dot org


--- Comment #5 from fxcoudert at gcc dot gnu dot org  2006-10-02 09:38 
---
Fixed on both 4.2 and 4.1


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to fail|4.1.1   |
  Known to work|4.2.0   |4.2.0 4.1.1
 Resolution||FIXED
Summary|[4.1 only] CABS specifics   |CABS specifics declared of
   |declared of wrong type  |wrong type
   Target Milestone|--- |4.1.2


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



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

2006-10-02 Thread fxcoudert at gcc dot gnu dot org


--- Comment #28 from fxcoudert at gcc dot gnu dot org  2006-10-02 09:41 
---
The only g77 intrinsic now missing to gfortran is FSEEK (and this is PR 22359).


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

   Last reconfirmed|2006-07-26 12:07:43 |2006-10-02 09:41:07
   date||


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



[Bug c++/29298] rejects valid specialization of member template classes

2006-10-02 Thread bkoz at gcc dot gnu dot org


--- Comment #3 from bkoz at gcc dot gnu dot org  2006-10-02 10:05 ---

Thanks Andrew. I agree, this is not permitted by the standard as the enclosing
class is not specialized.

What a bummer. I suppose I can work around this by making a more convoluted
inheritance chain.

This would have been a more elegant solution though, as the "real" case
involves multiple template parameters, and the enclosing class only really
needs to dependant types from these. Ugh! Ugh! Ugh!

-benjamin


-- 


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



[Bug c++/29298] rejects valid specialization of member template classes

2006-10-02 Thread bkoz at gcc dot gnu dot org


--- Comment #4 from bkoz at gcc dot gnu dot org  2006-10-02 10:06 ---

s/to/two


-- 


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



[Bug c++/29318] New: ICE: type_info of pointer to variable array

2006-10-02 Thread s__nakayama at infoseek dot jp
The following invalid code causes an ICE.

$ cat foo.cpp
#include 

int main()
{
  int i = 5;
  int va[i];
  const std::type_info& info(typeid(&va));

  return 0;
}

$ g++ foo.cpp
foo.cpp: In function 'int main()':
foo.cpp:7: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html> for instructions.


-- 
   Summary: ICE: type_info of pointer to variable array
   Product: gcc
   Version: 4.1.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: s__nakayama at infoseek dot jp


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



[Bug fortran/18026] boz initialization of REALs fails

2006-10-02 Thread fxcoudert at gcc dot gnu dot org


--- Comment #7 from fxcoudert at gcc dot gnu dot org  2006-10-02 11:09 
---
If it's a regression wrt g77, then it's not an enhancement, it's a bug.


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||fxcoudert at gcc dot gnu dot
   ||org
   Severity|enhancement |normal
   GCC host triplet|i686-pc-linux-gnu   |
   Keywords||rejects-valid
   Last reconfirmed|2006-03-05 03:41:04 |2006-10-02 11:09:35
   date||


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



[Bug fortran/25003] [4.1 only] Non-standard-conforming behaviour on pointer association special case

2006-10-02 Thread fxcoudert at gcc dot gnu dot org


--- Comment #3 from fxcoudert at gcc dot gnu dot org  2006-10-02 11:22 
---
This is now working on mainline but still failing on 4.1 branch.


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||fxcoudert at gcc dot gnu dot
   ||org
   GCC host triplet|i686-pc-linux-gnu   |
 GCC target triplet|i686-pc-linux-gnu   |
   Keywords||wrong-code
  Known to fail||4.1.2
  Known to work||4.2.0
   Last reconfirmed|2006-02-26 18:46:50 |2006-10-02 11:22:59
   date||
Summary|Non-standard-conforming |[4.1 only] Non-standard-
   |behaviour on pointer|conforming behaviour on
   |association special case.   |pointer association special
   ||case
   Target Milestone|--- |4.2.0


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



[Bug target/29319] New: ICE unrecognizable insn: offset too large for larl (breaks glibc)

2006-10-02 Thread matz at gcc dot gnu dot org
This happens on the 4.1 branch, not on 4.2/trunk, but it's also latent there:

% cat large-ofs.c
static char l_info[100];
void bug1 (unsigned long tag)
{
  char *info = l_info;
  info[tag - 0x1 + 1] = 1;
}
void bug2 (unsigned long tag)
{
  char *info = l_info;
  info[tag - 0x7 + 2] = 2;
}
extern void abort();
int main()
{
  unsigned i;
  for (i = 0; i < sizeof(l_info); i++)
l_info[i] = 0;
  bug1(0x1);
  bug2(0x7);
  if (l_info[2] != 2 || l_info[1] != 1)
abort();
  return 0;
}

% gcc -O2 -fPIC -march=z9-109 large-ofs.c
large-ofs.c: In function ‘bug2’:
large-ofs.c:13: error: unrecognizable insn:
(insn 9 7 10 1 (set (reg:DI 45)
(const:DI (plus:DI (symbol_ref:DI ("l_info") [flags 0x2] )
(const_int -30064771038 [0xfff90022] -1 (nil)
(nil))
large-ofs.c:13: internal compiler error: in extract_insn, at recog.c:2084

This demonstrates two problems: 1) with such large offset to static (or
hidden) objects gcc is confused (bug2), and 2) when one inspects the asm
output for bug1 (comment out bug2 for that) we see:
bug1:
.LFB2:
larl%r1,l_info+34
lhi %r3,1
stc %r3,1(%r2,%r1)
br  %r14

Note how the subtraction of 0x7 is missing.  Both are a problem in
legitimize_pic_address.  In this case we are asked to legitimize
  (const:DI (plus:DI (symbol_ref:DI ("l_info") [flags 0x42]
  )
  (const_int -15032385264 [0xfffc8110])))

It detects that this is a local symbols plus an int offset, and hence tries
to use larl (this is z/arch after all).  But it checks only op0 (the
symbol_ref) for larl_operand(), not the offset.  But larl can only
accept numbers which fit in 33 bit, which indeed is also tested
by larl_operand.  But it never is called with the whole plus operand.
That is because it would also reject odd integer offsets which this very code
tries to handle.

So we need to handle that on our own.  If we do that then we'll see the second
bug, resulting in a segfault when the program is run.  It is the use of 'int'
to store an INTVAL when fixing up the case for odd offsets.

Note that this situation arises in glibc, ld.so.  The index into an array
is the DT_TAG (an arbitrary large 32bit number) minus the base for the
tag in question (a large constant like 0x700), and because the indexed
array contains pointers the overall offset if larger than 33 bit.

That attached patch fixes this testcase.


-- 
   Summary: ICE unrecognizable insn: offset too large for larl
(breaks glibc)
   Product: gcc
   Version: 4.1.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: matz at gcc dot gnu dot org
  GCC host triplet: s390x-linux


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



[Bug fortran/25708] Module loading is not good at all

2006-10-02 Thread fxcoudert at gcc dot gnu dot org


--- Comment #3 from fxcoudert at gcc dot gnu dot org  2006-10-02 11:23 
---
Confirmed and marked as an enhancement. After all, it's working :)


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

   Severity|normal  |enhancement
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2006-10-02 11:23:54
   date||


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



[Bug target/29319] ICE unrecognizable insn: offset too large for larl (breaks glibc)

2006-10-02 Thread matz at gcc dot gnu dot org


--- Comment #1 from matz at gcc dot gnu dot org  2006-10-02 11:24 ---
Created an attachment (id=12369)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12369&action=view)
proposed patch


-- 


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



[Bug fortran/27478] getting ": error: invalid operand to binary operator"

2006-10-02 Thread fxcoudert at gcc dot gnu dot org


--- Comment #6 from fxcoudert at gcc dot gnu dot org  2006-10-02 11:35 
---
That one is annoying. Reduced testcase is:

  FUNCTION X()
  ENTRY X1
  IF (X .GT. 0) CALL FOO(X)
  END

The error message is:

a.f: In function ‘master.0.x’:
a.f:3: error: invalid operand to binary operator
__result_master.0.xD.914

a.f:3: internal compiler error: verify_stmts failed


And the original tree dump is:

x ()
{
  return master.0.x (0);


x1 ()
{
  return master.0.x (1);


master.0.x (__entry)
{
  real4 __result_master.0.x;
  real4 x.0 [value-expr: __result_master.0.x];

  switch (__entry)
{
  case 0:;
  goto L.2;
  case 1:;
  goto L.4;
}
  L.2:;
  L.4:;
  if (x.0 > 0.0)
{
  foo (&x.0);
}
  else
{
  (void) 0;
}
  return __result_master.0.x;
}


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

   Keywords||ice-on-valid-code
   Last reconfirmed|2006-06-04 15:16:36 |2006-10-02 11:35:36
   date||


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



[Bug target/29319] ICE unrecognizable insn: offset too large for larl (breaks glibc)

2006-10-02 Thread matz at gcc dot gnu dot org


--- Comment #2 from matz at gcc dot gnu dot org  2006-10-02 11:35 ---
Note that with this patch solves the bug for this testcase, but it still
doesn't help with the general case.  With this slightly changed testcase:

% cat large-ofs2.c
static char l_info[100];
void bug1 (unsigned long tag)
{
  char *info = l_info;
  info[tag - 0x1 + 1] = 1;
}
void bug2 (unsigned long tag)
{
  char *info = l_info;
  info[tag - 0x1 + 1] = 2;
}
extern void abort();
int main()
{
  unsigned i;
  for (i = 0; i < sizeof(l_info); i++)
l_info[i] = 0;
  bug1(0x1);
  bug2(0x1);
  if (l_info[2] != 2 || l_info[1] != 1)
abort();
  return 0;
}

% gcc -S -O2 -fPIC -march=z9-109 large-ofs2.c
% gcc large-ofs2.s
large-ofs2.s: Assembler messages:
large-ofs2.s:19: Error: value of -4294967312 too large for field of 4 bytes at
18

Note how the bodies of both functions is exactly the same, but still it
only fails in the second function.  For reference here the asm of both
functions:

 6  bug1:
 7  .LFB2:
 8  larl%r1,l_info-4294967296
 9  lhi %r3,1
10  stc %r3,1(%r2,%r1)
11  br  %r14
12  .LFE2:
13  .size   bug1, .-bug1
14  .align  4
15  .globl bug2
16  .type   bug2, @function
17  bug2:
18  .LFB3:
19  larl%r1,l_info-4294967296
20  lhi %r3,2
21  stc %r3,1(%r2,%r1)
22  br  %r14

I assume the reason is, that the assembler somehow calculates this pc
relative.  In that case it could also break later during linking if the
linker doesn't have special means to fix up too large offsets.

So, I think s390x is in the same situation as x86-64.  We can't allow
large constant offsets on objects, even though instructions might accept
them, because the object might become placed just a bit too far away,
so that it's base is still in reach, while the offset added to it is not
anymore.  On x86-64 we solve that by artificially constraining the range
of offsets.  That should perhaps be done here too.  E.g. by using
DISP_IN_RANGE instead of the = test I copied from larl_operand.

Up to the maintainers.


-- 


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



[Bug fortran/27703] Linking example programs for PLplot causes error messages about multiple definition of __gfortran_transfer_character

2006-10-02 Thread fxcoudert at gcc dot gnu dot org


--- Comment #5 from fxcoudert at gcc dot gnu dot org  2006-10-02 11:37 
---
Closing this. We'd need a more precise definition to be able to do anything
about that, although I don't see a reason why shared libraries wouldn't work on
cygwin.


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||fxcoudert at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug fortran/28849] Missed array shape violation with RESHAPE despite -fbounds-check

2006-10-02 Thread fxcoudert at gcc dot gnu dot org


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||fxcoudert at gcc dot gnu dot
   ||org
 AssignedTo|unassigned at gcc dot gnu   |fxcoudert at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2006-10-02 11:54:18
   date||


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



[Bug fortran/29232] No warning/error for duplicate construct name

2006-10-02 Thread fxcoudert at gcc dot gnu dot org


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Keywords||diagnostic
   Last reconfirmed|-00-00 00:00:00 |2006-10-02 11:57:34
   date||


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



[Bug fortran/29240] optional argument for signal intrinsic not supported

2006-10-02 Thread fxcoudert at gcc dot gnu dot org


--- Comment #5 from fxcoudert at gcc dot gnu dot org  2006-10-02 11:59 
---
Confirmed, as Intel, Portland and other compilers accept this. Marked as an
enhancement, though, as g77 didn't support that anyway.


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||fxcoudert at gcc dot gnu dot
   ||org
   Severity|minor   |enhancement
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
  GCC build triplet|x86_64-suse-linux   |
   GCC host triplet|x86_64-suse-linux   |
 GCC target triplet|x86_64-suse-linux   |
   Last reconfirmed|-00-00 00:00:00 |2006-10-02 11:59:48
   date||


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



[Bug ada/29320] New: Segfault and strange behaviour related to "use" clauses

2006-10-02 Thread markus dot heichel at comsoft dot de
GCC seems to have more problems with "use" clauses (see also bug #26529).

gcc: Internal error: Segmentation fault (program gnat1)

The compiler has been compiled from source by:
> configure --prefix=/opt/gcc-4.1.1 --enable-languages=ada,c
> make bootstrap
> make install

The problem can be reproduced by compiling the source file below, using the
following command line:

gcc -c command.ads

The solution of the problem in this case is to use the correct range 0..6 for
INFO_T.COMMAND_NAME, but gcc should have printed an error message instead of
crashing, shouldn't it?

The compiler does not crash when size 8 is used for COMMAND_KIND_T, but how are
the enum values represented in COMMAND_NAME in this case?

command.ads
===
package COMMAND is

   type COMMAND_KIND_T is (START, STOP);

   for COMMAND_KIND_T use (START => 80, STOP => 81);

   -- for COMMAND_KIND_T'size use 8; -- not crashing
   for COMMAND_KIND_T'size use 16;   -- crashing

   type SUB_COMMAND_KIND_T is new COMMAND_KIND_T range START..STOP;

   for SUB_COMMAND_KIND_T'size use 7;

   type INFO_T (COMMAND_NAME : SUB_COMMAND_KIND_T := START) is record
  case COMMAND_NAME is
 when others => null;
  end case;
   end record;

   for INFO_T use record
  COMMAND_NAME   at 0 range 0..4;
   end record;

end COMMAND;
===


-- 
   Summary: Segfault and strange behaviour related to "use" clauses
   Product: gcc
   Version: 4.1.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: ada
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: markus dot heichel at comsoft dot de
 GCC build triplet: i686-pc-linux
  GCC host triplet: i686-pc-linux
GCC target triplet: i686-pc-linux


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



[Bug fortran/29321] New: optional arguments+derived types = segmentation fault

2006-10-02 Thread gcc-bugzilla at gcc dot gnu dot org


Compilation of functions/subroutines with optional derived type arguments 
gives segmentation fault. 

a.F90: In function 'func':
a.F90:11: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html> for instructions.

If I remove one of the optional arguments (C in SUB)
in the sample code below it appears to work

Environment:
System: Linux olavs 2.6.8-2-686 #1 Thu May 19 17:53:30 JST 2005 i686 GNU/Linux
Architecture: i686


host: i386-pc-linux-gnu
build: i386-pc-linux-gnu
target: i386-pc-linux-gnu
configured with: ../gcc/configure
--prefix=/cosmic/coudert/tmp/gfortran-20060906/irun
--enable-languages=c,fortran --host=i386-linux
--with-gmp=/cosmic/coudert/tmp/gfortran-20060906/gfortran_libs

How-To-Repeat:

MODULE MYINT
   TYPE NUM
  INTEGER :: R = 0
   END TYPE NUM
   CONTAINS 
  FUNCTION FUNC(A,B) RESULT(E)
  IMPLICIT NONE
  TYPE(NUM)  A,B,E
  INTENT(IN) ::  A,B
  OPTIONAL B
  E%R=A%R
  CALL SUB(A,E)
  END FUNCTION FUNC

  SUBROUTINE SUB(A,E,B,C)
  IMPLICIT NONE
  TYPE(NUM) A,E,B,C
  INTENT(IN)   A,B
  INTENT(OUT)  E,C
  OPTIONAL B,C
  E%R=A%R
  END SUBROUTINE SUB
END MODULE MYINT


-- 
   Summary: optional arguments+derived types = segmentation fault
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Severity: critical
  Priority: P2
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: vahtras at pdc dot kth dot se
 GCC build triplet: i386-pc-linux-gnu
  GCC host triplet: i386-pc-linux-gnu
GCC target triplet: i386-pc-linux-gnu


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



[Bug middle-end/27986] [4.0/4.1/4.2 Regression] jump to middle of loop on entry with using old version of an variable

2006-10-02 Thread amacleod at redhat dot com


--- Comment #4 from amacleod at redhat dot com  2006-10-02 13:56 ---
This is not something out of ssa can resolve on its own.

given this sequence:
  # s_2 = PHI ;
  # d_1 = PHI ;
:;
  D.1287_8 = MEM[base: d_1];
  s_9 = s_2 + D.1287_8;  <<<---  s_2 and s_9 have different values
  d_10 = d_1 + 4B;
  if (s_9 < g_11) goto ; else goto ;

  # s_7 = PHI ;  <<<--- original value of s_2 used here
:;
  *v_3 = s_7;

When s_9 is assigned s_2 + D.1287_8  , they have different values, so when s_2
is used in the PHI assigned to s_7, there is a stretch over which s_9 and s_2
are both live, and contain different values.

out of ssa cannot assign them to the same variable.

you are going to have a copy in the loop no matter what you do... 

right now we get:
:
  s = *(v + 4B);

:;
  s.31 = s + MEM[base: d]{*d};
  d = d + 4B;
  if (s.31 < g) goto ; else goto ;

:;
  s = s.31;
  goto  ();

:;
  *v = s;
  return;


the other alternative would be:
:;
  s.31 = s
  s = s + MEM[base: d]{*d};
  d = d + 4B;
  if (s < g) goto ; else goto ;

:;
  goto  ();

:;
  *v = s.31;


Is that any better? It looks pretty much the same to me.  It might help on a 2
address machine where you need r1 = r1 + exp, but that about it.


so Im not sure I understand what you want out of ssa to do with the code here.


-- 


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



[Bug middle-end/27986] [4.0/4.1/4.2 Regression] jump to middle of loop on entry with using old version of an variable

2006-10-02 Thread amacleod at redhat dot com


--- Comment #5 from amacleod at redhat dot com  2006-10-02 14:01 ---
I guess you can flatten the goto slightly. 

this is still something that is not really in the scope of out of ssa.  part of
the root of this problem is that the PHI is really just a copy, but the fact
that it remains a PHI prevents anyone from moving it. 

Its possible that we might be able to do something about it with some of the
RABLET work. it doesnt really reduce any register pressure, but we might be
able to recoginze that it flatten the cfg a bit... I'm not crazy about putting
it there tho.

Of course, any optimization could do the same thing. A quick pass to look for
these cases and transform those PHIs into copies at the appropriate place would
accomplish the same thing.


-- 


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



[Bug c++/29266] Rule that binding rvalue to a refernce need a copy ctor don't work

2006-10-02 Thread yuanfei8077 at gmail dot com


--- Comment #6 from yuanfei8077 at gmail dot com  2006-10-02 14:19 ---
Subject: Re:  Rule that binding rvalue to a refernce need a copy ctor don't
work

Thank you Andrew, appreciate your help on this topic.

-Kelvin


On 1 Oct 2006 20:33:33 -, pinskia at gcc dot gnu dot org
<[EMAIL PROTECTED]> wrote:
>
>
> --- Comment #5 from pinskia at gcc dot gnu dot org  2006-10-01 20:33 
> ---
> (In reply to comment #3)
> > Plesae seee Comment #2 From Kelvin 2006-09-28 23:25 [reply].
> >
> > In addition 2 questions I raised in the Commet2.  I also have one more 
> > question
> > about the rule "bind an rvalue to a reference,
> > we need to let copy ctor of the class be accessible.", I found that this 
> > rule
> > only effective when the reference is delcared as "const &", but if we remove
> > keyword "const", then "no matching" happen again.
>
> Because it will not be a copy constructor that can bind a rvalue to a 
> reference
> at that point so this is still not a bug.
>
>
> --
>
> pinskia at gcc dot gnu dot org changed:
>
>   What|Removed |Added
> 
> Status|UNCONFIRMED |RESOLVED
> Resolution||INVALID
>
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29266
>
> --- You are receiving this mail because: ---
> You reported the bug, or are watching the reporter.
>


-- 


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



[Bug fortran/29317] gfortran.dg/exponent_1.f90 failure

2006-10-02 Thread sgk at troutmask dot apl dot washington dot edu


--- Comment #1 from sgk at troutmask dot apl dot washington dot edu  
2006-10-02 14:22 ---
Subject: Re:   New: gfortran.dg/exponent_1.f90 failure

On Mon, Oct 02, 2006 at 09:32:55AM -, fxcoudert at gcc dot gnu dot org
wrote:
> gfortran.dg/exponent_1.f90 is failing at all optimization levels on
> x86_64-linux (see 
> http://gcc.gnu.org/ml/gcc-testresults/2006-10/msg00081.html).
> Here is the problem:
> 
> $ cat exponent_1.f90 
>   real, parameter :: one = 1.0
>   print *, exponent(one)
>   if (exponent(one) /= 1.0) call abort
>   end

What version of mpfr do you have?  This test will
fail if the version is not 2.2.0 or newer.

If you have a good mpfr, then the problem may be
similar to the one with nearest_1.f90 where the extra 
precision in the registers is bad (ie., add -ffloat-store
to the test).

One other possibility is the problem with subnormal 
numbers is also affecting this test.  I hope to look
into the subnormal issue later today.


-- 


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



[Bug fortran/29317] gfortran.dg/exponent_1.f90 failure

2006-10-02 Thread Francois-Xavier dot Coudert at ens dot fr


--- Comment #2 from Francois-Xavier dot Coudert at ens dot fr  2006-10-02 
14:27 ---
Subject: Re:  gfortran.dg/exponent_1.f90 failure

> If you have a good mpfr, then the problem may be similar to the one
> with nearest_1.f90 where the extra precision in the registers is bad
> (ie., add -ffloat-store to the test).

I do have mpfr-2.2.0, and adding -ffloat-store doesn't change the test.


-- 


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



[Bug fortran/27701] Two routines with the same name cause an interna; error in gfortran

2006-10-02 Thread paul dot richard dot thomas at cea dot fr


--- Comment #2 from paul dot richard dot thomas at cea dot fr  2006-10-02 
14:32 ---
(In reply to comment #1)
> The problem occurs on i386-*-freebsd

Noting that adding a dummy to the first of the subroutine declarations allows
the compiler to detect that there are two subroutines of the same name, we are
led by the error mesage to decl.c:636. The condition for detection of a
previously defined procedure is sym->formal [!= NULL].  Thus the case above
escapes. Patching this with:

Index: gcc/fortran/decl.c
===
*** gcc/fortran/decl.c  (révision 117367)
--- gcc/fortran/decl.c  (copie de travail)
*** get_proc_name (const char *name, gfc_sym
*** 635,641 
 accessible names.  */
if (sym->attr.flavor != 0
&& sym->attr.proc != 0
!   && sym->formal)
gfc_error_now ("Procedure '%s' at %C is already defined at %L",
   name, &sym->declared_at);

--- 635,642 
 accessible names.  */
if (sym->attr.flavor != 0
&& sym->attr.proc != 0
!   && (sym->attr.subroutine || sym->attr.function)
!   && sym->attr.if_source != IFSRC_UNKNOWN)
gfc_error_now ("Procedure '%s' at %C is already defined at %L",
   name, &sym->declared_at);

seems to do the right thing.  The attributes subroutine and function are not of
themselves enough, as I discovered when I had to correct the original patch.
This condition was replaced with that on sym->formal and tested with
internal_references_2.f90. Adding the check that the symbol has an interface
source to the subroutine/function test accomplishes the same thing and scoops
up procedures without dummies.

It regtests OK on Cygwin_NT/PIV.

Paul


-- 


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



[Bug fortran/29317] gfortran.dg/exponent_1.f90 failure

2006-10-02 Thread sgk at troutmask dot apl dot washington dot edu


--- Comment #3 from sgk at troutmask dot apl dot washington dot edu  
2006-10-02 15:00 ---
Subject: Re:  gfortran.dg/exponent_1.f90 failure

On Mon, Oct 02, 2006 at 02:27:47PM -, Francois-Xavier dot Coudert at ens
dot fr wrote:
> 
> 
> --- Comment #2 from Francois-Xavier dot Coudert at ens dot fr  2006-10-02 
> 14:27 ---
> Subject: Re:  gfortran.dg/exponent_1.f90 failure
> 
> > If you have a good mpfr, then the problem may be similar to the one
> > with nearest_1.f90 where the extra precision in the registers is bad
> > (ie., add -ffloat-store to the test).
> 
> I do have mpfr-2.2.0, and adding -ffloat-store doesn't change the test.
> 
> 

Can you send me the -fdump-tree-original file?


-- 


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



[Bug fortran/27588] -fbounds-check should catch substring out of range accesses

2006-10-02 Thread tobias dot burnus at physik dot fu-berlin dot de


--- Comment #3 from tobias dot burnus at physik dot fu-berlin dot de  
2006-10-02 15:15 ---
> From Francois-Xavier Coudert 2006-06-08
I'm writing a patch to add substring bounds checking. I hope to post it in the
next few days.

What is the status? If you have something, I'd save my time of looking at
trans-expr.c's gfc_conv_substring and trying to understand how to add it there.

Looking at http://www.polyhedron.com/pb05/linux/diagnose.html, this seems to be
the last area where gfortran is worse than all others.


-- 


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



[Bug fortran/29322] New: ICE with character optional arg

2006-10-02 Thread fxcoudert at gcc dot gnu dot org
$ cat u.f90 
  if (isscan () /= 0) call abort
contains
  integer function isscan (substr)
character(*), optional :: substr
if (.not.present(substr)) isscan = myscan ("foo", "over")
  end function isscan
end
$ gfortran u.f90 
u.f90: In function ‘MAIN__’:
u.f90:5: internal compiler error: Segmentation fault


-- 
   Summary: ICE with character optional arg
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Keywords: ice-on-valid-code
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: fxcoudert at gcc dot gnu dot org


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



[Bug fortran/28722] Fortran front-end produces mismatch trees

2006-10-02 Thread fxcoudert at gcc dot gnu dot org


--- Comment #3 from fxcoudert at gcc dot gnu dot org  2006-10-02 15:24 
---
Here's a detailed analysis of the current testsuite failures with Andrew's
patches from PR22368 (all patches applied) on i686-linux.

First testcase (from actual_array_constructor_1.f90):

  subroutine bar(a)
character(len=*) :: a
call foo((/ a, 'g' /))
  end

The error message issued is
actual_array_constructor_1.f90: In function ‘bar’:
actual_array_constructor_1.f90:3: error: statement types mismatch
(*D.941)[S.9D.942]{lb: 0 sz: _a.8D.939} = D.946;

charD.14[1:_aD.902]
charD.14[1:1]
actual_array_constructor_1.f90:3: internal compiler error: verify_stmts failed



Second testcase:

  interface
pure function double (string)
  character (len = *), intent (in) :: string
  character (len = len (string)) :: double
end function double
  end interface

  print *, f5("foo")

contains
  function f5 (string)
character (len = *) :: string
character (len = len (double (string))) :: f5
f5 = ''
  end function f5

end

returns (at -O1):

char_result_1.f90: In function ‘MAIN__’:
char_result_1.f90:1: error: statement types mismatch
D.949_16 = stringD.939_11;

charD.14[1:3] &
charD.14[1:_stringD.907] &
char_result_1.f90:1: internal compiler error: verify_stmts failed
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html> for instructions.


Third testcase:

  real c
  if (loc(c) == 0) call abort
  end

produces:

loc_2.f90: In function ‘MAIN__’:
loc_2.f90:2: error: types mismatch in comparsion


int4D.2

D.903 == 0;

loc_2.f90:2: internal compiler error: verify_stmts failed



Fourth testcase:

  call foo("g")
contains
  subroutine foo (s)
character(*), optional :: s
if (present(s)) call abort
  end subroutine
end

produces

missing_optional_dummy_1.f90: In function ‘MAIN__’:
missing_optional_dummy_1.f90:1: error: types mismatch in comparsion
charD.14[1:_sD.904] *

charD.14[1:1] *

sD.913_1 != 0B;

missing_optional_dummy_1.f90:1: internal compiler error: verify_stmts failed


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||fxcoudert at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2006-10-02 15:24:35
   date||


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



[Bug fortran/27588] -fbounds-check should catch substring out of range accesses

2006-10-02 Thread Francois-Xavier dot Coudert at ens dot fr


--- Comment #4 from Francois-Xavier dot Coudert at ens dot fr  2006-10-02 
15:32 ---
Subject: Re:  -fbounds-check should catch substring out of range accesses

> I'm writing a patch to add substring bounds checking. I hope to post it in the
> next few days.

Great!

> What is the status? If you have something, I'd save my time of looking
> at trans-expr.c's gfc_conv_substring and trying to understand how to
> add it there.

The status is: "I had the beginning of a patch, but it didn't work fully,
and I think it didn't survive summer cleaning of my account". But, I'll
be happy to answer any question you have, and review your patch.


-- 


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



[Bug tree-optimization/29323] New: set_nothrow_function_flags does invalid analysis on weak functions

2006-10-02 Thread amylaar at gcc dot gnu dot org
If a function definition is present, except.c:set_nothrow_function_flags marks
functions as nothrow depending on analysis of the function definition.
This is incorrect when the function does not bind locally (compare with
other function analysis in PR tree-optimization/27781).


-- 
   Summary: set_nothrow_function_flags does invalid analysis on weak
functions
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Keywords: wrong-code, EH
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: amylaar at gcc dot gnu dot org


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



[Bug tree-optimization/29323] set_nothrow_function_flags does invalid analysis on weak functions

2006-10-02 Thread amylaar at gcc dot gnu dot org


--- Comment #1 from amylaar at gcc dot gnu dot org  2006-10-02 16:09 ---
Created an attachment (id=12370)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12370&action=view)
test case - main file


-- 


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



[Bug tree-optimization/29323] set_nothrow_function_flags does invalid analysis on weak functions

2006-10-02 Thread amylaar at gcc dot gnu dot org


--- Comment #2 from amylaar at gcc dot gnu dot org  2006-10-02 16:10 ---
Created an attachment (id=12371)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12371&action=view)
test case - actual definition of function foo


-- 


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



[Bug target/25376] section attribute doesn't work on darwin

2006-10-02 Thread jconner at apple dot com


--- Comment #7 from jconner at apple dot com  2006-10-02 16:44 ---
(In reply to comment #6)
> Shouldn't this bug be marked as closed now?

Perhaps - however, it's not been fixed on the 4.0 or 4.1 branches...


-- 


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



[Bug fortran/18026] boz initialization of REALs fails

2006-10-02 Thread kargl at gcc dot gnu dot org


--- Comment #8 from kargl at gcc dot gnu dot org  2006-10-02 16:47 ---
Remove reject-valid keyword, again!
Return this to enhancement.

This is NOT a bug.  g77 compatibility and the Fortran 95 standard
have a conflict, and so IMNSHO the Fortran 95 standard wins.
See comment #3.  The Fortran 95 standard has quite explicit language
concerning how a BOZ is handled in a DATA statement, and that is what
gfortran implements.  A BOZ is handled consistently so that the
gfortran extension of allowing a BOZ in an assignment gives the same 
result as the DATA statement.

troutmask:kargl[204] cat a.f90
  PROGRAM GFCBUG19
  DOUBLE PRECISION y, x
  DATA x / Z'7FF0' /   ! Conforms to Fortran 95 standard
  y = Z'7FF0'  ! gfortran extension
  print *, x, y
  END
troutmask:kargl[205] gfc -o z a.f90
troutmask:kargl[206] ./z
  9.218868437227405E+018  9.218868437227405E+018

If someone wants to create a patch to implement a -fbroken-boz-behavior
option, then that's fine.  OTOH, the user can use the bit manipulation
functions and TRANSFER to create whatever bit pattern the user wants.
Or, the user can use the -fno-range-check option and simply compute
inf = 1./0. and nan = 0. / .0.


-- 

kargl at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||kargl at gcc dot gnu dot org
   Severity|normal  |enhancement
   Keywords|rejects-valid   |


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



[Bug c++/29318] [4.0/4.1/4.2 Regression] ICE: type_info of pointer to VLA

2006-10-02 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2006-10-02 16:47 ---
Confirmed.  3.0.4 and above ICE so this is a regression. 


-- 

pinskia 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-10-02 16:47:37
   date||
Summary|ICE: type_info of pointer to|[4.0/4.1/4.2 Regression]
   |variable array  |ICE: type_info of pointer to
   ||VLA
   Target Milestone|--- |4.0.4


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



[Bug target/25376] section attribute doesn't work on darwin

2006-10-02 Thread pinskia at gcc dot gnu dot org


--- Comment #8 from pinskia at gcc dot gnu dot org  2006-10-02 16:51 ---
(In reply to comment #7)
> Perhaps - however, it's not been fixed on the 4.0 or 4.1 branches...
But this is not a regression so closing as fixed.


-- 

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



[Bug fortran/29321] optional arguments+derived types = segmentation fault

2006-10-02 Thread pinskia at gcc dot gnu dot org


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

   Severity|critical|normal


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



[Bug fortran/29321] [4.1/4.2 Regression] optional arguments+derived types = segmentation fault

2006-10-02 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2006-10-02 17:04 ---
Confirmed, a regression. Looks related to PR 29284.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

  BugsThisDependsOn||29284
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
  GCC build triplet|i386-pc-linux-gnu   |
   GCC host triplet|i386-pc-linux-gnu   |
 GCC target triplet|i386-pc-linux-gnu   |
   Keywords||ice-on-valid-code
   Last reconfirmed|-00-00 00:00:00 |2006-10-02 17:04:39
   date||
Summary|optional arguments+derived  |[4.1/4.2 Regression]
   |types = segmentation fault  |optional arguments+derived
   ||types = segmentation fault
   Target Milestone|--- |4.1.2


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



[Bug rtl-optimization/29323] set_nothrow_function_flags does invalid analysis on weak functions

2006-10-02 Thread amylaar at gcc dot gnu dot org


--- Comment #3 from amylaar at gcc dot gnu dot org  2006-10-02 17:07 ---
While except.c:set_nothrow_function_flags analyzes rtl, the DECL_NOTHROW flag
it computes is a tree bit.  via calls.c:flags_from_decl_or_type ->
calls.c:call_expr_flags -> tree-eh.c:tree_could_throw_p makes this information
is made available to the tree optimizers.


-- 


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



[Bug tree-optimization/29212] ICE with -fipa-pta

2006-10-02 Thread pinskia at gcc dot gnu dot org


--- Comment #7 from pinskia at gcc dot gnu dot org  2006-10-02 17:28 ---
Confirmed, further reduced testcase:
struct StructB
{
 bool val_;
};
struct ClassF
{
 virtual void MetG(StructB value) = 0;
};
ClassF* MetJ ();
void MetN (StructB const & x)
{
 ClassF *VarI = MetJ();
 VarI->MetG ( x);
}


-- 

pinskia 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-10-02 17:28:08
   date||


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



[Bug driver/29270] "--" does not end option parsing

2006-10-02 Thread pinskia at gcc dot gnu dot org


--- Comment #4 from pinskia at gcc dot gnu dot org  2006-10-02 17:46 ---
Confirmed.


-- 

pinskia 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-10-02 17:46:28
   date||


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



[Bug c++/29291] [4.2 regression] ICE on invalid use of new

2006-10-02 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2006-10-02 17:47 ---
Confirmed.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2006-10-02 17:47:43
   date||


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



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

2006-10-02 Thread mmitchel at gcc dot gnu dot org


--- Comment #17 from mmitchel at gcc dot gnu dot org  2006-10-02 17:48 
---
I disagree with Mike's analysis.  I certainly understand the goals of placement
new, but I don't think that anyone intended this code:

  int i;
  *(float *)&i = 7.0;

to be valid.  I don't even think people intended this variant:

  int i;
  new (&i) float(7.0);

to be valid.  Note that a consequence of allowing this is that:

  int f() {
   int i = 3;
   new (&i) float(7.0);
   return i;
  }

is undefined -- not because of the overwriting of i, but because the return
statement reads memory of the wrong type.  Mike's position is that accessing a
variable using its static type is not always safe; I find this bizarre.

My personal opinion is that the authors of the standard just didn't think of
all the possible interactions of the various aspects.  I believe placement new
was intended to handle only arrays of characters, consistent with the special
dispensation given to character pointers.

However, I don't think my differences with Mike can be resolved without going
directly to the standards committee.  Fortunately, from the compiler point of
view, I'm saying "punt" and Mike is saying "punt harder".  So, it's probably
just a question of in how many cases we decide to disable type-based alias
analysis.


-- 


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



[Bug fortran/29322] [4.1/4.2 Regression] ICE with character optional arg

2006-10-02 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2006-10-02 17:50 ---
Confirmed, I think this is a dup of bug 29284, well it is at least related.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

  BugsThisDependsOn||29284
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2006-10-02 17:50:29
   date||
Summary|ICE with character optional |[4.1/4.2 Regression] ICE
   |arg |with character optional arg
   Target Milestone|--- |4.1.2


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



[Bug libgcj/29205] lib/pkgconfig/libgcj.pc needs to become version dependent

2006-10-02 Thread tromey at gcc dot gnu dot org


--- Comment #1 from tromey at gcc dot gnu dot org  2006-10-02 17:51 ---
I suspect we should put the version number, or at least major.minor,
into the name.  So, libgcj-4.1.pc, libgcj-4.2.pc, etc.
What do you think of this?


-- 

tromey at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||tromey at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2006-10-02 17:51:47
   date||


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



[Bug libgcj/29324] New: add wait handling hook

2006-10-02 Thread tromey at gcc dot gnu dot org
Currently libgcj assumes it can waitpid(-1,...).
This interacts poorly with other libraries which may
want to interact with subprocesses; for instance glib
has an API for spawning and waiting for children, and
frysk has to work around this problem (by disallowing
the use of Process).

libgcj ought to have a way to hook into the low-level
process code so that it can interact gracefully with
other libraries.  I think it is ok if this is CNI only.


-- 
   Summary: add wait handling hook
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: libgcj
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: tromey at gcc dot gnu dot org


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



[Bug libgcj/29324] add wait handling hook

2006-10-02 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2006-10-02 18:35 ---
Hmnm, is this really a bug, waitpid is used only in the reaper thread.


-- 


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



[Bug libgcj/29324] add wait handling hook

2006-10-02 Thread tromey at gcc dot gnu dot org


--- Comment #2 from tromey at gcc dot gnu dot org  2006-10-02 18:39 ---
Yes, it really is a bug.
libgcj can reap a child process started by some other library.
This means it is hard to use libgcj in conjunction with other libraries
which may want to do their own subprocess bookkeeping.


-- 

tromey 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-10-02 18:39:54
   date||


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



[Bug fortran/29317] gfortran.dg/exponent_1.f90 failure

2006-10-02 Thread sgk at troutmask dot apl dot washington dot edu


--- Comment #4 from sgk at troutmask dot apl dot washington dot edu  
2006-10-02 19:08 ---
Subject: Re:   New: gfortran.dg/exponent_1.f90 failure

On Mon, Oct 02, 2006 at 09:32:55AM -, fxcoudert at gcc dot gnu dot org
wrote:
> gfortran.dg/exponent_1.f90 is failing at all optimization levels on
> x86_64-linux (see 
> http://gcc.gnu.org/ml/gcc-testresults/2006-10/msg00081.html).
> Here is the problem:
> 
> $ cat exponent_1.f90 
>   real, parameter :: one = 1.0
>   print *, exponent(one)
>   if (exponent(one) /= 1.0) call abort
>   end

I can't reproduce this. :(

troutmask:sgk[243] gfc4x -o z f.f90
troutmask:sgk[244] ./z
   1
troutmask:sgk[245] gfc4x -o z -O f.f90
troutmask:sgk[246] ./z
   1
troutmask:sgk[247] gfc4x -o z -O2 f.f90
troutmask:sgk[248] ./z
   1
troutmask:sgk[249] gfc4x -o z -O3 f.f90
troutmask:sgk[250] ./z
   1


-- 


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



[Bug rtl-optimization/29294] 4.1, 4.2 (possibly 4.0?) not finding postmodify address mode on ARM

2006-10-02 Thread eplondke at gmail dot com


--- Comment #4 from eplondke at gmail dot com  2006-10-02 19:16 ---
(In reply to comment #3)
> Actually this case should not be using post modify at all except how many bits
> does ARM have to use for an offset? I thought 16bits which means you don't 
> need
> that at all and GCC should generate it without an increment.  Oh and this is a
> RTL opt issue.
> 

ARM normal arithmetic operands support an 8-bit integer rotated right by an
even
number of bits (0-30).  If you rotate at all some microarchitectures may cause 
stalls (Xscale maybe?)...

Load and Store word (and unsigned byte) have a +/- 12-bit offset.
Load and store other single values has a +/- 8-bit offset.
Load and store multiple may have no offset.

That's for ARM.  For THUMB, you get + 5 bits.

Both ARM and THUMB mode have postincrement modes.  ARM gets a decent
postmodify.  For THUMB you use the Load Multiple Increment After instruction
with a single
regster specified.

Looks like CSE1 is the first time that 

(set (reg) (mem (reg))) gets converted to
(set (reg) (mem (plus (reg) (4

I have noticed a propensity for postmodify to not be used in several targets 
comparing GCC 4.X to GCC 3.X.


-- 


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



[Bug c++/29298] rejects valid specialization of member template classes

2006-10-02 Thread sebor at roguewave dot com


--- Comment #5 from sebor at roguewave dot com  2006-10-02 19:19 ---
Interesting. The vanilla EDG front end rejects it as expected. I wonder why
Intel
accepts it when neither EDG nor gcc does. Maybe we should open a bug with them
to
find out ;-)


-- 


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



[Bug middle-end/18071] [4.0/4.1/4.2 Regression] -Winline does not respect -fno-default-inline

2006-10-02 Thread wilson at gcc dot gnu dot org


--- Comment #24 from wilson at gcc dot gnu dot org  2006-10-02 19:23 ---
Created an attachment (id=12372)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12372&action=view)
improved patch for inline warning

Works for simple testcases.  Needs full bootstrap regression test.


-- 


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



[Bug middle-end/18071] [4.0/4.1/4.2 Regression] -Winline does not respect -fno-default-inline

2006-10-02 Thread wilson at tuliptree dot org


--- Comment #25 from wilson at tuliptree dot org  2006-10-02 19:25 ---
Subject: Re:  [4.0/4.1/4.2 Regression] -Winline does
not respect -fno-default-inline

On Sat, 2006-09-30 at 12:36 +, lopezibanez at gmail dot com wrote:
> I think I found out what is going on, although I cannot decide myself what is
> the correct action.

If you look at Comment #19, you will see that I have already provided a
solution.  However, I see that I failed to add the patch I wrote to the
bug report.  I will do that now.  My work on this patch was interrupted
by health problems, and I haven't gotten back to it yet.  It is still
part of my large backlog.

Jim


-- 


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



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

2006-10-02 Thread mrs at apple dot com


--- Comment #18 from mrs at apple dot com  2006-10-02 19:28 ---
What is your position based upon?  Mine is based upon having been in the room
when we decided what the C rules probably were, what the C++ rules could be and
the up side and down side of each choice and where we decided what our intent
was going to be and lots of word smithing sessions as well.  You can see some
of the depth with which we discussed it in our formulation of the wording in
the standard:

6 Similarly,  before the lifetime of an object has started but after the
  storage which the object will occupy has been allocated or, after  the
  lifetime  of  an  object  has  ended  and before the storage which the
  object occupied is reused or released, any lvalue which refers to  the
  original  object may be used but only in limited ways.  Such an lvalue
  refers to allocated  storage  (_basic.stc.dynamic.deallocation_),  and
  using the properties of the lvalue which do not depend on its value is
  well-defined.  If  an  lvalue-to-rvalue  conversion  (_conv.lval_)  is
  applied  to such an lvalue, the program has undefined behavior; if the
  original object will be or was of a non-POD class  type,  the  program
  has undefined behavior if:

  --the lvalue is used to access a non-static data member or call a non-
static member function of the object, or

  --the lvalue is implicitly converted (_conv.ptr_) to a reference to  a
base class type, or

  --the   lvalue   is   used   as   the   operand   of   a   static_cast
(_expr.static.cast_) (except when the conversion  is  ultimately  to
char& or unsigned char&), or

  --the   lvalue   is   used   as   the   operand   of   a  dynamic_cast
(_expr.dynamic.cast_) or as the operand of typeid.

7 If, after the lifetime of an object has ended and before  the  storage
  which  the object occupied is reused or released, a new object is cre-
  ated at the storage location which the  original  object  occupied,  a
  pointer that pointed to the original object, a reference that referred
  to the original object, or the name of the original object will  auto-
  matically  refer  to  the new object and, once the lifetime of the new
  object has started, can be used to manipulate the new object, if:

  --the storage for the new object exactly overlays the storage location
which the original object occupied, and

  --the  new object is of the same type as the original object (ignoring
the top-level cv-qualifiers), and

  --the original object was a most derived  object  (_intro.object_)  of
type  T  and the new object is a most derived object of type T (that
is, they are not base class subobjects).  [Example:
  struct C {
  int i;
  void f();
  const C& operator=( const C& );
  };
  const C& C::operator=( const C& other)
  {
  if ( this != &other )
  {
  this->~C(); // lifetime of *this ends
  new (this) C(other);// new object of type C created
  f();// well-defined
  }
  return *this;
  }
  C c1;
  C c2;
  c1 = c2;// well-defined
  c1.f(); // well-defined; c1 refers to a new
object of type C
 --end example]

8 If a program ends the lifetime of an object  of  type  T  with  static
  (_basic.stc.static_)  or automatic (_basic.stc.auto_) storage duration
  and if T has a non-trivial destructor,35) the program must ensure that
  an object of the original type occupies  that  same  storage  location
  when  the implicit destructor call takes place; otherwise the behavior
  of the program is undefined.  This is true even if the block is exited
  with an exception.

We explcitly did consider overlaying one type with a completely different type
and did so intend for the standard to allow that.  Further, our intent of
saying that automatics and objects with static duration could be so changed
provided certain conditions were met was meant no only to state that this could
be done, but to state the exact sitations in which it was defined to do so.

> Mike's position is that accessing a variable using its static type is not 
> always safe; I find this bizarre.

Welcome to C++, let me quote the standard:

8 If a program ends the lifetime of an object  of  type  T  with  static
  (_basic.stc.static_)  or automatic (_basic.stc.auto_) storage duration
  and if T has a non-trivial destructor,35) the program must ensure that
  an object of the original type occupies  that  same  storage  location
  when  the implicit destructor call takes place; otherwise the behavior
  of the program is undefined.

If we didn't mean exactly what we wrote, why on earth would we write it?  Hint,
in this, we meant exactlty what was written.  I was there, in every single
meeting where we talked about it.  I know what our intent was,

[Bug middle-end/27478] entry and addressable and value-expr: and the gimplifier

2006-10-02 Thread pinskia at gcc dot gnu dot org


--- Comment #7 from pinskia at gcc dot gnu dot org  2006-10-02 19:39 ---
The gimplifier is going wrong.
It first uses the value-expr and then forgets that can be addressable or maybe
even worse we don't mark the result as addressable.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

  Component|fortran |middle-end
Summary|getting  ": error: invalid  |entry and addressable and
   |operand to binary operator" |value-expr: and the
   ||gimplifier


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



[Bug middle-end/27478] entry and addressable and value-expr: and the gimplifier

2006-10-02 Thread fxcoudert at gcc dot gnu dot org


--- Comment #8 from fxcoudert at gcc dot gnu dot org  2006-10-02 20:13 
---
I think the following can workaround the middle-end problem:

Index: trans-decl.c
===
--- trans-decl.c(revision 117368)
+++ trans-decl.c(working copy)
@@ -1866,6 +1866,7 @@
   TREE_PUBLIC (decl) = 0;
   TREE_USED (decl) = 1;
   GFC_DECL_RESULT (decl) = 1;
+  TREE_ADDRESSABLE (decl) = 1;

   layout_decl (decl, 0);


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

OtherBugsDependingO||19292
  nThis||
  Component|fortran |middle-end
  Known to fail||4.2.0
  Known to work||4.1.2
   Target Milestone|--- |4.2.0


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



[Bug c++/16625] Discarded Linkonce sections in .rodata

2006-10-02 Thread hacksaw at hacksaw dot org


--- Comment #32 from hacksaw at hacksaw dot org  2006-10-02 20:15 ---
Is the 3.3.x tree closed? If that is the case, should someone mark this bug
WONTFIX, and those who care can move on patching their gcc or moving to a
higher one?

Has anyone reproduced this bug with a higher compiler version?


-- 


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



[Bug c++/29298] rejects valid specialization of member template classes

2006-10-02 Thread pcarlini at suse dot de


--- Comment #6 from pcarlini at suse dot de  2006-10-02 20:51 ---
(In reply to comment #5)
> Interesting. The vanilla EDG front end rejects it as expected. I wonder why
> Intel accepts it when neither EDG nor gcc does.

Sorry about the trivial question: Intel in *strict* mode?


-- 


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



[Bug target/29292] configure produces strange gmp, mpfr lib directories.

2006-10-02 Thread danp57 at optonline dot net


--- Comment #3 from danp57 at optonline dot net  2006-10-02 21:02 ---
Subject: Re:  configure produces strange gmp, mpfr lib directories.

There are multiple logs --

1)  I switched to static libraries, but tried both static and shared 
(the static libs are more standard, and less likely to choke libtool -- 
if its having problems).
2)  I built gmp and mpfr separately (I've had successful builds on both 
Cygwin and OS X in that config), and I've used the mpfr that comes with 
the gmp distribution.  When I hack the Makefile to correct the complaint 
I'm writing about below, I still have problems resolving symbols.  
HOWEVER: the issue I'm looking at here is something I have been able to 
isolate, and it looks like a good place to start.

[EMAIL PROTECTED]:/geno4/watplatt/gcc/gcc-4.1.1.build $ 
../gcc-4.1.1/configure --without-nls 
--enable-languages=c,c++,fortran,objc,obj-c++ --with-gmp=/usr/local/ 
--with-mpfr=/usr/local/
loading cache ./config.cache
checking host system type... powerpc-ibm-aix5.3.0.0
checking target system type... powerpc-ibm-aix5.3.0.0
checking build system type... powerpc-ibm-aix5.3.0.0
checking for a BSD compatible install... ../gcc-4.1.1/install-sh -c
checking whether ln works... yes
checking whether ln -s works... yes
checking for gcc... gcc
checking whether the C compiler (gcc  ) works... yes
checking whether the C compiler (gcc  ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
checking for gnatbind... no
checking whether compiler driver understands Ada... no
checking how to compare bootstrapped objects... cmp --ignore-initial=16 
$$f1 $$f2
checking for correct version of gmp.h... yes
checking for MPFR... no
configure: error: GMP with MPFR support is required to build fortran
[EMAIL PROTECTED]:/geno4/watplatt/gcc/gcc-4.1.1.build $

When I switch the -with-gmp... to /usr/local/lib, the script builds, but 
the Makefile contains

# Where to find GMP
HOST_GMPLIBS = -L/usr/local/lib/lib -L/usr/local/lib/lib -lmpfr -lgmp
HOST_GMPINC = -I/usr/local/lib/include -I/usr/local/lib/include

It should say /usr/local/include, and /usr/local/lib.  The libs are there:

ls -CF /usr/local/lib/*gmp*
/usr/local/lib/libgmp.a/usr/local/lib/libgmp.la*
[EMAIL PROTECTED]:/geno4/watplatt/gcc/gcc-4.1.1.build $

 ls -CF /usr/local/lib/*mpfr*
/usr/local/lib/libmpfr.a/usr/local/lib/libmpfr.la*
[EMAIL PROTECTED]:/geno4/watplatt/gcc/gcc-4.1.1.build $

Without correcting the /usr/local/lib/lib reference in the make file, I get:

gcc   -g -O2 -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes 
-Wmissing-prototypes -pedantic -Wno-long-long -Wno-variadic-macros 
-Wold-style-definition -Wmissing-format-attribute-DHAVE_CONFIG_H  -o 
f951 \
fortran/arith.o fortran/array.o fortran/bbt.o fortran/check.o 
fortran/data.o fortran/decl.o fortran/dump-parse-tree.o fortran/error.o 
fortran/expr.o fortran/interface.o fortran/intrinsic.o fortran/io.o 
fortran/iresolve.o fort
ran/match.o fortran/matchexp.o fortran/misc.o fortran/module.o 
fortran/options.o fortran/parse.o fortran/primary.o fortran/resolve.o 
fortran/scanner.o fortran/simplify.o fortran/st.o fortran/symbol.o 
fortran/convert.o fortran/depende
ncy.o fortran/f95-lang.o fortran/trans.o fortran/trans-array.o 
fortran/trans-common.o fortran/trans-const.o fortran/trans-decl.o 
fortran/trans-expr.o fortran/trans-intrinsic.o fortran/trans-io.o 
fortran/trans-stmt.o fortran/trans-typ
es.o main.o  libbackend.a ../libcpp/libcpp.a -L/usr/local/lib/lib 
-L/usr/local/lib/lib -lmpfr -lgmp ../libcpp/libcpp.a -lintl -liconv 
../libiberty/libiberty.a
ld: 0711-317 ERROR: Undefined symbol: .__gmpfr_out_str
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more 
information.
collect2: ld returned 8 exit status
make[2]: *** [f951] Error 1
make[2]: Leaving directory `/geno4/watplatt/gcc/gcc-4.1.1.build/gcc'
make[1]: *** [all-gcc] Error 2
make[1]: Leaving directory `/geno4/watplatt/gcc/gcc-4.1.1.build'
make: *** [all] Error 2
[EMAIL PROTECTED]:/geno4/watplatt/gcc/gcc-4.1.1.build $


If I try to fix the /usr/local/lib/lib reference, there are yet more 
undefined symbols:

ld: 0711-317 ERROR: Undefined symbol: .mpfr_add
ld: 0711-317 ERROR: Undefined symbol: .mpfr_sqrt
ld: 0711-317 ERROR: Undefined symbol: .mpfr_log10
ld: 0711-317 ERROR: Undefined symbol: .__gmpz_tdiv_r
ld: 0711-317 ERROR: Undefined symbol: .__gmpz_fdiv_r
ld: 0711-317 ERROR: Undefined symbol: .mpfr_nextabove
ld: 0711-317 ERROR: Undefined symbol: .mpfr_nextbelow
ld: 0711-317 ERROR: Undefined symbol: .mpfr_ui_div
ld: 0711-317 ERROR: Undefined symbol: .mpfr_mul_2ui
ld: 0711-317 ERROR: Undefined symbol: .mpfr_set_ui
ld: 0711-317 ERROR: Undefined symbol: .mpfr_pow_ui
ld: 0711-317 ERROR: Undefined symbol: .__gmpz_get_d
ld: 0711-317 ERROR: Undefined symbol: .mpfr_get_d
ld: 0711-317 ERROR: Undefined symbol: .mpfr_mul_2si
ld: 0711-317 ERROR: Undefined symbol: .mpfr_div_ui
ld: 0711-317 ERROR: Undefined symbol: .mpfr_mul_ui
ld: 071

[Bug middle-end/18071] [4.0/4.1/4.2 Regression] -Winline does not respect -fno-default-inline

2006-10-02 Thread lopezibanez at gmail dot com


--- Comment #26 from lopezibanez at gmail dot com  2006-10-02 21:03 ---
(In reply to comment #25)
> If you look at Comment #19, you will see that I have already provided a
> solution.  However, I see that I failed to add the patch I wrote to the
> bug report.  I will do that now.  My work on this patch was interrupted
> by health problems, and I haven't gotten back to it yet.  It is still
> part of my large backlog.

And if you look at comment #18, you will see that Mark Mitchell has already
stated the Winline is suppossed to warn "about functions  *declared* inline,
but
not actually inlined. [...]  DECL_INLINE is an internal note to the compiler
that it might make sense to inline that function."

Your patch will break Winline output for any function that is declared inline (
DECL_DECLARED_INLINE_P (fndecl) = 1;) but it is marked as not making sense to
be inlined by the compiler (DECL_INLINE (fndecl) = 0;). From a quick grep,
there seems to be a few places where this may occur.

Of course, you know more about gcc than me. I was just trying to point out this
potential issue.


-- 


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



[Bug fortran/18026] boz initialization of REALs fails

2006-10-02 Thread anlauf at gmx dot de


--- Comment #9 from anlauf at gmx dot de  2006-10-02 21:35 ---
(In reply to comment #8)

> This is NOT a bug.  g77 compatibility and the Fortran 95 standard
> have a conflict, and so IMNSHO the Fortran 95 standard wins.

Gfortran unfortunately does not have a switch to compile legacy code
in a way that is sufficiently compatible with g77.
The (multiple) libraries that I use do use code similar to the
example in quite a few places.  I am not the author of these
libraries, I just use them.
Fortunately I can still use g77 on my platforms to compile the
relevant set of files.


-- 


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



[Bug middle-end/27986] [4.0/4.1/4.2 Regression] jump to middle of loop on entry with using old version of an variable

2006-10-02 Thread steven at gcc dot gnu dot org


--- Comment #6 from steven at gcc dot gnu dot org  2006-10-02 21:46 ---
Re comment #5: "A quick pass to look for these cases and transform those PHIs
into copies at the appropriate place would accomplish the same thing."

That is exactly what I'd expect the out-of-ssa pass to take care of.  Much like
the insert_backedge_copies() stuff in the current out-of-ssa pass.

Maybe I'm expecting too much, tho...


-- 


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



[Bug fortran/20541] TR 15581: ALLOCATABLE components

2006-10-02 Thread pault at gcc dot gnu dot org


--- Comment #32 from pault at gcc dot gnu dot org  2006-10-02 21:54 ---
Created an attachment (id=12373)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12373&action=view)
A patch that fixes test_ab9.f90

You will see the modification in trans-types.c.  This is the first bit of the
patch that is not specific to allocatable components, although I am hard
pressed to find a case that doesn't involve them.  If you feel uncomfortable
with breaking the hermetic seal, I could make it specific.  That said, this
does regtest OK, including all , the other derived type association tests.

I will write a test case tomorrow sometime and so have included my reduced
version of test_ab9.f90 from Slavatore Filippone to ensure that the audit trail
makes sense.

The problem arises because of the assignment that is used to initialize the
INTENT(OUT) derived type in gfc_conv_function_call. This exercises an
association that, I think, would not otherwise be possible.  It is fixed by
usin the current namespace to start the search for like types, from any
namespace where there is no parent.  The case where the derived type found is
the same as 'self' is eliminated from the search by a continue statement.

Paul

module modA
  type dt
 integer, allocatable :: i(:)
  end type dt
end module modA

Module modB
  interface
 subroutine foo(x)
   use modA
   type(dt), intent(out)   :: x
 end subroutine foo
  end interface
end module modB

subroutine test_ab9()
  use modB ! putting this after USE modA clears the problem
  use modA

  type(dt)  :: a

  call foo(a)

  return

end subroutine test_ab9



-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

  Attachment #12350|0   |1
is obsolete||
  Attachment #12354|0   |1
is obsolete||


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



[Bug middle-end/27986] [4.0/4.1/4.2 Regression] jump to middle of loop on entry with using old version of an variable

2006-10-02 Thread amacleod at redhat dot com


--- Comment #7 from amacleod at redhat dot com  2006-10-02 22:13 ---
Its not that you are expecting too much, just in the wrong place from my point
of view :-)  Changing the out of ssa algorithm or implementation isnt going to
change this code. It requires changing the code out of ssa sees.  

insert_backedge_copies() ought to be its own pass as well, as far as Im
concerned. Its the very first thing called, and is not related to the rest of
what out of ssa does at all.  

It should be moved out, and we can have an optimization pass just before
out-of-ssa which looks for this kind of thing.  That can happen when I start
adding the pre-passes for register pressure work if no one does it earlier.


-- 


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



[Bug middle-end/27478] entry and addressable and value-expr: and the gimplifier

2006-10-02 Thread patchapp at dberlin dot org


--- Comment #9 from patchapp at dberlin dot org  2006-10-02 22:15 ---
Subject: Bug number PR 27478

A patch for this bug has been added to the patch tracker.
The mailing list url for the patch is
http://gcc.gnu.org/ml/gcc-patches/2006-10/msg00098.html


-- 


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



[Bug c++/29226] [4.0/4.1/4.2 regression] ICE in make_decl_rtl, at varasm.c:886

2006-10-02 Thread mmitchel at gcc dot gnu dot org


--- Comment #7 from mmitchel at gcc dot gnu dot org  2006-10-02 22:21 
---
Subject: Bug 29226

Author: mmitchel
Date: Mon Oct  2 22:21:02 2006
New Revision: 117375

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=117375
Log:
PR c++/29226
* typeck.c (cxx_sizeof_or_alignof_type): Tidy.  In templates, do
not try to actually evaluate sizeof for a VLA type.
PR c++/29226
* g++.dg/template/vla1.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/template/vla1.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/typeck.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c/29326] New: __builtin_trap is not documented

2006-10-02 Thread pinskia at gcc dot gnu dot org
__builtin_trap is mentioned on
http://gcc.gnu.org/onlinedocs/gcc/Standards.html
But it is not documented on:
http://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html


-- 
   Summary: __builtin_trap is not documented
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Keywords: documentation
  Severity: normal
  Priority: P3
 Component: c
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=29326



[Bug c/29326] __builtin_trap is not documented

2006-10-02 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2006-10-02 23:27 ---
If I get a chance I will post a patch sometime this week or next.


-- 


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



[Bug c++/29226] [4.0/4.1 regression] ICE in make_decl_rtl, at varasm.c:886

2006-10-02 Thread mmitchel at gcc dot gnu dot org


--- Comment #8 from mmitchel at gcc dot gnu dot org  2006-10-02 23:42 
---
Subject: Bug 29226

Author: mmitchel
Date: Mon Oct  2 23:41:59 2006
New Revision: 117377

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=117377
Log:
PR c++/29226
* typeck.c (cxx_sizeof_or_alignof_type): Tidy.  In templates, do
not try to actually evaluate sizeof for a VLA type.
PR c++/29226
* g++.dg/template/vla1.C: New test.

Added:
branches/gcc-4_1-branch/gcc/testsuite/g++.dg/template/vla1.C
Modified:
branches/gcc-4_1-branch/gcc/cp/ChangeLog
branches/gcc-4_1-branch/gcc/cp/typeck.c
branches/gcc-4_1-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug testsuite/29307] libiberty/testsuite/test-demangle : parsing errors after unknown demangling style

2006-10-02 Thread ian at airs dot com


--- Comment #2 from ian at airs dot com  2006-10-02 23:52 ---
I believe this is happening because if the format is unrecognized, the
test-demangle program does not go on to see that the --no-params option was
used.  When --no-params is used, it needs to skip an additional line.

I see no advantage to making the test-demangle program robust when given an
erroneous input file.  If you feel like doing so, please go ahead.


-- 


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



[Bug c++/29138] [4.0/4.1/4.2 Regression] access declarations don't work for classes

2006-10-02 Thread mmitchel at gcc dot gnu dot org


-- 

mmitchel at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |mark at codesourcery dot com
   |dot org |
 Status|NEW |ASSIGNED


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



[Bug fortran/29327] New: FAIL: gfortran.dg/specifics_1.f90

2006-10-02 Thread danglin at gcc dot gnu dot org
Executing on host:
/home/dave/gnu/gcc-4.2/objdir/gcc/testsuite/gfortran/../../gf
ortran -B/home/dave/gnu/gcc-4.2/objdir/gcc/testsuite/gfortran/../../
/home/dave/
gnu/gcc-4.2/gcc/gcc/testsuite/gfortran.dg/specifics_1.f90   -O0  -ff2c 
-L/home/
dave/gnu/gcc-4.2/objdir/hppa-linux/./libgfortran/.libs
-L/home/dave/gnu/gcc-4.2/
objdir/hppa-linux/./libgfortran/.libs
-L/home/dave/gnu/gcc-4.2/objdir/hppa-linux
/./libiberty  -lm   -o ./specifics_1.exe(timeout = 300)
/tmp/ccQbN46K.o: In function `.LC82':
(.rodata+0x274): undefined reference to `f2c_specific__conjg_4'
/tmp/ccQbN46K.o: In function `.LC95':
(.rodata+0x28c): undefined reference to `f2c_specific__conjg_8'
collect2: ld returned 1 exit status
compiler exited with status 1
output is:
/tmp/ccQbN46K.o: In function `.LC82':
(.rodata+0x274): undefined reference to `f2c_specific__conjg_4'
/tmp/ccQbN46K.o: In function `.LC95':
(.rodata+0x28c): undefined reference to `f2c_specific__conjg_8'
collect2: ld returned 1 exit status

FAIL: gfortran.dg/specifics_1.f90  -O0  (test for excess errors)
Excess errors:
(.rodata+0x274): undefined reference to `f2c_specific__conjg_4'
(.rodata+0x28c): undefined reference to `f2c_specific__conjg_8'

Fails at all optimizations.

The references come in the following plabels:

.align 4
.LC82:
.word   P%f2c_specific__conjg_4

.align 4
.LC95:
.word   P%f2c_specific__conjg_8


-- 
   Summary: FAIL: gfortran.dg/specifics_1.f90
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: danglin at gcc dot gnu dot org
 GCC build triplet: hppa-unknown-linux-gnu
  GCC host triplet: hppa-unknown-linux-gnu
GCC target triplet: hppa-unknown-linux-gnu


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



[Bug fortran/18026] boz initialization of REALs fails

2006-10-02 Thread sgk at troutmask dot apl dot washington dot edu


--- Comment #10 from sgk at troutmask dot apl dot washington dot edu  
2006-10-03 01:48 ---
Subject: Re:  boz initialization of REALs fails

On Mon, Oct 02, 2006 at 09:35:11PM -, anlauf at gmx dot de wrote:
> 
> > This is NOT a bug.  g77 compatibility and the Fortran 95 standard
> > have a conflict, and so IMNSHO the Fortran 95 standard wins.
> 
> Gfortran unfortunately does not have a switch to compile legacy code
> in a way that is sufficiently compatible with g77.

Actually, gfortran does have -std=legacy.  It, unfortunately,
does not have code inside the appropriate IF statements to
do what you want.

> The (multiple) libraries that I use do use code similar to the
> example in quite a few places.  I am not the author of these
> libraries, I just use them.

Have you submitted bug reports to the authors of these libraries?


-- 


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



[Bug libgcj/28579] [ecj] classpath build must use gcj

2006-10-02 Thread tromey at gcc dot gnu dot org


--- Comment #2 from tromey at gcc dot gnu dot org  2006-10-03 02:12 ---
I can't reproduce this.


-- 

tromey at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug fortran/29317] gfortran.dg/exponent_1.f90 failure

2006-10-02 Thread danglin at gcc dot gnu dot org


--- Comment #5 from danglin at gcc dot gnu dot org  2006-10-03 02:12 ---
The gfortran.dg/exponent_1.f90 and gfortran.dg/nearest_1.f90 are falling
on hppa2.0w-hp-hpux11.11.  I updated to mpfr 2.2.0 and the tests are still
failing.  Possibly, I need a complete rebuild.


-- 

danglin at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||danglin at gcc dot gnu dot
   ||org


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



[Bug fortran/29317] gfortran.dg/exponent_1.f90 failure

2006-10-02 Thread jvdelisle at gcc dot gnu dot org


--- Comment #6 from jvdelisle at gcc dot gnu dot org  2006-10-03 02:17 
---
Yes, make sure you do a complete clean rebuild.  You may also need this for the
PR29327.


-- 


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



[Bug fortran/29317] gfortran.dg/exponent_1.f90 failure

2006-10-02 Thread sgk at troutmask dot apl dot washington dot edu


--- Comment #7 from sgk at troutmask dot apl dot washington dot edu  
2006-10-03 02:27 ---
Subject: Re:  gfortran.dg/exponent_1.f90 failure

On Tue, Oct 03, 2006 at 02:12:55AM -, danglin at gcc dot gnu dot org wrote:
> 
> The gfortran.dg/exponent_1.f90 and gfortran.dg/nearest_1.f90 are falling
> on hppa2.0w-hp-hpux11.11.  I updated to mpfr 2.2.0 and the tests are still
> failing.  Possibly, I need a complete rebuild.
> 

nearest_1.f90 may be broken due to a bug with the
handling of a subnormal number.

I have no idea why exponent_1.f90 is failing.  It works 
for me.

If these are still failing in a few days, I'll either 
add a the dejagnu bits to run only on *-*-freebsd or
I'll remove the test.


-- 


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



[Bug fortran/29327] FAIL: gfortran.dg/specifics_1.f90

2006-10-02 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2006-10-03 02:41 ---
http://gcc.gnu.org/ml/fortran/2006-09/msg00468.html


-- 


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



[Bug middle-end/28690] [4.2 Regression] Performace problem with indexed load/stores on powerpc

2006-10-02 Thread bergner at vnet dot ibm dot com


--- Comment #17 from bergner at vnet dot ibm dot com  2006-10-03 03:30 
---
Created an attachment (id=12375)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12375&action=view)
Patch to swap_commutative_operands_p and gen_addr_rtx to force base pointers
into rA position of indexed load/store instructions.

We propagated the MEM_POINTER/REG_POINTER flags fine.  The problem is that the
memory reference we're handed is a REG + REG which looks legitimate to us, so
we never call LEGITIMIZE_ADDRESS, so we never have a chance to swap the
operands.

Since we cannot fixup the latest test case in LEGITIMIZE_ADDRESS, I've decided
to attempt another swap_commutative_operands_p() /
commutative_operand_precedence() change.  However, I'm a little more selective
on when we change swap_commutative_operands_p()'s return value.  With this
patch, I'm able to transform each of the test cases so that the base address if
the first operand of the indexed load.

* rtlanal.c (swap_commutative_operands_p): Preference a REG_POINTER
over a non REG_POINTER.
* tree-ssa-address.c (gen_addr_rtx): Force a REG_POINTER to be
the first operand of a PLUS.


-- 

bergner at vnet dot ibm dot com changed:

   What|Removed |Added

  Attachment #12305|0   |1
is obsolete||
  Attachment #12306|0   |1
is obsolete||


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



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

2006-10-02 Thread jvdelisle at gcc dot gnu dot org


--- Comment #6 from jvdelisle at gcc dot gnu dot org  2006-10-03 03:58 
---
Subject: Bug 19260

Author: jvdelisle
Date: Tue Oct  3 03:58:20 2006
New Revision: 117384

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

PR fortran/19262
* gfortran.h (gfc_option_t): Add max_continue_fixed and max_continue_free.
* options.c (gfc_init_options): Initialize fixed form and free form
consecutive continuation line limits.
* scanner.c (gfc_scanner_init_1): Initialize continue_line
and continue_count. (gfc_next_char_literal): Count the number of
continuation lines in the current statement and warn if
limit is exceeded.

2006-10-02  Jerry DeLisle  <[EMAIL PROTECTED]>

PR fortran/19260
* scanner.c (gfc_next_char_literal): Add check for missing '&'
and warn if in_string, otherwise return ' '.

Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/gfortran.h
trunk/gcc/fortran/options.c
trunk/gcc/fortran/scanner.c


-- 


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



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

2006-10-02 Thread jvdelisle at gcc dot gnu dot org


--- Comment #6 from jvdelisle at gcc dot gnu dot org  2006-10-03 03:58 
---
Subject: Bug 19262

Author: jvdelisle
Date: Tue Oct  3 03:58:20 2006
New Revision: 117384

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

PR fortran/19262
* gfortran.h (gfc_option_t): Add max_continue_fixed and max_continue_free.
* options.c (gfc_init_options): Initialize fixed form and free form
consecutive continuation line limits.
* scanner.c (gfc_scanner_init_1): Initialize continue_line
and continue_count. (gfc_next_char_literal): Count the number of
continuation lines in the current statement and warn if
limit is exceeded.

2006-10-02  Jerry DeLisle  <[EMAIL PROTECTED]>

PR fortran/19260
* scanner.c (gfc_next_char_literal): Add check for missing '&'
and warn if in_string, otherwise return ' '.

Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/gfortran.h
trunk/gcc/fortran/options.c
trunk/gcc/fortran/scanner.c


-- 


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



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

2006-10-02 Thread jvdelisle at gcc dot gnu dot org


--- Comment #7 from jvdelisle at gcc dot gnu dot org  2006-10-03 04:10 
---
Subject: Bug 19260

Author: jvdelisle
Date: Tue Oct  3 04:09:49 2006
New Revision: 117385

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

PR fortran/19260
* gfortran.dg/continuation.f90: Rename to continuation_1.f90.
* gfortran.dg/continuation_2.f90: New test.

PR fortran/19262
* gfortran.dg/continuation_3.f90: New test.
* gfortran.dg/continuation_4.f90: New test.
* gfortran.dg/continuation_5.f: New test.
* gfortran.dg/continuation_6.f: New test.

Added:
trunk/gcc/testsuite/gfortran.dg/continuation_1.f90
  - copied unchanged from r117065,
trunk/gcc/testsuite/gfortran.dg/continuation.f90
trunk/gcc/testsuite/gfortran.dg/continuation_2.f90
trunk/gcc/testsuite/gfortran.dg/continuation_3.f90
trunk/gcc/testsuite/gfortran.dg/continuation_4.f90
trunk/gcc/testsuite/gfortran.dg/continuation_5.f
trunk/gcc/testsuite/gfortran.dg/continuation_6.f
Removed:
trunk/gcc/testsuite/gfortran.dg/continuation.f90
Modified:
trunk/gcc/testsuite/ChangeLog


-- 


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



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

2006-10-02 Thread jvdelisle at gcc dot gnu dot org


--- Comment #7 from jvdelisle at gcc dot gnu dot org  2006-10-03 04:10 
---
Subject: Bug 19262

Author: jvdelisle
Date: Tue Oct  3 04:09:49 2006
New Revision: 117385

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

PR fortran/19260
* gfortran.dg/continuation.f90: Rename to continuation_1.f90.
* gfortran.dg/continuation_2.f90: New test.

PR fortran/19262
* gfortran.dg/continuation_3.f90: New test.
* gfortran.dg/continuation_4.f90: New test.
* gfortran.dg/continuation_5.f: New test.
* gfortran.dg/continuation_6.f: New test.

Added:
trunk/gcc/testsuite/gfortran.dg/continuation_1.f90
  - copied unchanged from r117065,
trunk/gcc/testsuite/gfortran.dg/continuation.f90
trunk/gcc/testsuite/gfortran.dg/continuation_2.f90
trunk/gcc/testsuite/gfortran.dg/continuation_3.f90
trunk/gcc/testsuite/gfortran.dg/continuation_4.f90
trunk/gcc/testsuite/gfortran.dg/continuation_5.f
trunk/gcc/testsuite/gfortran.dg/continuation_6.f
Removed:
trunk/gcc/testsuite/gfortran.dg/continuation.f90
Modified:
trunk/gcc/testsuite/ChangeLog


-- 


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



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

2006-10-02 Thread jvdelisle at gcc dot gnu dot org


--- Comment #8 from jvdelisle at gcc dot gnu dot org  2006-10-03 04:11 
---
Fixed on 4.2


-- 

jvdelisle at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



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

2006-10-02 Thread jvdelisle at gcc dot gnu dot org


--- Comment #8 from jvdelisle at gcc dot gnu dot org  2006-10-03 04:12 
---
Fixed on 4.2


-- 

jvdelisle at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug fortran/29321] [4.1/4.2 Regression] optional arguments+derived types = segmentation fault

2006-10-02 Thread pinskia at gcc dot gnu dot org


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

   Priority|P2  |P3


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



[Bug middle-end/28690] [4.2 Regression] Performace problem with indexed load/stores on powerpc

2006-10-02 Thread paolo dot bonzini at lu dot unisi dot ch


--- Comment #18 from paolo dot bonzini at lu dot unisi dot ch  2006-10-03 
05:20 ---
Subject: Re:  [4.2 Regression] Performace problem with
 indexed load/stores on powerpc


> * rtlanal.c (swap_commutative_operands_p): Preference a REG_POINTER
> over a non REG_POINTER.
> * tree-ssa-address.c (gen_addr_rtx): Force a REG_POINTER to be
> the first operand of a PLUS.
This is more gentle indeed.  Be careful however as functions calling 
commutative_operand_precedence directly may have a problem with that.  
Can you try making an address illegitimate if it is non-REG_POINTER + 
REG_POINTER?  Or set up splitters to do the transformation just before 
reload?

Paolo


-- 


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



  1   2   >