[Bug fortran/40869] New: [F03] PPC assignment checking

2009-07-27 Thread janus at gcc dot gnu dot org
This PR is meant to track one leftover item related to procedure pointer
components: No pointer assignment checking is performed yet when a PPC is
involved, cf. the TODO comment in expr.c (gfc_check_pointer_assign).

Short test case:


implicit none

type :: t1
  procedure(integer), pointer, nopass :: ppc
end type

type :: t2
  procedure(real), pointer, nopass :: ppc
end type

type(t1) :: o1
type(t2) :: o2
procedure(logical),pointer :: pp1
procedure(complex),pointer :: pp2

pp1 = pp2
o1%ppc = pp1
pp2 = o2%ppc
o1%ppc = o2%ppc

end


All four pointer assignments in this example are invalid, but only the first
one is caught.


-- 
   Summary: [F03] PPC assignment checking
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Keywords: diagnostic
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: janus at gcc dot gnu dot org


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



[Bug fortran/40870] New: [F03] include formal args in backend_decl of PPCs

2009-07-27 Thread janus at gcc dot gnu dot org
Another PPC leftover item, cf. trans-types.c (gfc_get_ppc_type): When
translating the Fortran frontend structures to a backend tree, the argument
list of procedure pointer components is currently not being used.

This becomes visible in a test case like this:


implicit none
procedure(foo), pointer :: pp
type :: t
  procedure(foo), pointer, nopass :: ppc
end type
type(t)::o

pp = foo
o%ppc = foo
pp = o%ppc

contains

  integer function foo(a,b)
integer, intent(in) :: a,b
foo = a + b
  end function

end


Compiling with -fdump-tree-original shows the following code for the three
pointer assignments:

  pp = foo;
  o.ppc = (integer(kind=4) (*T3c6) (void)) foo;
  pp = (integer(kind=4) (*T3c8) (integer(kind=4) , integer(kind=4) ))
o.ppc;

The first one is ok, but the last two involve type casting, although they have
exactly the same interface (simply because the arguments of the PPC are
missing).


-- 
   Summary: [F03] include formal args in backend_decl of PPCs
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Keywords: wrong-code
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: janus at gcc dot gnu dot org


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



[Bug c++/40871] New: g++ does not find lstdc++ on AIX

2009-07-27 Thread efernandez at physiomics-plc dot com
On AIX 5.3, g++ version 4.4.0 and 4.4.1 cannot find the libstdc++ in default
location. This did not occur with 4.3.x.
The problem has been already discussed on the mailing list in this thread:
http://gcc.gnu.org/ml/gcc-help/2009-06/msg00092.html
and a patch was issued. It was supposedly committed to the main branch after
4.4.0, but for some reason was not present (or did not solve the issue) in
4.4.1.

I have compiled gcc with --disable-shared and use the AIX linker ld, not the
GNU linker.

This is the verbose compilation output of a simple Hello World program written
in C++:

Using built-in specs.
Target: powerpc-ibm-aix5.3.0.0
Configured with: /hpc/work/fernandz/gnusrc/gcc-4.4.1/configure --enable-threads
--enable-languages=c,c++ --prefix=/hpc/work/fernandz/gnu --enable-threads
--disable-shared --enable-version-specific-runtime-libs --disable-nls
--with-gmp=/hpc/work/fernandz/gnu --with-mpfr=/hpc/work/fernandz/gnu
--with-ppl=/hpc/work/fernandz/gnu --with-cloog=/hpc/work/fernandz/gnu
Thread model: aix
gcc version 4.4.1 (GCC) 
COLLECT_GCC_OPTIONS='-v' '-o' 'hello'
 /hpc/work/fernandz/gnu/libexec/gcc/powerpc-ibm-aix5.3.0.0/4.4.1/cc1plus -quiet
-v -D_ALL_SOURCE hellow.cpp -quiet -dumpbase hellow.cpp -auxbase hellow
-version -o /hpc/home/fernandz/User-Tmp/ccrprayy.s
ignoring nonexistent directory
/hpc/work/fernandz/gnu/lib/gcc/powerpc-ibm-aix5.3.0.0/4.4.1/../../../../powerpc-ibm-aix5.3.0.0/include
#include ... search starts here:
#include ... search starts here:
 /hpc/work/fernandz/gnu/lib/gcc/powerpc-ibm-aix5.3.0.0/4.4.1/include/c++

/hpc/work/fernandz/gnu/lib/gcc/powerpc-ibm-aix5.3.0.0/4.4.1/include/c++/powerpc-ibm-aix5.3.0.0

/hpc/work/fernandz/gnu/lib/gcc/powerpc-ibm-aix5.3.0.0/4.4.1/include/c++/backward
 /usr/local/include
 /hpc/work/fernandz/gnu/include
 /hpc/work/fernandz/gnu/lib/gcc/powerpc-ibm-aix5.3.0.0/4.4.1/include
 /hpc/work/fernandz/gnu/lib/gcc/powerpc-ibm-aix5.3.0.0/4.4.1/include-fixed
 /usr/include
End of search list.
GNU C++ (GCC) version 4.4.1 (powerpc-ibm-aix5.3.0.0)
compiled by GNU C version 4.4.1, GMP version 4.3.1, MPFR version
2.4.1-p5.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: f579180f2de70dc0754151f494907fb7
COLLECT_GCC_OPTIONS='-v' '-o' 'hello'
 as -u -mppc -o /hpc/home/fernandz/User-Tmp/ccwslsmj.o
/hpc/home/fernandz/User-Tmp/ccrprayy.s
COMPILER_PATH=/hpc/work/fernandz/gnu/libexec/gcc/powerpc-ibm-aix5.3.0.0/4.4.1/:/hpc/work/fernandz/gnu/libexec/gcc/powerpc-ibm-aix5.3.0.0/4.4.1/:/hpc/work/fernandz/gnu/libexec/gcc/powerpc-ibm-aix5.3.0.0/:/hpc/work/fernandz/gnu/lib/gcc/powerpc-ibm-aix5.3.0.0/4.4.1/:/hpc/work/fernandz/gnu/lib/gcc/powerpc-ibm-aix5.3.0.0/
LIBRARY_PATH=/hpc/work/fernandz/gnu/lib/gcc/powerpc-ibm-aix5.3.0.0/4.4.1/:/hpc/work/fernandz/gnu/lib/gcc/powerpc-ibm-aix5.3.0.0/4.4.1/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-o' 'hello'
 /hpc/work/fernandz/gnu/libexec/gcc/powerpc-ibm-aix5.3.0.0/4.4.1/collect2
-bpT:0x1000 -bpD:0x2000 -btextro -bnodelcsect -o hello /lib/crt0.o
-L/hpc/work/fernandz/gnu/lib/gcc/powerpc-ibm-aix5.3.0.0/4.4.1
-L/hpc/work/fernandz/gnu/lib/gcc/powerpc-ibm-aix5.3.0.0/4.4.1/../../..
/hpc/home/fernandz/User-Tmp/ccwslsmj.o -lstdc++ -lsupc++ -lm
/hpc/work/fernandz/gnu/lib/gcc/powerpc-ibm-aix5.3.0.0/4.4.1/libgcc.a -lc
/hpc/work/fernandz/gnu/lib/gcc/powerpc-ibm-aix5.3.0.0/4.4.1/libgcc.a
collect2: library libstdc++ -lsupc++ not found


-- 
   Summary: g++ does not find lstdc++ on AIX
   Product: gcc
   Version: 4.4.1
Status: UNCONFIRMED
  Severity: blocker
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: efernandez at physiomics-plc dot com


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



[Bug fortran/31067] MINLOC should sometimes be inlined (gas_dyn is sooooo sloooow)

2009-07-27 Thread irar at il dot ibm dot com


--- Comment #34 from irar at il dot ibm dot com  2009-07-27 08:36 ---
(In reply to comment #33)
 Using the example from comment 23 with
...
 gfortran shows: test.f90:12: note: not vectorized: unsupported use in stmt.
 and needs 2.272s. (By comparison. 4.4 needs 3.688s.)

This is for the inner loop vectorization. For the outer loop we get:
tmp.f90:11: note: not vectorized: control flow in loop.
because of the if's. Maybe loop unswitching can help us. 
Vectorizable outer-loops look like this:

(pre-header)
   |
  header ---+
   | |
  inner-loop |
   | |
  tail --+
   |
(exit-bb)


Does ifort vectorize the exact same implemantion of minloc?

Ira


-- 


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



[Bug libfortran/40187] c_f_pointer with stride in SHAPE

2009-07-27 Thread tkoenig at gcc dot gnu dot org


--- Comment #10 from tkoenig at gcc dot gnu dot org  2009-07-27 09:11 
---
Closing (fixed).


-- 

tkoenig at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/40866] [4.5 Regression] ICE in create_tmp_var, at gimplify.c:504

2009-07-27 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2009-07-27 09:13 ---
Reducing.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.5.0


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



[Bug fortran/31067] MINLOC should sometimes be inlined (gas_dyn is sooooo sloooow)

2009-07-27 Thread burnus at gcc dot gnu dot org


