[Bug c/44598] -Wunused-variable miss 'static const char x[] = ;'

2010-06-21 Thread jakub at gcc dot gnu dot org


--- Comment #4 from jakub at gcc dot gnu dot org  2010-06-21 06:11 ---
FYI, this has nothing to do with the new -Wunused-but-set-* warnings, the
initialization in the definition isn't counted as set.
This is something the old -Wunused-variable warning reports/doesn't report.


-- 


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



[Bug fortran/44604] New: Wrong run-time checks with VALUE dummies and pointer/allocatable actuals

2010-06-21 Thread burnus at gcc dot gnu dot org
Reported by Michael Briggs at
http://gcc.gnu.org/ml/fortran/2010-06/msg00205.html

Checking fails for a zero-initialized pointers/allocatable scalar
variable/array element passed to a dummy argument with VALUE attribute.

For the following program, it fails for -fcheck=all:

program TestSmall
  implicit none
 integer, allocatable :: ptrVar
  allocate ( ptrVar )
  ptrVar = 0  ! if changed to 1, the problem goes away
  call test(ptrVar)
contains
  subroutine test(n)
 integer, VALUE :: n
  end subroutine test
end program TestSmall


-- 
   Summary: Wrong run-time checks with VALUE dummies and
pointer/allocatable actuals
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Keywords: diagnostic
  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=44604



[Bug fortran/44604] Wrong run-time checks with VALUE dummies and pointer/allocatable actuals

2010-06-21 Thread burnus at gcc dot gnu dot org


--- Comment #1 from burnus at gcc dot gnu dot org  2010-06-21 07:13 ---
Seemingly the allocated/associated check

  cond = fold_build2 (EQ_EXPR, boolean_type_node, parmse.expr,
  fold_convert (TREE_TYPE (parmse.expr),
null_pointer_node));
in trans-expr.c's gfc_conv_procedure_call accesses the value of the variable
and not its location as parmse.expr is already dereferenced via gfc_conv_expr,
called by

  else if (fsym  fsym-attr.value)
{
   //   [...]
gfc_conv_expr (parmse, e);
}


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

   Keywords||wrong-code


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



[Bug fortran/44604] Wrong run-time checks with VALUE dummies and pointer/allocatable actuals

2010-06-21 Thread burnus at gcc dot gnu dot org


--- Comment #2 from burnus at gcc dot gnu dot org  2010-06-21 07:24 ---
Reminder: Same problem occurs when calling with %VAL(actual_arg).


-- 


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



[Bug fortran/44602] [F2008] EXIT: Jump to end of construct

2010-06-21 Thread burnus at gcc dot gnu dot org


--- Comment #2 from burnus at gcc dot gnu dot org  2010-06-21 07:41 ---
+else if (sym == p-sym)

One should check that this does the right thing for
  do
block
  exit
end block
  end do
as this should leave the DO construct and not only the BLOCK construct (to be
compatible with older Fortran standard, where EXIT was relative to DO).


-- 


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



[Bug rtl-optimization/44605] New: Wrong floating point on

2010-06-21 Thread gcc at breakpoint dot cc



-- 
   Summary: Wrong floating point on
   Product: gcc
   Version: 4.4.4
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: rtl-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: gcc at breakpoint dot cc
 GCC build triplet: powerpc-linux-gnuspe
  GCC host triplet: powerpc-linux-gnuspe
GCC target triplet: powerpc-linux-gnuspe


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



[Bug rtl-optimization/44605] Wrong floating point on

2010-06-21 Thread gcc at breakpoint dot cc


--- Comment #1 from gcc at breakpoint dot cc  2010-06-21 07:56 ---
was too early


-- 

gcc at breakpoint dot cc changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID
Summary|Wrong floating point on |Wrong floating point on


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



[Bug c++/44328] switch/case optimization produces an invalid lookup table index

2010-06-21 Thread jamborm at gcc dot gnu dot org


--- Comment #19 from jamborm at gcc dot gnu dot org  2010-06-21 08:29 
---
(In reply to comment #16)
 (In reply to comment #15)
  ... I cannot reproduce the problem.
 I can send you either the compiler binaries (hosts: cygwin/linux i386/linux
 x64/darwin x64) or the configuration options to build the binutils and the
 compiler for the arm-eabi target, if you want to.
 

Configuration options for i386-linux and x86_64-linux hosts for both
binutils and gcc would be very much appreciated.  I'll see what I can
do then.


-- 


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



[Bug c++/44590] [4.6 Regression] Revision 159362 caused multiple failures on the libstdc++-v3 tests

2010-06-21 Thread jamborm at gcc dot gnu dot org


--- Comment #1 from jamborm at gcc dot gnu dot org  2010-06-21 08:35 ---
Honza, does this look familiar to you?


-- 

jamborm at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||hubicka at ucw dot cz


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



[Bug c++/44590] [4.6 Regression] Revision 159362 caused multiple failures on the libstdc++-v3 tests

2010-06-21 Thread hubicka at ucw dot cz


--- Comment #2 from hubicka at ucw dot cz  2010-06-21 08:44 ---
Subject: Re:  [4.6 Regression] Revision 159362 caused
multiple failures on the libstdc++-v3 tests

I was fixing bug like this, where function was extern inline and had address
taken in the unit.
Inliner removed offline copy of the function but we need to keep it around so
ipa-ref can point
to it.

I guess this is your problem too.  ipa-inline should understand that even if
offline copy goes away, the cgraph node needs to be preserved when there are
some references of it.  cgraph_can_remove_if_no_direct_calls_p already tests
for address_taken, so why the offline copy disappears?

Honza


-- 


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



[Bug fortran/44604] Wrong run-time checks with VALUE dummies and pointer/allocatable actuals

2010-06-21 Thread dominiq at lps dot ens dot fr


--- Comment #3 from dominiq at lps dot ens dot fr  2010-06-21 08:55 ---
Is it not a duplicate of pr35203?


-- 


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



[Bug fortran/44595] INTENT of argeuments to intrinsics procedure not check

2010-06-21 Thread janus at gcc dot gnu dot org


--- Comment #2 from janus at gcc dot gnu dot org  2010-06-21 09:02 ---
cf. also PR40039


-- 

janus at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||janus at gcc dot gnu dot org


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



[Bug tree-optimization/44606] New: Wrong SPE floating point during computation

2010-06-21 Thread gcc at breakpoint dot cc
I attached two testcase which is stripped down graphicsmagick code.
tc-resize2.c has a few instructions more than tc-resize.c. I belive the bug is 
the same.
 gcc -o tc2 -O0 -Wall -Wextra tc-resize.c
 gcc -o tc2 -O2 -Wall -Wextra tc-resize.c
 ( ./tc0 ; echo -; ./tc2 )
 .19 2484.00
 .21 2700.00
 .23 2916.00
 .24 3132.00
 .26 3348.00
 -
 .0 2484.00
 .0 2700.00
 .0 2916.00
 .0 3132.00
 .0 3348.00

 gcc -o tc20 -O0 -Wall -Wextra tc-resize2.c
 gcc -o tc22 -O2 -Wall -Wextra tc-resize2.c
 ( ./tc20 ; echo -; ./tc22 )
 .26 3264.00
 .28 3520.00
 .30 3776.00
 .32 4032.00
 .34 4288.00
 -
 .14 1734.00
 .15 1870.00
 .16 2006.00
 .17 2142.00
 .18 2278.00

 Now here is stripped down output of the assembly file:

 MinifyImage:
 evstdd 26,88(11)
 .L9:
 li 26,0

 stw 26,64(1)
 .L11:
  #APP
  # 105 tc-resize.c 1
 nop
  # 0  2
 #NO_APP
 lis 19,@ha
 efdmul 5,9,26   r26 should be 0.0078125 but is 0
 r26 bits 32..63 are, dunno about 0..31
 la 19,@l(19)
 evldd 19,0(19)  r19 is 0.5
 efdadd 5,5,19   r5 is expected to be .5
 efdctuiz 5,5r5 is 0
 rlwinm 5,5,0,0xff

 #APP
  # 107 tc-resize.c 1
 nop
  # 0  2
 #NO_APP
 evmergehi 6,9,9
 mr 7,9
 mr 8,7
 mr 7,6

 crxor 6,6,6 that should be 9,9,9 but is a different issue :)
 bl fprintf  # r5 int (bad), r6 pad, r7  r8 double

r26 is zero and that is wrong. I belive 1/128.0 gets replaced by 0.0 and
optimized.

Sebastian


-- 
   Summary: Wrong SPE floating point during computation
   Product: gcc
   Version: 4.4.4
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: gcc at breakpoint dot cc
 GCC build triplet: powerpc-linux-gnuspe
  GCC host triplet: powerpc-linux-gnuspe
GCC target triplet: powerpc-linux-gnuspe


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



[Bug tree-optimization/44606] Wrong SPE floating point during computation

2010-06-21 Thread gcc at breakpoint dot cc


--- Comment #1 from gcc at breakpoint dot cc  2010-06-21 09:10 ---
Created an attachment (id=20950)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20950action=view)
testcase


-- 


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



[Bug tree-optimization/44606] Wrong SPE floating point during computation

2010-06-21 Thread gcc at breakpoint dot cc


--- Comment #2 from gcc at breakpoint dot cc  2010-06-21 09:10 ---
Created an attachment (id=20951)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20951action=view)
slightly extended tc


-- 


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



[Bug tree-optimization/44606] Wrong SPE floating point during computation

2010-06-21 Thread gcc at breakpoint dot cc


--- Comment #3 from gcc at breakpoint dot cc  2010-06-21 09:11 ---
Created an attachment (id=20952)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20952action=view)
-S output of the first tc


