[Bug target/47564] internal compiler error in memory_address_addr_space, at explow.c:504

2011-02-01 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47564

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2011-02-01 
08:20:20 UTC ---
target attribute is a never ending source of problems.


[Bug fortran/47565] New: [4.6 Regression][OOP] Segfault with TBP

2011-02-01 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47565

   Summary: [4.6 Regression][OOP] Segfault with TBP
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Keywords: wrong-code
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: bur...@gcc.gnu.org
CC: ja...@gcc.gnu.org


Follow up to bug 47455 comment 4.

The following program works with gfortran 4.5 but with gfortran 4.6 it
segfaults at run time at the marked line.

Using a normal function call instead of a TBP call works as well.

==20391== Jump to the invalid address stated on the next line
==20391==at 0x0: ???
==20391==by 0x400C49: MAIN__ (444.f90:27)
==20391==by 0x400C7F: main (444.f90:25)


The dump shows the following difference between working and failing:
-this-_data-y = *find_y ();
+this-_data-y = *this-_vptr-find_y ();

If one compares this with a working call and POINTER attribute (cf. attachment
23130 to bug 47455 comment 4), one sees:

! Working:
  this-_data-x = this-_vptr-find_x (...)
! Failing:
  this-_data-y = *this-_vptr-find_y (...)

Note the extra *.


module class_t
type :: tx
integer, dimension(:), allocatable :: i
end type tx
type :: t
type(tx) :: y
contains
procedure :: calc
procedure, nopass :: find_y
end type t
contains
subroutine calc(this)
class(t) :: this
! WORKS:
!   this%y = find_y()
! Segfaults:
   this%y = this%find_y() ! Segfault at run time
print *, allocated(this%y%i)
end subroutine calc
function find_y() result(res)
type(tx), allocatable :: res
allocate(res)
   end function find_y
end module class_t
use class_t
type(t) :: x
call x%calc()
end


[Bug fortran/47455] [4.6 Regression][OOP] internal compiler error: in fold_convert_loc, at fold-const.c:2028

2011-02-01 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47455

--- Comment #13 from Tobias Burnus burnus at gcc dot gnu.org 2011-02-01 
08:50:39 UTC ---
(In reply to comment #12)
 valgrind ./a.out shows:

That seems to be a valgrind bug; even a simple Fortran program consisting of
end causes the problem.


The crash with comment 4 is now a separate bug: PR 47565 

Thus, left to do for this PR is comment 5: A deep copy is missing.


[Bug target/47558] 163267 breaks exception traceback in xplor-nih

2011-02-01 Thread iains at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47558

--- Comment #9 from Iain Sandoe iains at gcc dot gnu.org 2011-02-01 09:08:53 
UTC ---
Jack,

The linkage of libs (with trunk darwin.h) is like this:

libgcc_ext.dylib --- exports our additional symbols (ONLY)**
libSystem   contains the annotated system symbols.

** this causes the reference to /my/install/path/libgcc_s.1.dylib to be
inserted into the exe.

As below:
===

mini-02-sno:gcc-4-6-trunk-build$ uname -a 
Darwin mini-02-sno.local 10.6.0 Darwin Kernel Version 10.6.0: Wed Nov 10
18:13:17 PST 2010; root:xnu-1504.9.26~3/RELEASE_I386 i386 i386



mini-02-sno:gcc-4-6-trunk-build$ cat /Volumes/ScratchCS/tests/linkage.c
/* This is not meant to work or do anything useful !!! 
   -- sole purpose is to allow examination of linkage.  */
int main (void)
{
static __thread i;  === make it link our ext lib.
  i+i; 
  _Unwind_Resume ((void *)0); == make it link libSystem (we expect - NOT from
our ext.)
  return i;
}

==

mini-02-sno:gcc-4-6-trunk-build$ ./gcc/xgcc -Bgcc
/Volumes/ScratchCS/tests/linkage.c -o tt

mini-02-sno:gcc-4-6-trunk-build$ nm -mv tt
00010f80 (__TEXT,__stub_helper) non-external (was a private external) 
stub helpers
00011060 (__DATA,__data) external _NXArgc
00011068 (__DATA,__data) external _NXArgv
 (undefined [lazy bound]) external __Unwind_Resume (from
libSystem) === correct
 (undefined [lazy bound]) external ___emutls_get_address (from
libgcc) === correct
00011080 (__DATA,__data) non-external ___emutls_v.i.1606
00011078 (__DATA,__data) external ___progname
00010f38 (__TEXT,__text) non-external __dyld_func_lookup
0001 (absolute) [referenced dynamically] external
__mh_execute_header
00011070 (__DATA,__data) external _environ
 (undefined [lazy bound]) external _exit (from libSystem)
00010f3e (__TEXT,__text) external _main
 (undefined) external dyld_stub_binder (from libSystem)
00010f24 (__TEXT,__text) non-external dyld_stub_binding_helper
00010ee8 (__TEXT,__text) external start



mini-02-sno:gcc-4-6-trunk-build$ DYLD_PRINT_LIBRARIES=1 ./tt
dyld: loaded: /Volumes/GCC/gcc-4-6-trunk-build/./tt
dyld: loaded:
/GCC/gcc-4-6-install/lib/gcc/x86_64-apple-darwin10/4.6.0/libgcc_s.1.dylib
dyld: loaded: /usr/lib/libSystem.B.dylib
dyld: loaded: /usr/lib/system/libmathCommon.A.dylib
Segmentation fault  === no surprise, the program is not meant to work



although the program does not work - you can
(a) install your built gcc [without modifying darwin.h]
(b) compile the prog with debug and step through to find that the
_Unwind_Resume that is called __is__ the one from libSystem.


[Bug fortran/46990] [OOP] gfortran rejects passing a CLASS variable to TYPE

2011-02-01 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46990

--- Comment #7 from Tobias Burnus burnus at gcc dot gnu.org 2011-02-01 
09:26:52 UTC ---
A variant is
http://groups.google.com/group/comp.lang.fortran/browse_thread/thread/dad37643dd8cd0c6

where the defined assignment has:
  elemental subroutine assign (a, b)
class(base_type), intent(out) :: a
type(base_type), intent(in) :: b

which is not recognized by gfortran and thus the:
class(base_type), dimension(:), allocatable, intent(inout) :: a
class(base_type), dimension(:), allocatable :: tmp 
tmp(:size(a)) = a ! polymorphic l.h.s. 

is rejected.


[Bug middle-end/47566] New: ICE in vn_reference_lookup

2011-02-01 Thread Joost.VandeVondele at pci dot uzh.ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47566

   Summary: ICE in vn_reference_lookup
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: joost.vandevond...@pci.uzh.ch


current trunk fails with ICE compiling with LTO cp2k.

/data03/vondele/gnu/gcc_trunk/install/libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/lto1
-march=amdfam10 -mcx16 -msahf -mpopcnt -mabm --param l1-cache-size=64 --param
l1-cache-line-size=64 --param l2-cache-size=512 -mtune=amdfam10 -quiet -dumpdir
/data03/vondele/cp2k_gcc/cp2k/makefiles/../exe/gfortran-test24/ -dumpbase
cp2k.sopt.ltrans1 -auxbase-strip cp2k.sopt.ltrans1.ltrans.o -O3 -version
-ffree-form -funroll-loops -ffast-math -fuse-linker-plugin -fltrans
cp2k.sopt.ltrans1.o -o cp2k.sopt.ltrans1.s -v

GNU GIMPLE (GCC) version 4.6.0 20110201 (experimental) [trunk revision 169466]
(x86_64-unknown-linux-gnu)
compiled by GNU C version 4.6.0 20110201 (experimental) [trunk revision
169466], GMP version 4.3.2, MPFR version 2.4.2, MPC version 0.8.2
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
GNU GIMPLE (GCC) version 4.6.0 20110201 (experimental) [trunk revision 169466]
(x86_64-unknown-linux-gnu)
compiled by GNU C version 4.6.0 20110201 (experimental) [trunk revision
169466], GMP version 4.3.2, MPFR version 2.4.2, MPC version 0.8.2
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
In file included from :520:0:
/data03/vondele/cp2k_gcc/cp2k/makefiles/../src/fft_tools.F: In function
‘fft3d_pb’:
/data03/vondele/cp2k_gcc/cp2k/makefiles/../src/fft_tools.F:994:0: internal
compiler error: Segmentation fault

in gdb I get

Program received signal SIGSEGV, Segmentation fault.
0x0079583b in vn_reference_lookup (op=0x7fffef4a4460,
vuse=0x7532eb40, kind=VN_WALK, vnresult=0x0) at
../../gcc/gcc/tree-ssa-sccvn.c:1543
1543  vr1.vuse = vuse ? SSA_VAL (vuse) : NULL_TREE;
(gdb) bt
#0  0x0079583b in vn_reference_lookup (op=0x7fffef4a4460,
vuse=0x7532eb40, kind=VN_WALK, vnresult=0x0) at
../../gcc/gcc/tree-ssa-sccvn.c:1543
#1  0x00787a0c in eliminate () at ../../gcc/gcc/tree-ssa-pre.c:4331
#2  0x0078a2a5 in execute_pre (do_fre=0 '\000') at
../../gcc/gcc/tree-ssa-pre.c:4901
#3  execute_pre (do_fre=0 '\000') at ../../gcc/gcc/tree-ssa-pre.c:4845
#4  0x0064fdb9 in execute_one_pass (pass=0x10968c0) at
../../gcc/gcc/passes.c:1561
#5  0x00650065 in execute_pass_list (pass=0x10968c0) at
../../gcc/gcc/passes.c:1616
#6  0x00650077 in execute_pass_list (pass=0x10957e0) at
../../gcc/gcc/passes.c:1617
#7  0x0071b481 in tree_rest_of_compilation (fndecl=0x75c2ff00) at
../../gcc/gcc/tree-optimize.c:422
#8  0x0085884f in cgraph_expand_function (node=0x754599a0) at
../../gcc/gcc/cgraphunit.c:1563
#9  0x0085a46a in cgraph_expand_all_functions () at
../../gcc/gcc/cgraphunit.c:1622
#10 cgraph_optimize () at ../../gcc/gcc/cgraphunit.c:1882
#11 0x004b9fdf in lto_main () at ../../gcc/gcc/lto/lto.c:2457

details of gfortran -v:

gfortran -v
Using built-in specs.
COLLECT_GCC=gfortran
COLLECT_LTO_WRAPPER=/data03/vondele/gnu/gcc_trunk/install/libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc/configure
--prefix=/data03/vondele/gnu/gcc_trunk/install --enable-languages=c,c++,fortran
--disable-multilib --enable-plugins --enable-cloog-backend=isl
--with-ppl=/data03/vondele/gnu/ppl-0.11/install
--with-cloog=/data03/vondele/gnu/cloog-0.16.1/install/
--with-libelf=/data03/vondele/gnu/libelf-0.8.13/install --enable-gold
--enable-checking=release
Thread model: posix
gcc version 4.6.0 20110201 (experimental) [trunk revision 169466] (GCC)


[Bug java/47456] internal compiler error: Segmentation fault while using jna

2011-02-01 Thread mikpe at it dot uu.se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47456

--- Comment #10 from Mikael Pettersson mikpe at it dot uu.se 2011-02-01 
09:40:18 UTC ---
Your test case requires using binaries without sources on Win32.

You can:

1. Try a newer gcc, preferably 4.5.2.  Your pre-4.3.0 development snapshot is
ancient and likely to contain bugs which have since been fixed.

2. Supply a test case in source form.


[Bug middle-end/47566] ICE in vn_reference_lookup

2011-02-01 Thread Joost.VandeVondele at pci dot uzh.ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47566

--- Comment #1 from Joost VandeVondele Joost.VandeVondele at pci dot uzh.ch 
2011-02-01 09:42:12 UTC ---
gzipped testcase (2.7Mb) downloadable from

http://www.pci.uzh.ch/vandevondele/tmp/cp2k.sopt.ltrans1.o.gz


[Bug libfortran/47567] New: Wrong output for small absolute values with F editing

2011-02-01 Thread thenlich at users dot sourceforge.net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47567

   Summary: Wrong output for small absolute values with F editing
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libfortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: thenl...@users.sourceforge.net


Fortran 2008, 10.7.2.3.2(9):
For an internal value that is neither an IEEE infinity nor a NaN, the output
field consists of blanks, if necessary, followed by a minus sign if the
internal value is negative, or an optional plus sign otherwise, followed by a
string of digits that contains a decimal symbol and represents the magnitude of
the internal value, as modified by the established scale factor and rounded
(10.7.2.3.7) to d fractional digits. Leading zeros are not permitted except
for an optional zero immediately to the left of the decimal symbol if the
magnitude of the value in the output field is less than one. The optional zero
shall appear if there would otherwise be no digits in the output field.