--- Comment #35 from burnus at gcc dot gnu dot org  2009-07-27 09:18 ---
(In reply to comment #34)
 Does ifort vectorize the exact same implemantion of minloc?

I tried to convert the minloc implementation into Fortran loops - and the
result is at
http://users.physik.fu-berlin.de/~tburnus/tmp/vect-PR31067/maxloc2.f90

$ ifort -O3 -xHost -diag-enable all maxloc2.f90
maxloc2.f90(25): (col. 5) remark: LOOP WAS VECTORIZED.
[timing: 0m1.384s]

$ gfortran -O3 -ffast-math -march=native -ftree-vectorize
-ftree-vectorizer-verbose=5 maxloc2.f90
maxloc2.f90:1: note: vectorized 0 loops in function.
[timing: 0m2.212s]

In case it helps: I put the ifort assembler output at:
http://users.physik.fu-berlin.de/~tburnus/tmp/vect-PR31067/maxloc2.s


-- 


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



[Bug libfortran/40863] [4.5 Regression] Build failure in libgfortran

2009-07-27 Thread burnus at gcc dot gnu dot org


--- Comment #10 from burnus at gcc dot gnu dot org  2009-07-27 09:24 ---
Subject: Bug 40863

Author: burnus
Date: Mon Jul 27 09:24:41 2009
New Revision: 150107

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=150107
Log:
2009-07-27  Tobias Burnus  bur...@net-b.de

PR fortran/40863
* c99_functions.c: Define complex I, if not defined.
Create prototypes for C99 functions to silence warnings.
* gfortran.map: Add missing functions to GFORTRAN_C99_1.0
and new GFORTRAN_C99_1.1.


Modified:
trunk/libgfortran/ChangeLog
trunk/libgfortran/gfortran.map
trunk/libgfortran/intrinsics/c99_functions.c


-- 


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



[Bug libfortran/40863] [4.5 Regression] Build failure in libgfortran

2009-07-27 Thread burnus at gcc dot gnu dot org


--- Comment #11 from burnus at gcc dot gnu dot org  2009-07-27 09:27 ---
FIXED on the trunk (4.5). Thanks for the bug report and sorry for the breakage. 

Feel free to open a PR if build warnings show up in libgfortran. In principle,
there should be none. (I have forgotten why we cannot use -Werror.)


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug fortran/40851] problem with deallocation of pointers

2009-07-27 Thread burnus at gcc dot gnu dot org


--- Comment #3 from burnus at gcc dot gnu dot org  2009-07-27 09:32 ---
Subject: Bug 40851

Author: burnus
Date: Mon Jul 27 09:32:20 2009
New Revision: 150108

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=150108
Log:
2009-07-26  Tobias Burnus  bur...@net-b.de

PR fortran/40851
* resolve.c (resolve_symbol): Do not initialize pointer
* derived-types.
* trans-decl.c (init_intent_out_dt): Ditto.
(generate_local_decl): No need to set attr.referenced for DT pointers.

2009-07-26  Tobias Burnus  bur...@net-b.de

PR fortran/40851
* gfortran.dg/derived_init_3.f90: New test.


Added:
trunk/gcc/testsuite/gfortran.dg/derived_init_3.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/resolve.c
trunk/gcc/fortran/trans-decl.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug fortran/40851] [4.3/4.4] problem with deallocation of pointers

2009-07-27 Thread burnus at gcc dot gnu dot org


--- Comment #4 from burnus at gcc dot gnu dot org  2009-07-27 09:33 ---
Thanks for the report. FIXED on the trunk (4.5); I will soon backport it to
4.4/4.3.

(Workaround: Do not use INTENT for pointers [which is a Fortran 2003 feature].)


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

  GCC build triplet|4.5.0 v149701   |
   GCC host triplet|Linux x86. x86-64 and MAC OS|
   |X   |
 GCC target triplet|gfortran|
Summary|problem with deallocation of|[4.3/4.4] problem with
   |pointers|deallocation of pointers


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



[Bug libstdc++/40497] invalid std::next / std::prev declaration

2009-07-27 Thread paolo dot carlini at oracle dot com


--- Comment #21 from paolo dot carlini at oracle dot com  2009-07-27 09:34 
---
Thanks Jason. I'm tentatively recategorizing as libstdc++, then. In general,
I'm not at all sure what we should do about it, however, now that Concepts are
gone. I don't think we can hope to avoid, here and elsewhere, all the typical
problems caused by unconstrained templates. Certainly, having the two separate
overloads:

  templatetypename InputIterator, typename Distance
InputIterator next(InputIterator, Distance);

  templatetypename InputIterator
InputIterator next(InputIterator);

would lead to cleaner error messages in case of ambiguities, but I'm not sure
we can in general achieve much more than this.


-- 

paolo dot carlini at oracle dot com changed:

   What|Removed |Added

  Component|c++ |libstdc++


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



[Bug fortran/40853] I/O: Namelist read error

2009-07-27 Thread burnus at gcc dot gnu dot org


--- Comment #2 from burnus at gcc dot gnu dot org  2009-07-27 09:40 ---
Confirmed. Fails with gfortran 4.1 to 4.5 and is thus no regression, but it
works with ifort, g95, openf95, and NAG f95.


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||burnus at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Keywords||wrong-code
  Known to fail||4.1.3 4.2.1 4.3.3 4.4.1
   ||4.5.0
   Last reconfirmed|-00-00 00:00:00 |2009-07-27 09:40:04
   date||
Summary|Namelist read error |I/O: Namelist read error


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



[Bug fortran/40847] [4.3/4.4/4.5 Regression] segfault bogus warning

2009-07-27 Thread burnus at gcc dot gnu dot org


--- Comment #2 from burnus at gcc dot gnu dot org  2009-07-27 10:08 ---
The following looks wrong:

gfc_resolve_transfer (gfc_expr *f, gfc_expr *source ATTRIBUTE_UNUSED,
  gfc_expr *mold, gfc_expr *size)
[...]
  if (mold-ts.type == BT_CHARACTER  !mold-ts.cl-length
 !(mold-expr_type == EXPR_VARIABLE
  mold-symtree-n.sym-attr.dummy))
mold-ts.cl-length = gfc_int_expr (mold-value.character.length);

For the testcase:
  mold-ts.type == BT_CHARACTER
  mold-ts.cl-length == NULL
  mold-expr_type == EXPR_VARIABLE
  mold-symtree == NULL  (!)
and
  mold-value.character.length == 19532032


-- 


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



[Bug c++/40872] New: String not extracted for translation

2009-07-27 Thread goeran at uddeborg dot se
On line 9382 of gcc/cp/decl.c there is this code

error (funcdef_flag
   ? %qs defined in a non-class scope
   : %qs declared in a non-class scope, name);

Normally the first argument of error will be extracted for translation. 
Apparently the extractor is not smart enough to extract both branches of this
conditional expression, so only the first (defined) part is available for
translation.  The second version (declared) is not included.


-- 
   Summary: String not extracted for translation
   Product: gcc
   Version: 4.4.1
Status: UNCONFIRMED
  Severity: minor
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: goeran at uddeborg dot se


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



[Bug fortran/31067] MINLOC should sometimes be inlined (gas_dyn is sooooo sloooow)

2009-07-27 Thread jakub at gcc dot gnu dot org


--- Comment #36 from jakub at gcc dot gnu dot org  2009-07-27 11:02 ---
Here is the loop in C and vectorized by hand as well:
#include emmintrin.h

float arr[1024];

unsigned int
foo (unsigned int end)
{
  unsigned int pos = 1;
  unsigned int i;
  float limit = __FLT_MAX__;
  for (i = 0; i  end; i++)
if (arr[i]  limit)
  {
limit = arr[i];
pos = i + 1;
  }
  return pos;
}

unsigned int
bar (unsigned int end)
{
  __m128 pos = (__m128) _mm_set1_epi32 (1);
  __m128 limit = _mm_set1_ps (__FLT_MAX__);
  __m128i curi = _mm_set_epi32 (4, 3, 2, 1);
  __m128i inc = _mm_set1_epi32 (4);
  unsigned int i = 0;
  if (end  4)
{
  for (; i  end - 4; i += 4)
{
  __m128 val = _mm_loadu_ps (arr + i);
  __m128 mask = _mm_cmplt_ps (val, limit);
  limit = _mm_min_ps (limit, val);
  pos = _mm_andnot_ps (mask, pos);
  pos = _mm_or_ps (pos, _mm_and_ps (mask, (__m128) curi));
  curi = _mm_add_epi32 (curi, inc);
}
  /* Reduction.  */
  __m128 tmp1 = _mm_movehl_ps (limit, limit);
  __m128 tmp2 = _mm_movehl_ps (pos, pos);
  __m128 mask = _mm_cmplt_ps (tmp1, limit);
  limit = _mm_min_ps (tmp1, limit);
  tmp2 = _mm_and_ps (mask, tmp2);
  pos = _mm_or_ps (tmp2, _mm_andnot_ps (mask, pos));
  tmp1 = _mm_shuffle_ps (limit, limit, _MM_SHUFFLE (1, 1, 1, 1));
  tmp2 = _mm_shuffle_ps (pos, pos, _MM_SHUFFLE (1, 1, 1, 1));
  mask = _mm_cmplt_ps (tmp1, limit);
  limit = _mm_min_ps (tmp1, limit);
  tmp2 = _mm_and_ps (mask, tmp2);
  pos = _mm_or_ps (tmp2, _mm_andnot_ps (mask, pos));
}
  float limit_ = _mm_cvtss_f32 (limit);
  unsigned int pos_ = (unsigned int) _mm_cvtsi128_si32 ((__m128i) pos);
  for (; i  end; i++)
if (arr[i]  limit_)
  {
limit_ = arr[i];
pos_ = i + 1;
  }
  return pos_;
}