-- 


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



[Bug fortran/44604] Wrong run-time checks with VALUE dummies and pointer/allocatable actuals

2010-06-21 Thread burnus at gcc dot gnu dot org


--- Comment #4 from burnus at gcc dot gnu dot org  2010-06-21 09:13 ---
(In reply to comment #3)
 Is it not a duplicate of pr35203?

No. In this bug (PR 44604) one is in the caller and there one can distinguish
between address and value of a variable and the fix is relatively simple
(though requires some thinking and re-shoveling).

By contrast, PR 35203 requires a special handling of OPTIONAL + VALUE dummies,
where both the caller and the callee need to be involved by passing additional
information and making use of them.


-- 


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



[Bug target/44603] out of range branch generated in thumb code.

2010-06-21 Thread mikpe at it dot uu dot se


--- Comment #2 from mikpe at it dot uu dot se  2010-06-21 09:47 ---
Seen also with 4.6 and 4.5 arm-unknown-linux-gnueabi toolchains at -O0, 4.4 and
4.3 don't trigger it.

I'm pretty sure I've seen another thumb out of range branch PR not too long
ago.


-- 

mikpe at it dot uu dot se changed:

   What|Removed |Added

 CC||mikpe at it dot uu dot se


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



[Bug target/44603] out of range branch generated in thumb code.

2010-06-21 Thread mikpe at it dot uu dot se


--- Comment #3 from mikpe at it dot uu dot se  2010-06-21 10:09 ---
Dupe of PR43961?


-- 


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



[Bug fortran/44541] [OOP] wrong code for polymorphic variable with INTENT(OUT)/Alloc w/ MOLD

2010-06-21 Thread janus at gcc dot gnu dot org


--- Comment #2 from janus at gcc dot gnu dot org  2010-06-21 10:18 ---
My first idea to fix this was to add a new field to the vtabs, let's call it
$def_init, which would be the fourth field in the vtab structure (after $hash,
$size and $extends), and would contain the default initialization values for
the type.

However, this approach does not work, since the field needed for default
initialization would have to be of the derived type which the vtab belongs to.
This however can have different sizes, so that the PPCs in the vtab will not be
aligned any more for extended types, which messes up dynamic dispatch.

Alternatives:
(1) make $def_init a pointer (problem: initialization of $def_init itself)
(2) add standalone variables a la type_t$def_init to carry default
initialization for each type
(3) ...?


-- 


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



[Bug debug/31230] debug information depends on gc parameters

2010-06-21 Thread tjvries at xs4all dot nl


--- Comment #4 from tjvries at xs4all dot nl  2010-06-21 10:20 ---
Created an attachment (id=20953)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20953action=view)
 minimal test case of 14 lines, cut down from varasm.i

I also ran into this bug, while building gcc 4.3.5 for x86_64-unknown-linux-gnu
with make {CFLAGS,BOOT_CFLAGS,STAGE1_CFLAGS}=\-g3\ -O0\ -dH\.

I managed to minimized the test case down to 14 lines.

The difference in debug info can be reproduced using:
...
$ cc1 varasm.i -O0 -g -quiet -o varasm.s 
$ cc1 varasm.i -O0 -g -quiet -o varasm.s.0.0 --param ggc-min-expand=0 --param
ggc-min-heapsize=0 
...


-- 


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



[Bug debug/31230] debug information depends on gc parameters

2010-06-21 Thread tjvries at xs4all dot nl


--- Comment #5 from tjvries at xs4all dot nl  2010-06-21 10:32 ---
Created an attachment (id=20954)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20954action=view)
naive patch. run callbacks on hashtable entries exhaustively before deleting

Furthermore, I investigated why this problem does not occur with 4.4.0 onwards,
and I found that this is due to the fact that -funit-at-a-time is hard coded to
on for 4.4.0, which causes f1 to be live at the same time as f3 (no
cgraph_release_function_body() in between). An easy workaround for this problem
in 4.3.5 is therefore -funit-at-a-time.

I also managed to reproduce the problem for -gstabs. The patch from comment 3
works indeed, but not for -gstabs, which makes a lot of sense since the patch
is dwarf specific. Of course we might attempt to fix the stab format (and
possible others) in a similar way, but the fact that the fix needs to be
repeated made me wonder whether the problem had to be dealt with at another
level than specific debug formats.

Let's take a look at what happens exactly during garbage collection in between
f1 and f3 in mark_roots():
- gt_ggc_rtab is traversed, and neither array type nor index type is marked
live
- gt_ggc_cache_rtab is traversed, in particular type_hash_table, and the hash
entry with the index type is hit (before the entry with the array type, but
this is non-deterministic) and processed by ggc_htab_delete(). The entry is not
considered live, and consequently the entry is cleared.
- next the entry with the array type is hit and processed by ggc_htab_delete().
The entry is considered live due to TYPE_SYMTAB_POINTER (type). Consequently
the callback is called, marking the entry and everything reachable from it
live, including the index type. Unfortunately, the hash entry for the index
type is already gone.

During parsing of f3, a new index type equivalent to the old one is created,
but type_hash_canon cannot find the old index type in the hash table (since
that entry has been deleted), so the new index type is now a canonical type,
and gets an entry in the type_hash_table. Next, a new array type equivalent to
the old one is created, but type_hash_canon cannot find the old array type,
even though the entry has not been deleted. The new array type has a different
index type than the old array type, and consequently the hashcode for the new
array type is different than the hascode for the old array type, so the old
array type is not found. The new array type is now also a canonical type, and
gets an entry in the type_hash_table. The old index type, the old array type
and the hash table entry associated with the old array type are now unused but
not freed.

The question is whether to blame this on 
- invalid use of the garbage collection infrastructure. Using the if_marked
construction to mark an object live, is only allowed if everything reachable
from that object is also live. 
- the garbage collection infrastructure itself. If the if_marked construction
is used to mark an object live, the garbage collection infrastructure should
mark everything that is reachable from that object also as live.

The patch in comment 3 seems to take the first choice. I decided to explore the
second choice, and created a naive patch of ggc_mark_roots(). It solves the
inconsistent debug info problem, both for dwarf2 and for stabs. I did a debug
bootstrap build (-g3 -O0 -dH) with the patch and ran the testsuites (gcc, objc,
gfortran, g++, libgomp, libstdc++, libjava, libmudflap, libffi), with the same
results as a normal bootstrap build without the patch, so the patch looks sane
at least.

This is my first time looking into the gcc garbage collector, so I'd appreciate
some comments on my findings.


-- 


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



[Bug c++/44328] switch/case optimization produces an invalid lookup table index

2010-06-21 Thread mikpe at it dot uu dot se


