[Bug middle-end/29256] [4.2/4.3 regression] loop performance regression

2008-01-12 Thread ghazi at gcc dot gnu dot org


--- Comment #22 from ghazi at gcc dot gnu dot org  2008-01-12 08:35 ---
Thanks, testsuite patch posted here:
http://gcc.gnu.org/ml/gcc-patches/2008-01/msg00530.html


-- 


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



[Bug fortran/34722] [4.3 Regression] ICE: left-over @iostat variable polutes namespace

2008-01-12 Thread jvdelisle at gcc dot gnu dot org


--- Comment #13 from jvdelisle at gcc dot gnu dot org  2008-01-12 08:36 
---
Subject: Bug 34722

Author: jvdelisle
Date: Sat Jan 12 08:35:25 2008
New Revision: 131487

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=131487
Log:
2008-01-12  Jerry DeLisle  [EMAIL PROTECTED]

PR fortran/34722
* match.c (gfc_match_name): Don't error if leading character is a '(',
just return MATCH_NO.

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


-- 


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



[Bug fortran/34432] integer(kind=init_expression) function is rejected

2008-01-12 Thread jvdelisle at gcc dot gnu dot org


--- Comment #4 from jvdelisle at gcc dot gnu dot org  2008-01-12 08:37 
---
Subject: Bug 34432

Author: jvdelisle
Date: Sat Jan 12 08:36:52 2008
New Revision: 131488

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=131488
Log:
2008-01-12  Jerry DeLisle  [EMAIL PROTECTED]

PR fortran/34432
* match.c (gfc_match_name): Don't error if leading character is a '(',
just return MATCH_NO.

Modified:
trunk/gcc/fortran/ChangeLog


-- 


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



[Bug fortran/34722] [4.3 Regression] ICE: left-over @iostat variable polutes namespace

2008-01-12 Thread jvdelisle at gcc dot gnu dot org


--- Comment #14 from jvdelisle at gcc dot gnu dot org  2008-01-12 08:39 
---
Ignore comment #13, copy paste error on commit for 34432.


-- 


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



[Bug c++/34747] __attribute__((aligned(x)))+__alignof != correct behaviour

2008-01-12 Thread andry at inbox dot ru


--- Comment #2 from andry at inbox dot ru  2008-01-12 08:42 ---
(In reply to comment #1)
 I think this is really just PR 10179 which was fixed for 4.3.0.
 

Could you test it on 4.3?
I tried to make trunk, but stopped with error:
configure: failed program was:
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME GNU C Runtime Library
| #define PACKAGE_TARNAME libgcc
| #define PACKAGE_VERSION 1.0
| #define PACKAGE_STRING GNU C Runtime Library 1.0
| #define PACKAGE_BUGREPORT 
| /* end confdefs.h.  */
| 
| int
| main ()
| {
| 
|   ;
|   return 0;
| }
configure:2605: error: cannot compute suffix of object files: cannot compile

could you run my test on g++ 4.3 to see is that all ok?


-- 


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



[Bug fortran/34432] integer(kind=init_expression) function is rejected

2008-01-12 Thread jvdelisle at gcc dot gnu dot org


--- Comment #5 from jvdelisle at gcc dot gnu dot org  2008-01-12 08:48 
---
Subject: Bug 34432

Author: jvdelisle
Date: Sat Jan 12 08:47:27 2008
New Revision: 131489

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=131489
Log:
2008-01-12  Jerry DeLisle  [EMAIL PROTECTED]

PR fortran/34432
* gfortran.dg/parens_7.f90: New test.

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


-- 


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



[Bug fortran/34432] integer(kind=init_expression) function is rejected

2008-01-12 Thread jvdelisle at gcc dot gnu dot org


--- Comment #6 from jvdelisle at gcc dot gnu dot org  2008-01-12 08:49 
---
Fixed on trunk.


-- 

jvdelisle at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c/34748] New: cc1 fails with Not a directory on trivial file

2008-01-12 Thread af804 at bfn dot org
In a gcc invocation, cc1 fails with a Not a directory error when compiling a
trivial file if there is a file (not a directory) named lib in the parent to
the working directory.

To recreate it:

bash-3.2# mkdir temp
bash-3.2# cd temp
bash-3.2# mkdir temp1
bash-3.2# touch lib
bash-3.2# cd temp1
bash-3.2# catutl1.cEOF
 void fun1(){}
 EOF
bash-3.2# gcc -c utl1.c
cc1: error: ../lib/gcc/i686-pc-linux-gnu/4.2.1/include: Not a directory
cc1: error:
../lib/gcc/i686-pc-linux-gnu/4.2.1/../../../../i686-pc-linux-gnu/include: Not a
directory

gcc was built as follows:

../gcc-4.2.1/configure --prefix=/usr\
 --libexecdir=/usr/lib --enable-shared --enable-threads=posix\
 --enable-__cxa_atexit --enable-languages=c,c++\
 --disable-bootstrap

make
make install

when run verbosely, gcc produces the following output:
bash-3.2# gcc -c -v utl1.c
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: ../gcc-4.2.1/configure --prefix=/usr --libexecdir=/usr/lib
--enable-shared --enable-threads=posix --enable-__cxa_atexit
--enable-languages=c,c++ --disable-bootstrap
Thread model: posix
gcc version 4.2.1
 /usr/lib/gcc/i686-pc-linux-gnu/4.2.1/cc1 -quiet -v -iprefix
../lib/gcc/i686-pc-linux-gnu/4.2.1/ utl1.c -quiet -dumpbase utl1.c
-mtune=generic -auxbase utl1 -version -o /tmp/ccsAiCrL.s
cc1: error: ../lib/gcc/i686-pc-linux-gnu/4.2.1/include: Not a directory
cc1: error:
../lib/gcc/i686-pc-linux-gnu/4.2.1/../../../../i686-pc-linux-gnu/include: Not a
directory
ignoring nonexistent directory /usr/local/include
ignoring nonexistent directory
/usr/lib/gcc/i686-pc-linux-gnu/4.2.1/../../../../i686-pc-linux-gnu/include
#include ... search starts here:
#include ... search starts here:
 /usr/lib/gcc/i686-pc-linux-gnu/4.2.1/include
 /usr/include
End of search list.
GNU C version 4.2.1 (i686-pc-linux-gnu)
compiled by GNU C version 4.2.1.
GGC heuristics: --param ggc-min-expand=81 --param ggc-min-heapsize=97102


-- 
   Summary: cc1 fails with Not a directory on trivial file
   Product: gcc
   Version: 4.2.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: af804 at bfn dot org
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


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



[Bug fortran/32489] Endless loop when compiling

2008-01-12 Thread dominiq at lps dot ens dot fr


--- Comment #7 from dominiq at lps dot ens dot fr  2008-01-12 09:19 ---
I forgot to say that the patch in #5 fixed this PR, but you can add to the list
of regressions:

[ibook-dhum] f90/bug% gfc
/opt/gcc/_gcc_clean/gcc/testsuite/gfortran.dg/char_result_6.f90
/opt/gcc/_gcc_clean/gcc/testsuite/gfortran.dg/char_result_6.f90:63: internal
compiler error: Bus error
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.


-- 


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



[Bug fortran/32489] Endless loop when compiling

2008-01-12 Thread pault at gcc dot gnu dot org


--- Comment #8 from pault at gcc dot gnu dot org  2008-01-12 09:43 ---
(In reply to comment #4)

Dominique,

Indeed - I found all those regressions when I got up this morning.  However,
the patch indicates which way to go.  The compiler is repeatedly trying to
expand an array that it cannot.  I need to write an equivalent to
gfc_is_constant_expr that will test if the array can be expanded or not.

Thanks!

Paul


-- 


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



[Bug tree-optimization/23821] [4.0/4.1/4.2/4.3 Regression] DOM and VRP creating harder to optimize code

2008-01-12 Thread rguenth at gcc dot gnu dot org


--- Comment #15 from rguenth at gcc dot gnu dot org  2008-01-12 10:49 
---
I think symbolic substitutions should be only done if the resulting stmt can
be simplified to a constant.  Now for VRP my long-term plan is to get rid of
symbolic ranges altogether to make it cheaper and easier to keep value-range
information across passes.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||rguenth at gcc dot gnu dot
   ||org


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



[Bug tree-optimization/23821] [4.0/4.1/4.2/4.3 Regression] DOM and VRP creating harder to optimize code

2008-01-12 Thread pinskia at gmail dot com


--- Comment #16 from pinskia at gmail dot com  2008-01-12 12:26 ---
Subject: Re:  [4.0/4.1/4.2/4.3 Regression] DOM and VRP creating harder to
optimize code

 --- Comment #15 from rguenth at gcc dot gnu dot org  2008-01-12 10:49 
 ---
 I think symbolic substitutions should be only done if the resulting stmt can
 be simplified to a constant.  Now for VRP my long-term plan is to get rid of
 symbolic ranges altogether to make it cheaper and easier to keep value-range
 information across passes.

Actually I think it is wrong to get rid of symbolic ranges.  I have
filed a couple of bugs about adding more symbol ranges with respect of
VRP.

-- Pinski


-- 


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



[Bug tree-optimization/23821] [4.0/4.1/4.2/4.3 Regression] DOM and VRP creating harder to optimize code

2008-01-12 Thread rguenth at gcc dot gnu dot org


--- Comment #17 from rguenth at gcc dot gnu dot org  2008-01-12 12:29 
---
Can you point me to those?

I still think we should separate VRP of constant and symbolic ranges.  For
symbolic stuff we eventually want to utilize a theorem prover.


-- 


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



[Bug tree-optimization/23821] [4.0/4.1/4.2/4.3 Regression] DOM and VRP creating harder to optimize code

2008-01-12 Thread pinskia at gcc dot gnu dot org


--- Comment #18 from pinskia at gcc dot gnu dot org  2008-01-12 12:36 
---
(In reply to comment #17)
 Can you point me to those?

PR25643 and PR25145 .

Thanks,
Andrew Pinski


-- 


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



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

2008-01-12 Thread rguenth at gcc dot gnu dot org


--- Comment #7 from rguenth at gcc dot gnu dot org  2008-01-12 12:38 ---
ifcombine fixes this.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



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

2008-01-12 Thread rguenth at gcc dot gnu dot org


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.3.0


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



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

2008-01-12 Thread pinskia at gcc dot gnu dot org


--- Comment #9 from pinskia at gcc dot gnu dot org  2008-01-12 12:44 ---
This is not fixed for me with 
gcc version 4.3.0 20071110 (experimental) [trunk revision 130075] (GCC) 

or with Sun Jan  6 02:53:41 UTC 2008 (revision 131347)


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|FIXED   |


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



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

2008-01-12 Thread pinskia at gcc dot gnu dot org


--- Comment #10 from pinskia at gcc dot gnu dot org  2008-01-12 12:48 
---
There should be no call to _gfortran_runtime_error_at and I still get one:
  # i_2 = PHI 1(3), i_27(6)
  if (i_2  size.1_4)
goto bb 5;
  else
goto bb 6;

bb 5:
  # i_32 = PHI i_2(4)  _gfortran_runtime_error_at (At line 7 of file
t.f90[1]{lb: 1 sz: 1}, Array reference out of bounds for array \'v\', upper
bound of dimension 1 exceeded (%ld  %ld)[1]{lb: 1 sz: 1}, i_32, size.1_4);


Yes one call to _gfortran_runtime_error_at is removed but that is the lower
bound one.

Even the C testcase has the same issue.
we still get a call to abort:
L4:
call_abort


-- 


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



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

2008-01-12 Thread pinskia at gcc dot gnu dot org


--- Comment #11 from pinskia at gcc dot gnu dot org  2008-01-12 12:49 
---
Compile with -fbounds-checking -O2, and notice that there is still

That should be just -fbounds-check .


-- 


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



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

2008-01-12 Thread rguenth at gcc dot gnu dot org


--- Comment #8 from rguenth at gcc dot gnu dot org  2008-01-12 12:42 ---
Actually VRP1 catches both the fortran and the C testcase.


-- 


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



[Bug tree-optimization/25145] missed VRP opportunity

2008-01-12 Thread rguenth at gcc dot gnu dot org


--- Comment #10 from rguenth at gcc dot gnu dot org  2008-01-12 13:05 
---
The first testcase in the original report is fixed by comparison
canonicalization,
even if a temporary is used (forwprop re-instantiates the canonicalized
comparison).

The testcase in comment #1 is fixed by FRE simplifying binary expressions:
Value numbering D.1178_3 stmt = D.1178_3 = k_2  i_1(D);
RHS k_2  i_1(D) simplified to 1 has constants 0


So none of the testcases is useful to show missing optimizations in VRP
anymore.


-- 


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



[Bug middle-end/34744] Memory leaks in compiler with empty program

2008-01-12 Thread zadeck at naturalbridge dot com


--- Comment #1 from zadeck at naturalbridge dot com  2008-01-12 13:16 
---
I know what this bug is but i do not actually know how to find it.  The bug is
caused by someone abandoning a basic block without going thur the api to
properly delete it or merge it into another block.

any suggestions on how to track this down would be appreciated.


-- 


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



[Bug tree-optimization/34708] Inlining heuristics issue

2008-01-12 Thread hubicka at gcc dot gnu dot org


--- Comment #12 from hubicka at gcc dot gnu dot org  2008-01-12 13:34 
---
Fixed on mainline (at least checking number of references from cross compiler).


-- 

hubicka at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug ada/15610] Invalid program not detected, generic formal parameter hides declared item

2008-01-12 Thread ludovic at ludovic-brenta dot org


--- Comment #3 from ludovic at ludovic-brenta dot org  2008-01-12 13:52 
---
By adding one line to the test case, we can see the bug reappears:

procedure Test_244942 is
   function f1 return integer is begin return 1; end f1;

   generic
  with function foo return integer;
   package pak1 is
  type color is (foo);
  type color2 is (foo);  -- this line was added
   end pak1;

   package new_pak1 is new pak1(f1);
   i: integer := new_pak1.foo;   -- ERROR: integer vs. color
begin
   null;
end Test_244942;

gnatmake test_244942
gcc-4.1 -c test_244942.adb
gnatbind -x test_244942.ali
gnatlink test_244942.ali

gcc-4.2 -c test_244942.adb
gnatbind -x test_244942.ali
gnatlink test_244942.ali


-- 

ludovic at ludovic-brenta dot org changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
  Known to fail||3.4.0 4.1.2 4.2.2
 Resolution|FIXED   |


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



[Bug tree-optimization/33763] [4.1/4.2/4.3 Regression] Bogus inlining failed in call to `xxx': redefined extern inline functions are not considered for inlining

2008-01-12 Thread hubicka at gcc dot gnu dot org


--- Comment #8 from hubicka at gcc dot gnu dot org  2008-01-12 13:55 ---
I can definitely commit the patch to silence the (IMO valid) diagnostics. 
However, why programs are using always_inline and extern inline combination at
all?  Just extern inline should be enough.
  /* For GNU C extern inline functions disregard inline limits.  */
  if (DECL_EXTERNAL (fndecl)
   DECL_DECLARED_INLINE_P (fndecl))
DECL_DISREGARD_INLINE_LIMITS (fndecl) = 1;

So perhaps just modifying glibc headers to not do both would do the trick?

I agree that solving this problem correctly via two functions (not only bodies,
but simply two declarations) is probably bit tricky for stage3. We however have
related PR34609 and PR31529 demonstrating same problem in different context.


Honza


-- 


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



[Bug other/28023] documentation error max-inline-recursive-depth

2008-01-12 Thread hubicka at gcc dot gnu dot org


--- Comment #2 from hubicka at gcc dot gnu dot org  2008-01-12 14:03 ---
Subject: Bug 28023

Author: hubicka
Date: Sat Jan 12 14:02:06 2008
New Revision: 131492

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=131492
Log:

PR other/28023
* invoke.texi (max-inline-recursive-depth): Fix default value.

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


-- 


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



[Bug c++/34749] New: Incorrect warning when applying dllimport to friend function

2008-01-12 Thread sldev327 at softmagi dot com
I was playing with some code and got a warning about dllimport in some
headers.  I looked around a bit and came up with this test case.

The warning seems to imply that dllimport is ignored on bar(), but looking at
the output the call to bar() is indeed mangled with __imp prefix.

I'm using MinGW g++ 4.2.1-dw2.

## begin df.cpp
__attribute__((dllimport)) int bar();

class Foo
{
private:
int foo();
friend __attribute__((dllimport)) int bar();
};

int Foo::foo()
{
return bar();
}
## end df.cpp

D: g++ -S df.cpp
df.cpp:7: warning: 'int bar()' redeclared without dllimport attribute:
previous dllimport ignored

D: g++ -v
Using built-in specs.
Target: mingw32
Configured with: ../gcc-4.2.1-2-src/configure --with-gcc
--enable-libgomp --host =mingw32 --build=mingw32 --target=mingw32
--program-suffix=-dw2 --with-arch=i486 --with-tune=generic
--disable-werror --prefix=/mingw --with-local-prefix=/mingw
--enable-threads --disable-nls --enable-languages=c,c+
+,fortran,objc,obj-c++,ad a --disable-win32-registry
--disable-sjlj-exceptions --enable-libstdcxx-debug --
enable-cxx-flags=-fno-function-sections -fno-data-sections
--enable-version-spec ific-runtime-libs --disable-bootstrap Thread
model: win32 gcc version 4.2.1-dw2 (mingw32-2)


-- 
   Summary: Incorrect warning when applying dllimport to friend
function
   Product: gcc
   Version: 4.2.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: sldev327 at softmagi dot com


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



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

2008-01-12 Thread rguenth at gcc dot gnu dot org


--- Comment #12 from rguenth at gcc dot gnu dot org  2008-01-12 14:23 
---
Simplified C testcase (omitting the parts that are optimized).  We cannot
figure out the number of iterations of this loop:

void f(int n, float *v)
{
  int i;
  if (n = 0)
return;
  else
{
  i = 1;
  do {
if (i  n)  __builtin_abort ();

v[i] = 0.;

i++;
  } while (i = n);
}
}

Note that for this simplified testcase DOM figures out the redundant test,
but not if you use i != n as the exit test, as for n == 1 the assert
will trigger.  If you look at the fortran IL, it does instead

   } while (i++ != n);

which would be ok again, but is still not optimized.

Testcase:

extern void link_error (void);
int i, n;
int main()
{
  if (i  n)
return;
  if (i != n)
if (i = n)
link_error ();
}


-- 


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



[Bug other/28023] documentation error max-inline-recursive-depth

2008-01-12 Thread hubicka at gcc dot gnu dot org


--- Comment #3 from hubicka at gcc dot gnu dot org  2008-01-12 14:04 ---
Fixed in mainline.


-- 

hubicka at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug libfortran/34746] [4.3 Regression] wrong formats in libgfortran's runtime_error

2008-01-12 Thread burnus at gcc dot gnu dot org


--- Comment #1 from burnus at gcc dot gnu dot org  2008-01-12 14:04 ---
../../../gcc-4.3-work/libgfortran/generated/maxval_i4.c:322: warning: format
'%d' expects type 'int', but argument 2 has type 'long int'
../../../gcc-4.3-work/libgfortran/generated/minloc0_8_r8.c:86: warning: format
'%d' expects type 'int', but argument 3 has type 'index_type'

s/%d/%ld%/g and prefixing the argument with (long) should be enough, shouldn't
it?

(Whether the cast is needed, can depended on the platform, e.g., 32 vs 64 bit
pointers; better add to many than too few casts.)


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||burnus at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-01-12 14:04:27
   date||


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



[Bug rtl-optimization/21676] [4.0/4.1/4.2/4.3 Regression] Optimizer regression: SciMark sparse matrix benchmark

2008-01-12 Thread steven at gcc dot gnu dot org


--- Comment #13 from steven at gcc dot gnu dot org  2008-01-12 14:34 ---
Re. comment #7, Assignment to sum should be moved before if...

This is called code hoisting, and it is not performed in GCC except with -Os. 
See bug 24001, bug 33315, and other reports about the same issue in Bugzilla.


-- 


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



[Bug fortran/34665] Cannot pass scalar to array argument 'a'

2008-01-12 Thread burnus at gcc dot gnu dot org


--- Comment #5 from burnus at gcc dot gnu dot org  2008-01-12 14:36 ---
A related but slightly separate issue is illustrated by the following example.
The argument of the second call to FOO is an expression; however, expressions
involving assumed-size arrays are evil. This is detected for assignments:
Error: The upper bound in the last dimension must appear in the reference to
the assumed size array 'a' at (1), but not for actual arguments.
(Note: Procedure calls are in so far different as passing the assumed-size
array itself it valid.)

subroutine one(a)
  external foo
  integer :: a(*)
  integer :: b
  call foo(a) ! ok
  call foo((a)) ! Wrong
  call foo(a+1) ! Wrong
  b = a+1 ! diagnosed as being invalid
end subroutine


-- 


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



[Bug tree-optimization/33763] [4.1/4.2/4.3 Regression] Bogus inlining failed in call to `xxx': redefined extern inline functions are not considered for inlining

2008-01-12 Thread rguenther at suse dot de


--- Comment #9 from rguenther at suse dot de  2008-01-12 15:13 ---
Subject: Re:  [4.1/4.2/4.3 Regression] Bogus
 inlining failed in call to `xxx': redefined extern inline functions are not
 considered for inlining

On Sat, 12 Jan 2008, hubicka at gcc dot gnu dot org wrote:

 --- Comment #8 from hubicka at gcc dot gnu dot org  2008-01-12 13:55 
 ---
 I can definitely commit the patch to silence the (IMO valid) diagnostics. 
 However, why programs are using always_inline and extern inline combination at
 all?  Just extern inline should be enough.
   /* For GNU C extern inline functions disregard inline limits.  */
   if (DECL_EXTERNAL (fndecl)
DECL_DECLARED_INLINE_P (fndecl))
 DECL_DISREGARD_INLINE_LIMITS (fndecl) = 1;
 
 So perhaps just modifying glibc headers to not do both would do the trick?
 
 I agree that solving this problem correctly via two functions (not only 
 bodies,
 but simply two declarations) is probably bit tricky for stage3. We however 
 have
 related PR34609 and PR31529 demonstrating same problem in different context.

Can you give it a try?  If it looks reasonably safe I would certainly
prefer such a solution.

Richard.


-- 


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



[Bug libfortran/34746] [4.3 Regression] wrong formats in libgfortran's runtime_error

2008-01-12 Thread tkoenig at gcc dot gnu dot org


--- Comment #2 from tkoenig at gcc dot gnu dot org  2008-01-12 15:14 ---
(In reply to comment #1)

 s/%d/%ld%/g and prefixing the argument with (long) should be enough, shouldn't
 it?

That's what I will do.


-- 

tkoenig at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Last reconfirmed|2008-01-12 14:04:27 |2008-01-12 15:14:42
   date||


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



[Bug c++/34750] New: ICE in fold_convert, at fold-const.c:1955

2008-01-12 Thread timj at gtk dot org
compiling gccfolderr.cc like this:
  g++-4.1 -g -Wall -Wdeprecated -Wno-cast-qual -pipe -O2 -ftracer \
-finline-functions -fno-keep-static-consts gccfolderr.cc
yields:
  gccfolderr.cc: In function ‘voidunnamed::test_array()’:
  gccfolderr.cc:34571: internal compiler error: in fold_convert, at \
fold-const.c:1955

compiling it without options still results in an ICE:
  g++-4.1 gccfolderr.cc
albeit a different one:
  gccfolderr.cc:34571: internal compiler error: in cp_expr_size, at \
cp/cp-objcp-common.c:101

gcc version details (etch x86):
$ g++-4.1 --version
g++-4.1 (GCC) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)

compressed preprocessor file follows.


-- 
   Summary: ICE in fold_convert, at fold-const.c:1955
   Product: gcc
   Version: 4.1.2
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: timj at gtk dot org


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



[Bug c++/34750] ICE in fold_convert, at fold-const.c:1955

2008-01-12 Thread timj at gtk dot org


--- Comment #1 from timj at gtk dot org  2008-01-12 15:34 ---
Created an attachment (id=14929)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14929action=view)
compressed C++ preprocessor output

the preprocessed code was spewed out by gcc in the middle of development, it is
not meant to do anything sensible. line directives have been stripped and it
was compressed with bzip2 to avoid inflating bugzilla with 3MB preprocessor
blobs.


-- 


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



[Bug target/34571] [4.3 Regression] Segfault in alpha_expand_mov at -O3

2008-01-12 Thread steven at gcc dot gnu dot org


--- Comment #7 from steven at gcc dot gnu dot org  2008-01-12 16:22 ---
Patch of comment #3 looks good to me.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

   Keywords||patch


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



[Bug rtl-optimization/33796] valgrind error with -O2 for linux kernel code

2008-01-12 Thread zadeck at naturalbridge dot com


--- Comment #9 from zadeck at naturalbridge dot com  2008-01-12 16:34 
---
i personally think that this patch in #8 is not the right way to go.

unless there is a compelling argument that initializing this is going to have
some negative performance effect, we should properly initialize this
datastructure as we do (or at least try to do) for every other data structure
in the compiler.  While the current code that peter has written is correct, it
is quite tricky.  This compiler has way too much tricky code, which only adds
to the long term maintainance cost of the compiler.

the patch in 8 is not acceptable because it requires that the compiler be built
in a particular way to avoid the valgrind errors.  The last thing that you want
to have to do if you have a heisenbug is to rebuild your compiler in a way that
will change the layout and alignment of things.  


-- 


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



[Bug rtl-optimization/33796] valgrind error with -O2 for linux kernel code

2008-01-12 Thread bonzini at gnu dot org


--- Comment #10 from bonzini at gnu dot org  2008-01-12 16:52 ---
an alternative is to prepare a suppression file for valgrind, and distribute it
with gcc.


-- 


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



[Bug rtl-optimization/33796] valgrind error with -O2 for linux kernel code

2008-01-12 Thread zadeck at naturalbridge dot com


--- Comment #11 from zadeck at naturalbridge dot com  2008-01-12 17:05 
---
until someone has the slightest bit of evidence that initializing the
datastructure is costly, this is just a waste of time.  

peter wrote the code this way to be cute, not because there was any reason to
believe that getting a zerod data structure was going to be noticeable.


-- 


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



[Bug c++/34750] ICE in fold_convert, at fold-const.c:1955

2008-01-12 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2008-01-12 17:47 ---
Can you please retain line directives so we can bring this up to current
development versions?  Thanks.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||rguenth at gcc dot gnu dot
   ||org


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



[Bug libgcj/33764] [4.2/4.3 regression] gij is built as 32-bit binary when building multilib gcc

2008-01-12 Thread rguenth at gcc dot gnu dot org


--- Comment #6 from rguenth at gcc dot gnu dot org  2008-01-12 17:53 ---
P2.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

   Priority|P3  |P2


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



[Bug c++/34751] New: [4.3 regression] ICE with pointer to member and variadic templates

2008-01-12 Thread reichelt at gcc dot gnu dot org
The following (IMHO valid) code snippet triggers an ICE on mainline:


struct A {};

templateint, typename T = A, int T::*...p = 0  struct B {};

B0 b;


bug.cc:5: internal compiler error: tree check: accessed elt 2 of tree_vec with
1 elts in tsubst, at cp/pt.c:8934
Please submit a full bug report, [etc.]

A similar testcase just segfaults:


struct A {};

templatetypename T = A, int T::*...p = 0  struct B {};

B b;


bug.cc:5: internal compiler error: Segmentation fault
Please submit a full bug report, [etc.]

The ICE appeared between 2007-10-13 and 2007-11-13.


-- 
   Summary: [4.3 regression] ICE with pointer to member and variadic
templates
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: ice-on-valid-code, monitored
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: reichelt at gcc dot gnu dot org


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



[Bug c++/34751] [4.3 regression] ICE with pointer to member and variadic templates

2008-01-12 Thread reichelt at gcc dot gnu dot org


-- 

reichelt at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.3.0


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



[Bug regression/33928] [4.3 Regression] 22% performance slowdown from 4.2.2 to 4.3.0 in floating-point code

2008-01-12 Thread rguenth at gcc dot gnu dot org


--- Comment #22 from rguenth at gcc dot gnu dot org  2008-01-12 17:56 
---
I'm downgrading this to P2.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

   Priority|P1  |P2


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



[Bug c++/34752] New: [4.3 regression] pointer to member rejected in variadic template

2008-01-12 Thread reichelt at gcc dot gnu dot org
The following (IMHO valid) code snippet is rejected on mainline:


struct A {};

templateint*...p struct B1;  // OK
templateint*...  struct B2;  // OK
templateint A::*...p struct B3;  // OK
templateint A::*...  struct B4;  // error


bug.cc:6: error: expected '' before '...' token


-- 
   Summary: [4.3 regression] pointer to member rejected in variadic
template
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: rejects-valid, monitored
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: reichelt at gcc dot gnu dot org


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



[Bug c++/34752] [4.3 regression] pointer to member rejected in variadic template

2008-01-12 Thread reichelt at gcc dot gnu dot org


-- 

reichelt at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.3.0


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



[Bug fortran/34741] Bounds-check of array-pointer == [ constructor ]

2008-01-12 Thread burnus at gcc dot gnu dot org


--- Comment #1 from burnus at gcc dot gnu dot org  2008-01-12 18:01 ---
gfortran does only create a check for ptr itself and not for ptr -
constructor; the created check looks (with some temporary variables added) as
follows:
  if (prt.lbound  ptr.lbound || ptr.lbound  ptr.ubound)

(It were be also great if this would not be written by gfortran as it is rather
useless; though the middle end will remove it using -O.)


-- 


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



[Bug tree-optimization/34648] [4.3 Regression] ICE in find_or_generate_expression

2008-01-12 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2008-01-12 18:02 ---
Also ICEs cc1plus with plain -O2 the same way.


-- 


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



[Bug libstdc++/34733] numpunct::grouping() doesn't match libc value for Bulgarian (bg_BG) locale

2008-01-12 Thread pcarlini at suse dot de


--- Comment #13 from pcarlini at suse dot de  2008-01-12 18:06 ---
Anyway... The issue, after all, seems pretty academic to me, for the simple
reason that, per your report, the only known example of a named locale showing
'\0' as thousands separator is bg_BG, and most likely the data isn't even ok,
per your glibc report. Therefore, unless the data turns out to be ok and the
glibc people tell us, contrary to our understanding, that a \0 must be
interpreted differently, there is really nothing to do. Let's suspend the PR,
in the meantime.


-- 

pcarlini at suse dot de changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-01-12 18:06:26
   date||


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



[Bug libstdc++/34733] numpunct::grouping() doesn't match libc value for Bulgarian (bg_BG) locale

2008-01-12 Thread pcarlini at suse dot de


-- 

pcarlini at suse dot de changed:

   What|Removed |Added

 Status|NEW |SUSPENDED


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



[Bug c++/34753] New: [4.3 regression] ICE with invalid template parameter in variadic template

2008-01-12 Thread reichelt at gcc dot gnu dot org
The following invalid code snippet triggers an ICE on mainline:


templatetypename... T struct A
{
  templateT struct B {};
};

Aint::B0 b;


bug.cc:3: error: parameter packs not expanded with `...':
bug.cc:3: note: 'T'
bug.cc: In instantiation of 'Aint':
bug.cc:6:   instantiated from here
bug.cc:3: internal compiler error: Segmentation fault
Please submit a full bug report, [etc.]

The ICE appeared between 2007-11-30 and 2007-12-11.


-- 
   Summary: [4.3 regression] ICE with invalid template parameter in
variadic template
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: ice-on-invalid-code, error-recovery, monitored
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: reichelt at gcc dot gnu dot org


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



[Bug c++/34753] [4.3 regression] ICE with invalid template parameter in variadic template

2008-01-12 Thread reichelt at gcc dot gnu dot org


-- 

reichelt at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.3.0


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



[Bug c++/34750] ICE in fold_convert, at fold-const.c:1955

2008-01-12 Thread rguenth at gcc dot gnu dot org


--- Comment #3 from rguenth at gcc dot gnu dot org  2008-01-12 18:09 ---
Note this may be invalid code, g++ 3.4 reports:

gccfolderr.cc: In constructor `Rapicorn0752::Model::AutoValue::AutoValue(const
Rapicorn0752::Model::Array)':
gccfolderr.cc:34571: error: invalid use of undefined type `struct
Rapicorn0752::Model::Array'
gccfolderr.cc:34450: error: forward declaration of `struct
Rapicorn0752::Model::Array'
gccfolderr.cc:34571: error:   initializing argument 2 of
`Rapicorn0752::Model::AnyValue::AnyValue(Rapicorn0752::Model::Type::Storage, V)
[with V = Rapicorn0752::Model::Array]'


-- 


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



[Bug libstdc++/34730] Legal program doesn't compile with -D_GLIBCXX_DEBUG

2008-01-12 Thread pcarlini at suse dot de


--- Comment #6 from pcarlini at suse dot de  2008-01-12 18:12 ---
Thanks for the suggestion, Benjamin. Actually, I don't think we can much better
*without* concepts... Anyway, was thinking that the ordering check is already
impossible to do in other circumstances, like real (single pass) input
iterators, therefore, we have probably to live with that and reconsider the
issue together with concepts, as you are saying.


-- 


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



[Bug c++/34754] New: [4.3 regression] ICE with invalid function arguments in variadic template

2008-01-12 Thread reichelt at gcc dot gnu dot org
The following invalid code snippet triggers an ICE on mainline:


templatetemplateint class... T struct A
{
  void foo(T0);
  void bar(T0);
};


bug.cc:3: error: parameter packs not expanded with `...':
bug.cc:3: note: 'templateint anonymous  class T'
bug.cc:4: internal compiler error: tree check: expected class 'type', have
'exceptional' (error_mark) in bind_template_template_parm, at cp/tree.c:1242
Please submit a full bug report, [etc.]

The ICE appeared between 2007-10-13 and 2007-11-13.


-- 
   Summary: [4.3 regression] ICE with invalid function arguments in
variadic template
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: ice-on-invalid-code, error-recovery, monitored
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: reichelt at gcc dot gnu dot org


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



[Bug c++/34754] [4.3 regression] ICE with invalid function arguments in variadic template

2008-01-12 Thread reichelt at gcc dot gnu dot org


-- 

reichelt at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.3.0


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



[Bug c++/34755] New: [4.3 regression] ICE with invalid argument in variadic template function

2008-01-12 Thread reichelt at gcc dot gnu dot org
The following invalid code snippet triggers an ICE on mainline:


templatetypename struct A {};

templatetemplatetypename class... T void foo(Tint) {}

template void fooA(Aint);


bug.cc:3: error: parameter packs not expanded with `...':
bug.cc:3: note: 'templateclass class T'
bug.cc:5: internal compiler error: tree check: expected template_type_parm or
template_template_parm or bound_template_template_parm, have error_mark in
fn_type_unification, at cp/pt.c:11623
Please submit a full bug report, [etc.]

The ICE appeared between 2007-10-13 and 2007-11-13.
Maybe related to PR 34754.


-- 
   Summary: [4.3 regression] ICE with invalid argument in variadic
template function
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: ice-on-invalid-code, error-recovery, monitored
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: reichelt at gcc dot gnu dot org


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



[Bug libstdc++/34730] Legal program doesn't compile with -D_GLIBCXX_DEBUG

2008-01-12 Thread pcarlini at suse dot de


--- Comment #7 from pcarlini at suse dot de  2008-01-12 18:23 ---
Eh! Interestingly, conceptgcc explicitly enforces the concept that the two
value types must equal! Exactly the case that is covered but my almost-ready
patch.


-- 


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



[Bug c++/34753] [4.3 regression] ICE with invalid template parameter in variadic template

2008-01-12 Thread reichelt at gcc dot gnu dot org


--- Comment #1 from reichelt at gcc dot gnu dot org  2008-01-12 18:23 
---
Here's a similar testcase with a function instead of a nested class
that also segfaults:


templatetypename... T struct A
{
  templateT A();
};

Aint a;



-- 


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



[Bug c++/34750] [4.1/4.2 Regression] ICE in fold_convert, at fold-const.c:1955

2008-01-12 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2008-01-12 18:24 ---
Reduced testcase:

namespace std {
  templatetypename _CharT
  class basic_string {
  public:
basic_string(const _CharT* __s);
  };
  typedef basic_stringchar string;
}
typedef signed long long int int64;
typedef std::string String;
class Array;
class Type {
public:
  enum Storage { NUM = 'n', FLOAT = 'f', STRING = 's',
 OBJECT = 'O', STRING_VECTOR = 'v', ARRAY = 'A'  };
};
class BaseValue {
protected:
  explicit BaseValue (Type::Storage value_type);
};
class AnyValue : public BaseValue {
public:
  templatetypename V
  explicit AnyValue (Type::Storage strg, V value)
: BaseValue (strg) {   }
};
class AutoValue : public AnyValue {
public:
  AutoValue (const String string)
: AnyValue (Type::STRING, string) {   }
  AutoValue (const Array array)
: AnyValue (Type::ARRAY, array) {   }
};
class Array {
public:
  Array (const Array other);
  explicit Array ();
  Array operator= (const Array other);
  void push_tail (const AutoValue value) {}
};
void test_array ()
{
  Array a;
  const char *x[][8] = {};
  for (int64 i = 0; i  sizeof (x) / sizeof (x[0]); i++) 
{   
  Array b; 
  for (int64 j = 0; j  sizeof (x[0]) / sizeof (x[0][0]); j++)
b.push_tail (String (x[i][j])); 
  a.push_tail (b);   
}
}


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
  Known to fail||4.0.4 4.1.3 4.2.3
  Known to work||3.4.6 4.3.0
   Last reconfirmed|-00-00 00:00:00 |2008-01-12 18:24:22
   date||
Summary|ICE in fold_convert, at |[4.1/4.2 Regression] ICE in
   |fold-const.c:1955   |fold_convert, at fold-
   ||const.c:1955
   Target Milestone|--- |4.2.3


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



[Bug c++/34756] New: [4.3 regression] ICE with broken specialization of variadic template

2008-01-12 Thread reichelt at gcc dot gnu dot org
The following invalid code snippet triggers an ICE on mainline:


templatetypename... class A {};

templateint class A {};

templatetypename T, typename...U struct AT,U... : AU...
{
  A() {}
};

Aint a;


bug.cc:3: error: template parameters not used in partial specialization:
bug.cc:3: error: 'anonymous'
bug.cc: In constructor 'AT, U ...::A() [with T = int, U = ]':
bug.cc:10:   instantiated from here
bug.cc:7: internal compiler error: in build_simple_base_path, at cp/class.c:489
Please submit a full bug report, [etc.]


-- 
   Summary: [4.3 regression] ICE with broken specialization of
variadic template
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: ice-on-invalid-code, error-recovery, monitored
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: reichelt at gcc dot gnu dot org


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



[Bug c++/34757] New: [4.3 regression] ICE with invalid parameters in variadic template

2008-01-12 Thread reichelt at gcc dot gnu dot org
The following invalid code snippet triggers an ICE on mainline:


templatetypename int M, int N, int (*... p)[N] struct A {};

A0 a;


bug.cc:1: error: expected nested-name-specifier before 'int'
bug.cc:1: error: two or more data types in declaration of 'M'
bug.cc:1: error: no default argument for 'N'
bug.cc:1: error: no default argument for 'p'
bug.cc:3: error: 'type error' is not a valid type for a template constant
parameter
bug.cc:3: error: template argument 2 is invalid
bug.cc:3: internal compiler error: tree check: accessed elt 2 of tree_vec with
1 elts in tsubst, at cp/pt.c:8934
Please submit a full bug report, [etc.]

The ICE appeared between 2007-10-13 and 2007-11-13.
Maybe related to PR34751.


-- 
   Summary: [4.3 regression] ICE with invalid parameters in variadic
template
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: ice-on-invalid-code, error-recovery, monitored
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: reichelt at gcc dot gnu dot org


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



[Bug c++/34757] [4.3 regression] ICE with invalid parameters in variadic template

2008-01-12 Thread reichelt at gcc dot gnu dot org


-- 

reichelt at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.3.0


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



[Bug c++/34758] New: [4.1/4.2/4.3 regression] Bad diagnostic for circular dependency in constructor default argument

2008-01-12 Thread reichelt at gcc dot gnu dot org
The diagnostic for the following invalid code snippet degraded in GCC 3.4.0:

===
struct A
{
  A (const A = A());
};
===

Since GCC 3.4.0 we get:

bug.cc:3: error: the default argument for parameter 0 of 'A::A(const A)' has
not yet been parsed

But before we got the much clearer diagnostic (although it was just a warning):

bug.cc:3: warning: circular dependency in default args of `A::A(const A)'

In addition, the counting of the parameters should start with 1.


-- 
   Summary: [4.1/4.2/4.3 regression] Bad diagnostic for circular
dependency in constructor default argument
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: diagnostic
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: reichelt at gcc dot gnu dot org


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



[Bug c++/34758] [4.1/4.2/4.3 regression] Bad diagnostic for circular dependency in constructor default argument

2008-01-12 Thread reichelt at gcc dot gnu dot org


-- 

reichelt at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.1.3


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



[Bug c++/33964] [4.3 Regression] internal compiler error: in dependent_type_p, at cp/pt.c:15319 (vararg templates)

2008-01-12 Thread andreasmeier80 at gmx dot de


--- Comment #5 from andreasmeier80 at gmx dot de  2008-01-12 19:06 ---
Patch at http://gcc.gnu.org/ml/gcc-patches/2008-01/msg00482.html


-- 


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



[Bug c++/34052] [4.3 regression] Trouble with variadic templates as template-template parameter

2008-01-12 Thread andreasmeier80 at gmx dot de


--- Comment #6 from andreasmeier80 at gmx dot de  2008-01-12 19:08 ---
Patch at http://gcc.gnu.org/ml/gcc-patches/2008-01/msg00491.html


-- 


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



[Bug c++/34051] [4.3 regression] ICE in dependent_type_p with variadic templates

2008-01-12 Thread andreasmeier80 at gmx dot de


--- Comment #7 from andreasmeier80 at gmx dot de  2008-01-12 19:09 ---
Patch at http://gcc.gnu.org/ml/gcc-patches/2007-12/msg00149.html


-- 


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



[Bug tree-optimization/34648] [4.3 Regression] ICE in find_or_generate_expression

2008-01-12 Thread rguenth at gcc dot gnu dot org


--- Comment #5 from rguenth at gcc dot gnu dot org  2008-01-12 19:13 ---
Danny, maybe you mis-understood.  We try to generate *VH.98, but VH.98 is
indeed
not in avail_out[19], but created for example as

exp_gen[4] := { x_7(D) (VH.72) , D.1661_4 (VH.98) , *VH.74 (VH.75) , a.1_6
(VH.76) , *VH.72 (VH.77) , (unsigned int) VH.77 (VH.78) , VH.76 + VH.78 (VH.79)
, *VH.79 (VH.80) , (unsigned int) VH.80 (VH.81) , VH.81 * 2 (VH.82) , VH.75 +
VH.82 (VH.83) , *VH.83 (VH.84) , (int) VH.84 (VH.85) , VH.85  8192 (VH.86)  }
tmp_gen[4] := { D.1661_4 (VH.98) , D.1662_5 (VH.75) , a.1_6 (VH.76) , D.1664_8
(VH.77) , D.1665_9 (VH.78) , D.1666_10 (VH.79) , D.1667_11 (VH.80) , D.1668_12
(VH.81) , D.1669_13 (VH.82) , D.1670_14 (VH.83) , D.1671_15 (VH.84) , D.1672_16
(VH.85) , D.1673_17 (VH.86)  }

exp_gen[7] := { D.1661_4 (VH.98) , D.1667_34 (VH.97) , *VH.98 (VH.99) ,
(unsigned int) VH.97 (VH.100) , VH.100 * 2 (VH.101) , VH.99 + VH.101 (VH.102) ,
*VH.102 (VH.103) , (int) VH.103 (VH.104) , VH.104  8192 (VH.105)  }
tmp_gen[7] := { D.1661_35 (VH.98) , D.1662_36 (VH.99) , D.1668_42 (VH.100) ,
D.1669_43 (VH.101) , D.1670_44 (VH.102) , D.1671_45 (VH.103) , D.1672_46
(VH.104) , D.1673_47 (VH.105)  }

exp_gen[9] := { D.1661_4 (VH.98) , D.1667_53 (VH.109) , *VH.98 (VH.110) ,
(unsigned int) VH.109 (VH.111) , VH.111 * 2 (VH.112) , VH.110 + VH.112 (VH.113)
, *VH.113 (VH.114) , (int) VH.114 (VH.115) , VH.115  8192 (VH.116)  }
tmp_gen[9] := { D.1661_54 (VH.98) , D.1662_55 (VH.110) , D.1668_61 (VH.111) ,
D.1669_62 (VH.112) , D.1670_63 (VH.113) , D.1671_64 (VH.114) , D.1672_65
(VH.115) , D.1673_66 (VH.116)  }

exp_gen[10] := { D.1661_4 (VH.98) , D.1667_53 (VH.109) , *VH.98 (VH.110) ,
(unsigned int) VH.109 (VH.111) , VH.111 * 2 (VH.112) , VH.110 + VH.112 (VH.113)
, *VH.113 (VH.114) , (int) VH.114 (VH.115) , VH.115  8192 (VH.116)  }

But all these expressions for VH.98 are plain SSA_NAMEs.

So we can in fact not do insertion of *VH.98 in two of the preds of BB.  It
looks like we do not do verification for that anywhere?


-- 


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



[Bug c++/34750] [4.1/4.2 Regression] ICE in fold_convert, at fold-const.c:1955

2008-01-12 Thread reichelt at gcc dot gnu dot org


--- Comment #5 from reichelt at gcc dot gnu dot org  2008-01-12 19:23 
---
Even further reduced testcase:

=
struct A
{
  templatetypename T A(T);
};

class C;

struct B : A
{
  B(const C c) : A(c) {}
};

struct C
{
  C(const C);
  C();
  C operator= (const C);
};

B b = C();
=

bug.cc: In constructor 'B::B(const C)':
bug.cc:10: internal compiler error: in cp_expr_size, at
cp/cp-objcp-common.c:100
Please submit a full bug report, [etc.]

This is really invalid code (C is used before it is defined).

The bug was fixed on mainline between 2007-10-13 and 2007-11-13.


-- 

reichelt at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||reichelt at gcc dot gnu dot
   ||org
   Keywords||ice-on-invalid-code,
   ||monitored
  Known to fail|4.0.4 4.1.3 4.2.3   |4.0.4 4.1.2 4.1.3 4.2.0
   ||4.2.1 4.2.2 4.2.3
  Known to work|3.4.6 4.3.0 |3.4.6 4.0.0 4.0.3 4.1.0
   ||4.1.1 4.3.0


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



[Bug rtl-optimization/31396] Inline code performance much worse than out-of-line

2008-01-12 Thread hubicka at gcc dot gnu dot org


--- Comment #9 from hubicka at gcc dot gnu dot org  2008-01-12 19:00 ---
Created an attachment (id=14930)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14930action=view)
tentative fix

I am testing the attached patch.  It is obvious that we should use profile
here.  The PR is most likely regression to 2.95 that used to multiply n_refs by
3 inside loops.


-- 


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



[Bug c++/34752] pointer to member rejected in variadic template

2008-01-12 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2008-01-12 19:41 ---
How is this a regression?


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

Summary|[4.3 regression] pointer to |pointer to member rejected
   |member rejected in variadic |in variadic template
   |template|
   Target Milestone|4.3.0   |---


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



[Bug c++/34751] [4.3 regression] ICE with pointer to member and variadic templates

2008-01-12 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2008-01-12 19:42 ---
ICE-after-error for non c++0x mode.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Keywords||error-recovery
   Priority|P3  |P2
   Last reconfirmed|-00-00 00:00:00 |2008-01-12 19:42:44
   date||


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



[Bug c++/34753] [4.3 regression] ICE with invalid template parameter in variadic template

2008-01-12 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2008-01-12 19:43 ---
Confirmed.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Priority|P3  |P4
   Last reconfirmed|-00-00 00:00:00 |2008-01-12 19:43:54
   date||


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



[Bug c++/34754] [4.3 regression] ICE with invalid function arguments in variadic template

2008-01-12 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2008-01-12 19:44 ---
Confirmed.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Priority|P3  |P4
   Last reconfirmed|-00-00 00:00:00 |2008-01-12 19:44:25
   date||


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



[Bug c++/34757] [4.3 regression] ICE with invalid parameters in variadic template

2008-01-12 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2008-01-12 19:44 ---
Confirmed.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Priority|P3  |P4
   Last reconfirmed|-00-00 00:00:00 |2008-01-12 19:44:46
   date||


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



[Bug c++/34758] [4.1/4.2/4.3 regression] Bad diagnostic for circular dependency in constructor default argument

2008-01-12 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2008-01-12 19:46 ---
Confirmed.  With the better diagnostic we had accepts-invalid, so lowering
priority as regression status is not exactly clear.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Priority|P3  |P4
   Last reconfirmed|-00-00 00:00:00 |2008-01-12 19:46:58
   date||


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



[Bug tree-optimization/34648] [4.3 Regression] ICE in find_or_generate_expression

2008-01-12 Thread rguenth at gcc dot gnu dot org


--- Comment #7 from rguenth at gcc dot gnu dot org  2008-01-12 19:48 ---
Maybe sth for steven, as he was asking for bugs to look at... ;)


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||stevenb dot gcc at gmail dot
   ||com


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



[Bug tree-optimization/34648] [4.3 Regression] ICE in find_or_generate_expression

2008-01-12 Thread dberlin at dberlin dot org


--- Comment #6 from dberlin at gcc dot gnu dot org  2008-01-12 19:33 ---
Subject: Re:  [4.3 Regression] ICE in find_or_generate_expression

On 12 Jan 2008 19:13:56 -, rguenth at gcc dot gnu dot org
[EMAIL PROTECTED] wrote:


 --- Comment #5 from rguenth at gcc dot gnu dot org  2008-01-12 19:13 
 ---
 Danny, maybe you mis-understood.  We try to generate *VH.98, but VH.98 is
 indeed
 not in avail_out[19], but created for example as

 So we can in fact not do insertion of *VH.98 in two of the preds of BB.  It
 looks like we do not do verification for that anywhere?
Sure we do. It should never be ANTIC if it is not possible to
regenerate the expression.  Anything else is a bug in ANTIC
calculation or initial exp_gen/tmp_gen/etc set construction.

valid_in_sets ensures that SSA_NAME's are either AVAIL_OUT[1], or
available in our current ANTIC set.
ANTIC propagation subtracts TMP_GEN from ANTIC, which should ensure
that values do not get hoisted above the point that creates them.


[1] I honestly don't remember why valid_in_sets ensures that
SSA_NAME's are AVAIL_OUT when bare. That seems wrong to me. The
correct condition is whether they are in our current ANTIC set, just
like it does for more complex expressions. I do not remember when or
why this got changed, but it seems like a bug.


-- 


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



[Bug fortran/34759] New: Assumed size array reference not allowed in SHAPE intrinsic, even though last subscript specified

2008-01-12 Thread dick dot hendrickson at gmail dot com
With gfortran 4.3.0 20080109 I get an incorrect error message
Error: 'source' argument of 'shape' intrinsic at (1) must not
be an assumed size array with the following little test case

   subroutine j_assumed_size(A,N)
   dimension A(10,11,12,*)
   k = shape(A(:,:,:,N))
   l = shape(A(:,:,:,3))
   end

I believe assumed size arrays are allowed provided the last subscript
is specified.

Dick Hendrickson


-- 
   Summary: Assumed size array reference not allowed in SHAPE
intrinsic, even though last subscript specified
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dick dot hendrickson at gmail dot com


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



[Bug fortran/34760] New: PRIVATE variable not allowed as STAT variable in ALLOCATE

2008-01-12 Thread dick dot hendrickson at gmail dot com
With gfortran 4.3.0 20080109 I get the error message

 ALLOCATE (RLA1(NF10), STAT = ISTAT)
  1
Error: STAT expression at (1) must be a variable

With the following program.

 MODULE TESTS
 INTEGER, PRIVATE :: ISTAT   !this one FAILS
!  INTEGER :: ISTAT   !this one works
!  PRIVATE :: ISTAT   !this one FAILS
 CONTAINS
 SUBROUTINE AD0001
 REAL RLA1(:)
 ALLOCATABLE RLA1
 ISTAT = -314
 ALLOCATE (RLA1(NF10), STAT = ISTAT)
 END SUBROUTINE
 END MODULE

In the real module there are several subroutines that do similar
allocates and they do not generate the error.  It looks like it is
only the first use of ISTAT in an allocate that triggers the message.

Dick Hendrickson


-- 
   Summary: PRIVATE variable not allowed as STAT variable in
ALLOCATE
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dick dot hendrickson at gmail dot com


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



[Bug fortran/34761] New: ICE in TRANSFER with pointer mold

2008-01-12 Thread tkoenig at gcc dot gnu dot org
Extracted from PR 34741 :

$ cat bar.f90
  character, pointer :: ptr(:)
  allocate(ptr(1))
  ptr = transfer('a',ptr)
  end
$ gfortran bar.f90 
f951: internal compiler error: Floating point exception
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.
$ gdb ~/libexec/gcc/i686-pc-linux-gnu/4.3.0/f951 
GNU gdb 6.6.90.20070912-debian
Copyright (C) 2007 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type show copying
and show warranty for details.
This GDB was configured as i486-linux-gnu...
Using host libthread_db library /lib/i686/cmov/libthread_db.so.1.
(gdb) r bar.f90
Starting program: /home/ig25/libexec/gcc/i686-pc-linux-gnu/4.3.0/f951 bar.f90

Program received signal SIGFPE, Arithmetic exception.
0x080b1855 in gfc_simplify_transfer (source=0x89b5478, mold=0x89b54e8, 
size=0x0) at ../../../gcc/trunk/gcc/fortran/simplify.c:4140
4140  result_length = source_size / result_elt_size;
(gdb) p result_elt_size 
$1 = 0
(gdb) bt
#0  0x080b1855 in gfc_simplify_transfer (source=0x89b5478, mold=0x89b54e8, 
size=0x0) at ../../../gcc/trunk/gcc/fortran/simplify.c:4140
#1  0x08071189 in do_simplify (specific=0x899faa0, e=0x89b5408)
at ../../../gcc/trunk/gcc/fortran/intrinsic.c:3191
#2  0x08071f87 in gfc_intrinsic_func_interface (expr=0x89b5408, error_flag=1)
at ../../../gcc/trunk/gcc/fortran/intrinsic.c:3450
#3  0x080a5e3f in gfc_resolve_expr (e=0x89b5408)
at ../../../gcc/trunk/gcc/fortran/resolve.c:1629
#4  0x080a932e in resolve_code (code=0x89b5628, ns=0x89b42b0)
at ../../../gcc/trunk/gcc/fortran/resolve.c:6104
#5  0x080ab29c in resolve_codes (ns=0x89b42b0)
at ../../../gcc/trunk/gcc/fortran/resolve.c:8996
#6  0x080ab2d3 in gfc_resolve (ns=0x89b42b0)
at ../../../gcc/trunk/gcc/fortran/resolve.c:9015
#7  0x0809c4b8 in gfc_parse_file ()
at ../../../gcc/trunk/gcc/fortran/parse.c:3380
#8  0x080c54a5 in gfc_be_parse_file (set_yydebug=0)
at ../../../gcc/trunk/gcc/fortran/f95-lang.c:260
#9  0x0836954c in toplev_main (argc=2, argv=0xbfecab94)
at ../../../gcc/trunk/gcc/toplev.c:1042
#10 0x0811161f in main (argc=Cannot access memory at address 0x0
) at ../../../gcc/trunk/gcc/main.c:35


-- 
   Summary: ICE in TRANSFER with pointer mold
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: ice-on-valid-code
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: tkoenig at gcc dot gnu dot org
OtherBugsDependingO 31237
 nThis:


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



[Bug c/34762] New: [4.2 regression] internal compiler error: in delete_output_reload, at reload1.c:7958

2008-01-12 Thread tausq at debian dot org
While building RPM on hppa with gcc-4.2, build fails with the captioned error.
Somewhat reduced testcase attached.

Builds fine with -O1 or without -fPIC, or with older compilers.

ffmpeg and squashfs also fail to build with a similar error (not always built
with  -fPIC)


-- 
   Summary: [4.2 regression] internal compiler error: in
delete_output_reload, at reload1.c:7958
   Product: gcc
   Version: 4.2.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: tausq at debian dot org
 GCC build triplet: hppa-linux
  GCC host triplet: hppa-linux
GCC target triplet: hppa-linux


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



[Bug fortran/34761] ICE in TRANSFER with pointer mold

2008-01-12 Thread burnus at gcc dot gnu dot org


--- Comment #1 from burnus at gcc dot gnu dot org  2008-01-12 20:53 ---
Works for me. I think it is a duplicate of the very recently fixed PR 34537.
Can you check?


-- 


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



[Bug c/34762] [4.2 regression] internal compiler error: in delete_output_reload, at reload1.c:7958

2008-01-12 Thread tausq at debian dot org


--- Comment #1 from tausq at debian dot org  2008-01-12 20:54 ---
Created an attachment (id=14931)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14931action=view)
Testcase


-- 


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



[Bug fortran/34760] PRIVATE variable not allowed as STAT variable in ALLOCATE

2008-01-12 Thread burnus at gcc dot gnu dot org


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

OtherBugsDependingO||32834
  nThis||
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Keywords||rejects-valid
   Last reconfirmed|-00-00 00:00:00 |2008-01-12 20:59:27
   date||


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



[Bug fortran/34763] New: bare END not allowed in an interface block in a module procedure

2008-01-12 Thread dick dot hendrickson at gmail dot com
With gfortran 4.3.0 20080109 I get the error message

n_interface.f:7.12:

END
   1
Error: END SUBROUTINE statement expected at (1)

with the following program
  module n
  contains
  subroutine n_interface
  INTERFACE
SUBROUTINE NGSXDY(TLS1,TLS2)
REAL  ::  TLS1,TLS2
END 
  END INTERFACE
  end
  end module

If the n_interface is an external procedure it works fine.  A bare
END statement is allowed in interface blocks.  I'd guess you
are misapplying the constraint after R1224 to things inside of
interface blocks.  But NGSXDY isn't a module subroutine.  You'll
probably need a similar fix for functions in interface blocks,
although I haven't tried that.

Dick Hendrickson


-- 
   Summary: bare END not allowed in an interface block in a module
procedure
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dick dot hendrickson at gmail dot com


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



[Bug rtl-optimization/33796] valgrind error with -O2 for linux kernel code

2008-01-12 Thread bonzini at gnu dot org


--- Comment #12 from bonzini at gnu dot org  2008-01-12 21:09 ---
well if you can enjoy O(n) initialization (and O(1) clearing as in Peter's
code), you had better rewrite the code completely to query an item with one
(not two) memory accesses.


-- 


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



[Bug fortran/34665] Cannot pass scalar to array argument 'a'

2008-01-12 Thread burnus at gcc dot gnu dot org


--- Comment #6 from burnus at gcc dot gnu dot org  2008-01-12 21:13 ---
One has to be careful not to to get the same problem as with SHAPE in PR 34759,
i.e. passing a rank-2 array A(:,:,5) defined as rank-3 assumed-shape array
A(:,:,*).


-- 


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



[Bug fortran/34759] Assumed size array reference not allowed in SHAPE intrinsic, even though last subscript specified

2008-01-12 Thread burnus at gcc dot gnu dot org


--- Comment #1 from burnus at gcc dot gnu dot org  2008-01-12 21:13 ---
Confirm, though your reduced test case is invalid (the variables k and l need
to be arrays. Corrected test case:

   subroutine j_assumed_size(A,N)
   dimension A(10,11,12,*), k(3), l(3)
   k = shape(A(:,:,:,N))
   l = shape(A(:,:,:,3))
   end

SOURCE may be of any type. It may be a scalar or an array. It shall not be an
unallocated allocatable or a pointer that is not associated. It shall not be an
assumed-size array.

The shall-nots do not apply for the rank-3 arrays A(:,:,:,N) and A(:,:,:,3).
Actually, this could be a wider problem, which is not only limited to check.c's
gfc_check_shape. (For actual/dummy argument checking, I added a note to PR
34665.)

Thanks for the report.


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

OtherBugsDependingO||32834
  nThis||
   Keywords||rejects-valid


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



[Bug fortran/34763] bare END not allowed in an interface block in a module procedure

2008-01-12 Thread burnus at gcc dot gnu dot org


--- Comment #1 from burnus at gcc dot gnu dot org  2008-01-12 21:23 ---
Confirm. (Though you missed subroutine for end subroutine n_interface in
your example.)

The Fortran 2003 references are:
  C1243 (R1230) FUNCTION shall appear in the end-function-stmt of an internal
or module function.
and
  C1248 (R1234) SUBROUTINE shall appear in the end-subroutine-stmt of an
internal or module subroutine.

Seemingly, the contained_procedure() check in decl.c, called by gfc_match_end,
does not work properly.

Thanks for report.


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

OtherBugsDependingO||32834
  nThis||
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Keywords||rejects-valid
   Last reconfirmed|-00-00 00:00:00 |2008-01-12 21:23:52
   date||


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



[Bug fortran/34759] Assumed size array reference not allowed in SHAPE intrinsic, even though last subscript specified

2008-01-12 Thread burnus at gcc dot gnu dot org


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-01-12 21:24:39
   date||


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



[Bug fortran/34761] ICE in TRANSFER with pointer mold

2008-01-12 Thread tkoenig at gcc dot gnu dot org


--- Comment #2 from tkoenig at gcc dot gnu dot org  2008-01-12 21:53 ---
(In reply to comment #1)
 Works for me. I think it is a duplicate of the very recently fixed PR 34537.
 Can you check?

Bootstrapping right now.


-- 


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



[Bug target/34762] [4.2 regression] internal compiler error: in delete_output_reload, at reload1.c:7958

2008-01-12 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2008-01-12 21:44 ---
Probably a dup of PR32889.


-- 


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



[Bug objc/28050] [4.1/4.2/4.3 regression] ICE on invalid initializer

2008-01-12 Thread steven at gcc dot gnu dot org


--- Comment #2 from steven at gcc dot gnu dot org  2008-01-12 22:03 ---
Created an attachment (id=14932)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14932action=view)
Robustify C/objC parser

Tested (objc only) on cygwin.


-- 


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



[Bug c/34764] New: A Flame About 64-bit Pointers

2008-01-12 Thread pgquiles at elpauer dot org
(Please note this is a copy  paste from Donald E. Knuth's homepage:
http://www-cs-faculty.stanford.edu/~uno/news.html - Given who he is, I think
the issue should receive a bit of love)

It is absolutely idiotic to have 64-bit pointers when I compile a program that
uses less than 4 gigabytes of RAM. When such pointer values appear inside a
struct, they not only waste half the memory, they effectively throw away half
of the cache. 
 The gcc manpage advertises an option -mlong32 that presumably does what I
want. Namely, it should compile code for my x86-64 architecture, taking
advantage of the extra registers etc., but it should also know that my program
is going to live inside a 32-bit virtual address space. 
 Unfortunately, the gcc I got with Ubuntu 7.10 says that -mlong32 is an unknown
option. Probably that happens because programs compiled with this convention
will need to be loaded with a special version of libc. 
 Please, somebody, make that possible.


-- 
   Summary: A Flame About 64-bit Pointers
   Product: gcc
   Version: 4.1.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: pgquiles at elpauer dot org


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



[Bug target/34764] A Flame About 64-bit Pointers

2008-01-12 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2008-01-12 22:15 ---
Well first Knuth did read full the documentation because -mlong32 is only for
MIPS.
Second don't post flames.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

  Component|c   |target
 GCC target triplet||x86_64-linux-gnu


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



[Bug rtl-optimization/33796] valgrind error with -O2 for linux kernel code

2008-01-12 Thread dcb314 at hotmail dot com


--- Comment #13 from dcb314 at hotmail dot com  2008-01-12 22:17 ---
(In reply to comment #9)
 i personally think that this patch in #8 is not the right way to go.
 unless there is a compelling argument that initializing this is going to have
 some negative performance effect, we should properly initialize this
 datastructure as we do (or at least try to do) for every other data structure
 in the compiler.  While the current code that peter has written is correct, it
 is quite tricky.  This compiler has way too much tricky code, which only adds
 to the long term maintainance cost of the compiler.

Well said Sir.

If the tricky code bought a 10% speedup, I'd advocate it.

No one seems to have measured and documented how much it really saves.
Unmeasured claims really don't count.

Machines double in performance every few years, hence the
prudent engineer codes in the default case for clarity, 
not performance.


-- 


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



[Bug target/34764] A Flame About 64-bit Pointers

2008-01-12 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2008-01-12 22:27 ---
bla


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



  1   2   >