In gfortran, with an (F0.0) edit descriptor, some small values are formatted as
., e.g.

print (F0.0), 0.0   ! = 0.
print (F0.0), 0.001 ! = . expected 0.
print (F0.0), 0.01  ! = . expected 0.
print (F0.0), 0.1   ! = 0.

Reason: The optional zero shall appear if there would otherwise be no digits
in the output field.

Any formatting of non-negative values with (F1.n) should always result in
asterisks, because a string of digits that contains a decimal symbol, where
the optional zero shall appear if there would otherwise be no digits in the
output field can never fit in 1. E. g.

print (F1.0), 0.0   ! = 0 expected *
print (F1.0), 0.001 ! = . expected *
print (F1.0), 0.01  ! = . expected *
print (F1.0), 0.1   ! = *

Similarly, for negative values and (F2.n):

print (F2.0), -0.001 ! = -. expected **
print (F2.0), -0.01  ! = -. expected **
print (F2.0), -0.1   ! = **

The exact value 0.0 is formatted with a leading zero with (F0.n) formatting,
but this is incorrect, see bug 47434:

print (F0.2), 0.0   ! = 0.00 expected .00


[Bug c++/47541] [4.5/4.6 Regression] For integer pointers, the value of ++*p is not written back to memory

2011-02-01 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47541

--- Comment #11 from Richard Guenther rguenth at gcc dot gnu.org 2011-02-01 
09:47:26 UTC ---
Author: rguenth
Date: Tue Feb  1 09:47:21 2011
New Revision: 169468

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=169468
Log:
2011-02-01  Richard Guenther  rguent...@suse.de

PR tree-optimization/47541
* tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
sure to have a field at offset zero.

* g++.dg/torture/pr47541.C: New testcase.

Added:
trunk/gcc/testsuite/g++.dg/torture/pr47541.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-structalias.c


[Bug c++/47568] New: Name lookup: different behavior 4.1.2 / 4.5.0

2011-02-01 Thread matwey.kornilov at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47568

   Summary: Name lookup: different behavior 4.1.2 / 4.5.0
   Product: gcc
   Version: 4.1.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: matwey.korni...@gmail.com


Created attachment 23193
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=23193
test

There is different behavior with the attached code.

when compiled with 4.1.2:
assign 1
assign 1

when compiled with 4.5.0:
assign 1
assign a

Versions:
g++-4.1 (GCC) 4.1.2 20070115 (prerelease) (SUSE Linux)
gcc (SUSE Linux) 4.5.0 20100604 [gcc-4_5-branch revision 160292]

I don't know which behaviors are supported by other versions, but I think that
the only one of them is right.


[Bug fortran/47082] [4.6 Regression] [OOP] ICE in gfc_conv_component_ref

2011-02-01 Thread pault at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47082

Paul Thomas pault at gcc dot gnu.org changed:

   What|Removed |Added

 CC||pault at gcc dot gnu.org