--- Comment #20 from mikpe at it dot uu dot se  2010-06-21 10:44 ---
(In reply to comment #19)
 Configuration options for i386-linux and x86_64-linux hosts for both
 binutils and gcc would be very much appreciated.

I don't know if you can build the c++ frontend without libstdc++, but the
latter seem to require a libc, so I had to do a 4-step build with newlib:

Common options for binutils, gcc, and newlib:
--target=arm-unknown-eabi --prefix=/../cross-arm-eabi

Initial C-only gcc:
--enable-languages=c --disable-libssp

Use that to build and install newlib.

Final gcc with c++:
--enable-languages=c,c++ --with-newlib


-- 


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



[Bug c++/44607] New: basic template struct has no direct access to members of a basic parent template struct

2010-06-21 Thread gcc at razorcam dot com
the following program with a basic template struct which inherit another basic
template struct does not compile:
g++ bug_template_template.cc 
bug_template_template.cc: In member function ‘void UC::f()’:
bug_template_template.cc:6: error: ‘i’ was not declared in this scope
the output of g++ -v -save-temps follows the source file
the preprocessed file .ii is at the end of this report

template class C struct T{
int i;
C c;
};
template class C struct U:TC{
void f(){i=0;}
};


g++ -v -save-temps bug_template_template.cc 
Using built-in specs.
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.4.4-3'
--with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs
--enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared
--enable-multiarch --enable-linker-build-id --with-system-zlib
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls
--enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc
--with-arch-32=i486 --with-tune=generic --enable-checking=release
--build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.4.4 (Debian 4.4.4-3) 
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-shared-libgcc' '-mtune=generic'
 /usr/lib/gcc/x86_64-linux-gnu/4.4.4/cc1plus -E -quiet -v -D_GNU_SOURCE
bug_template_template.cc -mtune=generic -fpch-preprocess -o
bug_template_template.ii
ignoring nonexistent directory /usr/local/include/x86_64-linux-gnu
ignoring nonexistent directory
/usr/lib/gcc/x86_64-linux-gnu/4.4.4/../../../../x86_64-linux-gnu/include
ignoring nonexistent directory /usr/include/x86_64-linux-gnu
#include ... search starts here:
#include ... search starts here:
 /usr/include/c++/4.4
 /usr/include/c++/4.4/x86_64-linux-gnu
 /usr/include/c++/4.4/backward
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/4.4.4/include
 /usr/lib/gcc/x86_64-linux-gnu/4.4.4/include-fixed
 /usr/include
End of search list.
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-shared-libgcc' '-mtune=generic'
 /usr/lib/gcc/x86_64-linux-gnu/4.4.4/cc1plus -fpreprocessed
bug_template_template.ii -quiet -dumpbase bug_template_template.cc
-mtune=generic -auxbase bug_template_template -version -o
bug_template_template.s
GNU C++ (Debian 4.4.4-3) version 4.4.4 (x86_64-linux-gnu)
compiled by GNU C version 4.4.4, GMP version 4.3.2, MPFR version
2.4.2-p1.
GGC heuristics: --param ggc-min-expand=57 --param ggc-min-heapsize=51739
GNU C++ (Debian 4.4.4-3) version 4.4.4 (x86_64-linux-gnu)
compiled by GNU C version 4.4.4, GMP version 4.3.2, MPFR version
2.4.2-p1.
GGC heuristics: --param ggc-min-expand=57 --param ggc-min-heapsize=51739
Compiler executable checksum: a92c574e76687c18572fdbea97434cec
bug_template_template.cc: In member function ‘void UC::f()’:
bug_template_template.cc:6: error: ‘i’ was not declared in this scope


 cat bug_template_template.ii 
# 1 bug_template_template.cc
# 1 built-in
# 1 command-line
# 1 bug_template_template.cc
template class C struct T{
 int i;
 C c;
};
template class C struct U:TC{
 void f(){i=0;}
};


-- 
   Summary: basic template struct has no direct access to members of
a basic parent template struct
   Product: gcc
   Version: 4.4.4
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: gcc at razorcam dot com


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



[Bug fortran/43945] [OOP] Derived type with GENERIC: resolved to the wrong specific TBP

2010-06-21 Thread janus at gcc dot gnu dot org


--- Comment #20 from janus at gcc dot gnu dot org  2010-06-21 11:01 ---
(In reply to comment #14)
 The attached variation of generic_23 still does not work. 

... and the dump shows why:

if (vtab$foo2.get == 0B)
  {
vtab$vtype$foo2$get.getit = getit;
vtab$foo2.get = vtab$vtype$foo2$get;
vtab$foo2.getit = (integer(kind=4) (*T42b) (void)) getit2;
vtab$foo2.doit = (void (*T62) (void)) doit2;
vtab$vtype$foo2$do.doit = doit;
vtab$foo2.do = vtab$vtype$foo2$do;
  }

The specific PPCs of 'foo2' point to the right procedures, but their generic
counterparts don't.


-- 


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



[Bug c++/44607] basic template struct has no direct access to members of a basic parent template struct

2010-06-21 Thread paolo dot carlini at oracle dot com


--- Comment #1 from paolo dot carlini at oracle dot com  2010-06-21 11:07 
---
Why, before filing pretty trivial PRs don't you search a bit Bugzilla and the
docs? In this specific case, just use this-i or follow
http://gcc.gnu.org/gcc-3.4/changes.html.

In general, I would suggest seriously studying any good book treating templates
(eg, Vandevoorde  Josuttis).


-- 

paolo dot carlini at oracle dot com changed:

   What|Removed |Added

   Severity|major   |normal
 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug c++/44607] basic template struct has no direct access to members of a basic parent template struct

2010-06-21 Thread redi at gcc dot gnu dot org


--- Comment #2 from redi at gcc dot gnu dot org  2010-06-21 11:15 ---
I already suggested that link in Bug 44559 comment 2, please use something
other than GCC's Bugzilla to learn the differences between standard C++ and
what used to be accepted by various old compilers.

You can also use the online Comeau compiler at
http://www.comeaucomputing.com/tryitout/ to test your assumptions. If Comeau
and GCC both give an error then you can be 99.9% sure the problem is in your
code not the compiler.


-- 


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



[Bug c++/44328] switch/case optimization produces an invalid lookup table index

2010-06-21 Thread mikpe at it dot uu dot se


--- Comment #21 from mikpe at it dot uu dot se  2010-06-21 11:18 ---
(In reply to comment #20)
 (In reply to comment #19)
  Configuration options for i386-linux and x86_64-linux hosts for both
  binutils and gcc would be very much appreciated.
 
 I don't know if you can build the c++ frontend without libstdc++, ...

You can.  Just build gcc with --target=arm-unknown-eabi
--enable-languages=c,c++ --disable-libstdc++-v3 --disable-libssp.  No newlib
needed.


-- 


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



[Bug middle-end/42834] memcpy folding overeager

2010-06-21 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2010-06-21 11:18 ---
Subject: Bug 42834

Author: rguenth
Date: Mon Jun 21 11:18:26 2010
New Revision: 161067

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=161067
Log:
2010-06-21  Richard Guenther  rguent...@suse.de

PR middle-end/42834
* builtins.c (fold_builtin_memory_op): Use ref-all types
for all memcpy foldings.
* expr.c (store_expr): Handle MEM_REFs from STRING_CSTs.

testsuite/
* c-c++-common/torture/pr42834.c: New testcase.
* gcc.dg/tree-prof/stringop-1.c: Adjust.
* gfortran.dg/array_memcpy_3.f90: Likewise.
* gfortran.dg/array_memcpy_4.f90: Likewise.

Added:
branches/mem-ref2/gcc/testsuite/c-c++-common/torture/pr42834.c
Modified:
branches/mem-ref2/gcc/ChangeLog.mem-ref2
branches/mem-ref2/gcc/builtins.c
branches/mem-ref2/gcc/expr.c
branches/mem-ref2/gcc/testsuite/gcc.dg/tree-prof/stringop-1.c
branches/mem-ref2/gcc/testsuite/gfortran.dg/array_memcpy_3.f90
branches/mem-ref2/gcc/testsuite/gfortran.dg/array_memcpy_4.f90


-- 


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



[Bug other/43480] build: random timestamps have multilib conflicts

2010-06-21 Thread jan dot kratochvil at redhat dot com


--- Comment #2 from jan dot kratochvil at redhat dot com  2010-06-21 11:22 
---
Checked-in.  Forgot to place the PR # there.

r161066 | jkratoch | 2010-06-21 13:16:18 +0200 (Mon, 21 Jun 2010) | 7 lines

gcc/
* Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).

libjava/classpath/
* doc/Makefile.am (POD2MAN): Provide --date from ChangeLog.
* doc/Makefile.in: Regenerate.


-- 

jan dot kratochvil at redhat dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug middle-end/44608] New: unspecified signed overflow applied to unsigned int

2010-06-21 Thread avr at gjlay dot de
As discussed in 
http://gcc.gnu.org/ml/gcc-help/2010-06/msg00191.html
I am filing a PR for the following piece of C:

int abssat2 (int x)
{
unsigned int y = x;

if (x  0)
y = -y;

if (y = 0x8000)
y--;

return y;
}

Code looks fine until pass CE1 which introduces ABS rtx for the first
comparison (ifcvt.c:noce_try_abs). 

Pass insn combine then calls combine.c:combine_simplify_rtx() which calls
simplify_rtx.c:simplify_relational_operation (code=LT, mode=SImode,
cmp_mode=SImode, op0=(abs:SI (reg:SI)), op1=(const_int 0))
and the latter removes the second comparison against 0x8000.

As this problem occurs on a non-standard target, let me know if I con you
provide with any additional information.


-- 
   Summary: unspecified signed overflow applied to unsigned int
   Product: gcc
   Version: 4.4.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: avr at gjlay dot de
 GCC build triplet: pc-linux
  GCC host triplet: pc-linux
GCC target triplet: private


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



[Bug middle-end/44608] unspecified signed overflow applied to unsigned int

2010-06-21 Thread avr at gjlay dot de


--- Comment #1 from avr at gjlay dot de  2010-06-21 11:26 ---
Created an attachment (id=20955)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20955action=view)
Dump for .c.123t.optimized

Dump for .c.123t.optimized


-- 


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



[Bug middle-end/44608] unspecified signed overflow applied to unsigned int

2010-06-21 Thread avr at gjlay dot de


--- Comment #2 from avr at gjlay dot de  2010-06-21 11:28 ---
Created an attachment (id=20956)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20956action=view)
Dump for .c.128r.expand

Dump for .c.128r.expand


-- 


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



[Bug middle-end/44608] unspecified signed overflow applied to unsigned int

2010-06-21 Thread avr at gjlay dot de


--- Comment #3 from avr at gjlay dot de  2010-06-21 11:28 ---
Created an attachment (id=20957)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20957action=view)
Dump for .c.141r.ce1

Dump for .c.141r.ce1


-- 


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



[Bug other/43480] build: random timestamps have multilib conflicts

2010-06-21 Thread jan dot kratochvil at redhat dot com


--- Comment #3 from jan dot kratochvil at redhat dot com  2010-06-21 11:29 
---
The fastjar part filed as:
https://sourceforge.net/tracker/?func=detailaid=3019015group_id=426atid=100426


-- 


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



[Bug middle-end/44608] unspecified signed overflow applied to unsigned int

2010-06-21 Thread avr at gjlay dot de


--- Comment #4 from avr at gjlay dot de  2010-06-21 11:30 ---
Created an attachment (id=20958)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20958action=view)
Dump for .c.159r.combine

Dump for .c.159r.combine


-- 


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



[Bug middle-end/44608] unspecified signed overflow applied to unsigned int

2010-06-21 Thread rguenth at gcc dot gnu dot org


--- Comment #5 from rguenth at gcc dot gnu dot org  2010-06-21 11:38 ---
It is folding from the frontend that changes

if (y = 0x8000)

to

if ((int) y  0)

(see code == LT instead of code == GEU)

But the main issue is that y = -y to abs is bogus (but we can't easily tell
that as on RTL operands do not have a signedness).


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Keywords||wrong-code
   Last reconfirmed|-00-00 00:00:00 |2010-06-21 11:38:28
   date||


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



[Bug other/43480] build: random timestamps have multilib conflicts

2010-06-21 Thread jan dot kratochvil at redhat dot com


--- Comment #4 from jan dot kratochvil at redhat dot com  2010-06-21 11:46 
---
http://gcc.gnu.org/ml/gcc-patches/2010-06/msg01999.html

Wrongly patched libjava/classpath/ChangeLog , therefore fixed it up:


r161069 | jkratoch | 2010-06-21 13:40:02 +0200 (Mon, 21 Jun 2010) | 3 lines

Move the entry from libjava/classpath/ ChangeLog to ChangeLog.gcj as it is
a local change.  Reported by Jakub Jelinek, approved by Mark Wielaard.

Index: libjava/classpath/ChangeLog
Index: libjava/classpath/ChangeLog.gcj


-- 


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



[Bug c++/44609] New: Invalid code causes ICE

2010-06-21 Thread chris at bubblescope dot net
The following code is reduced from a usage of boost, where one word was spelt
incorrectly. My code reducer has done some very unusual things while reducing
the size of the test case.

The following code, on my code, causes g++ to spend 1 minute outputting 16
million lines, then eventually ICEing. It seems to be a problem with recursive
templates, but it would be nicer if g++ gave up a little earlier.

Confirmed on g++ 4.4 and svn trunk.


-- 
   Summary: Invalid code causes ICE
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: chris at bubblescope dot net


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



[Bug c++/44609] Invalid code causes ICE

2010-06-21 Thread chris at bubblescope dot net


--- Comment #1 from chris at bubblescope dot net  2010-06-21 11:50 ---
Created an attachment (id=20959)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20959action=view)
ICEing example


-- 


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



[Bug middle-end/44608] unspecified signed overflow applied to unsigned int

2010-06-21 Thread rguenth at gcc dot gnu dot org


--- Comment #6 from rguenth at gcc dot gnu dot org  2010-06-21 11:50 ---
int __attribute__((noinline))
abssat2 (int x)
{
  unsigned int y = x;
  if (x  0)
y = -y;
  if (y = 0x8000)
y--;
  return y;
}
extern void abort (void);
int main()
{
  if (abssat2 (0x8000) != 0x7fff)
abort ();
  return 0;
}

does not fail on x86_64 or i?86.


-- 


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



[Bug c++/44609] Invalid code causes ICE

2010-06-21 Thread paolo dot carlini at oracle dot com


--- Comment #2 from paolo dot carlini at oracle dot com  2010-06-21 11:56 
---
Are you on x86_64-linux? I can't get it to ICE, the error messages just go on
forever...


-- 


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



[Bug c++/44609] Invalid code causes ICE

2010-06-21 Thread chris at bubblescope dot net


--- Comment #3 from chris at bubblescope dot net  2010-06-21 12:10 ---
Many apologises, the computer had a ulimit set which I had not noticed.

Yes, I also get an infinite loop rather than an ICE.


-- 


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



[Bug middle-end/44608] unspecified signed overflow applied to unsigned int

2010-06-21 Thread avr at gjlay dot de


--- Comment #7 from avr at gjlay dot de  2010-06-21 12:27 ---
(In reply to comment #5)
 It is folding from the frontend that changes
 
 if (y = 0x8000)
 
 to
 
 if ((int) y  0)
 
 (see code == LT instead of code == GEU)
 
 But the main issue is that y = -y to abs is bogus (but we can't easily tell
 that as on RTL operands do not have a signedness).

Both transformation are ok from the target's point of view. The bad thing is
that undefinedness is propagated to RTL which is supposed to be an algebraic
formulation of the target's instruction set. But in this case RTL is treated
like a low level representation of C (or any other language gcc supports).

To reproduce the problem it seems essential that there is an abssi2 insn in the
md. 


-- 


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



[Bug preprocessor/39213] [4.4/4.5/4.6 regression] Preprocessor ICE with -m64 and --traditional-cpp

2010-06-21 Thread ro at gcc dot gnu dot org


--- Comment #3 from ro at gcc dot gnu dot org  2010-06-21 12:35 ---
Updated summary (you list the regressed branches to fix, not the working one).


-- 

ro at gcc dot gnu dot org changed:

   What|Removed |Added

  Known to fail|4.4.0 4.5.0 |4.4.5 4.5.1 4.6.0
  Known to work|3.4.3   |3.4.6
Summary|Regression [3.4.3]  |[4.4/4.5/4.6 regression]
   |Preprocessor ICE with -m64  |Preprocessor ICE with -m64
   |and --traditional-cpp   |and --traditional-cpp
   Target Milestone|--- |4.6.0


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



[Bug fortran/44448] 32-bit gfortran.dg/atan2_1.f90 fails on Solaris 1[01]/x86 at -O0

2010-06-21 Thread ro at CeBiTec dot Uni-Bielefeld dot DE


--- Comment #7 from ro at CeBiTec dot Uni-Bielefeld dot DE  2010-06-21 
12:47 ---
Subject: Re:  32-bit gfortran.dg/atan2_1.f90 fails on Solaris 1[01]/x86 at -O0

 --- Comment #6 from kargl at gcc dot gnu dot org  2010-06-16 21:51 ---
 (In reply to comment #5)
 This makes no sense at all. Rainer, I'm really sorry if it seems that I'm
 shooting questions a bit at random, but I have a hard time imagining how to
 narrow it down.
 
 Can you try the following equivalent C code (at -O0):

Sure: same differences as in the Fortran case:

-4.35483e-08
-4.35483e-08
-1.08095e-16
-1.08095e-16
4.33013e-08
4.33013e-08
4.38018e-17
4.38018e-17
3.05453e-08
3.05453e-08
3.33934e-17
3.33934e-17
2.96684e-08
2.96684e-08
-5.76796e-17
-5.76796e-17
4.87235e-08
4.87235e-08
-9.40003e-17
-9.40003e-17
-1.70395e-08
-1.70395e-08
2.55872e-17
2.55872e-17
1.2215e-09
1.2215e-09
-3.88144e-17
-3.88144e-17
2.30691e-08
2.30691e-08
-2.1684e-18
-2.1684e-18
-1.41206e-08
-1.41206e-08
-8.18573e-18
-8.18573e-18
2.18557e-08
2.18557e-08
-3.06287e-17
-3.06287e-17

 Right now, the only thing I can see make sense is numerically instability in
 the libm. Also, how are atan2f and atan2 defined in the system's math.h 
 header?
 Do they have simple prototypes? Are they actually macros?

The declarations are in iso/math_c99.h:

iso/math_c99.h:

extern float atanf __P((float));
extern float atan2f __P((float, float));

#if !defined(__cplusplus)
#pragma does_not_read_global_data(acosf, asinf, atanf, atan2f)
#pragma does_not_write_global_data(acosf, asinf, atanf, atan2f)

#if defined(__MATHERR_ERRNO_DONTCARE)
#pragma no_side_effect(acosf, asinf, atanf, atan2f)

 Does -ffloat-store change the outcome?  This looks to possibly
 be an excess precision problem and the difference between something
 in a register and main memory.

Indeed: with -ffloat-store, the test program only prints 0s.

Rainer


-- 


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



[Bug target/44575] [4.5/4.6 Regression] __builtin_va_arg overwrites into adjacent stack location

2010-06-21 Thread jakub at gcc dot gnu dot org


--- Comment #3 from jakub at gcc dot gnu dot org  2010-06-21 12:49 ---
Created an attachment (id=20960)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20960action=view)
gcc46-pr44575.patch

Untested fix.


-- 

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


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



[Bug debug/44610] New: VTA produces wrong variable location information

2010-06-21 Thread hariharans at picochip dot com
If i compile the attached testcase for picochip under -O2, i get the following
location information for variable arg0 in main.

.ascii 16#61# 16#72# 16#67# 16#30# 16#0#   ; arg0\0
.initByte 0x1
.initByte 0x2a
.unalignedInitLong 0x9e
.initByte 0xc
.initByte 0x5b
.initByte 0x93
.uleb128 0x2
.initByte 0x5b
.initByte 0x93
.uleb128 0x2
.initByte 0x5b
.initByte 0x93
.uleb128 0x2
.initByte 0x5b
.initByte 0x93
.uleb128 0x2
.uleb128 0xc
.unalignedInitLong _picoMark_Ldebug_ranges0+0xc
.uleb128 0xa

which my dwarflib reader translates to mean

  0x42f (19) Lexical Block:
Address Ranges: [0x18, 0x8d) [0x94, 0x99)
0x434 (20) Data:
  Name: arg0
  Type: 0xe0
  Is External: false
  Location: DW_OP_reg11 DW_OP_piece: 2 DW_OP_reg11 DW_OP_piece: 2
DW_OP_reg11 DW_OP_piece: 2 DW_OP_reg11 DW_OP_piece: 2

R11 obviously does not contain all 4 piece os this 8-byte variable (a register
is 16-bit in picochip). I have tried to see if this was bug 43982, but the
mainline as of 20Jun with fix for that bug still reproduces this problem. 

The problem with this is that it doesn't actually say variable value is not
present, which is generally okay with -O2. It just gives wrong value silently!
Can you have a look at this, please?

I will attach the source file and the assembly. Please ask me if you need any
other information.


-- 
   Summary: VTA produces wrong variable location information
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: debug
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hariharans at picochip dot com
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: picochip-unknown-none


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



[Bug debug/44610] VTA produces wrong variable location information

2010-06-21 Thread hariharans at picochip dot com


--- Comment #1 from hariharans at picochip dot com  2010-06-21 13:55 ---
Created an attachment (id=20961)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20961action=view)
The test sourcecode


-- 


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



[Bug c++/44607] basic template struct has no direct access to members of a basic parent template struct

2010-06-21 Thread gcc at razorcam dot com


--- Comment #3 from gcc at razorcam dot com  2010-06-21 13:55 ---
Sorry again. I am reading again the ISO c++ standard in order to avoid invalid
bug reports. It should occupy me for some time. Is there a c++ lint program
that could help you when you don't know all the tricks of the full standard
yet? Obviously g++ error messages are not meant to replace a c++ lint.