int
main (void)
{
  unsigned int k;
  arr[0] = -1;
  arr[2] = -3;
  arr[8] = -5;
  arr[9] = -6;
  if (foo (32) != bar (32))
__builtin_abort ();
  for (k = 10; k  32; k++)
{
  arr[k] = -k;
  if (foo (32) != bar (32))
__builtin_abort ();
}
  return 0;
}

Don't know how hard would be to vectorize this in the vectorizer, but clearly
icc manages to handle that.
The loop is:
bb 4:
  # pos_22 = PHI pos_1(7), 1(3)
  # i_23 = PHI i_15(7), 0(3)
  # limit_24 = PHI limit_4(7), 3.4028234663852885981170418348451692544e+38(3)
  limit_11 = arr[i_23];
  D.2700_12 = limit_11  limit_24;
  pos_1 = [cond_expr] D.2700_12 ? i_23 : pos_22;
  limit_4 = [cond_expr] D.2700_12 ? limit_11 : limit_24;
  i_15 = i_23 + 1;
  D.2703_9 = (long unsigned int) i_15;
  if (D.2703_9  end_10(D))
goto bb 7;
  else
goto bb 8;

bb 7:
  goto bb 4;
before vectorization.


-- 


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



[Bug fortran/31067] MINLOC should sometimes be inlined (gas_dyn is sooooo sloooow)

2009-07-27 Thread jakub at gcc dot gnu dot org


--- Comment #37 from jakub at gcc dot gnu dot org  2009-07-27 11:10 ---
Oh, and on 64-bit arches and float or 32-bit arches and double there is another
complication - the comparison has different mode size from the cond_expr for
pos.  For 32-bit pos and 64-bit double it could perhaps just do the computation
in 64-bit integers (vector of 2 (resp. 4 for avx)), for the other case it would
need to shuffle the max and compute the pos in 2 vectors, or e.g. the Fortran
FE could hand in the common case, emit a likely look for the case where array
size is smaller than 4GB, using 32-bit pos zero extended to 64-bits at the end.


-- 


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



[Bug c++/40872] String not extracted for translation

2009-07-27 Thread paolo dot carlini at oracle dot com


--- Comment #1 from paolo dot carlini at oracle dot com  2009-07-27 11:24 
---
I think this is a pervasive issue and we have at least another couple of PRs
about it in Bugzilla. Please check / commonize, thanks!


-- 


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



[Bug testsuite/40829] gcc.dg/vect/no-scevccp-noreassoc-outer-2.c can segv

2009-07-27 Thread simon_baldwin at yahoo dot com


--- Comment #1 from simon_baldwin at yahoo dot com  2009-07-27 12:08 ---
Committed revision 150109.


-- 

simon_baldwin at yahoo dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug bootstrap/39849] segfault for '__divtf3' during bootstrap and non-bootstrap install

2009-07-27 Thread dennis dot wassel at googlemail dot com


--- Comment #18 from dennis dot wassel at googlemail dot com  2009-07-27 
12:40 ---
It still happens in 4.4.1:

/localdata/install/gcc/objdir-gcc-4.4.1/./gcc/xgcc
-B/localdata/install/gcc/objdir-gcc-4.4.1/./gcc/
-B/localdata/i686-pc-linux-gnu/bin/ -B/localdata/i686-pc-linux-gnu/lib/
-isystem /localdata/i686-pc-linux-gnu/include -isystem
/localdata/i686-pc-linux-gnu/sys-include -g -O2 -O2  -g -O2 -DIN_GCC   -W -Wall
-Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wcast-qual
-Wold-style-definition  -isystem ./include  -fPIC -g -DHAVE_GTHR_DEFAULT
-DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED   -I. -I. -I../.././gcc
-I../../../gcc-4.4.1/libgcc -I../../../gcc-4.4.1/libgcc/.
-I../../../gcc-4.4.1/libgcc/../gcc -I../../../gcc-4.4.1/libgcc/../include
-I../../../gcc-4.4.1/libgcc/config/libbid -DENABLE_DECIMAL_BID_FORMAT
-DHAVE_CC_TLS -DUSE_TLS -Wno-missing-prototypes -Wno-type-limits -o divtf3.o
-MT divtf3.o -MD -MP -MF divtf3.dep -fexceptions -c
../../../gcc-4.4.1/libgcc/../gcc/config/soft-fp/divtf3.c -fvisibility=hidden
-DHIDE_EXPORTS
'
In function '__divtf3':
Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.
make[3]: *** [divtf3.o] Error 1
make[3]: Leaving directory
`/localdata/install/gcc/objdir-gcc-4.4.1/i686-pc-linux-gnu/libgcc'
make[2]: *** [all-stage1-target-libgcc] Error 2
make[2]: Leaving directory `/localdata/install/gcc/objdir-gcc-4.4.1'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/localdata/install/gcc/objdir-gcc-4.4.1'
make: *** [profiledbootstrap] Error 2


Host compiler:
$ gcc -v
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: ../gcc-4.3.3/configure --prefix=/localdata
--program-suffix=-4.3.3 --enable-languages=c,c++,fortran --with-gmp=/localdata
--with-mpfr=/localdata --enable-version-specific-runtime-libs
Thread model: posix
gcc version 4.3.3 (GCC)


Configured with:
$../gcc-4.4.1/configure --prefix=/localdata --with-gmp=/localdata
--with-mpfr=/localdata --with-ppl=/localdata --with-cloog=/localdata
--enable-version-specific-runtime-libs --program-suffix=-4.4.1
--enable-checking=release --with-system-zlib --enable-languages=c,c++,fortran
--with-arch=athlon64 --enable-__cxa_atexit

$make profiledbootstrap


gdb output (seems to be the same spot as before):
$gdb /localdata/install/gcc/objdir-gcc-4.4.1/./gcc/cc1
GNU gdb 6.8
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type show copying
and show warranty for details.
This GDB was configured as i686-pc-linux-gnu...
 -Wno-missing-prototypes -Wno-type-limits -version -fPIC -fexceptions
-fvisibility=hidden -o /tmp/ccJeES8y.s
Starting program: /localdata/install/gcc/objdir-gcc-4.4.1/gcc/cc1 -quiet -v -I.
-I. -I../.././gcc -I../../../gcc-4.4.1/libgcc -I../../../gcc-4.4.1/libgcc/.
-I../../../gcc-4.4.1/libgcc/../gcc -I../../../gcc-4.4.1/libgcc/../include
-I../../../gcc-4.4.1/libgcc/config/libbid -iprefix
/localdata/install/gcc/objdir-gcc-4.4.1/gcc/../lib/gcc/i686-pc-linux-gnu/4.4.1/
-isystem /localdata/install/gcc/objdir-gcc-4.4.1/./gcc/include -isystem
/localdata/install/gcc/objdir-gcc-4.4.1/./gcc/include-fixed -MD divtf3.d -MF
divtf3.dep -MP -MT divtf3.o -DIN_GCC -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2
-D__GCC_FLOAT_NOT_NEEDED -DENABLE_DECIMAL_BID_FORMAT -DHAVE_CC_TLS -DUSE_TLS
-DHIDE_EXPORTS -isystem /localdata/i686-pc-linux-gnu/include -isystem
/localdata/i686-pc-linux-gnu/sys-include -isystem ./include
../../../gcc-4.4.1/libgcc/../gcc/config/soft-fp/divtf3.c -quiet -dumpbase
divtf3.c -mtune=generic -march=athlon64 -auxbase-strip divtf3.o -g -g -g -O2
-O2 -O2 -W -Wall -Wwrite-strings -Wstrict-prototypes -Wcast-qual
-Wold-style-definition -Wno-missing-prototypes -Wno-type-limits -version -fPIC
-fexceptions -fvisibility=hidden -o /tmp/ccJeES8y.s
Failed to read a valid object file image from memory.
ignoring nonexistent directory /localdata/i686-pc-linux-gnu/include
ignoring nonexistent directory /localdata/i686-pc-linux-gnu/sys-include
ignoring nonexistent directory ./include
ignoring nonexistent directory
/localdata/install/gcc/objdir-gcc-4.4.1/gcc/../lib/gcc/i686-pc-linux-gnu/4.4.1/include
ignoring nonexistent directory
/localdata/install/gcc/objdir-gcc-4.4.1/gcc/../lib/gcc/i686-pc-linux-gnu/4.4.1/include-fixed
ignoring nonexistent directory
/localdata/install/gcc/objdir-gcc-4.4.1/gcc/../lib/gcc/i686-pc-linux-gnu/4.4.1/../../../../i686-pc-linux-gnu/include
ignoring nonexistent directory
/localdata/lib/gcc/i686-pc-linux-gnu/4.4.1/include
ignoring nonexistent directory
/localdata/lib/gcc/i686-pc-linux-gnu/4.4.1/include-fixed
ignoring nonexistent directory
/localdata/lib/gcc/i686-pc-linux-gnu/../../../i686-pc-linux-gnu/include
ignoring duplicate directory .
ignoring duplicate directory ../../../gcc-4.4.1/libgcc/.
#include 

[Bug fortran/31067] MINLOC should sometimes be inlined (gas_dyn is sooooo sloooow)

2009-07-27 Thread irar at il dot ibm dot com


--- Comment #38 from irar at il dot ibm dot com  2009-07-27 12:44 ---
I am not sure that that kind of computation can be generated automatically,
since in general the order of caclulation of cond_expr cannot be changed. 

However, the loop can be split:

  for (i = 0; i  end; i++)
if (arr[i]  limit)
  limit = arr[i];

  for (i = 0; i  end; i++)
if (arr[i] == limit)
  {
pos = i + 1;
break;
  }

making the first loop vectorizable (inner-most loop vectorization).

Ira


-- 


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