--- Comment #5 from Paul Thomas pault at gcc dot gnu.org 2011-02-01 10:00:14 
UTC ---
(In reply to comment #3)
 (In reply to comment #2)
  This does not solve the problem fully, but it reduces it to PR46448:
  
  /tmp/cc9UG1CN.s: Assembler messages:
  /tmp/cc9UG1CN.s:65: Error: symbol `__copy_m0_t0_' is already defined
 
 After PR46448 is solved now, the patch fully fixes the test case. Still it
 feels a bit hackish.

Not entirely:
If you change the line in module m1 from-
  class(t0), pointer, private :: idxmap
to
  type(t0), pointer, private :: idxmap

then the reduced testcase of comment #1 compiles.  Comparing themain programme
between the two, you will see a symtree '@2' in the failing case that points to
the vtype, '__vtype_m0_T0'.  I would guess that this has no backend_decl.

Calling gfc_get_derived_type then associates (I think) the backend_decls with
that of the symtree '__vtype_m0_T0', which is somehow pointing to a different
symbol.

I will explore further at lunchtime.

Paul


[Bug target/47540] ARM THUMB crash with complex numbers

2011-02-01 Thread mikpe at it dot uu.se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47540

--- Comment #6 from Mikael Pettersson mikpe at it dot uu.se 2011-02-01 
10:11:52 UTC ---
The bug started to occur at r140501:

Author: pinskia
Date: Fri Sep 19 22:24:06 2008
New Revision: 140501

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=140501
Log:
2008-09-19  Andrew Pinski  andrew_pin...@playstation.sony.com

PR tree-opt/30930
* tree-ssa.c (execute_update_addresses_taken): Also update
DECL_GIMPLE_REG_P for vector and complex types.

But given Ian's observation and proposed patch I suspect r140501 is innocent
and merely triggers a bug in the ARM backend.


[Bug target/47540] ARM THUMB crash with complex numbers

2011-02-01 Thread rearnsha at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47540

Richard Earnshaw rearnsha at gcc dot gnu.org changed:

   What|Removed |Added

 CC||rearnsha at gcc dot gnu.org

--- Comment #7 from Richard Earnshaw rearnsha at gcc dot gnu.org 2011-02-01 
10:24:33 UTC ---
(In reply to comment #1)
 Created attachment 23166 [details]
 Possible patch
 
 This is a possible patch for this bug.  It fixes what appears to be an obvious
 bug in the code, and it fixes this test case.  However, I am not set up to 
 test
 the ARM target.  Perhaps one of the ARM maintainers could give this patch a
 try.

Looks sensible to me. But please update comment.


[Bug fortran/47569] New: gfortran does not detect that the parameters for passing a partial string to a subroutine are incorrect.

2011-02-01 Thread kloedej at knmi dot nl
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47569

   Summary: gfortran does not detect that the parameters for
passing a partial string to a subroutine are
incorrect.
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: kloe...@knmi.nl


gfortran does not detect that the parameters for passing a partial string to a
subroutine are incorrect.
The example uses s(i) in stead of s(i:j) to pass the string, and this was a
common usage pattern in the old fortran77 days, so this may bother more users.

Sample code:

module teststr
  implicit none
  integer, parameter :: GRH_SIZE = 20, NMAX = 41624
  type strtype
integer   :: size
character :: mdr(NMAX)
  end type strtype
contains
  subroutine sub2(string,str_size)
integer,intent(in):: str_size
character,intent(out) :: string(str_size)
string(:) = 'a'
  end subroutine sub2
  subroutine sub1(a)
type(strtype),intent(inout) :: a
call sub2(a%mdr(GRH_SIZE+1),a%size-GRH_SIZE)
  end subroutine sub1
end module teststr

Command used for compiling:

gfortran -c minimal_example.F90
f951: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See http://bugzilla.redhat.com/bugzilla for instructions.


gfortran version used:

gfortran --version
GNU Fortran (GCC) 4.4.4 20100630 (Red Hat 4.4.4-10)

If the line:
 call sub2(a%mdr(GRH_SIZE+1),a%size-GRH_SIZE)
is replaced by:
 call sub2(a%mdr(GRH_SIZE+1:),a%size-GRH_SIZE)

then the compilation runs without problems.

Expected output was to get a proper error message with the provided sample
code.


[Bug libstdc++/47560] [4.6 Regression] FAIL: abi/header_cxxabi.c (test for excess errors)

2011-02-01 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47560

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC||bkoz at redhat dot com

--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2011-02-01 
10:57:09 UTC ---
Benjamin, can you have a look? Should be a trivial issue related to your recent
(nice!) work.


[Bug tree-optimization/45122] [4.6 Regression] -funsafe-loop-optimizations causes FAIL: gcc.c-torture/execute/pr27285.c execution

2011-02-01 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45122

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #15 from Jakub Jelinek jakub at gcc dot gnu.org 2011-02-01 
11:02:44 UTC ---
Ah, the reason why pr19210-* fail is that those loops have non-const/pure call
in it.  So, while single_exit (loop) == exit, loop_only_exit_p (loop, exit)
still returns false.
So, the question is if we really need to give up on -funsafe-loop-optimizations
whenever loop_only_exit_p (loop, exit), or if a single_exit (loop) == exit
test would be sufficient for that.


[Bug fortran/47569] [4.3/4.4/4.5/4.6 Regression] gfortran does not detect that the parameters for passing a partial string to a subroutine are incorrect

2011-02-01 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47569

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||ice-on-valid-code
 CC||burnus at gcc dot gnu.org
Summary|gfortran does not detect|[4.3/4.4/4.5/4.6
   |that the parameters for |Regression] gfortran does
   |passing a partial string to |not detect that the
   |a subroutine are incorrect. |parameters for passing a
   ||partial string to a
   ||subroutine are incorrect
  Known to fail||4.4.4, 4.6.0

--- Comment #1 from Tobias Burnus burnus at gcc dot gnu.org 2011-02-01 
11:03:57 UTC ---
ICE with gfortran 4.3 to 4.6; compiled with gfortran 4.1.

Other compilers (NAG, g95, ifort) do not show any compile-time warning/error.

==21718== Invalid read of size 4
==21718==at 0x4F29A5: compare_actual_formal (interface.c:1689)
==21718==by 0x4F2D5D: gfc_procedure_use (interface.c:2727)
==21718==by 0x53A825: resolve_call (resolve.c:3508)

  /* Not an array element.  */
  if (formal-ts.type == BT_CHARACTER
   (ref == NULL
  || (actual-expr_type == EXPR_VARIABLE
   (actual-symtree-n.sym-as-type == AS_ASSUMED_SHAPE
  || actual-symtree-n.sym-attr.pointer

The check does not make sense: For ref-NULL one cannot assume that it is an
array ref - it could also be character ref or a component ref.


[Bug c++/47541] [4.5 Regression] For integer pointers, the value of ++*p is not written back to memory

2011-02-01 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47541

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

  Known to work||4.4.4, 4.6.0
Summary|[4.5/4.6 Regression] For|[4.5 Regression] For
   |integer pointers, the value |integer pointers, the value
   |of ++*p  is not written |of ++*p  is not written
   |back to memory  |back to memory
  Known to fail||4.5.2

--- Comment #12 from Jakub Jelinek jakub at gcc dot gnu.org 2011-02-01 
11:15:50 UTC ---
Fixed on the trunk so far.


[Bug c/47557] Effect of aligned attribute on arrays

2011-02-01 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47557

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2011-02-01 
11:17:53 UTC ---
I think the current behavior is correct.


[Bug c++/47570] New: one() = 0 isn't constexpr for unsigned int, yet == and is.

2011-02-01 Thread yacwroy at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47570

   Summary: one() = 0 isn't constexpr for unsigned int, yet ==
and  is.
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: yacw...@gmail.com
Target: x86_64-unknown-linux-gnu


Created attachment 23194
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=23194
cxp_geq_uint.cpp

I reduced the code down as far as I could. It's fairly self-explanatory.

cxp_geq_uint.cpp

unsigned int constexpr one()
  { return 1; }

int constexpr one_B()
  { return 1; }

int main()
  {
// FAIL TO COMPILE:
//static bool constexpr SC_huh = ((unsigned int)one()) = ((unsigned
int)0);
//static bool constexpr SC_huh = one() = ((unsigned int)0);
static bool constexpr SC_huh = one() = 0;

// COMPILE OK:
//static bool constexpr SC_huh = ((one() == 0) || (one()  0));
//static bool constexpr SC_huh = one() == 0;
//static bool constexpr SC_huh = one()  0;
//static bool constexpr SC_huh = one_B() = 0;
//static bool constexpr SC_huh = one() = 1;

return SC_huh;
  }
==
g++ cxp_geq_uint.cpp --std=c++0x
==
cxp_geq_uint.cpp: In function ‘int main()’:
cxp_geq_uint.cpp:12:43: error: ‘(1u, true)’ is not a constant expression
==

I can see no reason why = shouldn't be constexpr in this case.

IIRC standard operators and literal casts always have defined behaviour for
standard unsigned integers.

As shown in the code, the problem goes away if:
- The value to the right of = is greater than 0.
- The type is changed to (regular) int.
- The operation is changed to == or  (or combining these manually to form =)


SPECS:
gcc: version 4.6.0 2010-12-30 (experimental) (svn = 168358)
 - manually patched by
(http://gcc.gnu.org/ml/gcc-patches/2007-04/msg00620.html)
 - patch shouldn't have any effect here.
ubuntu: 10.10 (64 bit)
intel: core2 duo


I searched the buglist for constexpr  unsigned, didn't see any dupes myself.


I guess this one probably won't be too hard to debug.
I might even have a go if I get some spare time.

HTH.
Simon.


[Bug libfortran/47567] Wrong output for small absolute values with F editing

2011-02-01 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47567

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

 CC||burnus at gcc dot gnu.org,
   ||jvdelisle at gcc dot
   ||gnu.org

--- Comment #1 from Tobias Burnus burnus at gcc dot gnu.org 2011-02-01 
11:26:58 UTC ---
I concur with the expected results, which match also the NAG compiler. (By the
way, other compilers have similar problems.)


[Bug c++/47541] [4.5 Regression] For integer pointers, the value of ++*p is not written back to memory

2011-02-01 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47541

--- Comment #13 from Richard Guenther rguenth at gcc dot gnu.org 2011-02-01 
11:27:07 UTC ---
Author: rguenth
Date: Tue Feb  1 11:27:04 2011
New Revision: 169472

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=169472
Log:
2011-02-01  Richard Guenther  rguent...@suse.de

PR tree-optimization/47541
* tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
sure to have a field at offset zero.

* g++.dg/torture/pr47541.C: New testcase.

Added:
branches/gcc-4_5-branch/gcc/testsuite/g++.dg/torture/pr47541.C
Modified:
branches/gcc-4_5-branch/gcc/ChangeLog
branches/gcc-4_5-branch/gcc/testsuite/ChangeLog
branches/gcc-4_5-branch/gcc/tree-ssa-structalias.c


[Bug tree-optimization/45122] [4.6 Regression] -funsafe-loop-optimizations causes FAIL: gcc.c-torture/execute/pr27285.c execution

2011-02-01 Thread rakdver at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45122

--- Comment #16 from Zdenek Dvorak rakdver at gcc dot gnu.org 2011-02-01 
11:27:13 UTC ---
(In reply to comment #15)
 Ah, the reason why pr19210-* fail is that those loops have non-const/pure call
 in it.  So, while single_exit (loop) == exit, loop_only_exit_p (loop, exit)
 still returns false.
 So, the question is if we really need to give up on 
 -funsafe-loop-optimizations
 whenever loop_only_exit_p (loop, exit), or if a single_exit (loop) == exit
 test would be sufficient for that.

I believe single_exit (loop) test would sufficiently match the expectations of
-funsafe-loop-optimizations.  This would misscompile code like

while (b)
  {
foo(b);
b -= 8;
  }

in the case that b is not divisible by 8, on the assumption that there are no
nontrivial infinite loops; which seems reasonable.


[Bug c++/47541] [4.5 Regression] For integer pointers, the value of ++*p is not written back to memory

2011-02-01 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47541

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work||4.5.3
 Resolution||FIXED

--- Comment #14 from Richard Guenther rguenth at gcc dot gnu.org 2011-02-01 
11:29:26 UTC ---
Fixed.


[Bug tree-optimization/47555] [4.4/4.6 Regression] Huge memory usage when optimizing

2011-02-01 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47555

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
  Known to work||4.3.4, 4.5.1
   Keywords||compile-time-hog,
   ||memory-hog
   Last reconfirmed||2011.02.01 11:29:35
 CC||rguenth at gcc dot gnu.org,
   ||spop at gcc dot gnu.org
 Ever Confirmed|0   |1
Summary|Huge memory usage when  |[4.4/4.6 Regression] Huge
   |optimizing  |memory usage when
   ||optimizing
   Target Milestone|--- |4.4.6
  Known to fail||4.4.5, 4.6.0

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2011-02-01 
11:29:35 UTC ---
GCC 4.5 uses around 800MB, most of the compile-time is spent in SCEV ccp,
IVOPTs and VRP - which all hints at SCEV being the culprit.  GCC 4.6
tops over 3GB which kills my machine, so does 4.4.  4.3, similar to 4.5
tops at around 1GB.


[Bug fortran/47569] [4.3/4.4/4.5/4.6 Regression] gfortran does not detect that the parameters for passing a partial string to a subroutine are incorrect

2011-02-01 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47569

--- Comment #2 from Tobias Burnus burnus at gcc dot gnu.org 2011-02-01 
11:33:33 UTC ---
A bit unrelated to the reported problem, but I wonder whether the
coarray/coindexed part is already correctly checked for:

If the actual argument is a coindexed scalar, the corresponding dummy argument
shall be scalar. If the actual argument is a noncoindexed scalar, the
corresponding dummy argument shall be scalar unless the actual argument
is default character, of type character with the C character kind (15.2.2), or
is an element or substring of an element of an array that is not an
assumed-shape, pointer, or polymorphic array. (F2008)

 * * *

Draft patch:

diff --git a/gcc/fortran/interface.c b/gcc/fortran/interface.c
index 1e5df61..28daf8a 100644
--- a/gcc/fortran/interface.c
+++ b/gcc/fortran/interface.c
@@ -1672,7 +1672,7 @@ compare_parameter (gfc_symbol *formal, gfc_expr *actual,
 return 1;

   /* At this point, we are considering a scalar passed to an array.   This
- is valid (cf. F95 12.4.1.1; F2003 12.4.1.2),
+ is valid (cf. F95 12.4.1.1 and F2008 12.5.2.4; F2003 12.4.1.2),
  - if the actual argument is (a substring of) an element of a
non-assumed-shape/non-pointer array;
  - (F2003) if the actual argument is of type character.  */
@@ -1686,8 +1686,8 @@ compare_parameter (gfc_symbol *formal, gfc_expr *actual,
   if (formal-ts.type == BT_CHARACTER
(ref == NULL
   || (actual-expr_type == EXPR_VARIABLE
-   (actual-symtree-n.sym-as-type == AS_ASSUMED_SHAPE
-  || actual-symtree-n.sym-attr.pointer
+   (ref-u.ar.as-type == AS_ASSUMED_SHAPE
+  || gfc_expr_attr (actual).pointer
 {
   if (where  (gfc_option.allow_std  GFC_STD_F2003) == 0)
 {


[Bug middle-end/40979] induct benchmark 60% slower when compiled with -fgraphite-identity

2011-02-01 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40979

--- Comment #13 from Richard Guenther rguenth at gcc dot gnu.org 2011-02-01 
11:35:08 UTC ---
It's unfortunate that graphite inserts arrays of size 1 instead of scalar
(memory) vars.  Otherwise update-address-taken would just re-write those
into SSA after going out-of-graphite (if run, of course).  It can probably
be teached to rewrite single-element arrays into SSA form as well.


[Bug middle-end/40979] induct benchmark 60% slower when compiled with -fgraphite-identity

2011-02-01 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40979

--- Comment #14 from Richard Guenther rguenth at gcc dot gnu.org 2011-02-01 
11:45:44 UTC ---
Noting that pass_graphite_transforms lacks any verifier calls, the following
would enable the cleanup (in case scalar vars would have been used).

Index: gcc/tree-ssa-loop.c
===
--- gcc/tree-ssa-loop.c (revision 169434)
+++ gcc/tree-ssa-loop.c (working copy)
@@ -314,7 +314,8 @@ struct gimple_opt_pass pass_graphite_tra
   0,   /* properties_provided */
   0,   /* properties_destroyed */
   0,   /* todo_flags_start */
-  0/* todo_flags_finish */
+  TODO_update_address_taken
+  | TODO_dump_func /* todo_flags_finish */
  }
 };


[Bug target/47564] internal compiler error in memory_address_addr_space, at explow.c:504

2011-02-01 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47564

--- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2011-02-01 
11:50:39 UTC ---
Sounds similar to other reports that build on i?86 without -msse and
a target attribute that enables some more SSE features.

Try with -msse, if that works this is invalid (and a dup of PRxxx).


[Bug target/46692] Missing LM32 multilibs for divider and sign extender

2011-02-01 Thread lekernel at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46692

--- Comment #3 from Sebastien Bourdeauducq lekernel at gcc dot gnu.org 
2011-02-01 11:52:15 UTC ---
Author: lekernel
Date: Tue Feb  1 11:52:12 2011
New Revision: 169473

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=169473
Log:
PR gcc/46692
* config/lm32/t-lm32: Add multilib for all CPU options.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/lm32/t-lm32


[Bug middle-end/47566] ICE in vn_reference_lookup

2011-02-01 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47566

--- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2011-02-01 
11:53:09 UTC ---
I think we need source code (LTO bytecode isn't really portable).

It looks like that vuse is somehow bogus - mind posting the output of

(gdb) call debug_tree (vuse)

at that point?


[Bug target/46692] Missing LM32 multilibs for divider and sign extender

2011-02-01 Thread sebastien.bourdeauducq at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46692

Sebastien Bourdeauducq sebastien.bourdeauducq at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED

--- Comment #4 from Sebastien Bourdeauducq sebastien.bourdeauducq at gmail dot 
com 2011-02-01 12:01:12 UTC ---
see comment #3


[Bug tree-optimization/47559] ICE: verify_stmts failed: statement marked for throw, but doesn't with -fnon-call-exceptions and noexcept

2011-02-01 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47559

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||wrong-code
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.02.01 12:03:49
 CC||rakdver at gcc dot gnu.org
  Component|middle-end  |tree-optimization
 Ever Confirmed|0   |1

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2011-02-01 
12:03:49 UTC ---
LIM produces

void foo(int*) (int * k)
Eh tree:
   1 must_not_throw
{
  int k__lsm.1;

bb 2:
  k__lsm.1_4 = MEM[(int *)k_1(D)];

bb 3:
  [MNT 1] k__lsm.1_5 = 0;

bb 4:
  goto bb 3;

}

failing to move the EH info.  I think it should just give up here - it
tries to, but only if loop exits via EH edges appear - which is not
the case for must-not-throw.  There is also no exit in that endless loop
anyway - which shows the transform isn't valid as if *k points to
readonly memory the testcase now will fail to trap as the store never
happens.  Which means this is wrong-code as well (should we simply
not do store-motion for loops without exits?).  Thus, the following
would fix the wrong-code issue (but probably not the ICE in a more
generalized test):

Index: gcc/tree-ssa-loop-im.c
===
--- gcc/tree-ssa-loop-im.c  (revision 169434)
+++ gcc/tree-ssa-loop-im.c  (working copy)
@@ -2368,6 +2368,9 @@ loop_suitable_for_sm (struct loop *loop
   unsigned i;
   edge ex;

+  if (VEC_empty (edge, exits))
+return false;
+
   FOR_EACH_VEC_ELT (edge, exits, i, ex)
 if (ex-flags  (EDGE_ABNORMAL | EDGE_EH))
   return false;

I am testing that change now.


[Bug middle-end/47566] ICE in vn_reference_lookup

2011-02-01 Thread Joost.VandeVondele at pci dot uzh.ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47566

--- Comment #3 from Joost VandeVondele Joost.VandeVondele at pci dot uzh.ch 
2011-02-01 12:04:46 UTC ---
(In reply to comment #2)
 I think we need source code (LTO bytecode isn't really portable).

oops... that's building CP2K. Let me see if I can reproduce this with this
night's tarball.

 
 (gdb) call debug_tree (vuse)
 
 at that point?

(gdb)  call debug_tree (vuse)
 var_decl 0x7532eb40 .MEM
type void_type 0x77e84d20 void VOID
align 8 symtab 0 alias set -1 structural equality
pointer_to_this pointer_type 0x77e84dc8
used static external VOID file built-in line 0 col 0
align 8


[Bug middle-end/47566] ICE in vn_reference_lookup

2011-02-01 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47566

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 CC||rguenth at gcc dot gnu.org

--- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2011-02-01 
12:12:13 UTC ---
(In reply to comment #3)
 (In reply to comment #2)
  I think we need source code (LTO bytecode isn't really portable).
 
 oops... that's building CP2K. Let me see if I can reproduce this with this
 night's tarball.
 
  
  (gdb) call debug_tree (vuse)
  
  at that point?
 
 (gdb)  call debug_tree (vuse)
  var_decl 0x7532eb40 .MEM
 type void_type 0x77e84d20 void VOID
 align 8 symtab 0 alias set -1 structural equality
 pointer_to_this pointer_type 0x77e84dc8
 used static external VOID file built-in line 0 col 0
 align 8

That's indeed invalid - it should be an SSA name.  This means some
earlier pass messed up (or PRE itself).  The bug shouldn't depend
on LTO (apart from maybe requiring some cross-module inlining to trigger).


[Bug middle-end/47566] ICE in vn_reference_lookup

2011-02-01 Thread Joost.VandeVondele at pci dot uzh.ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47566

--- Comment #5 from Joost VandeVondele Joost.VandeVondele at pci dot uzh.ch 
2011-02-01 12:23:35 UTC ---
(In reply to comment #4)
 That's indeed invalid - it should be an SSA name.  This means some
 earlier pass messed up (or PRE itself).  The bug shouldn't depend
 on LTO (apart from maybe requiring some cross-module inlining to trigger).

The same problem doesn't happen without LTO (but otherwise compiled with the
same options). I guess it needs the cross-module inlining.

I'll be uploading a tgz with sources.


[Bug middle-end/47566] ICE in vn_reference_lookup

2011-02-01 Thread Joost.VandeVondele at pci dot uzh.ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47566

--- Comment #6 from Joost VandeVondele Joost.VandeVondele at pci dot uzh.ch 
2011-02-01 12:29:36 UTC ---
to reproduce from sources

wget http://www.pci.uzh.ch/vandevondele/tmp/cp2k.tgz
tar -xzvf cp2k.tgz
cd cp2k/makefiles
make -j ARCH=gfortran-test24 VERSION=sopt

this assumes that you have lapack and blas installed etc. The file

cp2k/arch/gfortran-test24.sopt

can be changed to modify compile options (or directories for lapack/blas). With

make -j ARCH=gfortran-test24 VERSION=sopt distclean

a new build can be started from scratch


[Bug target/47564] [4.6 Regression] internal compiler error in memory_address_addr_space, at explow.c:504

2011-02-01 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47564

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

Summary|internal compiler error in  |[4.6 Regression] internal
   |memory_address_addr_space,  |compiler error in
   |at explow.c:504 |memory_address_addr_space,
   ||at explow.c:504

--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org 2011-02-01 
12:32:51 UTC ---
I get the ICE on x86_64-linux -m64 -O2 too, so that's not it.
Started failing with
http://gcc.gnu.org/viewcvs?root=gccview=revrev=167964


[Bug tree-optimization/47555] [4.4/4.6 Regression] Huge memory usage when optimizing

2011-02-01 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47555

--- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2011-02-01 
12:53:41 UTC ---
Program received signal SIGINT, Interrupt.
tree_code_size (code=POLYNOMIAL_CHREC)
at /space/rguenther/src/svn/trunk/gcc/tree.c:737
737 }
(gdb) up
#1  0x00c3d049 in make_node_stat (code=POLYNOMIAL_CHREC)
at /space/rguenther/src/svn/trunk/gcc/tree.c:784
784   size_t length = tree_code_size (code);
(gdb) bt

#228 0x00ac555c in follow_ssa_edge_in_condition_phi (
loop=0x77edcdd0, condition_phi=0x75bea800, 
halting_phi=0x75bf3400, evolution_of_loop=0x7fffd708, limit=0)
at /space/rguenther/src/svn/trunk/gcc/tree-scalar-evolution.c:1310
#229 0x00ac5a94 in follow_ssa_edge (loop=0x77edcdd0, 
def=0x75bea800, halting_phi=0x75bf3400, 
evolution_of_loop=0x7fffd708, limit=0)
at /space/rguenther/src/svn/trunk/gcc/tree-scalar-evolution.c:1415
#230 0x00ac5cd1 in analyze_evolution_in_loop (
loop_phi_node=0x75bf3400, init_cond=0x75bf2948)
at /space/rguenther/src/svn/trunk/gcc/tree-scalar-evolution.c:1492
#231 0x00ac6108 in interpret_loop_phi (loop=0x77edcdd0, 
loop_phi_node=0x75bf3400)
at /space/rguenther/src/svn/trunk/gcc/tree-scalar-evolution.c:1631
#232 0x00ac7403 in analyze_scalar_evolution_1 (loop=0x77edcdd0, 
var=0x75a329a0, res=0x0)
at /space/rguenther/src/svn/trunk/gcc/tree-scalar-evolution.c:1905
#233 0x00ac754f in analyze_scalar_evolution (loop=0x77edcdd0, 
var=0x75a329a0)
at /space/rguenther/src/svn/trunk/gcc/tree-scalar-evolution.c:1955
---Type return to continue, or q return to quit---
#234 0x00acbf0f in scev_const_prop ()

so we again run into exponential expression building in SCEV.

The limit we set is 100 which means we allow 2^100 as expression size.
That's quite useless (the limit was recently bumped from 20 we have
on the 4.5 branch).

PHI handling is also odd as we recurse with variable increases
instead of with a constant one.

I'm going to revert the parm change - its documentation also doesn't
match the behavior of the parm, expression growth is at most limited
to be O(2^parm), there is no real limit on the expression size.


[Bug fortran/47565] [4.6 Regression][OOP] Segfault with TBP

2011-02-01 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47565

janus at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.02.01 13:00:47
 Ever Confirmed|0   |1

--- Comment #1 from janus at gcc dot gnu.org 2011-02-01 13:00:47 UTC ---
Modified test case:


module class_t
contains
  function find_y() result(res)
integer, allocatable :: res
print *,find_y
allocate(res)
  end function
end module

program p
  use class_t
  type :: t
procedure(find_y), pointer, nopass :: ppc
  contains
procedure, nopass :: find_y
  end type
  class(t), allocatable :: this
  integer :: y

  allocate(this)
  this%ppc = find_y
  ! (1) ordinary procedure (works)
  y = find_y()
  print *, y
  ! (2) procedure pointer component (works)
  y = this%ppc()
  print *, y
  ! (3) type-bound procedure (fails)
  y = this%find_y()  ! segfault at run time
  print *, y
end 


This shows that the PPC call also works nicely, while the TBP does not.
The dump for all three calls looks ok:

  y = *find_y ();
  y = *this._data-ppc ();
  y = *this._vptr-find_y ();

The problem seems to be that the initialization for the TBP is missing in the
vtab:

  static struct __vtype_p_T __vtab_p_T = {._hash=31520549, ._size=8,
._extends=0B, ._def_init=__def_init_p_T, ._copy=__copy_p_T};

When removing the allocatable attribute of 'find_y', one correctly gets:

  static struct __vtype_p_T __vtab_p_T = {._hash=31520549, ._size=8,
._extends=0B, ._def_init=__def_init_p_T, ._copy=__copy_p_T, .find_y=find_y};


[Bug java/47456] internal compiler error: Segmentation fault while using jna

2011-02-01 Thread steve.reinke at iws dot fraunhofer.de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47456

--- Comment #11 from steve.reinke at iws dot fraunhofer.de 2011-02-01 13:14:23 
UTC ---
Hi, 

I din't found a gcj version 4.5 build for windows.
That's why I tried to use this version.

Do you know where I can get anywhere such a windows build?

Regards

Steve Reinke

-Ursprüngliche Nachricht-
Von: mikpe at it dot uu.se [mailto:gcc-bugzi...@gcc.gnu.org] 
Gesendet: Dienstag, 1. Februar 2011 10:40
An: Reinke, Steve
Betreff: [Bug java/47456] internal compiler error: Segmentation fault while
using jna

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

--- Comment #10 from Mikael Pettersson mikpe at it dot uu.se 2011-02-01
09:40:18 UTC --- Your test case requires using binaries without sources on
Win32.

You can:

1. Try a newer gcc, preferably 4.5.2.  Your pre-4.3.0 development snapshot is
ancient and likely to contain bugs which have since been fixed.

2. Supply a test case in source form.

--
Configure bugmail: http://gcc.gnu.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: --- You reported the bug.


[Bug target/47558] 163267 breaks exception traceback in xplor-nih

2011-02-01 Thread iains at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47558

--- Comment #10 from Iain Sandoe iains at gcc dot gnu.org 2011-02-01 13:25:31 
UTC ---
two more minor points.

1/ the trunk lib specs do the same as gcc-4.2.1(apple local)

2/ there are no exported symbols for 10.6 in /usr/lib/libgcc_s.10.5.dylib (they
are all $add$os10.4 or 10.5)

so, you might ask the question why does changing that spec make *any*
difference ?

(it should only be an improvement in efficiency, no change in symbols).

.. debugging that will probably get you to the answer to where the real problem
lies.


[Bug fortran/47565] [4.6 Regression][OOP] Segfault with TBP

2011-02-01 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47565

janus at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 AssignedTo|unassigned at gcc dot   |janus at gcc dot gnu.org
   |gnu.org |

--- Comment #2 from janus at gcc dot gnu.org 2011-02-01 13:39:31 UTC ---
Here is the obvious fix:


Index: trans-expr.c
===
--- trans-expr.c(revision 169470)
+++ trans-expr.c(working copy)
@@ -4627,7 +4627,7 @@ gfc_conv_structure (gfc_se * se, gfc_expr * expr,
 components.  Although the latter have a default initializer
 of EXPR_NULL,... by default, the static nullify is not needed
 since this is done every time we come into scope.  */
-  if (!c-expr || cm-attr.allocatable)
+  if (!c-expr || (cm-attr.allocatable  cm-attr.flavor !=
FL_PROCEDURE))
 continue;

   if (strcmp (cm-name, _size) == 0)



Will commit after regtesting.


[Bug tree-optimization/47555] [4.4/4.6 Regression] Huge memory usage when optimizing

2011-02-01 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47555

--- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2011-02-01 
13:41:25 UTC ---
With --param scev-max-expr-size=20 (the 4.5 default) trunk uses 300MB ram,
with 21 it uses 580MB with 22 1.2GB, with 23 2.2GB, ... so it indeed
grows exponential (as designed).  Bumping from 20 to 100 is thus
definitely unreasonable ;)


[Bug target/35926] Pushing / Poping ebx without using it.

2011-02-01 Thread tony.poppleton at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35926

Tony Poppleton tony.poppleton at gmail dot com changed:

   What|Removed |Added

   Last reconfirmed|2008-12-28 06:57:47 |2011-02-01 13:13
  Known to fail||4.1.2, 4.3.5, 4.4.5, 4.5.2,
   ||4.6.0
   Severity|normal  |enhancement

--- Comment #7 from Tony Poppleton tony.poppleton at gmail dot com 2011-02-01 
13:44:28 UTC ---
Set known to fail field, last reconfirmed field, and modified to enhancement


[Bug libfortran/47567] Wrong output for small absolute values with F editing

2011-02-01 Thread jvdelisle at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47567

Jerry DeLisle jvdelisle at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011.02.01 13:48:33
 AssignedTo|unassigned at gcc dot   |jvdelisle at gcc dot
   |gnu.org |gnu.org
 Ever Confirmed|0   |1

--- Comment #2 from Jerry DeLisle jvdelisle at gcc dot gnu.org 2011-02-01 
13:48:33 UTC ---
On it.


[Bug target/47558] 163267 breaks exception traceback in xplor-nih

2011-02-01 Thread howarth at nitro dot med.uc.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47558

--- Comment #11 from Jack Howarth howarth at nitro dot med.uc.edu 2011-02-01 
13:51:52 UTC ---
Created attachment 23195
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=23195
build log for xplor-nih 2.2.7 under gcc trunk


[Bug target/47558] 163267 breaks exception traceback in xplor-nih

2011-02-01 Thread howarth at nitro dot med.uc.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47558

--- Comment #12 from Jack Howarth howarth at nitro dot med.uc.edu 2011-02-01 
13:53:18 UTC ---
Created attachment 23196
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=23196
otool -L output for xplor-nih binaries


[Bug target/47558] 163267 breaks exception traceback in xplor-nih

2011-02-01 Thread howarth at nitro dot med.uc.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47558

--- Comment #13 from Jack Howarth howarth at nitro dot med.uc.edu 2011-02-01 
13:56:18 UTC ---
It was be true for the simple case that the reduced linkage is fine but somehow
the xplor-nih building is exposing a corner case we haven't thought of. I have
uploaded a full build log for xplor-nih which was 
created with...

cd xplor-nih-2.27
set path= ( '/Users/howarth/dist/bin' $path )
make

and the compilers show up as...


[frodo:~/xplor-nih-2.27] howarth% gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/Users/howarth/dist/libexec/gcc/x86_64-apple-darwin10.6.0/4.6.0/lto-wrapper
Target: x86_64-apple-darwin10.6.0
Configured with: ../gcc/configure --enable-checking=release
--prefix=/Users/howarth/dist --with-gmp=/sw --with-ppl=/sw --with-cloog=/sw
--with-mpc=/sw --with-libiconv-prefix=/sw --with-system-zlib
--x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib
--enable-languages=c,c++,fortran --enable-cloog-backend=legacy
Thread model: posix
gcc version 4.6.0 20110201 (experimental) (GCC) 
[frodo:~/xplor-nih-2.27] howarth% g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/Users/howarth/dist/libexec/gcc/x86_64-apple-darwin10.6.0/4.6.0/lto-wrapper
Target: x86_64-apple-darwin10.6.0
Configured with: ../gcc/configure --enable-checking=release
--prefix=/Users/howarth/dist --with-gmp=/sw --with-ppl=/sw --with-cloog=/sw
--with-mpc=/sw --with-libiconv-prefix=/sw --with-system-zlib
--x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib
--enable-languages=c,c++,fortran --enable-cloog-backend=legacy
Thread model: posix
gcc version 4.6.0 20110201 (experimental) (GCC) 
[frodo:~/xplor-nih-2.27] howarth% gfortran -v
Using built-in specs.
COLLECT_GCC=gfortran
COLLECT_LTO_WRAPPER=/Users/howarth/dist/libexec/gcc/x86_64-apple-darwin10.6.0/4.6.0/lto-wrapper
Target: x86_64-apple-darwin10.6.0
Configured with: ../gcc/configure --enable-checking=release
--prefix=/Users/howarth/dist --with-gmp=/sw --with-ppl=/sw --with-cloog=/sw
--with-mpc=/sw --with-libiconv-prefix=/sw --with-system-zlib
--x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib
--enable-languages=c,c++,fortran --enable-cloog-backend=legacy
Thread model: posix
gcc version 4.6.0 20110201 (experimental) (GCC)


[Bug java/47456] internal compiler error: Segmentation fault while using jna

2011-02-01 Thread mikpe at it dot uu.se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47456

--- Comment #12 from Mikael Pettersson mikpe at it dot uu.se 2011-02-01 
14:12:12 UTC ---
(In reply to comment #11)
 Hi, 
 
 I din't found a gcj version 4.5 build for windows.
 That's why I tried to use this version.
 
 Do you know where I can get anywhere such a windows build?

(please don't top-post)

Looks like mingw supplies prebuilt binaries, including java:
http://www.mingw.org/wiki/Getting_Started


[Bug target/47564] [4.6 Regression] internal compiler error in memory_address_addr_space, at explow.c:504

2011-02-01 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47564

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.02.01 14:18:55
   Target Milestone|--- |4.6.0
 Ever Confirmed|0   |1


[Bug fortran/47571] New: undefined reference to clock_gettime in Linux build of 02/01/2011

2011-02-01 Thread michael.a.richmond at nasa dot gov
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47571

   Summary: undefined reference to clock_gettime in Linux build of
02/01/2011
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: michael.a.richm...@nasa.gov
  Host: i686-pc-linux-gnu
Target: i686-pc-linux-gnu
 Build: i686-pc-linux-gnu


When I compile the following program:

PROGRAM call_date_and_time
CHARACTER(LEN=8) date
CHARACTER(LEN=10) time
CALL DATE_AND_TIME(date, time)
END PROGRAM call_date_and_time

I get the message:

/home/mrichmon/usr/local/gfortran/bin/../lib/gcc/i686-pc-linux-gnu/4.6.0/../../../libgfortran.a(date_and_time.o):
In function `gf_gettime':
/home/jerry/gcc/trunk/libgfortran/intrinsics/time_1.h:211: undefined reference
to `clock_gettime'
collect2: ld returned 1 exit status

This bug is specific to the following build:

http://gfortran.org/download/i686/gfortran-4.6-20110201-linux-i686.tar.gz

Is it due to Patch 81226?


[Bug java/47456] internal compiler error: Segmentation fault while using jna

2011-02-01 Thread steve.reinke at iws dot fraunhofer.de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47456

--- Comment #13 from steve.reinke at iws dot fraunhofer.de 2011-02-01 14:28:43 
UTC ---
Created attachment 23197
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=23197
the src file for the jar


[Bug fortran/47572] New: [OOP] Invalid: Allocatable polymorphic with init expression.

2011-02-01 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47572

   Summary: [OOP] Invalid: Allocatable polymorphic with init
expression.
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Keywords: accepts-invalid
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: bur...@gcc.gnu.org
CC: ja...@gcc.gnu.org


Found at
http://groups.google.com/group/comp.lang.fortran/browse_thread/thread/763785b16883ed68

The program looks very odd and surely is wrong; however, gfortran accepts it.

ifort does:
  error #6562: A data initialization-expr is not valid for this object.  [B]

I assume that one checks against the CLASS container and not against the actual
_data object.

C506 (R503) An initialization shall not appear if object-name is a dummy
argument, a function result, an object in a named common block unless the type
declaration is in a block data program unit, an object in blank common, an
allocatable variable, or an automatic object. (F2008)



program scalarallocation
type test
real :: a
end type
class (test), allocatable :: b = test(3.4)
print *,'B', allocated(b)
end program


[Bug tree-optimization/47555] [4.4/4.6 Regression] Huge memory usage when optimizing

2011-02-01 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47555

--- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2011-02-01 
14:36:04 UTC ---
Author: rguenth
Date: Tue Feb  1 14:36:00 2011
New Revision: 169478

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=169478
Log:
2011-02-01  Richard Guenther  rguent...@suse.de

PR tree-optimization/47555
Revert
2010-07-15  Sebastian Pop  sebastian@amd.com

* params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.

* gcc.dg/pr47555.c: New testcase.

Added:
trunk/gcc/testsuite/gcc.dg/pr47555.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/params.def
trunk/gcc/testsuite/ChangeLog


[Bug tree-optimization/47555] [4.4 Regression] Huge memory usage when optimizing

2011-02-01 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47555

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

  Known to work||4.6.0
Summary|[4.4/4.6 Regression] Huge   |[4.4 Regression] Huge
   |memory usage when   |memory usage when
   |optimizing  |optimizing
  Known to fail|4.6.0   |

--- Comment #5 from Richard Guenther rguenth at gcc dot gnu.org 2011-02-01 
14:36:41 UTC ---
Re-fixed on trunk.  Eventually this is now a dup of an existing bug.


[Bug target/47558] 163267 breaks exception traceback in xplor-nih

2011-02-01 Thread iains at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47558

--- Comment #14 from Iain Sandoe iains at gcc dot gnu.org 2011-02-01 14:37:39 
UTC ---
the difference caused by including a reference to /usr/libgcc_s.xxx is to
allow a libgcc_s appearing in a DYLD_LIBRARY_PATH (or a fallback path in the
compiler's list) to over-ride ... 

have you (or does the build process) set a DYLD_LIBRARY_PATH ?

another possibility is a corrupted, stale or erroneous build of one of those
libraries that refers to _Unwind_ in FSF libgcc_s.1.dylib (how it manages
that would bear some inspection).

I've checked recent trunk for 10.6 and
(a) libgcc_ext.dylib does NOT export _Unwind_x
(b) /usr/libgcc_s.10.5.dylib is just a stub pointing to libSystem.dylib.

so if you've manage to resolve _Unwind_ from FSF libgcc_s then the two top
choices are:
either there is a dodgy -L in the build process 
or you've got a DYLD_LIBRARY_PATH somewhere ...


[Bug target/47564] [4.6 Regression] internal compiler error in memory_address_addr_space, at explow.c:504

2011-02-01 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47564

--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org 2011-02-01 
14:40:50 UTC ---
Created attachment 23198
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=23198
gcc46-pr47564.patch

Ugh, this is ugly.
The problem is that tree_rest_of_compilation calls init_emit and lots of other
init* functions and assumes x_rtl will stay initialized until expansion.
But if during any of the following optimization passes set_cfun is called to
some other function which has different target options, target_reinit is
called, which calls free_after_compilation which will clear x_rtl.
Among other things it clears reg_rtx_no, which means when expanding E pseudo
allocation starts from 0 instead of first pseudo (i.e. allocates various
hard/virtual registers first, which of course can't lead to anything sane).

Most of the set_cfun calls actually came from cgraph verification, where it is
not really needed - IMHO we can set_cfun there just when we are about to
diagnose an issue and when we do that, we will internal_error at the end of
function anyway and thus don't have to worry about restoring it at all.  The
attached patch fixes that.

On the testcase there is another set_cfun call after tree_rest_of_compilation
has been called though, in particular from cgraph_release_function_body during
inlining (called from cgraph_release_node).  I guess in such a case we don't
actually need target reinit, perhaps we could just change cfun after saving the
previous value, instead of using push_cfun/pop_cfun.

Or perhaps target_reinit could save x_rtl copy before it and restore it
afterwards, so that it doesn't clear it if it wasn't all 0's before.


[Bug c++/47573] New: [trans-mem] ICE in invoke_set_current_function_hook

2011-02-01 Thread patrick.marlier at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47573

   Summary: [trans-mem] ICE in invoke_set_current_function_hook
   Product: gcc
   Version: trans-mem
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: patrick.marl...@gmail.com
CC: r...@gcc.gnu.org, al...@gcc.gnu.org


Created attachment 23199
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=23199
testcase boom

The attached test case makes GCC crashed (with latest revision 169442). 

$ g++ -fgnu-tm -O0 -S testcase.i
testcase.i:22:1: 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.

Program received signal SIGSEGV, Segmentation fault.
invoke_set_current_function_hook (fndecl=0xa5a5a5a5a5a5a5a5) at
../../transactional-memory/gcc/function.c:4039
4039   ? DECL_FUNCTION_SPECIFIC_OPTIMIZATION (fndecl)
(gdb) bt
#0  invoke_set_current_function_hook (fndecl=0xa5a5a5a5a5a5a5a5) at
../../transactional-memory/gcc/function.c:4039
#1  0x00aca463 in verify_cgraph_node (node=0x76bbdc30) at
../../transactional-memory/gcc/cgraphunit.c:581
#2  0x00acadd8 in verify_cgraph () at
../../transactional-memory/gcc/cgraphunit.c:812
#3  0x00aee65b in cgraph_remove_unreachable_nodes (before_inlining_p=1
'\001', file=0x0)
at ../../transactional-memory/gcc/ipa.c:306
#4  0x008427ee in execute_todo (flags=384) at
../../transactional-memory/gcc/passes.c:1307
#5  0x00844e5a in execute_one_pass (pass=0x132f6c0) at
../../transactional-memory/gcc/passes.c:1602
#6  0x0084525a in execute_ipa_pass_list (pass=0x132f6c0) at
../../transactional-memory/gcc/passes.c:1813
#7  0x00acd5a7 in ipa_passes () at
../../transactional-memory/gcc/cgraphunit.c:1796
#8  cgraph_optimize () at ../../transactional-memory/gcc/cgraphunit.c:1831
#9  0x00acdf35 in cgraph_finalize_compilation_unit () at
../../transactional-memory/gcc/cgraphunit.c:1096
#10 0x005393cb in cp_write_global_declarations () at
../../transactional-memory/gcc/cp/decl2.c:3837
#11 0x008ea23a in compile_file (argc=15, argv=0x7fffe4c8) at
../../transactional-memory/gcc/toplev.c:1065
#12 do_compile (argc=15, argv=0x7fffe4c8) at
../../transactional-memory/gcc/toplev.c:2424
#13 toplev_main (argc=15, argv=0x7fffe4c8) at
../../transactional-memory/gcc/toplev.c:2466
#14 0x76f95d8e in __libc_start_main (main=value optimized out,
argc=value optimized out, 
ubp_av=value optimized out, init=value optimized out, fini=value
optimized out, rtld_fini=value optimized out, 
stack_end=0x7fffe4b8) at libc-start.c:226
#15 0x00489089 in _start ()


[Bug driver/47547] [4.5/4.6 Regression] WHOPR, can't use /dev/null as an output file

2011-02-01 Thread hjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47547

--- Comment #5 from hjl at gcc dot gnu.org hjl at gcc dot gnu.org 2011-02-01 
14:42:16 UTC ---
Author: hjl
Date: Tue Feb  1 14:42:08 2011
New Revision: 169479

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=169479
Log:
Check HOST_BIT_BUCKET when settting dump base/dir.

2011-02-01  H.J. Lu  hongjiu...@intel.com

PR driver/47547
* lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
is HOST_BIT_BUCKET.

* opts.c (finish_options): Don't add x_aux_base_name if it is
HOST_BIT_BUCKET.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/lto-wrapper.c
trunk/gcc/opts.c


[Bug driver/47547] [4.5 Regression] WHOPR, can't use /dev/null as an output file

2011-02-01 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47547

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

   Target Milestone|4.6.0   |4.5.3
Summary|[4.5/4.6 Regression] WHOPR, |[4.5 Regression] WHOPR,
   |can't use /dev/null as an   |can't use /dev/null as an
   |output file |output file

--- Comment #6 from H.J. Lu hjl.tools at gmail dot com 2011-02-01 14:43:48 
UTC ---
Fixed on trunk.


[Bug tree-optimization/47555] [4.4 Regression] Huge memory usage when optimizing

2011-02-01 Thread tony.poppleton at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47555

--- Comment #6 from Tony Poppleton tony.poppleton at gmail dot com 2011-02-01 
14:45:28 UTC ---
Out of interest, could this parameter of 20 be automatically tuned based on the
available RAM?

For systems with a lot of RAM, it might make sense to increase the parameter
above 20 (assuming this produces better code in the end).

Whilst they could override this using the flag mentioned in comment #3,
auto-detecting this parameter would make it easier for the end user.


[Bug middle-end/47566] ICE in vn_reference_lookup

2011-02-01 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47566

--- Comment #7 from Richard Guenther rguenth at gcc dot gnu.org 2011-02-01 
14:46:56 UTC ---
Hm, you are using -O0 for the compile and -O3 ... for the link step?  Should
work in theory, but of course isn't tested thoroughly.


[Bug tree-optimization/47555] [4.4 Regression] Huge memory usage when optimizing

2011-02-01 Thread rguenther at suse dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47555

--- Comment #7 from rguenther at suse dot de rguenther at suse dot de 
2011-02-01 14:48:15 UTC ---
On Tue, 1 Feb 2011, tony.poppleton at gmail dot com wrote:

 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47555
 
 --- Comment #6 from Tony Poppleton tony.poppleton at gmail dot com 
 2011-02-01 14:45:28 UTC ---
 Out of interest, could this parameter of 20 be automatically tuned based on 
 the
 available RAM?
 
 For systems with a lot of RAM, it might make sense to increase the parameter
 above 20 (assuming this produces better code in the end).
 
 Whilst they could override this using the flag mentioned in comment #3,
 auto-detecting this parameter would make it easier for the end user.

We try very hard to not have generated code depend on host machine
configuration.  So, no.


[Bug middle-end/47566] ICE in vn_reference_lookup

2011-02-01 Thread Joost.VandeVondele at pci dot uzh.ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47566

--- Comment #8 from Joost VandeVondele Joost.VandeVondele at pci dot uzh.ch 
2011-02-01 14:53:44 UTC ---
(In reply to comment #7)
 Hm, you are using -O0 for the compile and -O3 ... for the link step?  Should
 work in theory, but of course isn't tested thoroughly.

Right :-) I'm trying to test this thoroughly... 

seems like a useful trick to speedup parallel builds of Fortran programs (quick
-O0 build to satisfy module dependencies, massively parallel and thus hopefully
fast lto without the dependencies).


[Bug fortran/47569] [4.3/4.4/4.5/4.6 Regression] gfortran does not detect that the parameters for passing a partial string to a subroutine are incorrect

2011-02-01 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47569

--- Comment #3 from Tobias Burnus burnus at gcc dot gnu.org 2011-02-01 
14:54:10 UTC ---
(In reply to comment #2)
 Draft patch:
 +  || gfc_expr_attr (actual).pointer

That check won't work as foo(1) is never a pointer while foo might be a
pointer; thus, one has to save the last REF_COMPONENT and handle it manually.

The following check at a few lines later also needs to be modified (both the
AS_ASSUMED and the pointer check).

  if (actual-expr_type == EXPR_VARIABLE  ref
   (ref-u.ar.as-type == AS_ASSUMED_SHAPE
  || gfc_expr_attr (actual).pointer))

And the check:

  for (ref = actual-ref; ref; ref = ref-next)
if (ref-type == REF_ARRAY  ref-u.ar.type == AR_ELEMENT
 ref-u.ar.dimen  0)
  break;

seems to mishandle  foo(1)%bar(1)%foo by looking only at the first
AR_ELEMENT.


[Bug fortran/47571] [4.6 Regression] undefined reference to clock_gettime in Linux build of 02/01/2011

2011-02-01 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47571

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||wrong-code
 CC||burnus at gcc dot gnu.org,
   ||jb at gcc dot gnu.org
Summary|undefined reference to  |[4.6 Regression] undefined
   |clock_gettime in Linux  |reference to clock_gettime
   |build of 02/01/2011 |in Linux build of
   ||02/01/2011

--- Comment #1 from Tobias Burnus burnus at gcc dot gnu.org 2011-02-01 
14:56:30 UTC ---
clock_gettime is part of POSIX.

Linux's man page states:
   Feature Test Macro Requirements for glibc
 _POSIX_C_SOURCE = 199309L


[Bug fortran/47565] [4.6 Regression][OOP] Segfault with TBP

2011-02-01 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47565

--- Comment #3 from janus at gcc dot gnu.org 2011-02-01 14:59:45 UTC ---
Author: janus
Date: Tue Feb  1 14:59:40 2011
New Revision: 169480

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=169480
Log:
2011-02-01  Janus Weil  ja...@gcc.gnu.org

PR fortran/47565
* trans-expr.c (gfc_conv_structure): Handle constructors for procedure
pointer components with allocatable result.


2011-02-01  Janus Weil  ja...@gcc.gnu.org

PR fortran/47565
* gfortran.dg/typebound_call_20.f03: New.

Added:
trunk/gcc/testsuite/gfortran.dg/typebound_call_20.f03
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/trans-expr.c
trunk/gcc/testsuite/ChangeLog


[Bug fortran/47565] [4.6 Regression][OOP] Segfault with TBP

2011-02-01 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47565

janus at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #4 from janus at gcc dot gnu.org 2011-02-01 15:01:22 UTC ---
Fixed with r169480. Closing.


[Bug c++/47568] Name lookup: different behavior 4.1.2 / 4.5.0

2011-02-01 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47568

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org 2011-02-01 
15:07:06 UTC ---
it was a bug, it's fixed now

4.1 is no longer maintained


[Bug fortran/47571] [4.6 Regression] undefined reference to clock_gettime in Linux build of 02/01/2011

2011-02-01 Thread jb at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47571

--- Comment #2 from Janne Blomqvist jb at gcc dot gnu.org 2011-02-01 15:08:13 
UTC ---
On Linux/Glibc libgfortran is built with _GNU_SOURCE, which according to the
glibc manual is a superset of all kinds of
_POSIX_C_SOURCE=[latest_supported_standard]
XOPEN_SOURCE=[latest_supported_standard] and so forth.

My guess is that the issue is due to mismatch between the build environment and
the environment where gfortran is executed. It might be that the OP is running
on some old distro that doesn't provide librt.so which is needed by
clock_gettime() on Glibc. 

OP, what does ldd /path/to/libgfortran.so.3 say?

FWIW, I have no idea what Patch 81226 refers to.


[Bug target/47558] 163267 breaks exception traceback in xplor-nih

2011-02-01 Thread howarth at nitro dot med.uc.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47558

--- Comment #15 from Jack Howarth howarth at nitro dot med.uc.edu 2011-02-01 
15:11:51 UTC ---
DYLD_LIBRARY_PATH is unset when xplor is started. Also remember that your test
case in comment 9 is insufficient to reproduce the behavior of xplor-nih. The
code calling the unwinder should be placed in a shared library and then called
from a main program. I don't see anything in the following linkages which
should cause a problem.

gcc -fdefault-integer-8 -dynamiclib -o libfft.dylib dsint.o dsinti.o dcfftf.o
dcfftb.o dcffti.o drffti.o drfftf.o drfftb.o zffti.o zfftf.o zfftb.o ctrans.o
zfft1d.o zfft2d.o zfft3d.o ftrans.o zmp_fft.o zscal_fft.o zprod_fft.o fft_ftn.o
-flat_namespace -undefined suppress -single_module-lcrypto -lblas 

gcc -fdefault-integer-8 -dynamiclib -o libpppack.dylib cubspl.o ppvalu.o
intdy.o xerrwv.o -flat_namespace -undefined suppress -single_module-lcrypto 

gcc -fdefault-integer-8 -dynamiclib -o libspecfun.dylib gamma.o rjbesl.o
ribesl.o -flat_namespace -undefined suppress -single_module-lcrypto 

g++ -dynamiclib -fdefault-integer-8 -flat_namespace -undefined suppress
-single_module dpApi.o vmd.o vmdInter.o tclStream.o dpStream.o ssStream.o
publicVMDInter.o thread.o -o libvmd.dylib-lcrypto

g++ -dynamiclib -fdefault-integer-8 -flat_namespace -undefined suppress
-single_module dinternal.o dint-atom.o dint-node.o dint-loop.o dint-step.o
dint-powell.o dint-conmin.o dint-simplex.o dint-pc6.o dint-xplor.o publicIVM.o
-o libintVar.dylib-lcrypto
-L/Users/howarth/xplor-nih-2.27/bin.Darwin_10_x86_64/ -llapack -lblas  

g++ -dynamiclib -fdefault-integer-8 -flat_namespace -undefined suppress
-single_module maketables.o get.o study.o pcre.o -o libpcre.dylib-lcrypto

g++ -dynamiclib -fdefault-integer-8 -flat_namespace -undefined suppress
-single_module simulation.o xplorSimulation.o xplorWrap.o atom.o atomSel.o
atomSelAction.o derivList.o pdbTool.o ensembleSimulation.o simulationWorld.o
xplorPot.o mmapAlloc.o semaphore.o mutex-sem.o randomNum.o potList.o avePot.o
modified.o enumNameMap.o dihedral.o ensemblePot.o xplorWrapProc.o
coordComparer.o atomSelLang.o atomSelLangYacc.o mmapMalloc.o -o libcommon.dylib
   -lcrypto -L/Users/howarth/xplor-nih-2.27/bin.Darwin_10_x86_64/ -lpcre
-llapack -lblas 

g++ -dynamiclib -fdefault-integer-8 -flat_namespace -undefined suppress
-single_module surf.o io.o compute.o dual.o utils.o lp.o chull.o tessel_cases.o
tessel_patches.o tessel_convex.o tessel_concave.o tessel_torus.o surfDiff.o -o
libsurfD.dylib-lcrypto
-L/Users/howarth/xplor-nih-2.27/bin.Darwin_10_x86_64/ -lspecfun -llapack -lblas 

g++ -dynamiclib -fdefault-integer-8 -flat_namespace -undefined suppress
-single_module noePot.o atomProb.o rdcPot1.o csaPot.o jCoupPot.o shapePot.o
atomDensity.o probDistPot.o cosRatioPot.o ncsPot.o prePot.o rdcWavePot.o
varTensor.o surfaceArea.o psolPot.o orderPot.o posRMSDPot.o utils.o
posSymmPot.o sphereFun.o volume.o planeDistPot.o selNBPot.o gyrPot.o
cstMagPot.o diffPot.o relaxRatioPot.o distSymmPot.o sardcPot.o
surfTessellation.o torsionDBPot.o nbTargetPot.o solnScatPot.o -o
libnmrPot.dylib-lcrypto
-L/Users/howarth/xplor-nih-2.27/bin.Darwin_10_x86_64/ -lspecfun -lsurfD
-llapack -lblas 

g++ -dynamiclib -fdefault-integer-8 -flat_namespace -undefined suppress
-single_module PeakAssignment.o Peak.o MarvinNOEPotential.o ShiftAssignment.o
EquivPeakAssignmentSet.o -o libmarvin.dylib-lcrypto

gcc -fdefault-integer-8 -dynamiclib -o libxplor.dylib xfft.o xdofft.o
dtorsion.o rotman.o array.o genic.o prot.o tsearch.o xmwrite.o carb.o csa.o
geomty.o psfio.o update.o xparse.o hbonds.o usersb.o xpeakpik.o corman.o
hbuild.o rotate.o util.o coup.o initia.o rotlsq.o vcorr.o xpred.o cstack.o
intcor.o vcorrfft.o xprobab.o cstran.o matrix.o rsearch.o vector.o xprox.o
distan.o mmdisg.o rtfio.o xasymm.o xreduce.o drigid.o modes.o rxconv.o
xdeclare.o xrefin.o mrigid.o rxprin.o xdo.o xrmani.o dynamc.o nbonds.o rxrefi.o
xropti.o dynanl.o ncs.o rxsetu.o xdofried.o xscale.o noe.o sbound.o xdohelp.o
xsfsele.o dynlng.o onebond.o segmnt.o xfalgebra.o xshow.o eangle.o packing.o
selrpn.o xsigmaa.o ebond.o parmio.o parser.o xmalgebra.o xskel.o enbond.o
shake.o xmask.o xstats.o energy.o pick.o sort.o xmaverage.o xsymm.o etor.o
plane.o string.o xmphisto.o xtarget.o expression.o powell.o surfac.o xmpsele.o
fastnb.o power.o test.o xmread.o collapse_rgyr.o xrama.o trio_faster_newderiv.o
susc_anis.o rama_gaussians.o orientations.o xdipolar_coup.o diff_anis.o
anisotropy.o angledb.o vectangl.o fantacross.o fantalin.o xangle.o xccr.o
xfantaccr.o xfantadipo.o xdipo_pcs.o xdipo_rdc.o xt1dist.o hbdb.o saxs.o pcsa.o
ss_orient.o xadc.o hb_dist_angle.o aria.o ariman.o ariass.o aribac.o arical.o
arivio.o bonded.o ace.o pmag.o tens_dip_e2.o tenso.o slink.o fxrefin.o
fxparse.o fwrite.o pxrefin.o pxtarget.o fxmap.o pxparse.o pxmani.o xmap.o
zpacking.o ppacking.o fenergy.o sebond.o seangl.o setor.o darwin64time.o
osx_x86_64.o -flat_namespace 

[Bug c++/47568] Name lookup: different behavior 4.1.2 / 4.5.0

2011-02-01 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47568

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

  Known to work||4.4.5

--- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org 2011-02-01 
15:12:20 UTC ---
in case that wasn't clear, it was a bug in 4.1, it's fixed in 4.4 (maybe
earlier, I didn't check)


[Bug fortran/47571] [4.6 Regression] undefined reference to clock_gettime in Linux build of 02/01/2011

2011-02-01 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47571

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2011-02-01 
15:14:14 UTC ---
clock_gettime is defined in librt, so if libgfortran started using librt
symbols, it needs to a) link against it dynamically for libgfortran.so b)
arrange for gfortran driver to pass in -lrt when linking libgfortran
statically.


[Bug fortran/47569] [4.3/4.4/4.5/4.6 Regression] gfortran does not detect that the parameters for passing a partial string to a subroutine are incorrect

2011-02-01 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47569

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P4
   Target Milestone|--- |4.5.3


[Bug c++/47568] Name lookup: different behavior 4.1.2 / 4.5.0

2011-02-01 Thread matwey.kornilov at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47568

--- Comment #3 from Matwey V. Kornilov matwey.kornilov at gmail dot com 
2011-02-01 15:24:30 UTC ---
Thanks. What is its bugid? I didn't find something similar and then I filled
this ticket. Probably I looked through not careful enough.


[Bug target/47558] 163267 breaks exception traceback in xplor-nih

2011-02-01 Thread iains at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47558

--- Comment #16 from Iain Sandoe iains at gcc dot gnu.org 2011-02-01 15:26:15 
UTC ---
(In reply to comment #15)


 Perhaps r163267 is fragile  to certain combination of linker flags (like
 -flat_namespace)?

fragile LOL... 

man ld:

   -flat_namespace
 Alters how symbols are resolved at build time and runtime. 
With -two_levelnamespace (the default), the linker only searches
 dylibs on the command line for symbols, and records in which
dylib they were found.  With -flat_namespace, the linker searches
 all dylibs on the command line and all dylibs those original
dylibs depend on.  The linker does not record which dylib an
 external symbol came from, so at runtime dyld again searches
all images and uses the first definition it finds.  In addition,
 any undefines in loaded flat_namespace dylibs must be
resolvable at build time.

--  you are defeating the mechanism that is used to supply the _ext symbols
from a different library.
If use if this flag is, actually, necessary then we need to alter the whole
mechanism for the _ext to build a distinctly named lib.


[Bug fortran/47571] [4.6 Regression] undefined reference to clock_gettime in Linux build of 02/01/2011

2011-02-01 Thread michael.a.richmond at nasa dot gov
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47571

--- Comment #4 from Michael Richmond michael.a.richmond at nasa dot gov 
2011-02-01 15:27:19 UTC ---
(In reply to comment #2)
 OP, what does ldd /path/to/libgfortran.so.3 say?

linux-gate.so.1 =  (0xe000)
libm.so.6 = /lib/libm.so.6 (0xb772b000)
libc.so.6 = /lib/libc.so.6 (0xb75c)
/lib/ld-linux.so.2 (0xb7822000)

I am running SuSE Linux 11.3


[Bug fortran/47571] [4.6 Regression] undefined reference to clock_gettime in Linux build of 02/01/2011

2011-02-01 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47571

--- Comment #5 from Tobias Burnus burnus at gcc dot gnu.org 2011-02-01 
15:29:50 UTC ---
For the symbols defined in librt, cf.
http://refspecs.freestandards.org/LSB_4.0.0/LSB-Core-generic/LSB-Core-generic/librt.html

Regarding http://gcc.gnu.org/ml/fortran/2011-01/msg00326.html
 2) Uses clock_gettime() if available

and

(In reply to comment #3)
 clock_gettime is defined in librt, so if libgfortran started using librt
 symbols

It probably means that one needs to use libgfortran.spec for that as f951 has
no knowledge whether clock_gettime is available. Is is clear that librt exists
if clock_gettime is available? librt seems to be a Linux-specific library-name
choice. If not, one could consider moving back to a clock_gettime-free
libgfortran.


[Bug middle-end/47566] ICE in vn_reference_lookup

2011-02-01 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47566

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011.02.01 15:36:11
 AssignedTo|unassigned at gcc dot   |rguenth at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1

--- Comment #9 from Richard Guenther rguenth at gcc dot gnu.org 2011-02-01 
15:36:11 UTC ---
I can reproduce it.  I also run into

In file included from :425:0:
/tmp/cp2k/makefiles/../src/realspace_grid_types.F: In function
'rs_pw_transfer_replicated':
/tmp/cp2k/makefiles/../src/realspace_grid_types.F:816:0: error: non-trivial
conversion at assignment
struct array3_real(kind=8)
struct array3_real(kind=8)
# .MEM_755 = VDEF .MEM_649
grid = D.39399_277-r;

and a couple of similar ICEs in other ltrans units.  Probably the known
restrict vs. non-restrict bug.

The bug happens when optimizing fft3d_pb, it also happens with -fno-inline
so indeed the bug might be triggered by the mix of -O0 and -O3 (thus, by
not running early optimizations).

Seems to be -ffast-math vs. non-fast-math.  We fold calls during
PRE insertion which turns cabs into components (complex lowering).

That folding,

folded = build_call_array (currop-type,
   (TREE_CODE (fn) == FUNCTION_DECL
? build_fold_addr_expr (fn) : fn),
   nargs, args);

can create arbitrary number of expressions, including for some reason
non-gimple reg vars.  In particular fold_builtin_cabs returns

__builtin_sqrt (__builtin_pow (SAVE_EXPR REALPART_EXPR SAVE_EXPR
val.767_1280, 2.0e+0) + __builtin_pow (SAVE_EXPR IMAGPART_EXPR SAVE_EXPR
val.767_1280, 2.0e+0))

and then save-expr gimplification introduces the non-register temporary
as a result of SSA_NAME save-expr (which is unnecessary anyway).

The following fixes the ICE for me:

Index: builtins.c
===
--- builtins.c  (revision 169476)
+++ builtins.c  (working copy)
@@ -652,9 +652,10 @@ target_char_cast (tree cst, char *p)
 static tree
 builtin_save_expr (tree exp)
 {
-  if (TREE_ADDRESSABLE (exp) == 0
-   (TREE_CODE (exp) == PARM_DECL
- || (TREE_CODE (exp) == VAR_DECL  !TREE_STATIC (exp
+  if (TREE_CODE (exp) == SSA_NAME
+  || (TREE_ADDRESSABLE (exp) == 0
+  (TREE_CODE (exp) == PARM_DECL
+ || (TREE_CODE (exp) == VAR_DECL  !TREE_STATIC (exp)
 return exp;

   return save_expr (exp);


[Bug middle-end/47566] ICE in vn_reference_lookup

2011-02-01 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47566

--- Comment #10 from Richard Guenther rguenth at gcc dot gnu.org 2011-02-01 
15:40:30 UTC ---
Testcase:

/* { dg-lto-do run } */
/* { dg-extra-ld-options -O2 -ffast-math } */

double cabs(_Complex double);
double __attribute__((used))
foo (_Complex double x, int b)
{
  if (b)
x = 0;
  return cabs(x);
}
int main() { return 0; }


[Bug target/47564] [4.6 Regression] internal compiler error in memory_address_addr_space, at explow.c:504

2011-02-01 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47564

--- Comment #7 from Jakub Jelinek jakub at gcc dot gnu.org 2011-02-01 
15:47:07 UTC ---
Following works by not doing target_reinit once tree_rest_of_compilation calls
init_function_start, until final.
--- function.c.jj 2011-01-25 18:40:08.0 +0100
+++ function.c 2011-02-01 16:33:48.0 +0100
@@ -4294,7 +4294,10 @@ invoke_set_current_function_hook (tree f
   cl_optimization_restore (global_options, TREE_OPTIMIZATION (opts));
 }

-  targetm.set_current_function (fndecl);
+  /* Don't call targetm.set_current_function in between
+ prepare_function_start and following free_after_compilation.  */
+  if (regno_reg_rtx == NULL)
+targetm.set_current_function (fndecl);
 }
 }


[Bug target/47558] 163267 breaks exception traceback in xplor-nih

2011-02-01 Thread iains at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47558

--- Comment #17 from Iain Sandoe iains at gcc dot gnu.org 2011-02-01 15:50:44 
UTC ---
I guess you could make the requirement to link libSystem before (and after)
libgcc_ext explicit like this:

Index: gcc/config/darwin10.h
===
--- gcc/config/darwin10.h(revision 169471)
+++ gcc/config/darwin10.h(working copy)
@@ -23,3 +23,6 @@ unwinder in libSystem is fixed to digest new epilo

 #undef LIB_SPEC
 #define LIB_SPEC %{!static:-no_compact_unwind -lSystem}
+
+#undef  LINK_GCC_C_SEQUENCE_SPEC
+#define LINK_GCC_C_SEQUENCE_SPEC %L %G %L

===

better than having a side-effect of a stub library achieving the same thing.

but it would still be worth knowing how many (if any) programs actually require
flag namespace.


[Bug fortran/47571] [4.6 Regression] undefined reference to clock_gettime in Linux build of 02/01/2011

2011-02-01 Thread jb at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47571

--- Comment #6 from Janne Blomqvist jb at gcc dot gnu.org 2011-02-01 15:50:52 
UTC ---
(In reply to comment #3)
 clock_gettime is defined in librt, so if libgfortran started using librt
 symbols, it needs to a) link against it dynamically for libgfortran.so

Yes, that's what it does, using a configure.ac snippet lifted from libgomp. On
my system, ldd libgfortran.so shows:

linux-vdso.so.1 =  (0x7fff71ae9000)
libquadmath.so.0 =
/home/janne/src/gfortran/trunk/install/lib/../lib64/libquadmath.so.0
(0x7f885a485000)  
libm.so.6 = /lib/libm.so.6 (0x7f885a1df000)
librt.so.1 = /lib/librt.so.1 (0x7f8859fd7000)  
libc.so.6 = /lib/libc.so.6 (0x7f8859c54000)
libpthread.so.0 = /lib/libpthread.so.0 (0x7f8859a36000)
/lib64/ld-linux-x86-64.so.2 (0x7f885a9cf000)

where the librt and libpthread dependencies are due to using clock_gettime()
from librt.

 b)
 arrange for gfortran driver to pass in -lrt when linking libgfortran
 statically.

Right, I haven't considered this part. Anyone have any idea how that could be
done?


[Bug fortran/47572] [OOP] Invalid: Allocatable polymorphic with init expression.

2011-02-01 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47572

janus at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011.02.01 15:52:21
 AssignedTo|unassigned at gcc dot   |janus at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1

--- Comment #1 from janus at gcc dot gnu.org 2011-02-01 15:52:21 UTC ---
The following should be enough to fix it:

Index: gcc/fortran/resolve.c
===
--- gcc/fortran/resolve.c   (revision 169479)
+++ gcc/fortran/resolve.c   (working copy)
@@ -10063,7 +10063,8 @@ resolve_fl_variable (gfc_symbol *sym, int mp_flag)
   /* Reject illegal initializers.  */
   if (!sym-mark  sym-value)
 {
-  if (sym-attr.allocatable)
+  if (sym-attr.allocatable || (sym-ts.type == BT_CLASS
+CLASS_DATA (sym)-attr.allocatable))
gfc_error (Allocatable '%s' at %L cannot have an initializer,
   sym-name, sym-declared_at);
   else if (sym-attr.external)


[Bug middle-end/47566] ICE in vn_reference_lookup

2011-02-01 Thread Joost.VandeVondele at pci dot uzh.ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47566

--- Comment #11 from Joost VandeVondele Joost.VandeVondele at pci dot uzh.ch 
2011-02-01 15:52:42 UTC ---
(In reply to comment #9)
 In file included from :425:0:
 /tmp/cp2k/makefiles/../src/realspace_grid_types.F: In function
 'rs_pw_transfer_replicated':
 /tmp/cp2k/makefiles/../src/realspace_grid_types.F:816:0: error: non-trivial
 conversion at assignment

yes, that is PR45586. Can be worked around with either release checking (which
I have enable right now) or changing src/realspace_grid_types.F
to use
 REAL(KIND=dp), DIMENSION ( :, :, : ), POINTER :: r   ! the grid
instead of
 REAL(KIND=dp), DIMENSION ( :, :, : ), ALLOCATABLE :: r   ! the grid



 The following fixes the ICE for me:

cool.


[Bug target/47558] 163267 breaks exception traceback in xplor-nih

2011-02-01 Thread iains at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47558

--- Comment #18 from Iain Sandoe iains at gcc dot gnu.org 2011-02-01 15:57:30 
UTC ---
(In reply to comment #17)
 I guess you could make the requirement to link libSystem before (and after)
 libgcc_ext explicit like this:

you would also need to ensure that libSystem was before
/install/path/to/my/libgcc_s.1.dylib in the search paths at runtime... 

 but it would still be worth knowing how many (if any) programs actually 
 require
 flag namespace.

... because if this is a large requirement then we really need to change the
way the _ext is done (for reasons that should be evident from this and the
preceding comment),.


[Bug target/47558] 163267 breaks exception traceback in xplor-nih

2011-02-01 Thread howarth at nitro dot med.uc.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47558

--- Comment #19 from Jack Howarth howarth at nitro dot med.uc.edu 2011-02-01 
15:59:30 UTC ---
(In reply to comment #16)
 (In reply to comment #15)
 
 
  Perhaps r163267 is fragile  to certain combination of linker flags (like
  -flat_namespace)?
 
 fragile LOL... 
 

Considering that Apple has always recommended the use of that flag for porting
unix software...

http://developer.apple.com/library/mac/#documentation/Porting/Conceptual/PortingUnix/compiling/compiling.html%23//apple_ref/doc/uid/TP40002850-TPXREF101

(see the section on Understanding Two-Level Namespaces), it really is not a
very funny bug.


[Bug fortran/47571] [4.6 Regression] undefined reference to clock_gettime in Linux build of 02/01/2011

2011-02-01 Thread jb at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47571

Janne Blomqvist jb at gcc dot gnu.org changed:

   What|Removed |Added

 Target|i686-pc-linux-gnu   |
 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011.02.01 16:02:50
   Host|i686-pc-linux-gnu   |
 AssignedTo|unassigned at gcc dot   |jb at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1
  Build|i686-pc-linux-gnu   |

--- Comment #7 from Janne Blomqvist jb at gcc dot gnu.org 2011-02-01 16:02:50 
UTC ---
So using -static I was able to reproduce this bug on x86_64-unknown-linux-gnu.
As Jakub mentioned, the driver must link in librt when linking statically. I'll
look into how this could be done.

As a workaround for the reporter, dynamic linking works fine.


[Bug fortran/47571] [4.6 Regression] undefined reference to clock_gettime in Linux build of 02/01/2011

2011-02-01 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47571

--- Comment #8 from Tobias Burnus burnus at gcc dot gnu.org 2011-02-01 
16:08:10 UTC ---
(In reply to comment #6)
  clock_gettime is defined in librt, so if libgfortran started using librt
  symbols, it needs to a) link against it dynamically for libgfortran.so
 
 Yes, that's what it does

But why doesn't it work then, cf. comment 4? openSUSE 11.3 is neither old nor
very special.

  b)
  arrange for gfortran driver to pass in -lrt when linking libgfortran
  statically.
 Right, I haven't considered this part. Anyone have any idea how that could be
 done?

Via libgfortran/libgfortran.spec.in and some configure script?

Cf. libgomp and libgomp/configure.ac's

# Set up the set of libraries that we need to link against for libgomp.
# Note that the GOMP_SELF_SPEC in gcc.c will force -pthread for -fopenmp,
# which will force linkage against -lpthread (or equivalent for the system).
# That's not 100% ideal, but about the best we can do easily.
if test $enable_shared = yes; then
  link_gomp=-lgomp %{static: $LIBS}
else
  link_gomp=-lgomp $LIBS
fi
AC_SUBST(link_gomp)


By the way, there is also -lrt added via libgomp/configure.tgt for HPUX.


[Bug fortran/47571] [4.6 Regression] undefined reference to clock_gettime in Linux build of 02/01/2011

2011-02-01 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47571

--- Comment #9 from Jakub Jelinek jakub at gcc dot gnu.org 2011-02-01 
16:13:24 UTC ---
How many fortran users actually need to more precise DATE_AND_TIME though?
Bringing in -lpthread (as dependency of -lrt) certainly has some extra
overhead, e.g. everything that uses gthr* will suddenly use real locking.
You could e.g. use clock_gettime only through a weakref, thus let the users
choose if clock_gettime should be used or not.  If they don't link in librt,
less precise implementation would be used, if they do link it in, it would
become more precise (-lrt would be linked in automatically e.g. for -fopenmp
compilations).


[Bug tree-optimization/47559] ICE: verify_stmts failed: statement marked for throw, but doesn't with -fnon-call-exceptions and noexcept

2011-02-01 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47559

--- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2011-02-01 
16:16:04 UTC ---
Author: rguenth
Date: Tue Feb  1 16:15:56 2011
New Revision: 169487

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=169487
Log:
2011-02-01  Richard Guenther  rguent...@suse.de

PR tree-optimization/47559
* tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
store-motion on references that can throw.

* g++.dg/torture/pr47559.C: New testcase.

Added:
trunk/gcc/testsuite/g++.dg/torture/pr47559.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-loop-im.c


[Bug fortran/47574] New: internal compiler error: in build2_stat, at tree.c:3795

2011-02-01 Thread mlo...@uni-bremen.de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47574

   Summary: internal compiler error: in build2_stat, at
tree.c:3795
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: mlo...@uni-bremen.de


Created attachment 23200
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=23200
example fortran code to reproduce bug

This appears to be a problem with optimization: with -O2 routine compiles
without errors. Small changes to the code also seems to fix the problem: e.g.
changing exchWidthX to OLx in line 947
The code is part of a ocean model used in oceanography (http://mitgcm.org) and
usually compiles on unix-like platforms with a f77 compiler without problems.

command-line and output follows, fortran code is attached:
gfortran -v -save-temps -Wunused -Wuninitialized -fsecond-underscore
-fconvert=big-endian -ffixed-line-length-132 -O3 -funroll-loops -c
exch2_uv_agrid_3d_rl.f
Using built-in specs.
COLLECT_GCC=gfortran
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-apple-darwin10.4.0/4.6.0/lto-wrapper
Target: x86_64-apple-darwin10.4.0
Configured with: ../gcc-4.6-20101106/configure --enable-languages=c++,fortran
Thread model: posix
gcc version 4.6.0 20101106 (experimental) (GCC) 
COLLECT_GCC_OPTIONS='-mmacosx-version-min=10.6.6' '-v' '-save-temps' '-Wunused'
'-Wuninitialized' '-fsecond-underscore' '-fconvert=big-endian'
'-ffixed-line-length-132' '-O3' '-funroll-loops' '-c' '-mtune=generic'
 /usr/local/libexec/gcc/x86_64-apple-darwin10.4.0/4.6.0/f951
exch2_uv_agrid_3d_rl.f -ffixed-form -fPIC -quiet -dumpbase
exch2_uv_agrid_3d_rl.f -mmacosx-version-min=10.6.6 -mtune=generic -auxbase
exch2_uv_agrid_3d_rl -O3 -Wunused -Wuninitialized -version -fsecond-underscore
-fconvert=big-endian -ffixed-line-length-132 -funroll-loops
-fintrinsic-modules-path
/usr/local/lib/gcc/x86_64-apple-darwin10.4.0/4.6.0/finclude -o
exch2_uv_agrid_3d_rl.s
GNU Fortran (GCC) version 4.6.0 20101106 (experimental)
(x86_64-apple-darwin10.4.0)
compiled by GNU C version 4.6.0 20101106 (experimental), GMP version 4.3.1,
MPFR version 2.4.1, MPC version 0.8.1
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
GNU Fortran (GCC) version 4.6.0 20101106 (experimental)
(x86_64-apple-darwin10.4.0)
compiled by GNU C version 4.6.0 20101106 (experimental), GMP version 4.3.1,
MPFR version 2.4.1, MPC version 0.8.1
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
exch2_uv_agrid_3d_rl.f: In function ‘exch2_uv_agrid_3d_rl’:
exch2_uv_agrid_3d_rl.f:293:0: internal compiler error: in build2_stat, at
tree.c:3795
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.


[Bug tree-optimization/47559] ICE: verify_stmts failed: statement marked for throw, but doesn't with -fnon-call-exceptions and noexcept

2011-02-01 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47559

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords|wrong-code  |
 Status|NEW |RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.6.0

--- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2011-02-01 
16:18:08 UTC ---
ICE is fixed.  I'll open a new bug for the wrong-code issue.


[Bug fortran/47571] [4.6 Regression] undefined reference to clock_gettime in Linux build of 02/01/2011

2011-02-01 Thread michael.a.richmond at nasa dot gov
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47571

--- Comment #10 from Michael Richmond michael.a.richmond at nasa dot gov 
2011-02-01 16:18:49 UTC ---
(In reply to comment #7)
 As a workaround for the reporter, dynamic linking works fine.

When I use gfortran -Bdynamic call_date_and_time.f90 I get the same error


[Bug fortran/47574] internal compiler error: in build2_stat, at tree.c:3795

2011-02-01 Thread mlo...@uni-bremen.de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47574

Martin Losch mlo...@uni-bremen.de changed:

   What|Removed |Added

  Attachment #23200|0   |1
is obsolete||

--- Comment #1 from Martin Losch mlo...@uni-bremen.de 2011-02-01 16:20:19 UTC 
---
Created attachment 23201
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=23201
correct fortran code to reproduce problem

I am sorry for attaching the wrong file


[Bug fortran/47571] [4.6 Regression] undefined reference to clock_gettime in Linux build of 02/01/2011

2011-02-01 Thread jb at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47571

--- Comment #11 from Janne Blomqvist jb at gcc dot gnu.org 2011-02-01 
16:20:06 UTC ---
(In reply to comment #8)
 (In reply to comment #6)
   clock_gettime is defined in librt, so if libgfortran started using librt
   symbols, it needs to a) link against it dynamically for libgfortran.so
  
  Yes, that's what it does
 
 But why doesn't it work then, cf. comment 4? openSUSE 11.3 is neither old nor
 very special.

Because the original report links statically (as can be deduced from the
presence of libgfortran.a). As I mentioned, static linking is broken but
dynamic works. FWIW, I suspect the output of ldd in comment #4 refers to the
system provided libgfortran, as neither librt nor libquadmath is present.

 
   b)
   arrange for gfortran driver to pass in -lrt when linking libgfortran
   statically.
  Right, I haven't considered this part. Anyone have any idea how that could 
  be
  done?
 
 Via libgfortran/libgfortran.spec.in and some configure script?
 
 Cf. libgomp and libgomp/configure.ac's
 
 # Set up the set of libraries that we need to link against for libgomp.
 # Note that the GOMP_SELF_SPEC in gcc.c will force -pthread for -fopenmp,
 # which will force linkage against -lpthread (or equivalent for the system).
 # That's not 100% ideal, but about the best we can do easily.
 if test $enable_shared = yes; then
   link_gomp=-lgomp %{static: $LIBS}
 else
   link_gomp=-lgomp $LIBS
 fi
 AC_SUBST(link_gomp)
 
 
 By the way, there is also -lrt added via libgomp/configure.tgt for HPUX.

Thanks, I'll have to take a look at this later tonight.


[Bug tree-optimization/47575] New: store-motion removes global stores from endless loops

2011-02-01 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47575

   Summary: store-motion removes global stores from endless loops
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Keywords: wrong-code
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: rgue...@gcc.gnu.org


void foo (int *k) 
{
  for (;;)
*k = 0;
}

is optimized to

foo (int * k)
{
  int k__lsm.2;

bb 2:
  k__lsm.2_4 = MEM[(int *)k_1(D)];

bb 3:
  k__lsm.2_6 = 0;

bb 4:
  goto bb 3;

}

by LIM, removing the global store.  We can use is_hidden_global_store
or friends and require at least one exit if that is true for a sm ref.


[Bug tree-optimization/47575] store-motion removes global stores from endless loops

2011-02-01 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47575

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.02.01 16:25:49
 CC||rakdver at gcc dot gnu.org
 Ever Confirmed|0   |1

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2011-02-01 
16:25:49 UTC ---
Something like

Index: tree-ssa-loop-im.c
===
--- tree-ssa-loop-im.c  (revision 169487)
+++ tree-ssa-loop-im.c  (working copy)
@@ -2329,7 +2329,10 @@ can_sm_ref_p (struct loop *loop, mem_ref
   base = get_base_address (ref-mem);
   if ((tree_could_trap_p (ref-mem)
|| (DECL_P (base)  TREE_READONLY (base)))
-   !ref_always_accessed_p (loop, ref, true))
+   (!ref_always_accessed_p (loop, ref, true))
+  || (TREE_CODE (base) == MEM_REF
+  ptr_deref_may_alias_global_p (TREE_OPERAND (base, 0))
+  !loop-exits-e))
 return false;

   /* And it must be independent on all other memory references

minus introducing a new predicate loop_has_no_exit_p ().


  1   2   3   >