-- 


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



[Bug debug/44610] VTA produces wrong variable location information

2010-06-21 Thread hariharans at picochip dot com


--- Comment #2 from hariharans at picochip dot com  2010-06-21 13:56 ---
Created an attachment (id=20962)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20962action=view)
The test assembly


-- 


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



[Bug debug/44610] VTA produces wrong variable location information

2010-06-21 Thread hariharans at picochip dot com


--- Comment #3 from hariharans at picochip dot com  2010-06-21 13:59 ---
In my first comment, bug 43982 should have been bug 43983


-- 


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



[Bug c++/44607] basic template struct has no direct access to members of a basic parent template struct

2010-06-21 Thread manu at gcc dot gnu dot org


--- Comment #4 from manu at gcc dot gnu dot org  2010-06-21 14:00 ---
(In reply to comment #2)
 You can also use the online Comeau compiler at
 http://www.comeaucomputing.com/tryitout/ to test your assumptions. If Comeau
 and GCC both give an error then you can be 99.9% sure the problem is in your
 code not the compiler.

Perhaps it would be more useful if the bug reporting instructions would mention
this advice.  


-- 


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



[Bug c++/44609] Invalid template code causes infinite loop of error messages

2010-06-21 Thread manu at gcc dot gnu dot org


--- Comment #4 from manu at gcc dot gnu dot org  2010-06-21 14:03 ---
And what is the difference between an ICE and an infinite loop? Both seem to be
internal errors of the compiler.


-- 

manu at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||manu at gcc dot gnu dot org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Keywords||ice-on-invalid-code
   Last reconfirmed|-00-00 00:00:00 |2010-06-21 14:03:26
   date||
Summary|Invalid code causes ICE |Invalid template code causes
   ||infinite loop of error
   ||messages


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



[Bug fortran/40632] Support F2008's contiguous attribute

2010-06-21 Thread burnus at gcc dot gnu dot org


--- Comment #3 from burnus at gcc dot gnu dot org  2010-06-21 14:16 ---
Subject: Bug 40632

Author: burnus
Date: Mon Jun 21 14:15:56 2010
New Revision: 161079

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=161079
Log:
2010-06-20  Tobias Burnus  bur...@net-b.de

PR fortran/40632
* interface.c (compare_parameter): Add gfc_is_simply_contiguous
checks.
* symbol.c (gfc_add_contiguous): New function.
(gfc_copy_attr, check_conflict): Handle contiguous attribute.
* decl.c (match_attr_spec): Ditto.
(gfc_match_contiguous): New function.
* resolve.c (resolve_fl_derived, resolve_symbol): Handle
contiguous.
* gfortran.h (symbol_attribute): Add contiguous.
(gfc_is_simply_contiguous): Add prototype.
(gfc_add_contiguous): Add prototype.
* match.h (gfc_match_contiguous): Add prototype.
* parse.c (decode_specification_statement,
decode_statement): Handle contiguous attribute.
* expr.c (gfc_is_simply_contiguous): New function.
* dump-parse-tree.c (show_attr): Handle contiguous.
* module.c (ab_attribute, attr_bits, mio_symbol_attribute):
Ditto.
* trans-expr.c (gfc_add_interface_mapping): Copy
attr.contiguous.
* trans-array.c (gfc_conv_descriptor_stride_get,
gfc_conv_array_parameter): Handle contiguous arrays.
* trans-types.c (gfc_build_array_type, gfc_build_array_type,
gfc_sym_type, gfc_get_derived_type, gfc_get_array_descr_info):
Ditto.
* trans.h (gfc_array_kind): Ditto.
* trans-decl.c (gfc_get_symbol_decl): Ditto.

2010-06-20  Tobias Burnus  bur...@net-b.de

PR fortran/40632
* gfortran.dg/contiguous_1.f90: New.
* gfortran.dg/contiguous_2.f90: New.
* gfortran.dg/contiguous_3.f90: New.


Added:
trunk/gcc/testsuite/gfortran.dg/contiguous_1.f90
trunk/gcc/testsuite/gfortran.dg/contiguous_2.f90
trunk/gcc/testsuite/gfortran.dg/contiguous_3.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/decl.c
trunk/gcc/fortran/dependency.c
trunk/gcc/fortran/dependency.h
trunk/gcc/fortran/dump-parse-tree.c
trunk/gcc/fortran/expr.c
trunk/gcc/fortran/gfortran.h
trunk/gcc/fortran/interface.c
trunk/gcc/fortran/match.h
trunk/gcc/fortran/module.c
trunk/gcc/fortran/parse.c
trunk/gcc/fortran/resolve.c
trunk/gcc/fortran/symbol.c
trunk/gcc/fortran/trans-array.c
trunk/gcc/fortran/trans-decl.c
trunk/gcc/fortran/trans-expr.c
trunk/gcc/fortran/trans-types.c
trunk/gcc/fortran/trans.h
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/44611] New: Including math,h and cmath hides ::signbit function

2010-06-21 Thread gnu at bluedreamer dot com
When both of these files are included - compiler cannot locate c global signbit
function.

adri...@dluadrianc:~/gcc_bug g++ signbit.cc
signbit.cc: In function 'int main(int, char**)':
signbit.cc:18:42: error: 'signbit' was not declared in this scope

#include iostream
#include math.h
#include cmath

int main(int argc, char *argv[])
{
   float a=12.4234;
   float b=-123.4333;

#ifdef _XOPEN_SOURCE
   std::cout  _XOPEN_SOURCE=  _XOPEN_SOURCE  std::endl;
#endif

#ifdef _ISOC99_SOURCE
   std::cout  _ISOC99_SOURCE is here\n;
#endif

   std::cout  signbit a=  signbit(a)  std::endl;
   std::cout  signbit b=  signbit(b)  std::endl;

   return 0;
}


adri...@dluadrianc:~/gcc_bug gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/i686-pc-linux-gnu/4.5.0/lto-wrapper
Target: i686-pc-linux-gnu
Configured with: ../gcc-4.5.0/configure --enable-__cxa_atexit
--enable-languages=c,c++ --enable-threads --with-cpu=core2 --disable-nls
--with-arch=i686 --with-mpfr=/usr/local --with-gmp=/usr/local
--with-mpc=/usr/local --with-build-time-tools=/usr/local --enable-lto
Thread model: posix
gcc version 4.5.0 (GCC)


-- 
   Summary: Including math,h and cmath hides ::signbit function
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: minor
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: gnu at bluedreamer dot com
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


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



[Bug c++/44609] Invalid template code causes infinite loop of error messages

2010-06-21 Thread paolo dot carlini at oracle dot com


--- Comment #5 from paolo dot carlini at oracle dot com  2010-06-21 14:27 
---
There is a *huge* difference, because first we must be able to **reproduce**
what the submitter is reporting. I'm sure that Chris, long time contributor of
the C++ library, understands this basic, scientific method I would call it,
point.


-- 


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



[Bug c++/44611] Including math,h and cmath hides ::signbit function

2010-06-21 Thread gnu at bluedreamer dot com


--- Comment #1 from gnu at bluedreamer dot com  2010-06-21 14:31 ---
Created an attachment (id=20963)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20963action=view)
Source file


-- 


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



[Bug c++/44611] Including math,h and cmath hides ::signbit function

2010-06-21 Thread gnu at bluedreamer dot com


--- Comment #2 from gnu at bluedreamer dot com  2010-06-21 14:31 ---
Created an attachment (id=20964)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20964action=view)
--save-temps output .ii file


-- 


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



[Bug c++/44611] Including math,h and cmath hides ::signbit function

2010-06-21 Thread gnu at bluedreamer dot com


--- Comment #3 from gnu at bluedreamer dot com  2010-06-21 14:32 ---
Created an attachment (id=20965)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20965action=view)
--save-temps output .s file


-- 


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



[Bug fortran/44584] [4.6 Regression] gfortran.dg/typebound_proc_15.f03 failed

2010-06-21 Thread hjl dot tools at gmail dot com


--- Comment #9 from hjl dot tools at gmail dot com  2010-06-21 14:32 ---
Test starts to pass between revision 161046 and revision
161055 on Linux/ia64. Does anyone know which checkin fixes
this? This that a real fix?


-- 


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



[Bug c++/44609] Invalid template code causes infinite loop of error messages

2010-06-21 Thread chris at bubblescope dot net


--- Comment #6 from chris at bubblescope dot net  2010-06-21 14:35 ---
Of course, there is a big difference between an ICE and an infinite loop. Also,
bug which causes ICEs on one computer and not another need treating with great
care, as that suggests unpredictable memory corruption may be occurring.


-- 


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



[Bug c++/44611] Including math.h and cmath hides ::signbit function

2010-06-21 Thread paolo dot carlini at oracle dot com


--- Comment #4 from paolo dot carlini at oracle dot com  2010-06-21 14:44 
---
I don't think signbit is special: including *any* c* header first undefs the
names, thus if they are defined as macros in C, you don't see them anymore in
the global namespace, only in std::. If, on the other hand, your specific point
is one about the C99 classification macros, yes those are enabled by default,
can be disabled at library configure time with --disable-c99. In fact the issue
whether C99 facilities should be enabled by default in c++98 mode is a very old
one, you can find traces of it in bugzilla for sure, and now is definitely *way
too old* to change our decision, considering that all of that is standard in
c++0x, which is behind the corner.


-- 

paolo dot carlini at oracle dot com changed:

   What|Removed |Added

Summary|Including math,h and  |Including math.h and
   |cmath hides ::signbit |cmath hides ::signbit
   |function|function


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