[Bug fortran/31067] MINLOC should sometimes be inlined (gas_dyn is sooooo sloooow)

2009-07-27 Thread burnus at gcc dot gnu dot org


--- Comment #39 from burnus at gcc dot gnu dot org  2009-07-27 13:15 ---
(In reply to comment #38)
 However, the loop can be split: [..]
 making the first loop vectorizable (inner-most loop vectorization).

OK. I tried it with a Fortran program:
http://users.physik.fu-berlin.de/~tburnus/tmp/vect-PR31067/maxloc.f90
http://users.physik.fu-berlin.de/~tburnus/tmp/vect-PR31067/maxloc2.f90
http://users.physik.fu-berlin.de/~tburnus/tmp/vect-PR31067/maxloc3.f90

maxloc.f90 is the program from comment 34  (maxloc.s = intel assembler)
maxloc2.f90 models what gfortran does for maxloc (maxloc.s = intel assembler)
maxloc3.f90 models what has a split loop

The splitting plus vectorization makes the calculation 5% faster - 0m2.152s
(maxloc3) vs 0m2.260s (maxloc2). Still, that's 35% more than ifort needs.

For some reason, maxloc2 with -fno-tree-vectorize takes only
0m1.840s.(Identical to intel's result for maxloc2/maxloc3. While for the
original maxloc.f90, there is no performance effect, and for maxloc3
vectorization makes it faster.)


-- 


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



[Bug fortran/40873] New: -fwhole-file -fwhole-program: Wrong decls cause too much to be optimized away

2009-07-27 Thread burnus at gcc dot gnu dot org
The option -fwhole-programs marks all functions in that file as local to that
file, which facilitates inlining and dead-code elimination.

That of cause assumes that all declarations are properly unified, which should
be the case with -fwhole-file. However, the following Polyhedron testcases fail
  ac, aermod, doduc, gas_dyn, linpk, mdbx, rnflow and test_fpu
at link time as too many functions have been elimated:

$ gfortran -fwhole-program -O1 linpk.f90
/tmp/ccWhxrXN.o: In function `MAIN__':
linpk.f90:(.text+0x759): undefined reference to `daxpy_'
linpk.f90:(.text+0x7c7): undefined reference to `daxpy_'


-- 
   Summary: -fwhole-file -fwhole-program: Wrong decls cause too much
to be optimized away
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Keywords: rejects-valid
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: burnus at gcc dot gnu dot org


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



[Bug testsuite/40459] g++.dg/abi/mangle*.C fail on darwin

2009-07-27 Thread howarth at nitro dot med dot uc dot edu


--- Comment #2 from howarth at nitro dot med dot uc dot edu  2009-07-27 
14:01 ---
Not having much luck regression testing this one. Revision 148492 and 148493
both fail to bootstrap on x86_64-apple-darwin.


-- 


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



[Bug debug/39706] namespaces represented incorrectly in debug_pubnames

2009-07-27 Thread dodji at gcc dot gnu dot org


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dodji at gcc dot gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2009-07-27 14:32:12
   date||


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



[Bug debug/39708] add a debug_privnames section

2009-07-27 Thread dodji at gcc dot gnu dot org


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dodji at gcc dot gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2009-07-27 14:32:42
   date||


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



[Bug debug/39705] enum constants don't appear in debug_pubnames

2009-07-27 Thread dodji at gcc dot gnu dot org


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dodji at gcc dot gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2009-07-27 14:36:15
   date||


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



[Bug fortran/40873] -fwhole-file -fwhole-program: Wrong decls cause too much to be optimized away

2009-07-27 Thread burnus at gcc dot gnu dot org


--- Comment #1 from burnus at gcc dot gnu dot org  2009-07-27 14:47 ---
(Note: -fwhole-program implies -fwhole-file; the -On option is required.)

Test case. Run with -O1 -fwhole-program.
Fails with: test.f90:(.text+0x1b): undefined reference to `three_'

  program prog
call one()
call two()
  end program prog
  subroutine one()
call three()
  end subroutine one
  subroutine two()
call three()
  end subroutine two
  subroutine three()
  end subroutine three


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||pault at gcc dot gnu dot org


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



[Bug fortran/31067] MINLOC should sometimes be inlined (gas_dyn is sooooo sloooow)

2009-07-27 Thread jakub at gcc dot gnu dot org


--- Comment #40 from jakub at gcc dot gnu dot org  2009-07-27 14:51 ---
If the cond_expr compute a minimum or maximum and the other cond_exprs compute
something based on the IV at the extremum, then I don't see why it couldn't be
vectorized by computing extremes of odd/even and corresponding values based on
the IV at those points, then merging them in the final step, and similarly for
bigger vectorization steps.


-- 


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



[Bug target/40783] inefficient code to accumulate function return values

2009-07-27 Thread ramana at gcc dot gnu dot org


--- Comment #2 from ramana at gcc dot gnu dot org  2009-07-27 15:05 ---
This seems to be related to the other reassoc + register pressure bugs reported
in the database. I am not sure if this is a dup of either PR28481 or PR27855
but they appear to be related.

With -fno-tree-reassoc I get the same code for both loops.

time_math:
push{r4, r5, r6, lr}
bl  dumm
mov r4, #0
mov r6, #99
add r5, r0, #0
.L2:
add r0, r5, #0
bl  __aeabi_f2iz
add r5, r5, #1
add r4, r4, r0
add r0, r5, #0
bl  __aeabi_f2iz
add r5, r5, #1
add r4, r4, r0
add r0, r5, #0
bl  __aeabi_f2iz
add r5, r5, #1
add r4, r4, r0
add r0, r5, #0
bl  __aeabi_f2iz
add r5, r5, #1
add r4, r4, r0
sub r6, r6, #1
bcs .L2
bl  dumm
mov r6, #99
add r5, r0, #0
.L3:
add r0, r5, #0
bl  MyConvert
add r5, r5, #1
add r4, r4, r0
add r0, r5, #0
bl  MyConvert
add r5, r5, #1
add r4, r4, r0
add r0, r5, #0
bl  MyConvert
add r5, r5, #1
add r4, r4, r0
add r0, r5, #0
bl  MyConvert
add r5, r5, #1
add r4, r4, r0
sub r6, r6, #1
bcs .L3
mov r0, r4
@ sp needed for prologue
pop {r4, r5, r6, pc}
.size   time_math, .-time_math
.ident  GCC: (GNU) 4.5.0 20090727 (experimental)


-- 

ramana at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||dberlin at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2009-07-27 15:05:21
   date||


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



[Bug c++/40874] New: Function object abstraction penalty

2009-07-27 Thread dave at boost-consulting dot com
The following program shows that wrapping a simple class around a function
pointer costs important optimizations.  If you change the #if 1 to #if 0,
you'll see that the call is completely optimized away.  

#if 1
struct pf
{
  inline pf(int(*x)(int)) : x(x) {}

  inline int operator()(int a) const
  {
return x(a);
  }

  int (*x)(int);
};
#else
typedef int(*pf)(int);
#endif

inline int g(int x) { return x/x - 1; }

int main(int argc, char* argv[])
{
  pf f(g);
  return f(3);
}


-- 
   Summary: Function object abstraction penalty
   Product: gcc
   Version: 4.4.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dave at boost-consulting dot com


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



[Bug tree-optimization/39355] [4.4/4.5 Regression] Revision 144529: ICE due to missing or incorrectly relocated DECL_VALUE_EXPR in PCH header for PARM_DECL

2009-07-27 Thread danglin at gcc dot gnu dot org


--- Comment #51 from danglin at gcc dot gnu dot org  2009-07-27 15:10 
---
Doesn't occur if  I configure with --disable-libstdcxx-pch.

This problem also causes the following fails (4.4.2):

FAIL: 26_numerics/complex/pow.cc (test for excess errors)
FAIL: tr1/8_c_compatibility/complex/overloads_float.cc (test for excess errors)
FAIL: tr1/8_c_compatibility/complex/overloads_int.cc (test for excess errors)


-- 


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



[Bug java/40731] Failure to bootstrap GCJ 4.4.0

2009-07-27 Thread ludo at gnu dot org


--- Comment #2 from ludo at gnu dot org  2009-07-27 15:25 ---
All this was due to our build script building the `configure-gcc' target early
on, which apparently confused the build process.  Sigh.

This bug can be closed now.

Sorry for the noise.

Ludo'.


-- 

ludo at gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug tree-optimization/40874] Function object abstraction penalty

2009-07-27 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2009-07-27 15:36 ---
So one problem is that nothing after SRA (before inlining) constant props g
into the call expression.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||pinskia at gcc dot gnu dot
   ||org
   Severity|normal  |enhancement
 Status|UNCONFIRMED |NEW
  Component|c++ |tree-optimization
 Ever Confirmed|0   |1
   Keywords||missed-optimization
   Last reconfirmed|-00-00 00:00:00 |2009-07-27 15:36:36
   date||


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



[Bug translation/32637] Swedish translation error

2009-07-27 Thread goeran at uddeborg dot se


--- Comment #3 from goeran at uddeborg dot se  2009-07-27 15:41 ---
(In reply to comment #2)
 Translation fixes goto the translation team which is not part of the GCC team
 really.

Indeed.  In this case that would be tp...@listor.tp-sv.se.

But fortunately, I happened to stumble on this bug report today, and I will fix
it in the next translation.


-- 

goeran at uddeborg dot se changed:

   What|Removed |Added

 CC||goeran at uddeborg dot se


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



[Bug tree-optimization/40874] Function object abstraction penalty with inline functions.

2009-07-27 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2009-07-27 15:45 ---
(In reply to comment #1)
 So one problem is that nothing after SRA (before inlining) constant props g
 into the call expression.

So there is no abstraction penalty really just a missing inlining.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

Summary|Function object abstraction |Function object abstraction
   |penalty |penalty with inline
   ||functions.


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



[Bug fortran/40875] New: ICE with illegal type conversion

2009-07-27 Thread michael dot a dot richmond at nasa dot gov
When I compile the module listed below with gfortran 4.5 I get the message:

f951: internal compiler error: in gfc_set_constant_character_len, at
fortran/decl.c:1112
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

gfortran 4.2, 4.3, and 4.4 produce similar messages. g95 produces the message:

In file crash.f90:6

  CHARACTER, PARAMETER :: the_beta = (/one_parameter('c')/)
   1
Error: Can't convert TYPE(one_parameter) to CHARACTER(1) at (1)

MODULE cdf_aux_mod
  PUBLIC
  TYPE :: one_parameter
CHARACTER :: name
  END TYPE one_parameter
  CHARACTER, PARAMETER :: the_beta = (/one_parameter('c')/)
END MODULE cdf_aux_mod


-- 
   Summary: ICE with illegal type conversion
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: michael dot a dot richmond at nasa dot gov


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



[Bug c++/40872] String not extracted for translation

2009-07-27 Thread goeran at uddeborg dot se


--- Comment #2 from goeran at uddeborg dot se  2009-07-27 16:00 ---
(In reply to comment #1)
 I think this is a pervasive issue and we have at least another couple of PRs
 about it in Bugzilla. Please check / commonize, thanks!

I'm not sure exactly what you mean with this.  This particular error message,
calls of error() where the first argument is a conditional expression, or
problems with translating GCC in general.

I tried to look for more similar cases.  But I couldn't find anything.  Not
that it is all that easy to search for.  Neither error nor ? are
particularly good search terms. :-)  So I may very well have missed something.

Previously, I have reported a couple of instances where things can't be
properly translated.  But that has mostly been cases where the code needs a
small rewrite.  I'm not sure how to commonize those; they typically have to
be handled case-by-case.


-- 


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



[Bug tree-optimization/40874] Function object abstraction penalty with inline functions.

2009-07-27 Thread dave at boost-consulting dot com


--- Comment #3 from dave at boost-consulting dot com  2009-07-27 16:26 
---
The missing inlining is the cause, abstraction penalty is the symptom.


-- 


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



[Bug translation/40872] String not extracted for translation

2009-07-27 Thread manu at gcc dot gnu dot org


--- Comment #3 from manu at gcc dot gnu dot org  2009-07-27 16:55 ---
(In reply to comment #2)
 I tried to look for more similar cases.  But I couldn't find anything.  Not
 that it is all that easy to search for.  Neither error nor ? are
 particularly good search terms. :-)  So I may very well have missed something.

Try grep -e ' error ([^]' gcc/*.c -A 1

I am sure you can come up with smart regexp for warning, warning_at, error_at,
inform and the other diagnostic functions.

 Previously, I have reported a couple of instances where things can't be
 properly translated.  But that has mostly been cases where the code needs a
 small rewrite.  I'm not sure how to commonize those; they typically have to
 be handled case-by-case.

In this case, the string just have to be surrounded by G_() so:

 error (funcdef_flag
   ? G_(%qs defined in a non-class scope)
   : G_(%qs declared in a non-class scope), name);

Care to contribute a patch for this and other cases?

Thanks,

Manuel.


-- 

manu at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||manu at gcc dot gnu dot org
 Status|UNCONFIRMED |NEW
  Component|c++ |translation
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2009-07-27 16:55:08
   date||


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



[Bug translation/40872] String not extracted for translation

2009-07-27 Thread goeran at uddeborg dot se


--- Comment #4 from goeran at uddeborg dot se  2009-07-27 17:01 ---
(In reply to comment #3)
 Try grep -e ' error ([^]' gcc/*.c -A 1

Ah, ok.  I tried to search for similar BUGZILLA reports.  Not for similar cases
in the code.

But sure, I can search the code instead.  BRB


-- 


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



[Bug translation/40872] String not extracted for translation

2009-07-27 Thread manu at gcc dot gnu dot org


--- Comment #5 from manu at gcc dot gnu dot org  2009-07-27 17:08 ---
(In reply to comment #4)
 (In reply to comment #3)
  Try grep -e ' error ([^]' gcc/*.c -A 1
 
 Ah, ok.  I tried to search for similar BUGZILLA reports.  Not for similar 
 cases
 in the code.

Sorry, I didn't understand that was what you wanted. If you want to search in
bugzilla, translated OR translation is probably what you want.

 But sure, I can search the code instead.  BRB

I don't want you to show me something that anyone can get (up-to-date) whenever
one wants. I provided the information just in case you (or someone) wants to
find (and fix) the code.

Thanks.


-- 


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



[Bug translation/40872] String not extracted for translation

2009-07-27 Thread goeran at uddeborg dot se


--- Comment #6 from goeran at uddeborg dot se  2009-07-27 17:11 ---
(In reply to comment #5)
 Sorry, I didn't understand that was what you wanted.

What I WANTED was to do what Paolo Carlini asked about in comment 1.  I'm not
sure if I understood him correctly either.


-- 


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



[Bug fortran/40876] New: OpenMP private variable referenced in a statement function

2009-07-27 Thread longb at cray dot com
Beginning with the OpenMP API Version 2.5, this case should fail at
compile-time.  The gfortran compiler does not reject this case, but gets a
segmentation fault at run-time.

The OpenMP API Version 3.0 (May 2008) lists the following restriction to a
private clause on p 91. lines 29-30:

 * Variables that appear in ... expressions for statement function
definitions, may not appear in a private clause.

Test case:

 cat ISU3136.f90
! derived from OpenMP test omp1/F2_6_2_1_2a.f90
! According to OpenMP API Ver 2.5 May 2005 p. 75 lines 19/20
! this is a negative test that should fail at compile-time.
  use omp_lib
  implicit none
  integer, parameter :: NT = 4
  integer :: nThreads(NT)
  integer :: a, st_func, i
  st_func() = a + 1

!$call omp_set_dynamic(.false.)
!$call omp_set_num_threads(NT)

!$omp parallel private(a)
  a = omp_get_thread_num()
!$omp barrier
  nThreads(omp_get_thread_num()+1) = st_func()
!$omp end parallel

  do i = 1, NT
  if(nThreads(i) /= i) then
  print*, 'FAIL: non-private copy is used in a statement function.'
  endif
  enddo

  END

 ftn -o x -fopenmp ISU3136.f90
 aprun -n 1 ./x
Application 1190869 exit signals: Segmentation fault
Application 1190869 resources: utime 0, stime 0

Expected output (using the Cray compiler) with a compile-time message:

 module swap PrgEnv-gnu PrgEnv-cray
 ftn -o x -h omp ISU3136.f90

!$omp parallel private(a)
   ^  
ftn-1760 crayftn: ERROR $MAIN, File = ISU3136.f90, Line = 14, Column = 24 
  A is referenced in a statement function expression, so it must not be
specified in the PRIVATE, FIRSTPRIVATE or LASTPRIVATE clause.


-- 
   Summary: OpenMP private variable referenced in a statement
function
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: longb at cray dot com
 GCC build triplet: x86_64-suse-linux
  GCC host triplet: x86_64-suse-linux
GCC target triplet: x86_64-suse-linux


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



[Bug translation/40872] String not extracted for translation

2009-07-27 Thread paolo dot carlini at oracle dot com


--- Comment #7 from paolo dot carlini at oracle dot com  2009-07-27 17:53 
---
never mind, you are just lazy, then say it more explicitly.


-- 


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



[Bug tree-optimization/40874] Function object abstraction penalty with inline functions.

2009-07-27 Thread paolo dot carlini at oracle dot com


--- Comment #4 from paolo dot carlini at oracle dot com  2009-07-27 17:57 
---
I would say let's add Martin (and Honza) in CC, he did a lot of improvements
for similar issues (which I pointed out a lot of time ago to Honza).


-- 

paolo dot carlini at oracle dot com changed:

   What|Removed |Added

 CC||hubicka at ucw dot cz,
   ||jamborm at gcc dot gnu dot
   ||org


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



[Bug translation/40872] String not extracted for translation

2009-07-27 Thread paolo dot carlini at oracle dot com


--- Comment #8 from paolo dot carlini at oracle dot com  2009-07-27 18:04 
---
Sorry about some harshness on my part, but in my opinion we should really have
a single PR about this issue and PR34836, PR29917, PR29017, and maybe a few
more...


-- 


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



[Bug translation/40872] String not extracted for translation

2009-07-27 Thread manu at gcc dot gnu dot org


--- Comment #9 from manu at gcc dot gnu dot org  2009-07-27 18:06 ---
I am not going to work on this. Unsubscribing.


-- 


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



[Bug translation/40872] String not extracted for translation

2009-07-27 Thread goeran at uddeborg dot se


--- Comment #10 from goeran at uddeborg dot se  2009-07-27 18:22 ---
(In reply to comment #8)
 ... but in my opinion we should really have
 a single PR about this issue and PR34836, PR29917, PR29017

Then I did misunderstand you.

These are examples of what meant needed to be handled on a case-by-case basis. 
If I was to handle this, I would definitely NOT wanted to have them merged.  In
my view one problem per report is much better than bundling a lot of bugs
together.

So I didn't think you meant reports like that.  But this is your project, not
mine, and you manage it any way you want.  If you want a list of bugzillas
about translation issues in general, you could start with all bugs I have
submitted (including the ones you mentioned above):

http://gcc.gnu.org/bugzilla/buglist.cgi?query_format=advancedbug_status=UNCONFIRMEDbug_status=NEWbug_status=ASSIGNEDbug_status=SUSPENDEDbug_status=WAITINGbug_status=REOPENEDemailreporter1=1emailtype1=exactemail1=goeran%40uddeborg.se


-- 


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



[Bug fortran/40848] [4.5 Regression] ICE with alternate returns

2009-07-27 Thread janus at gcc dot gnu dot org


--- Comment #3 from janus at gcc dot gnu dot org  2009-07-27 18:26 ---
Subject: Bug 40848

Author: janus
Date: Mon Jul 27 18:26:34 2009
New Revision: 150134

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=150134
Log:
2009-07-27  Janus Weil  ja...@gcc.gnu.org

PR fortran/40848
* interface.c (gfc_compare_interfaces): Call 'count_types_test' before
'generic_correspondence', and only if checking a generic interface.


2009-07-27  Janus Weil  ja...@gcc.gnu.org

PR fortran/40848
* gfortran.dg/altreturn_7.f90: New.


Added:
trunk/gcc/testsuite/gfortran.dg/altreturn_7.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/interface.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug translation/40872] String not extracted for translation

2009-07-27 Thread paolo dot carlini at oracle dot com


--- Comment #11 from paolo dot carlini at oracle dot com  2009-07-27 18:27 
---
Yes, in similar cases either we have a single PR or at least we have a dummy
Bugzilla PR bundling together related issues as blocking it. You can find many
examples.


-- 


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



[Bug c++/35535] stl_vector.h Compilation error

2009-07-27 Thread paolo dot carlini at oracle dot com


--- Comment #4 from paolo dot carlini at oracle dot com  2009-07-27 18:30 
---
preprocessed source not forthcoming


-- 

paolo dot carlini at oracle dot com changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||INVALID


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



[Bug translation/40872] String not extracted for translation

2009-07-27 Thread paolo dot carlini at oracle dot com


--- Comment #12 from paolo dot carlini at oracle dot com  2009-07-27 18:40 
---
Such dummy PRs have the summary starting with [Meta] and all the related
issues it groups are listed in the field depends on (sorry I confused
depends/blocks in my previous message).


-- 


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



[Bug libgcj/40867] [4.5 Regression] FAIL: StackTrace2 output - source compiled test

2009-07-27 Thread hjl dot tools at gmail dot com


--- Comment #1 from hjl dot tools at gmail dot com  2009-07-27 19:07 ---
I also see it on Linux/x86. It is an known issue:

http://gcc.gnu.org/ml/gcc-patches/2009-07/msg00266.html


-- 

hjl dot tools at gmail dot com changed:

   What|Removed |Added

 CC||hjl dot tools at gmail dot
   ||com, rguenth at gcc dot gnu
   ||dot org, aph at redhat dot
   ||com
  GCC build triplet|hppa*-*-* (32 bit)  |
   GCC host triplet|hppa*-*-* (32 bit)  |
 GCC target triplet|hppa*-*-* (32 bit)  |


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



[Bug fortran/40877] New: memory leaks with gfc_charlen?

2009-07-27 Thread janus at gcc dot gnu dot org
This PR is a reminder to check some places where a new gfc_charlen is allocated
without properly setting it into a namelist (ns-cl_list). Each of them may
potentially produce a memory leak (though I'm not completely sure):

 * expr.c (simplify_const_ref)
 * symbol.c (gfc_set_default_type, generate_isocbinding_symbol)
 * trans-decl.c (create_function_arglist)

I noticed them while working on PR40822, where I also introduced the function
gfc_new_charlen, which should be used instead of gfc_get_charlen to avoid
memory leaks.


-- 
   Summary: memory leaks with gfc_charlen?
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: janus at gcc dot gnu dot org


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



[Bug translation/40872] String not extracted for translation

2009-07-27 Thread goeran at uddeborg dot se


--- Comment #13 from goeran at uddeborg dot se  2009-07-27 19:27 ---
If I can give any useful help, I'm certainly willing to do so.  I'll search for
bugs to add to a meta-bug if you wish.  What would the criteria for inclusion
be?  Just anything having to do with translation?  Anything with code that
needs to be changed for translation, thus excluding translation errors as such?
 Or do you mean a grouping of bugs where the code changes are similar in some
way?

This meta bug would stay open forever, I assume.  New errors of this kind turn
up in approximately the same rate old are fixed.  But that is ok then?


-- 


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



[Bug fortran/40878] New: !$omp collapse(m) with non-constant m should give error

2009-07-27 Thread longb at cray dot com
These test cases illustrate that gfortran ignores the COLLAPSE(M) clause on
an !$OMP DO when the value given is not a constant (or declared as a variable
having the parameter attribute.  Other compilers supporting OpenMP API 3.0 
raise an error when the primary test case is compiled.

The expected output should be an error similar to that raised by either the
Intel or PGI compilers.

 cat ISU3102.f90
! collapse not having a constant value 
  program test
  use omp_lib
  implicit none
  integer :: j,k
  integer :: m = 2
! integer,parameter :: m = 2
!$omp parallel num_threads(2) private(j,k)
!$omp do collapse(m) schedule (static,1)
  do k = 1,2
do j = 1,6
  print *, k, j, omp_get_thread_num()
enddo
  enddo
!$omp end do
!$omp end parallel
  end

 diff ISU3102.f90 ISU3102p.f90
6,7c6,7
   integer :: m = 2
 ! integer,parameter :: m = 2
---
 ! integer :: m = 2
   integer,parameter :: m = 2

 diff ISU3102.f90 ISU3102noc.f90
9c9
 !$omp do collapse(m) schedule (static,1)
---
 !$omp do schedule (static,1)

BAD - The collapse clause is ignored rather than having an error detected:

 setenv OMP_NUM_THREADS 2
 gfortran -o x -fopenmp ISU3102.f90
 ./x | sort
   1   1   0
   1   2   0
   1   3   0
   1   4   0
   1   5   0
   1   6   0
   2   1   1
   2   2   1
   2   3   1
   2   4   1
   2   5   1
   2   6   1

Expected output when value m has parameter attribute (constant):

 gfortran -o xp -fopenmp ISU3102p.f90
 ./xp | sort
   1   1   0
   1   2   1
   1   3   0
   1   4   1
   1   5   0
   1   6   1
   2   1   0
   2   2   1
   2   3   0
   2   4   1
   2   5   0
   2   6   1

Output when no collapse clause is present:

 ./xnoc | sort
   1   1   0
   1   2   0
   1   3   0
   1   4   0
   1   5   0
   1   6   0
   2   1   1
   2   2   1
   2   3   1
   2   4   1
   2   5   1
   2   6   1

Ifort (intel) raises an error:

 ifort -openmp -o ix ISU3102.f90 -liomp5
ISU3102.f90(9): error #8167: COLLAPSE operand must be an integer expression
!$omp do collapse(m) schedule (static,1)
-^
compilation aborted for ISU3102.f90 (code 1)

PGI raises an error:

 pgf90 -mp -o px ISU3102.f90
PGF90-S-0155-The COLLAPSE expression must be a positive integer constant 
(ISU3102.f90: 9)
  0 inform,   0 warnings,   1 severes, 0 fatal for test


ifort (intel) o.k. with a value that is a parameter:

 ifort -openmp -o ixp ISU3102p.f90 -liomp5 
ISU3102p.f90(9): (col. 7) remark: OpenMP DEFINED LOOP WAS PARALLELIZED.
ISU3102p.f90(8): (col. 7) remark: OpenMP DEFINED REGION WAS PARALLELIZED.

PGI o.k. with a value that is a parameter:

 pgf90 -mp -o pxp ISU3102p.f90


-- 
   Summary: !$omp collapse(m) with non-constant m should give error
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: longb at cray dot com
 GCC build triplet: x86_64-suse-linux
  GCC host triplet: x86_64-suse-linux
GCC target triplet: x86_64-suse-linux


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



[Bug c/40879] New: stdarg.h does not define va_copy when building for C89+POSIX

2009-07-27 Thread bmerry at gmail dot com
POSIX 2001 specifies that va_copy
(http://www.opengroup.org/onlinepubs/009695399/functions/va_copy.html) is
defined by stdarg.h. However, when compiling with -std=c89
-D_POSIX_C_SOURCE=200112L this does not happen. I've encountered this in 4.3.2,
but a quick peek in svn makes it look this this is current.

I'll attach the source and preprocessed output.

Command line:
gcc -std=c89 -D_POSIX_C_SOURCE=200112L -Wall -c no_va_copy.c -save-temps
no_va_copy.c: In function ‘copy_va_list’:
no_va_copy.c:8: warning: implicit declaration of function ‘va_copy’

gcc -v:
Using built-in specs.
Target: x86_64-pc-linux-gnu
Configured with:
/var/tmp/portage/sys-devel/gcc-4.3.2-r3/work/gcc-4.3.2/configure --prefix=/usr
--bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/4.3.2
--includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.2/include
--datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.3.2
--mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.3.2/man
--infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.3.2/info
--with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.2/include/g++-v4
--host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --disable-altivec
--disable-fixed-point --enable-nls --without-included-gettext
--with-system-zlib --disable-checking --disable-werror --enable-secureplt
--enable-multilib --enable-libmudflap --disable-libssp --enable-libgomp
--disable-libgcj --enable-languages=c,c++,treelang,fortran --enable-shared
--enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu
--with-bugurl=http://bugs.gentoo.org/ --with-pkgversion='Gentoo 4.3.2-r3 p1.6,
pie-10.1.5'
Thread model: posix
gcc version 4.3.2 (Gentoo 4.3.2-r3 p1.6, pie-10.1.5)


-- 
   Summary: stdarg.h does not define va_copy when building for
C89+POSIX
   Product: gcc
   Version: 4.3.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: bmerry at gmail dot com
 GCC build triplet: x86_64-pc-linux-gnu
  GCC host triplet: x86_64-pc-linux-gnu
GCC target triplet: x86_64-pc-linux-gnu


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



[Bug c/40880] New: stdarg.h does not define va_copy when building for C89+POSIX

2009-07-27 Thread bmerry at gmail dot com
POSIX 2001 specifies that va_copy
(http://www.opengroup.org/onlinepubs/009695399/functions/va_copy.html) is
defined by stdarg.h. However, when compiling with -std=c89
-D_POSIX_C_SOURCE=200112L this does not happen. I've encountered this in 4.3.2,
but a quick peek in svn makes it look this this is current.

I'll attach the source and preprocessed output.

Command line:
gcc -std=c89 -D_POSIX_C_SOURCE=200112L -Wall -c no_va_copy.c -save-temps
no_va_copy.c: In function ‘copy_va_list’:
no_va_copy.c:8: warning: implicit declaration of function ‘va_copy’

gcc -v:
Using built-in specs.
Target: x86_64-pc-linux-gnu
Configured with:
/var/tmp/portage/sys-devel/gcc-4.3.2-r3/work/gcc-4.3.2/configure --prefix=/usr
--bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/4.3.2
--includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.2/include
--datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.3.2
--mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.3.2/man
--infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.3.2/info
--with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.2/include/g++-v4
--host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --disable-altivec
--disable-fixed-point --enable-nls --without-included-gettext
--with-system-zlib --disable-checking --disable-werror --enable-secureplt
--enable-multilib --enable-libmudflap --disable-libssp --enable-libgomp
--disable-libgcj --enable-languages=c,c++,treelang,fortran --enable-shared
--enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu
--with-bugurl=http://bugs.gentoo.org/ --with-pkgversion='Gentoo 4.3.2-r3 p1.6,
pie-10.1.5'
Thread model: posix
gcc version 4.3.2 (Gentoo 4.3.2-r3 p1.6, pie-10.1.5)


-- 
   Summary: stdarg.h does not define va_copy when building for
C89+POSIX
   Product: gcc
   Version: 4.3.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: bmerry at gmail dot com
 GCC build triplet: x86_64-pc-linux-gnu
  GCC host triplet: x86_64-pc-linux-gnu
GCC target triplet: x86_64-pc-linux-gnu


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



[Bug c/40880] stdarg.h does not define va_copy when building for C89+POSIX

2009-07-27 Thread bmerry at gmail dot com


--- Comment #1 from bmerry at gmail dot com  2009-07-27 19:46 ---
Created an attachment (id=18258)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18258action=view)
Source file illustrating the problem


-- 


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



[Bug c/40880] stdarg.h does not define va_copy when building for C89+POSIX

2009-07-27 Thread bmerry at gmail dot com


--- Comment #2 from bmerry at gmail dot com  2009-07-27 19:47 ---
Created an attachment (id=18259)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18259action=view)
Preprocessed file


-- 


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



[Bug c/40879] stdarg.h does not define va_copy when building for C89+POSIX

2009-07-27 Thread bmerry at gmail dot com


--- Comment #1 from bmerry at gmail dot com  2009-07-27 19:48 ---
System threw an HTTP error 500 but managed to create a bug, so now there are
two copies. Rejecting this one, bug 40880 is the real one.


-- 

bmerry at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug c/40879] stdarg.h does not define va_copy when building for C89+POSIX

2009-07-27 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2009-07-27 19:48 ---


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

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


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Resolution|INVALID |DUPLICATE


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



[Bug c/40880] stdarg.h does not define va_copy when building for C89+POSIX

2009-07-27 Thread pinskia at gcc dot gnu dot org


--- Comment #3 from pinskia at gcc dot gnu dot org  2009-07-27 19:48 ---
*** Bug 40879 has been marked as a duplicate of this bug. ***


-- 


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



[Bug translation/40872] String not extracted for translation

2009-07-27 Thread paolo dot carlini at oracle dot com


--- Comment #14 from paolo dot carlini at oracle dot com  2009-07-27 19:50 
---
First, thanks for your help. I went quickly through your own bugs, and indeed,
I don't think they could reasonably all belong to the same meta-bug. However, I
think a meta-bug is definitely in order grouping together all the bugs (maybe
not just yours) having to do with translation problems due to trivial issues
like use of conditionals, passing around and pasting C strings, etc.


-- 


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



[Bug fortran/40881] New: warn for obsolescent features

2009-07-27 Thread janus at gcc dot gnu dot org
gfortran should have a flag (-Wobsolescent or similar) to turn on warnings
about obsolescent features. These features are listed in chapter B.2 in the
Fortran standard. They are not forbidden by the standard, but are redundant and
can be replaced by newer and better features.

The standard also notes the possibility that they may be removed in the future.
Therefore gfortran should discourage their usage, just like the standard does.

Obsolescent features in Fortran 2003 are:

   (1) Arithmetic IF
   (2) Shared DO termination and termination
   on a statement other than END DO or CONTINUE
   (3) Alternate return
   (4) Computed GO TO statement
   (5) Statement functions
   (6) DATA statements amongst executable statements
   (7) Assumed length character functions
   (8) Fixed form source
   (9) CHARACTER* form of CHARACTER declaration


The -Wobsolescent flag does not have to go into -Wall (maybe -Wextra?)


-- 
   Summary: warn for obsolescent features
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: janus at gcc dot gnu dot org


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



[Bug fortran/40882] New: [F03] infinite recursion in gfc_get_derived_type with PPC returning derived type

2009-07-27 Thread janus at gcc dot gnu dot org
The following test program induces an infinite recursion in
gfc_get_derived_type:


implicit none

type :: t
  real :: data
  procedure(foo), pointer, nopass :: ppc
end type

type(t) :: o,o2

o%ppc = foo

o2 = o%ppc()

contains

  function foo()
type(t) :: foo
foo%data = 5.
foo%ppc = NULL()
  end function

end


-- 
   Summary: [F03] infinite recursion in gfc_get_derived_type with
PPC returning derived type
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Keywords: ice-on-valid-code
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: janus at gcc dot gnu dot org


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



[Bug translation/40883] New: [meta-bug] Translation breakage with trivial fixes

2009-07-27 Thread goeran at uddeborg dot se
Meta bug to collect cases where proper translation isn't possible, but where it
would be, with fairly trivial modifications of the source code.  This was
requested in the discussion of bug 40872.


-- 
   Summary: [meta-bug] Translation breakage with trivial fixes
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: translation
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: goeran at uddeborg dot se


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



[Bug translation/40872] String not extracted for translation

2009-07-27 Thread goeran at uddeborg dot se


--- Comment #15 from goeran at uddeborg dot se  2009-07-27 20:43 ---
Bug 40872 created as a tracker bug, with almost all my own bugs, and a few
others that also seemed to qualify as trivial.  I excluded bugs that referred
to errors in the actual translations (l10n rather than i18n).  (While probably
trivial, they should have been reported to the respective team instead.)


-- 


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



[Bug debug/39706] namespaces represented incorrectly in debug_pubnames

2009-07-27 Thread dodji at redhat dot com


--- Comment #1 from dodji at gcc dot gnu dot org  2009-07-27 20:43 ---
Subject: Re:   New: namespaces represented incorrectly in
 debug_pubnames

I am regression testing this patchlet that seems to fix the problem in
trunk ...


--- Comment #2 from dodji at gcc dot gnu dot org  2009-07-27 20:43 ---
Created an attachment (id=18260)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18260action=view)


-- 


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



[Bug translation/40883] [meta-bug] Translation breakage with trivial fixes

2009-07-27 Thread jsm28 at gcc dot gnu dot org


-- 

jsm28 at gcc dot gnu dot org changed:

   What|Removed |Added

  BugsThisDependsOn||34836
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2009-07-27 20:56:05
   date||


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



[Bug c/40880] stdarg.h does not define va_copy when building for C89+POSIX

2009-07-27 Thread joseph at codesourcery dot com


--- Comment #4 from joseph at codesourcery dot com  2009-07-27 21:02 ---
Subject: Re:   New: stdarg.h does not define va_copy when building
 for C89+POSIX

On Mon, 27 Jul 2009, bmerry at gmail dot com wrote:

 POSIX 2001 specifies that va_copy
 (http://www.opengroup.org/onlinepubs/009695399/functions/va_copy.html) is
 defined by stdarg.h. However, when compiling with -std=c89
 -D_POSIX_C_SOURCE=200112L this does not happen. I've encountered this in 
 4.3.2,
 but a quick peek in svn makes it look this this is current.

POSIX 2001 is based on C99 and does not have any C89 language bindings, so 
it is not meaningful to say it imposes any requirements when not building 
in C99 mode.


-- 


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



[Bug fortran/40882] [F03] infinite recursion in gfc_get_derived_type with PPC returning derived type

2009-07-27 Thread janus at gcc dot gnu dot org


--- Comment #1 from janus at gcc dot gnu dot org  2009-07-27 21:05 ---
Here is a preliminary patch which makes the test case compile:

Index: gcc/fortran/trans-types.c
===
--- gcc/fortran/trans-types.c   (revision 150133)
+++ gcc/fortran/trans-types.c   (working copy)
@@ -1894,7 +1894,12 @@ gfc_get_ppc_type (gfc_component* c)
 {
   tree t;
   if (c-attr.function  !c-attr.dimension)
-t = gfc_typenode_for_spec (c-ts);
+{
+  if (c-ts.type == BT_DERIVED)
+   t = c-ts.derived-backend_decl;
+  else
+   t = gfc_typenode_for_spec (c-ts);
+}
   else
 t = void_type_node;
   /* TODO: Build argument list.  */
@@ -1974,7 +1979,8 @@ gfc_get_derived_type (gfc_symbol * deriv
   if (c-ts.type != BT_DERIVED)
continue;

-  if (!c-attr.pointer || c-ts.derived-backend_decl == NULL)
+  if ((!c-attr.pointer  !c-attr.proc_pointer)
+ || c-ts.derived-backend_decl == NULL)
c-ts.derived-backend_decl = gfc_get_derived_type (c-ts.derived);

   if (c-ts.derived  c-ts.derived-attr.is_iso_c)
@@ -2003,10 +2009,10 @@ gfc_get_derived_type (gfc_symbol * deriv
   fieldlist = NULL_TREE;
   for (c = derived-components; c; c = c-next)
 {
-  if (c-ts.type == BT_DERIVED)
-field_type = c-ts.derived-backend_decl;
-  else if (c-attr.proc_pointer)
+  if (c-attr.proc_pointer)
field_type = gfc_get_ppc_type (c);
+  else if (c-ts.type == BT_DERIVED)
+field_type = c-ts.derived-backend_decl;
   else
{
  if (c-ts.type == BT_CHARACTER)


-- 

janus at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |janus at gcc dot gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2009-07-27 21:05:09
   date||


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



[Bug translation/40884] New: error messages in .md files not translated

2009-07-27 Thread jsm28 at gcc dot gnu dot org
arm/neon.md, cris/cris.md, mmix/mmix.md, spu/spu-builtins.md and
stormy16/predicates.md contain calls to the functions error or
internal_error, whose operands would normally be extracted for
translation, but exgettext does not process .md files.  Since gettext
doesn't know about .md files it might be simpler to fix this by moving
the errors into separate functions in the relevant .c files.


-- 
   Summary: error messages in .md files not translated
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: translation
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jsm28 at gcc dot gnu dot org
OtherBugsDependingO 40883
 nThis:


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



[Bug c/40885] New: build_indirect_ref i18n problems

2009-07-27 Thread jsm28 at gcc dot gnu dot org
c-typeck.c:build_indirect_ref takes an argument errorstring, which may
be array indexing, unary * or - and is not translated.  It should
instead take an enum and pass three distinct full sentences to
error_at.


-- 
   Summary: build_indirect_ref i18n problems
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jsm28 at gcc dot gnu dot org
OtherBugsDependingO 40883
 nThis:


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



[Bug translation/40872] String not extracted for translation

2009-07-27 Thread paolo dot carlini at oracle dot com


--- Comment #16 from paolo dot carlini at oracle dot com  2009-07-27 21:19 
---
Many thanks again!


-- 


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



[Bug libstdc++/40841] Application segfaults when throwing an exception that destroys an fstream

2009-07-27 Thread zlynx at acm dot org


--- Comment #9 from zlynx at acm dot org  2009-07-27 21:26 ---
I built GCC using libunwind and binutils 2.19.1 and there is the same problem.

The registers are *not* being restored to the right values after the exception
return.

In the following assembly code you can clearly see that it expects the value in
r37 to remain useful after the call to f. It doesn't.

mov r37=r1
addl r38=112,r1;;
ld8 r38=[r38]
nop.i 0x0
nop.m 0x0
nop.i 0x0
br.call.sptk.many b0=4f80 f(char const*)
mov r1=r37
nop.i 0x0
br.few 40001210 main+0x190;;

(Well, ok, it actually jumps to the exception catch block, but that block also
does mov r1=r37 to get a PLT offset.)


-- 

zlynx at acm dot org changed:

   What|Removed |Added

  Known to fail||4.4.1 4.4.2
  Known to work||4.3.0


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



[Bug regression/40886] New: No loop counter reversal for simple loops anymore

2009-07-27 Thread andi-gcc at firstfloor dot org
Given this simple program:

main()
{
int i;
for (i = 0; i  10; i++) 
f2();
}

compiled with -O2
gcc33-hammer detects that the loop index is not used in the loop body
and rewrites it to a downwards counting loop, elimitinating one instruction
(inc/cmp - dec)

  movl$9, %ebx
.p2align 4,,7
.L6:
xorl%eax, %eax
callf2
decl%ebx
jns .L6
popq%rbx

but gcc 4.0 - 4.3 don't anymore (tried 4.1, 4.3 and 4.4):

   xorl%ebx, %ebx
.p2align 4,,7
.L2:
xorl%eax, %eax
incl%ebx
callf2
cmpl$10, %ebx
jne .L2


-- 
   Summary: No loop counter reversal for simple loops anymore
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: regression
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: andi-gcc at firstfloor dot org
  GCC host triplet: x86_64-linux
GCC target triplet: x86_64-linux


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



[Bug fortran/40878] !$omp collapse(m) with non-constant m should give error

2009-07-27 Thread jakub at gcc dot gnu dot org


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jakub at gcc dot gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Keywords||openmp
   Last reconfirmed|-00-00 00:00:00 |2009-07-27 22:46:56
   date||


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



[Bug fortran/40876] OpenMP private variable referenced in a statement function

2009-07-27 Thread jakub at gcc dot gnu dot org


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jakub at gcc dot gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Keywords||openmp
   Last reconfirmed|-00-00 00:00:00 |2009-07-27 22:47:35
   date||


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



[Bug libstdc++/21769] per-file control over PCH inclusion

2009-07-27 Thread janis at gcc dot gnu dot org


--- Comment #2 from janis at gcc dot gnu dot org  2009-07-27 23:51 ---
Changing dg-do would be very messy.  Instead, use the existing dg-add-options. 
Add the following to libstdc++-v3/testsuite/dg-options.exp:

---
# Add to FLAGS all the target-specific flags needed to disable PCH.

proc add_options_for_no_pch { flags } {
# This forces any generated and possibly included PCH to be invalid.
return $flags -D__GLIBCXX__=
}
---

In a test that should disable PCH, use

// { dg-add-options no_pch }


-- 


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



[Bug fortran/40853] I/O: Namelist read error

2009-07-27 Thread jvdelisle at gcc dot gnu dot org


--- Comment #3 from jvdelisle at gcc dot gnu dot org  2009-07-28 02:00 
---
I will get started on this.


-- 

jvdelisle at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jvdelisle at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2009-07-27 09:40:04 |2009-07-28 02:00:12
   date||


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



[Bug fortran/40853] I/O: Namelist read error

2009-07-27 Thread jvdelisle at gcc dot gnu dot org


--- Comment #4 from jvdelisle at gcc dot gnu dot org  2009-07-28 03:09 
---
As a work-around, re-arranging the derived type like this:

  type tao_plot_page_struct
real size(2)
real shape_height_max 
type (tao_title_struct) title
  end type

May help, until I get this sorted out.


-- 


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



[Bug middle-end/40887] New: GCC generates suboptimal code for indirect function calls on ARM

2009-07-27 Thread lessen42 at gmail dot com
Consider the following code:

int (*indirect_func)();

int indirect_call()
{
return indirect_func();
}

gcc 4.4.0 generates the following with -O2 -mcpu=cortex-a8 -S:

indirect_call:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
movwr3, #:lower16:indirect_func
stmfd   sp!, {r4, lr}
movtr3, #:upper16:indirect_func
mov lr, pc
ldr pc, [r3, #0]
ldmfd   sp!, {r4, pc}

The problem is that the instruction ldr pc, [r3, #0] is not considered a
function call by the Cortex-A8's branch predictor, as noted in DDI0344J section
5.2.1, Return stack predictions. Thus, the return from the called function is
mispredicted resulting in a penalty of 13 cycles compared to a direct call.

Rather than doing
mov lr, pc
ldr pc, [r3]
it should instead use the blx instruction as so:
ldr lr, [r3]
blx lr
which is considered a function call by the branch predictor, and has an
overhead of only one cycle compared to a direct call.

gcc -v:
Using built-in specs.
Target: arm-none-linux-gnueabi
Configured with: ../gcc-4.4.0/configure --target=arm-none-linux-gnueabi
--prefix=/usr/local/arm --enable-threads
--with-sysroot=/usr/local/arm/arm-none-linux-gnueabi/libc
Thread model: posix
gcc version 4.4.0 (GCC)


-- 
   Summary: GCC generates suboptimal code for indirect function
calls on ARM
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: lessen42 at gmail dot com
  GCC host triplet: i386-apple-darwin
GCC target triplet: arm-none-linux-gnueabi


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



[Bug middle-end/40887] GCC generates suboptimal code for indirect function calls on ARM

2009-07-27 Thread lessen42 at gmail dot com


--- Comment #1 from lessen42 at gmail dot com  2009-07-28 05:14 ---
Created an attachment (id=18261)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18261action=view)
Use blx for indirect function calls on armv5+

This fixes the test case and the obvious cases of this I found in x264; there
may be more instances of not calling/returning from a function that doesn't
match Cortex-A8 and A9's branch predictors (and maybe more)


-- 


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