[Bug fortran/40632] Support F2008's contiguous attribute

2010-06-21 Thread burnus at gcc dot gnu dot org


--- Comment #4 from burnus at gcc dot gnu dot org  2010-06-21 14:44 ---
FIXED on the trunk.  Related items: is_contiguous() intrinsic and DO CONCURRENT
construct.


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug libstdc++/44611] Including math.h and cmath hides ::signbit function

2010-06-21 Thread redi at gcc dot gnu dot org


--- Comment #5 from redi at gcc dot gnu dot org  2010-06-21 14:52 ---
But should std::signbit be available as ::signbit when math.h is included, at
least for c++0x mode?

[depr.c.headers]/2 says
Every C header, each of which has a name of the form name.h, behaves as if
each name placed in the standard library namespace by the corresponding cname
header is placed within the global namespace scope.

signbit is placed in namespace std by cmath which says to me that it should
be placed in the global namespace by math.h

(I'm still unsure whether the same applies to stddef.h and std::nullptr_t)


-- 

redi at gcc dot gnu dot org changed:

   What|Removed |Added

  Component|c++ |libstdc++


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



[Bug target/44546] [4.5/4.6 Regression] ICE in extract_insn, at recog.c:2103 with -ffast-math -Os (compiling graphviz)

2010-06-21 Thread uros at gcc dot gnu dot org


--- Comment #10 from uros at gcc dot gnu dot org  2010-06-21 14:52 ---
Subject: Bug 44546

Author: uros
Date: Mon Jun 21 14:52:07 2010
New Revision: 161085

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=161085
Log:
PR target/44546
* config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
New predicate.
* config/i386/i386.md (*fp_jcc_8mode_387 and splitters): Use
ix86_swapped_fp_comparsion_operator instead of
ix86_fp_comparison_operator.

(*fp_jcc_1_387): Rename from *fp_jcc_3_387.
(*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
(*fp_jcc_2_387): Rename from *fp_jcc_5_387.
(*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
(*fp_jcc_3_387): Rename from *fp_jcc_7_387.
(*fp_jcc_4_mode_387): Rename from *fp_jcc_8mode_387.

testsuite/ChangeLog:

PR target/44546
* gcc.target/i386/pr44546.c: New test.


Added:
branches/gcc-4_5-branch/gcc/testsuite/gcc.target/i386/pr44546.c
Modified:
branches/gcc-4_5-branch/gcc/ChangeLog
branches/gcc-4_5-branch/gcc/config/i386/i386.md
branches/gcc-4_5-branch/gcc/config/i386/predicates.md
branches/gcc-4_5-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug target/44546] [4.5/4.6 Regression] ICE in extract_insn, at recog.c:2103 with -ffast-math -Os (compiling graphviz)

2010-06-21 Thread ubizjak at gmail dot com


--- Comment #11 from ubizjak at gmail dot com  2010-06-21 14:53 ---
Fixed.


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug fortran/41137] inefficient zeroing of an array

2010-06-21 Thread burnus at gcc dot gnu dot org


--- Comment #7 from burnus at gcc dot gnu dot org  2010-06-21 15:02 ---
(In reply to comment #1)
 Just for reference, the difference in time between the two variants is truly
 impressive. About a factor of 11 with gcc 4.4 and 8 with gcc 4.5.

I get for the example the following values, note especially the newly added
CONTIGUOUS result:

  0.31601900 - assumed-shape
  0.21601403 - assumed-shape CONTIGUOUS 
  0.21601295  - explicit size (n,n,...)
  0.20801300  - explicit size (10,10,...)
  0.21601403  - explicit size (10*10*...)

Ignoring some measuring noise, assumed-shape is 46% (-O0) to 25% (-O3) slower
than explicit  size, but using the CONTIGUOUS attribute, the performance is
re-gained. I cannot reproduce the factor of 10 results, however. What surprises
me a bit is that -flto -fwhole-program does not reduce the speed penalty of
assumed-shape arrays.


-- 


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



[Bug middle-end/44612] New: -flto -fwhole-program: Never read variable not optimized away

2010-06-21 Thread burnus at gcc dot gnu dot org
Follow up to PR 41137.

Using the Intel compiler, the following program takes 0s for the loops (real
time: 0.005s); however, with
 gfortran -fdump-tree-original -fwhole-program -flto -ffast-math -march=native
-O3 cont.f90
GCC needs 1.142s.

Expected:
* GCC also optimizes the loops away if the variable a is never read (but only
set)


Removing the !! comments prevents ifort from optimizing the loops away; still
the performance is with (real time) 0.650s twice as good as the one of GCC.


-- 
   Summary: -flto -fwhole-program: Never read variable not optimized
away
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Keywords: missed-optimization
  Severity: normal
  Priority: P3
 Component: middle-end
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=44612



[Bug middle-end/44612] -flto -fwhole-program: Never read variable not optimized away

2010-06-21 Thread burnus at gcc dot gnu dot org


--- Comment #1 from burnus at gcc dot gnu dot org  2010-06-21 15:17 ---
Created an attachment (id=20966)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20966action=view)
Test case


-- 


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



[Bug fortran/41137] inefficient zeroing of an array

2010-06-21 Thread burnus at gcc dot gnu dot org


--- Comment #8 from burnus at gcc dot gnu dot org  2010-06-21 15:22 ---
(In reply to comment #7)
 I get for the example the following values, note especially the newly added
 CONTIGUOUS result:

For the test case, see attachment 20966 at PR 44612; that PR I have filled
because GCC does not optimize away the loops, which only set but never read the
value from the variable. (Ifort does this optimization.) Additionally, if one
prints the variable, ifort is twice as fast. For curiosity: Using NAG, the
timing is 0.690 vs. 1.220, i.e. the assumed-shape version is actually
faster [though, its overall the performance is poor].


-- 


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



[Bug libstdc++/44611] Including math.h and cmath hides ::signbit function

2010-06-21 Thread paolo dot carlini at oracle dot com


--- Comment #6 from paolo dot carlini at oracle dot com  2010-06-21 15:41 
---
To be honest, I have zero doubts about nullptr_t: nowhere 18.2 hints at
providing it in the global namespace, per se.

About signbit, if it's a macro in C it has to be undefined in order to
implement the cmath facility in c++0x, see 26.8/11. Really, I don't see how
the macro and the template can co-exist: The templates defined in cmath
replace the C macros with the same names and the templates are specified in
namespace std.

If, on the other hand, we are talking in general about the *.h headers, the
basic point of DR456, finally resolved, is that those headers very often come
together with the C library, over which many C++ library implementations have
***no control*** today (maybe back in the C++98 times people have some other
ideas about the interaction between C and C++ in typical platforms, I don't
know) Irrespective of the details of the resolution, that is the very important
gist of the resolution: implementors of the C++ library are supposed to not
have controls on the internals of the *.h C headers and for sure are not
supposed to add in facilities. If, in corner cases (*), that is still not clear
enough, maybe (other members of) the LWG can further clarify the matter, but
it's clear enough for me ;)

(*) In the past, we had one, that with memchr  co, which has been resolved by
Jakub at the C headers level because cstring could not be implemented
correctly otherwise. At some point I wanted to raise the issue in the LWG,
because, missing an ISO clarification, we forced in a glibc + v3 solution which
is contrary to the gist of 456.


-- 


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



[Bug c++/44613] New: Declaring an array with non-constant length inside a switch corrupts stack pointer.

2010-06-21 Thread mark dot haines at openmarket dot com
The following program compiles with g++ -O3 without errors or warnings but sets
crash at the first printf. It seems to zero the stack pointer before calling
printf.

- Begin switch-crash.ii
# 1 switch-crash.cpp
# 1 built-in
# 1 command-line
# 1 switch-crash.cpp
extern C int printf (__const char *__restrict __format, ...);

int f(int len) {
switch(1) {
case 1:
char x[len];
break;
}
printf(Done\n);
}

int main() {
f(1);
printf(Done\n);
}
-- End switch-crash.ii

Output of g++ -v:

Using built-in specs.
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.4.3-4ubuntu5'
--with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs
--enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared
--enable-multiarch --enable-linker-build-id --with-system-zlib
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls
--enable-clocale=gnu --enable-libstdcxx-debug --enable-plugin --enable-objc-gc
--disable-werror --with-arch-32=i486 --with-tune=generic
--enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu
--target=x86_64-linux-gnu
Thread model: posix
gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5)


-- 
   Summary:  Declaring an array with non-constant length inside a
switch corrupts stack pointer.
   Product: gcc
   Version: 4.4.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: mark dot haines at openmarket dot com
GCC target triplet: x86_64-linux-gnu


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



[Bug fortran/41137] inefficient zeroing of an array

2010-06-21 Thread jv244 at cam dot ac dot uk


--- Comment #9 from jv244 at cam dot ac dot uk  2010-06-21 15:49 ---
(In reply to comment #7)

 I cannot reproduce the factor of 10 results, however. 

Here this still is the case (so might depend on the precise architecture):

/data03/vondele/gcc_trunk/build/libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/f951
test.f90 -march=k8-sse3 -mcx16 -msahf --param l1-cache-size=64 --param
l1-cache-line-size=64 --param l2-cache-size=1024 -mtune=k8 -quiet -dumpbase
test.f90 -auxbase test -O3 -version -fintrinsic-modules-path
/data03/vondele/gcc_trunk/build/lib/gcc/x86_64-unknown-linux-gnu/4.6.0/finclude
-o /tmp/ccXsKXnD.s

 ./a.out
  0.10800600
   1.0520660


-- 


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



[Bug target/44364] Wrong code with e500 double floating point

2010-06-21 Thread Kyle dot D dot Moffett at boeing dot com


--- Comment #47 from Kyle dot D dot Moffett at boeing dot com  2010-06-21 
15:55 ---
(In reply to comment #41)
 Created an attachment (id=20877)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20877action=view) [edit]
 e500.h and caller-save.c patch
 
 The ICE in #38 is due to a bug in caller-save.c

We've basically rebuilt everything in the PowerPCSPE Debian port now, and as
far as I can tell all of the test-cases affected by this bug are fixed by your
attachment 20877 (pr44364.diff).  Now that we've gotten further, Sebastian has
identified a new floating point bug (PR44606), but I believe we can call this
one closed.

Again, many thanks for all your help!

Cheers,
Kyle Moffett


-- 


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



[Bug libstdc++/44611] Including math.h and cmath hides ::signbit function

2010-06-21 Thread paolo dot carlini at oracle dot com


--- Comment #8 from paolo dot carlini at oracle dot com  2010-06-21 16:02 
---
To be clear: I'm against fiddling with *.h headers, basing on DR456. If you
want to do that, for each C library we support, good luck, but I'm not going to
help, sorry.

And note that appendix D talks about *the C .h headers*, thus anything you do
in the global namespace has to happen via a C *.h header.


-- 


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



[Bug libstdc++/44611] Including math.h and cmath hides ::signbit function

2010-06-21 Thread redi at gcc dot gnu dot org


--- Comment #7 from redi at gcc dot gnu dot org  2010-06-21 15:56 ---
(In reply to comment #6)
 To be honest, I have zero doubts about nullptr_t: nowhere 18.2 hints at
 providing it in the global namespace, per se.

[depr.c.headers]/3
The header stdlib.h assuredly provides the same declarations and definitions
within the global namespace

Note the same declarations, not the subset of declarations defined in the C
standard

 About signbit, if it's a macro in C it has to be undefined in order to
 implement the cmath facility in c++0x, see 26.8/11. Really, I don't see how
 the macro and the template can co-exist: The templates defined in cmath
 replace the C macros with the same names and the templates are specified in
 namespace std.

I agree the macro and template can't co-exist, but the template could be
available as both std::signbit and ::signbit, and I think that's required by
appendix D.

I agree this isn't ideal, and DR456 tried to help, I don't think DR456 goes far
enough in relaxing the requirements on implementations.


-- 


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



[Bug c++/44611] Including math.h and cmath hides ::signbit function

2010-06-21 Thread gnu at bluedreamer dot com


--- Comment #9 from gnu at bluedreamer dot com  2010-06-21 16:07 ---
 I agree the macro and template can't co-exist, but the template could be
 available as both std::signbit and ::signbit, and I think that's required by
 appendix D.

Are these still relevant for c++0x? More so section 5 which says if they are
macros in C they must be macros in C++

17.4.1.2 Headers
4. Except as noted in clauses 18 through 27, the contents of each header cname
shall be the same as that of the corresponding header name.h, as specified in
ISO/IEC 9899:1990 Programming Languages C (Clause 7), or ISO/IEC:1990
Programming Languages—C AMENDMENT 1: C Integrity, (Clause 7), as appropriate,
as if by inclusion. In the C++ Standard Library, however, the declarations and
definitions (except for names which are defined as macros in C) are within
namespace scope (3.3.5) of the namespace std.

5. Names which are defined as macros in C shall be defined as macros in the C++
Standard Library, even if C grants license for implementation as functions.
[Note: the names defined as macros in C include the following: assert, errno,
offsetof, setjmp, va_arg, va_end, and va_start. —end note]


-- 

gnu at bluedreamer dot com changed:

   What|Removed |Added

  Component|libstdc++   |c++


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



[Bug c++/44611] Including math.h and cmath hides ::signbit function

2010-06-21 Thread redi at gcc dot gnu dot org


--- Comment #10 from redi at gcc dot gnu dot org  2010-06-21 16:12 ---
(In reply to comment #9)
 Are these still relevant for c++0x? More so section 5 which says if they are
 macros in C they must be macros in C++

see 26.8 [c.math] paragraph 11


-- 


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



[Bug c++/44611] Including math.h and cmath hides ::signbit function

2010-06-21 Thread gnu at bluedreamer dot com


--- Comment #11 from gnu at bluedreamer dot com  2010-06-21 16:20 ---
(In reply to comment #10)
 (In reply to comment #9)
  Are these still relevant for c++0x? More so section 5 which says if they are
  macros in C they must be macros in C++
 
 see 26.8 [c.math] paragraph 11

Thanks. I should probably start using the draft rather then my dusty old 14882
copy.


-- 


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



[Bug c++/44613] Declaring an array with non-constant length inside a switch corrupts stack pointer.

2010-06-21 Thread redi at gcc dot gnu dot org


--- Comment #1 from redi at gcc dot gnu dot org  2010-06-21 16:22 ---
(In reply to comment #0)
 The following program compiles with g++ -O3 without errors or warnings

Not with warnings enabled it doesn't!


-- 


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



[Bug bootstrap/44426] [4.4/4.5/4.6 Regression] gcc 4.5.0 requires c9x compiler to build

2010-06-21 Thread jakub at gcc dot gnu dot org


--- Comment #14 from jakub at gcc dot gnu dot org  2010-06-21 16:27 ---
Subject: Bug 44426

Author: jakub
Date: Mon Jun 21 16:26:25 2010
New Revision: 161092

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=161092
Log:
PR bootstrap/44426
* sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
prototype.
(sel_print_to_dot): Remove macro.
(sel_print): Likewise.  New prototype.
* sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
(sel_print): New function.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/sel-sched-dump.c
trunk/gcc/sel-sched-dump.h


-- 


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



[Bug c++/44611] Including math.h and cmath hides ::signbit function

2010-06-21 Thread redi at gcc dot gnu dot org


--- Comment #12 from redi at gcc dot gnu dot org  2010-06-21 16:28 ---
Is there a reason you changed the component back to c++?
This is not a problem in the C++ compiler front-end.


-- 


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



[Bug c++/44611] Including math.h and cmath hides ::signbit function

2010-06-21 Thread gnu at bluedreamer dot com


--- Comment #13 from gnu at bluedreamer dot com  2010-06-21 16:31 ---
(In reply to comment #12)
 Is there a reason you changed the component back to c++?
 This is not a problem in the C++ compiler front-end.
 
I didn't mean to change anything. All I did was reply (maybe browser cached
some post back values)

My apologies - please change it to whatever it should be.


-- 


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



[Bug target/44575] [4.5/4.6 Regression] __builtin_va_arg overwrites into adjacent stack location

2010-06-21 Thread jakub at gcc dot gnu dot org


--- Comment #4 from jakub at gcc dot gnu dot org  2010-06-21 16:34 ---
Subject: Bug 44575

Author: jakub
Date: Mon Jun 21 16:33:49 2010
New Revision: 161097

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=161097
Log:
PR target/44575
* config/i386/i386.c (ix86_gimplify_va_arg): When copying
va_arg from a set of register save slots into a temporary,
if the container is bigger than type size, do the copying
using smaller mode or using memcpy.

* gcc.c-torture/execute/pr44575.c: New test.

Added:
trunk/gcc/testsuite/gcc.c-torture/execute/pr44575.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/i386.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug fortran/44614] New: [OOP] Wrongly importing a symbol into an interface without IMPORT

2010-06-21 Thread burnus at gcc dot gnu dot org
Based on a report by bd satish at
http://gcc.gnu.org/ml/fortran/2010-06/msg00210.html

The following program is invalid as IMPORT is missing, but gfortran still
compiles it:

Expected: An error such as:
  Error: line 12: SELF is of undefined derived type CONNECTION
or
  error #6457: This derived type name has not been declared.   [CONNECTION]


module factory_pattern
implicit none

type, abstract :: Connection
contains
procedure(generic_desc), deferred :: description
end type Connection

abstract interface
subroutine generic_desc(self)
!import
class(Connection) :: self
end subroutine generic_desc
end interface
end module factory_pattern


-- 
   Summary: [OOP] Wrongly importing a symbol into an interface
without IMPORT
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Keywords: accepts-invalid, diagnostic
  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=44614



[Bug target/44615] New: -mtune=atom failed on sse2-vec-2.c and amd64-abi-3.c

2010-06-21 Thread hjl dot tools at gmail dot com
On Linux/x86-64, I got

FAIL: gcc.target/i386/amd64-abi-3.c scan-assembler subq[\\t ]*\\$88,[\\t ]*%rsp
FAIL: gcc.target/i386/sse2-vec-2.c (internal compiler error)
FAIL: gcc.target/i386/sse2-vec-2.c (test for excess errors)

with -mtune=atom.


-- 
   Summary: -mtune=atom failed on sse2-vec-2.c and amd64-abi-3.c
   Product: gcc
   Version: 4.4.5
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hjl dot tools at gmail dot com


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



[Bug target/44615] -mtune=atom failed on sse2-vec-2.c and amd64-abi-3.c

2010-06-21 Thread hjl dot tools at gmail dot com


--- Comment #1 from hjl dot tools at gmail dot com  2010-06-21 16:42 ---
(In reply to comment #0)
 FAIL: gcc.target/i386/amd64-abi-3.c scan-assembler subq[\\t ]*\\$88,[\\t 
 ]*%rsp

This is due to -mtune=atom generates:

leaq-88(%rsp), %rsp

instead of

subq$88, %rsp


-- 

hjl dot tools at gmail dot com changed:

   What|Removed |Added

Summary|-mtune=atom failed on sse2- |-mtune=atom failed on sse2-
   |vec-2.c and amd64-abi-3.c   |vec-2.c and amd64-abi-3.c


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



[Bug fortran/44616] New: [OOP] ICE if CLASS(foo) is used before its definition

2010-06-21 Thread burnus at gcc dot gnu dot org
Reported by bd satish at http://gcc.gnu.org/ml/fortran/2010-06/msg00210.html

For the program, gfortran ICEs with:
  f951: internal compiler error: in find_typebound_proc_uop, at
  fortran/class.c:660

The failing assert is:
  gcc_assert (derived-f2k_derived);

Note: The original test case (see link) misses an IMPORT, cf. PR 44614.

The additional derived type is required -- and for the ICE it needs to come
before the actual definition, otherwise, it works.

module factory_pattern
implicit none

type First_Factory
character(len=20) :: factory_type
class(Connection), pointer :: connection_type
contains
end type First_Factory

type, abstract :: Connection
contains
procedure(generic_desc), deferred :: description
end type Connection

abstract interface
subroutine generic_desc(self)
import  ! Required, cf. PR 44614
class(Connection) :: self
end subroutine generic_desc
end interface
end module factory_pattern


-- 
   Summary: [OOP] ICE if CLASS(foo) is used before its definition
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Keywords: ice-on-valid-code
  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=44616



[Bug fortran/44614] [OOP] Wrongly importing a symbol into an interface without IMPORT

2010-06-21 Thread burnus at gcc dot gnu dot org


--- Comment #1 from burnus at gcc dot gnu dot org  2010-06-21 16:44 ---
Cf. also PR 44616 for the ICE reported at the mailing list.


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||janus at gcc dot gnu dot org


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



[Bug target/44615] -mtune=atom failed on sse2-vec-2.c and amd64-abi-3.c

2010-06-21 Thread hjl dot tools at gmail dot com


--- Comment #2 from hjl dot tools at gmail dot com  2010-06-21 16:45 ---
(In reply to comment #0)
 FAIL: gcc.target/i386/sse2-vec-2.c (internal compiler error)
 FAIL: gcc.target/i386/sse2-vec-2.c (test for excess errors)

I got

/export/build/gnu/gcc-atom/build-x86_64-linux/gcc/xgcc
-B/export/build/gnu/gcc-atom/build-x86_64-linux/gcc/
/export/gnu/import/git/gcc/gcc/testsuite/gcc.target/i386/sse2-vec-2.c   -O2
-msse2 -mtune=atom
In file included from
/export/gnu/import/git/gcc/gcc/testsuite/gcc.target/i386/sse2-vec-2.c:5:0:
/export/gnu/import/git/gcc/gcc/testsuite/gcc.target/i386/sse2-check.h: In
function ‘do_test’:
/export/gnu/import/git/gcc/gcc/testsuite/gcc.target/i386/sse2-check.h:12: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.

The problem is

;; if palignr or psrldq
(define_insn_reservation  atom_sseishft_2 1
  (and (eq_attr cpu atom)
   (and (eq_attr type sseishft)
(and (eq_attr atom_unit sishuf)
 (match_operand 2 immediate_operand
  atom-simple-0)

;; if reg/mem op
(define_insn_reservation  atom_sseishft_3 2
  (and (eq_attr cpu atom)
   (and (eq_attr type sseishft)
(not (match_operand 2 immediate_operand
  atom-complex, atom-all-eu)

in atom.md. Some patterns, which generate psrldq, don't
have the 3rd operand as shift count.


-- 


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



[Bug c++/44613] Declaring an array with non-constant length inside a switch corrupts stack pointer.

2010-06-21 Thread manu at gcc dot gnu dot org


--- Comment #2 from manu at gcc dot gnu dot org  2010-06-21 16:45 ---
(In reply to comment #1)
 (In reply to comment #0)
  The following program compiles with g++ -O3 without errors or warnings
 
 Not with warnings enabled it doesn't!
 

???


-- 

manu at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||manu at gcc dot gnu dot org


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



[Bug c++/44613] Declaring an array with non-constant length inside a switch corrupts stack pointer.

2010-06-21 Thread mark dot haines at openmarket dot com


--- Comment #3 from mark dot haines at openmarket dot com  2010-06-21 16:47 
---
(In reply to comment #1)
 (In reply to comment #0)
  The following program compiles with g++ -O3 without errors or warnings
 
 Not with warnings enabled it doesn't!
 

Sorry,

g++ -O3 -Wall -Wextra switch-crash.cpp gives:

switch-crash.cpp: In function ‘int f(int)’:
switch-crash.cpp:6: warning: unused variable ‘x’
switch-crash.cpp:10: warning: no return statement in function returning
non-void
switch-crash.cpp:7: warning: ‘saved_stack.1’ is used uninitialized in this
function

The ‘saved_stack.1’ is somewhat suspicious. 


-- 


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



[Bug c++/44613] Declaring an array with non-constant length inside a switch corrupts stack pointer.

2010-06-21 Thread manu at gcc dot gnu dot org


--- Comment #4 from manu at gcc dot gnu dot org  2010-06-21 16:51 ---
(In reply to comment #3)
 (In reply to comment #1)
  (In reply to comment #0)
   The following program compiles with g++ -O3 without errors or warnings
  
  Not with warnings enabled it doesn't!
  
 
 Sorry,
 
 g++ -O3 -Wall -Wextra switch-crash.cpp gives:
 
 switch-crash.cpp: In function ‘int f(int)’:
 switch-crash.cpp:6: warning: unused variable ‘x’
 switch-crash.cpp:10: warning: no return statement in function returning
 non-void

If you add return 0 after the printf, this warning is silenced and it still
crashes (it crashes for me even at -O0).

 switch-crash.cpp:7: warning: ‘saved_stack.1’ is used uninitialized in this
 function
 
 The ‘saved_stack.1’ is somewhat suspicious. 

It is a bug anyway, because internal variables should never be warned.


-- 

manu at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-06-21 16:51:06
   date||


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



[Bug fortran/41137] inefficient zeroing of an array

2010-06-21 Thread burnus at gcc dot gnu dot org


--- Comment #10 from burnus at gcc dot gnu dot org  2010-06-21 17:00 ---
(In reply to comment #9)
 (In reply to comment #7)
  I cannot reproduce the factor of 10 results, however. 
 Here this still is the case (so might depend on the precise architecture):

OK, I was using -fwhole-file out of habit - thus the difference is that small
(all optimization levels, including -O0). Otherwise, I also get the same
factor-of-10 difference. If one splits it in two files, one needs to use -O3
-flto to get a fast program.

For comparison, using two files, ifort also shows a factor of 2 to 5 difference
(and is at -O0 ten times slower than gfortran; at -O2 it is twice as fast as
gfortran).


-- 


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



[Bug bootstrap/44426] [4.4/4.5/4.6 Regression] gcc 4.5.0 requires c9x compiler to build

2010-06-21 Thread jakub at gcc dot gnu dot org


--- Comment #15 from jakub at gcc dot gnu dot org  2010-06-21 17:07 ---
Subject: Bug 44426

Author: jakub
Date: Mon Jun 21 17:06:48 2010
New Revision: 161100

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=161100
Log:
PR bootstrap/44426
* sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
prototype.
(sel_print_to_dot): Remove macro.
(sel_print): Likewise.  New prototype.
* sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
(sel_print): New function.

Modified:
branches/gcc-4_5-branch/gcc/ChangeLog
branches/gcc-4_5-branch/gcc/sel-sched-dump.c
branches/gcc-4_5-branch/gcc/sel-sched-dump.h


-- 


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



[Bug bootstrap/44426] [4.4/4.5/4.6 Regression] gcc 4.5.0 requires c9x compiler to build

2010-06-21 Thread jakub at gcc dot gnu dot org


--- Comment #16 from jakub at gcc dot gnu dot org  2010-06-21 17:11 ---
Subject: Bug 44426

Author: jakub
Date: Mon Jun 21 17:10:02 2010
New Revision: 161102

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=161102
Log:
PR bootstrap/44426
* sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
prototype.
(sel_print_to_dot): Remove macro.
(sel_print): Likewise.  New prototype.
* sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
(sel_print): New function.

Modified:
branches/gcc-4_4-branch/gcc/ChangeLog
branches/gcc-4_4-branch/gcc/sel-sched-dump.c
branches/gcc-4_4-branch/gcc/sel-sched-dump.h


-- 


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



[Bug bootstrap/44426] [4.4/4.5/4.6 Regression] gcc 4.5.0 requires c9x compiler to build

2010-06-21 Thread jakub at gcc dot gnu dot org


--- Comment #17 from jakub at gcc dot gnu dot org  2010-06-21 17:20 ---
Should be fixed now.


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug target/44615] -mtune=atom failed on sse2-vec-2.c and amd64-abi-3.c

2010-06-21 Thread hjl dot tools at gmail dot com


--- Comment #3 from hjl dot tools at gmail dot com  2010-06-21 17:23 ---
A patch is posted at

http://gcc.gnu.org/ml/gcc-patches/2010-06/msg02058.html


-- 

hjl dot tools at gmail dot com changed:

   What|Removed |Added

URL||http://gcc.gnu.org/ml/gcc-
   ||patches/2010-
   ||06/msg02058.html


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



[Bug fortran/41137] inefficient zeroing of an array

2010-06-21 Thread jakub at gcc dot gnu dot org


--- Comment #11 from jakub at gcc dot gnu dot org  2010-06-21 17:43 ---
What's the reason why gfc_trans_zero_assign insists that len is INTEGER_CST?
At least if it is contiguous (and not assumed size), why can't memset be used
even for non-constant sizes?


-- 


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



  1   2   >