[Bug target/41176] [4.4/4.5 Regression] ICE in reload_cse_simplify_operands at postreload.c:396

2009-10-08 Thread jakub at gcc dot gnu dot org


--- Comment #7 from jakub at gcc dot gnu dot org  2009-10-08 07:43 ---
Created an attachment (id=18748)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18748action=view)
pr41176.i

Smaller testcase for 4.4 branch.  ICEs with -m64 -O1 -fschedule-insns -fwrapv.


-- 


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



[Bug fortran/41627] mixing common and modules elicits seg fault

2009-10-08 Thread burnus at gcc dot gnu dot org


--- Comment #5 from burnus at gcc dot gnu dot org  2009-10-08 07:47 ---
Backtrace (of comment 3) using an older GCC 4.5 (20090526):
#0  0x00549453 in gfc_trans_pointer_assignment (expr1=0x12d8ea0,
expr2=0x12d3b80)
at /home/tob/projects/gcc-trunk-checkout/gcc/fortran/trans-expr.c:4117
#1  0x0052b2f8 in gfc_trans_code (code=0x12d3c50) at
/home/tob/projects/gcc-trunk-checkout/gcc/fortran/trans.c:1072
#2  0x00543b45 in gfc_generate_function_code (ns=0x12d00b0) at
/home/tob/projects/gcc-trunk-checkout/gcc/fortran/trans-decl.c:4153


-- 


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



[Bug fortran/41629] New: [OOP] gimplification error on valid code

2009-10-08 Thread janus at gcc dot gnu dot org
The following code results in a gimplication error:

 type t1
   integer :: comp
 end type

 type(t1), target :: a

 class(t1) :: x
 pointer :: x

 a%comp = 3
 x = a
 print *,x%comp

end


The problem here is that 'encapsulate_class_symbol' is called too early (i.e.
before the symbol has acquired the pointer attribute). Solution:
encapsulate_class_symbol must be called at resolution stage.


-- 
   Summary: [OOP] gimplification error on valid code
   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=41629



[Bug middle-end/22072] bizarre code for int*int/2 for -Os

2009-10-08 Thread ubizjak at gmail dot com


--- Comment #16 from ubizjak at gmail dot com  2009-10-08 08:17 ---
Vlad, is it OK if I backport this patch to 4.4? I have tested it on 4.4 without
problems.


-- 


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



[Bug fortran/41627] mixing common and modules elicits seg fault

2009-10-08 Thread dominiq at lps dot ens dot fr


--- Comment #6 from dominiq at lps dot ens dot fr  2009-10-08 08:43 ---
The use of common in the context of this PR badly hurts my understanding of
commons: storage arrays computed at compile time. The standard says (f2008):

5.7.2 COMMON statement

5.7.2.1 General

1 The COMMON statement specifies blocks of physical storage, called common
  blocks, that can be accessed by any of the scoping units in a program.
  Thus, the COMMON statement provides a global data facility based on
  storage association (16.5.3).

2 A common block that does not have a name is called blank common.

  R568 common-stmt is COMMON
  [ / [ common-block-name ] / ] common-block-object-list
  [ [ , ] / [ common-block-name ] /
  common-block-object-list ] ...

R569 common-block-object is variable-name [ ( array-spec ) ]
or proc-pointer-name

C595 (R569) An array-spec in a common-block-object shall be an
explicit-shape-spec-list.

C596 (R569) Only one appearance of a given variable-name or
proc-pointer-name is permitted in all common-block-object-lists within a
scoping unit.

C597 (R569) A common-block-object shall not be a dummy argument, a result
variable, an allocatable variable, a derived-type object with an ultimate
component that is allocatable, an automatic object, a variable with the
BIND attribute, an unlimited polymorphic pointer, or a coarray.

C598 (R569) If a common-block-object is of a derived type, the type shall
have the BIND attribute or the SEQUENCE attribute and it shall have no
default initialization.

C599 (R569) A variable-name or proc-pointer-name shall not be a name made
accessible by use association.

5.3.8.2 Explicit-shape array

R516 explicit-shape-spec is [ lower-bound : ] upper-bound
R517 lower-bound is specification-expr
R518 upper-bound is specification-expr

C531 (R516) An explicit-shape-spec whose bounds are not constant
expressions shall appear only in a subprogram, derived type definition,
or interface body.

1 An explicit-shape array is an array whose shape is explicitly declared by
  an explicit-shape-spec-list.  The rank is equal to the number of
  explicit-shape-specs.

2 An explicit-shape array that is a named local variable of a subprogram or
  BLOCK construct may have bounds that are not constant expressions.  The
  bounds, and hence shape, are determined at entry to a procedure de ned by
  the subprogram, or on execution of the BLOCK statement, by evaluating the
  bounds' expressions.  The bounds of such an array are una ected by the
  rede nition or unde nition of any variable during execution of the
  procedure or BLOCK construct.

3 The values of each lower-bound and upper-bound determine the bounds of
  the array along a particular dimension and hence the extent of the array
  in that dimension.  If lower-bound appears it speci es the lower bound;
  otherwise the lower bound is 1.  The value of a lower bound or an upper
  bound may be positive, negative, or zero.  The subscript range of the
  array in that dimension is the set of integer values between and
  including the lower and upper bounds, provided the upper bound is not
  less than the lower bound.  If the upper bound is less than the lower
  bound, the range is empty, the extent in that dimension is zero, and the
  array is of zero size.

1 1.3.10
automatic data object
automatic object

nondummy data object with a type parameter or array bound that depends on
the value of a speci cation-expr that is not an constant expression

I cannot see how 

real, pointer, dimension(:) :: ro

can defines an explicit-shape array or a non-automatic object. So is the use of
common in this PR valid or not?

Note that if C595 or C597 applies, the burden is probably on the compiler.


-- 


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



[Bug libstdc++/41628] _GLIBCXX_DEBUG feature: check for unstable iterators

2009-10-08 Thread paolo dot carlini at oracle dot com


-- 

paolo dot carlini at oracle dot com changed:

   What|Removed |Added

   Severity|normal  |enhancement


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



[Bug libstdc++/41628] _GLIBCXX_DEBUG feature: check for unstable iterators

2009-10-08 Thread redi at gcc dot gnu dot org


--- Comment #1 from redi at gcc dot gnu dot org  2009-10-08 09:42 ---
set::insert never invalidates iterators, so that's not a good example.
set::erase invalidates iterators pointing to erased elements, but debug mode
already catches that.

One problem I see with this request is that when debug mode detects a problem
it aborts the program.  If I understand your request correctly, it would mean
that programs could abort when they haven't done anything wrong, e.g. 
std::setint s;
std::setint::iterator i = s.insert(5);
s.erase(2);
return *i;
The erase call would have updated the mutation count so it no longer matches
the iterator's mutation count, but the program is correct so why should it
abort?

If I've misunderstood, could you give an example of problems you want to solve?


-- 

redi at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||jwakely dot gcc at gmail dot
   ||com


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



[Bug libstdc++/41628] _GLIBCXX_DEBUG feature: check for unstable iterators

2009-10-08 Thread redi at gcc dot gnu dot org


--- Comment #2 from redi at gcc dot gnu dot org  2009-10-08 09:43 ---
(In reply to comment #1)
 std::setint::iterator i = s.insert(5);
Oops, that should be 
std::setint::iterator i = s.insert(5).first;


-- 


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



[Bug bootstrap/41620] [4.5 regression] Bootstrap failure

2009-10-08 Thread hubicka at gcc dot gnu dot org


--- Comment #3 from hubicka at gcc dot gnu dot org  2009-10-08 10:07 ---
Subject: Bug 41620

Author: hubicka
Date: Thu Oct  8 10:06:52 2009
New Revision: 152556

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=152556
Log:
PR bootstrap/41620
* ipa.c (cgraph_externally_visible_p,
function_and_variable_visibility,
whole_program_function_and_variable_visibility): Skip non-finalized
nodes.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/ipa.c


-- 


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



[Bug c++/41619] ICE in insert_save (caller-save.c) for SPEC CPU2000's 252.eon

2009-10-08 Thread kenneth dot hoste at elis dot ugent dot be


--- Comment #2 from kenneth dot hoste at elis dot ugent dot be  2009-10-08 
10:47 ---
Created an attachment (id=18749)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18749action=view)
Fortran testcase

Turns out the same error message occurs with SPEC CPU2000's 178.galgel, more
specifically when compiling the lapak.f90 file using one of the following flag
combinations:

-O1 -fno-ira-share-save-slots -fcaller-saves -ffixed-form 
-O2 -fno-ira-share-save-slots -ffixed-form 
-O3 -fno-ira-share-save-slots -ffixed-form 
-Os -fno-ira-share-save-slots -ffixed-form 

A testcase reduced mainly with delta is attached. To reproduce the error, just
use:

gfortran -O2 -fno-ira-share-save-slots -ffixed-form testcase.f90


-- 


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



[Bug fortran/31593] Invariant DO loop variables and subroutines

2009-10-08 Thread steven at gcc dot gnu dot org


--- Comment #42 from steven at gcc dot gnu dot org  2009-10-08 11:06 ---
Add Matz, following comment #40.  Micha, maybe you can open a separate bug
report for the issues you mention in your mail
(http://gcc.gnu.org/ml/fortran/2009-08/msg00200.html) and make that new PR
block this existing one?


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||matz at gcc dot gnu dot org
   Last reconfirmed|2009-08-13 13:39:23 |2009-10-08 11:06:55
   date||


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



[Bug middle-end/31094] Support annotating function parameters as read-only and/or non-escaping

2009-10-08 Thread matz at gcc dot gnu dot org


--- Comment #4 from matz at gcc dot gnu dot org  2009-10-08 11:23 ---
We're (slowly) working on this.


-- 

matz at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||matz at gcc dot gnu dot org
 AssignedTo|unassigned at gcc dot gnu   |matz at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2009-04-22 23:14:03 |2009-10-08 11:23:04
   date||


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



[Bug fortran/31593] Invariant DO loop variables and subroutines

2009-10-08 Thread matz at gcc dot gnu dot org


--- Comment #43 from matz at gcc dot gnu dot org  2009-10-08 11:24 ---
There already is PR31094 about this enhancement.


-- 

matz at gcc dot gnu dot org changed:

   What|Removed |Added

  BugsThisDependsOn||31094


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



[Bug middle-end/31094] Support annotating function parameters as read-only and/or non-escaping

2009-10-08 Thread matz at gcc dot gnu dot org


--- Comment #5 from matz at gcc dot gnu dot org  2009-10-08 11:26 ---
See also my mail http://gcc.gnu.org/ml/fortran/2009-08/msg00200.html
about this issue.


-- 


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



[Bug middle-end/41626] [4.5 Regression] GCC does not bootstrap on powerpc64

2009-10-08 Thread danglin at gcc dot gnu dot org


--- Comment #6 from danglin at gcc dot gnu dot org  2009-10-08 13:10 ---
Bootstrap also fails on armv5tejl-unknown-linux-gnueabi:

build/gensupport.o:(.data+0x20): undefined reference to `obstack'


-- 

danglin at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug fortran/41627] mixing common and modules elicits seg fault

2009-10-08 Thread dh458 at oakapple dot net


--- Comment #7 from dh458 at oakapple dot net  2009-10-08 13:23 ---
Subject: Re:  mixing common and modules elicits seg fault

 The use of common in the context of this PR badly hurts my understanding of
commons: storage arrays computed at compile time.

For better or worse, the Sun Studio 12 Update 1 compiler compiles the
reduced test case without comment and executes it without complaint.

Whether this particular code would ever actually be good for anything is
another matter. While hacking blindly I got gfortran to core dump on it.


-- 


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



[Bug target/41176] [4.4/4.5 Regression] ICE in reload_cse_simplify_operands at postreload.c:396

2009-10-08 Thread jakub at gcc dot gnu dot org


--- Comment #8 from jakub at gcc dot gnu dot org  2009-10-08 13:33 ---
This is on (set (reg:DF X) (mem:DF ((plus:DI (reg:DI Y) (const_int 3.
When X is still a pseudo, this is considered valid, as lfd accept any offset,
but when RA chooses to assign X to a GPR register, the address doesn't match
the Y constraint in movdf_hardfloat64.  Is this a bug in reload that it doesn't
attempt to force the address into a register, or in target description that it
should tell reload to do so somehow?  Or does the backend need to be able to
handle these, perhaps by forcing splitting of it?
ld X,disp(Y) for (disp  3) != 0 could be splitted into addi X,Y,disp;ld
X,0(X),
for std X,disp(Y), (disp  3) != 0 if X != Y perhaps addi Y,Y,disp;std
X,0(Y);adddi Y,Y,-disp but for std X,disp(Y) I have no idea if there are no
scratch regs available.


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||uweigand at gcc dot gnu dot
   ||org


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



[Bug c/41630] New: Optimization error on vectors of uint64_t

2009-10-08 Thread emanuele dot cesena at gmail dot com
System.
Fedora 11 - Linux 2.6.30.8-64.fc11.x86_64 #1 SMP
gcc-4.4.1, Release: 2.fc11 (Fedora's package)


Problem in short.
definitions:
  typedef uint64_t obj[1];
obj x0, x1, X[2];
then the following code doesn't work:
  X[0][0] = x0[0];
  X[1][0] = x1[0];
while this works:
  *X[0] = *x0;
  *X[1] = *x1;
(As far as I know these are equivalent).
Problem only with -O3 and 64-bit code.
Works perfectly at least with gcc34, -O2 and/or 32-bit code.


Detailed information.

The program gcc-bug.c compiled as
  gcc -Wall -O3 -o gcc-bug gcc-bug.c
produce the following (wrong) output:
(1) x0 = 12345
(1) x1 = 67890
(2) x0 = 12345
(2) x1 = 4195296
instead of the correct one:
(1) x0 = 12345
(1) x1 = 67890
(2) x0 = 12345
(2) x1 = 67890

In attachment gcc-bug.c and gcc-bug.i, generated with -v -save-temps.


-- 
   Summary: Optimization error on vectors of uint64_t
   Product: gcc
   Version: 4.4.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: emanuele dot cesena at gmail dot com


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



[Bug c/41630] Optimization error on vectors of uint64_t

2009-10-08 Thread emanuele dot cesena at gmail dot com


--- Comment #1 from emanuele dot cesena at gmail dot com  2009-10-08 13:50 
---
Created an attachment (id=18750)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18750action=view)
source


-- 


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



[Bug c/41630] Optimization error on vectors of uint64_t

2009-10-08 Thread emanuele dot cesena at gmail dot com


--- Comment #2 from emanuele dot cesena at gmail dot com  2009-10-08 13:51 
---
Created an attachment (id=18751)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18751action=view)
preprocessed file


-- 


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



[Bug c/41630] Optimization error on vectors of uint64_t

2009-10-08 Thread paolo dot carlini at oracle dot com


--- Comment #3 from paolo dot carlini at oracle dot com  2009-10-08 14:16 
---
Whatever it is, doesn't happen in mainline.


-- 


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



[Bug middle-end/41626] [4.5 Regression] GCC does not bootstrap on powerpc64

2009-10-08 Thread hubicka at ucw dot cz


--- Comment #7 from hubicka at ucw dot cz  2009-10-08 14:18 ---
Subject: Re:  [4.5 Regression] GCC does not bootstrap on powerpc64

Hi,
the following patch should fix the problem.  I am
bootstrapping/regtesting it at x86_64-linux, but it would be nice to
know if it actually fixes the bootstrap. It does work on reduced
testcase for me.

Honza

* cgraphbuild.c (record_reference): When parameter DATA is NULL,
do not mark cgraph nodes as needed.
(record_references_in_initializer): Add new only_vars parameter.
* cgraph.h (record_references_in_initializer): New parameter.
* varasm.c (assemble_variable): Update call.
* varpool.c (varpool_analyze_pending_decls): Always look for
referenced vars.
Index: cgraphbuild.c
===
--- cgraphbuild.c   (revision 152557)
+++ cgraphbuild.c   (working copy)
@@ -33,13 +33,16 @@ along with GCC; see the file COPYING3.  
 #include tree-pass.h

 /* Walk tree and record all calls and references to functions/variables.
-   Called via walk_tree: TP is pointer to tree to be examined.  */
+   Called via walk_tree: TP is pointer to tree to be examined.  
+   When DATA is non-null, record references to callgraph.
+   */

 static tree
-record_reference (tree *tp, int *walk_subtrees, void *data ATTRIBUTE_UNUSED)
+record_reference (tree *tp, int *walk_subtrees, void *data)
 {
   tree t = *tp;
   tree decl;
+  bool do_callgraph = data != NULL;

   switch (TREE_CODE (t))
 {
@@ -57,7 +60,7 @@ record_reference (tree *tp, int *walk_su
   /* Record dereferences to the functions.  This makes the
 functions reachable unconditionally.  */
   decl = TREE_OPERAND (*tp, 0);
-  if (TREE_CODE (decl) == FUNCTION_DECL)
+  if (TREE_CODE (decl) == FUNCTION_DECL  do_callgraph)
cgraph_mark_address_taken_node (cgraph_node (decl));
   break;

@@ -218,13 +221,15 @@ struct gimple_opt_pass pass_build_cgraph
 };

 /* Record references to functions and other variables present in the
-   initial value of DECL, a variable.  */
+   initial value of DECL, a variable.  
+   When ONLY_VARS is true, we mark needed only variables, not functions.  */

 void
-record_references_in_initializer (tree decl)
+record_references_in_initializer (tree decl, bool only_vars)
 {
   struct pointer_set_t *visited_nodes = pointer_set_create ();
-  walk_tree (DECL_INITIAL (decl), record_reference, NULL, visited_nodes);
+  walk_tree (DECL_INITIAL (decl), record_reference, 
+only_vars ? NULL : decl, visited_nodes);
   pointer_set_destroy (visited_nodes);
 }

Index: cgraph.h
===
--- cgraph.h(revision 152557)
+++ cgraph.h(working copy)
@@ -459,7 +459,7 @@ struct cgraph_node *cgraph_function_vers
bitmap);
 void tree_function_versioning (tree, tree, VEC (ipa_replace_map_p,gc)*, bool,
bitmap);
 struct cgraph_node *save_inline_function_body (struct cgraph_node *);
-void record_references_in_initializer (tree);
+void record_references_in_initializer (tree, bool);
 bool cgraph_process_new_functions (void);

 bool cgraph_decide_is_function_needed (struct cgraph_node *, tree);
Index: varasm.c
===
--- varasm.c(revision 152557)
+++ varasm.c(working copy)
@@ -2082,7 +2082,7 @@ assemble_variable (tree decl, int top_le
 Without this, if the variable is placed in a
 section-anchored block, the template will only be marked
 when it's too late.  */
- record_references_in_initializer (to);
+ record_references_in_initializer (to, false);
}

   decl = to;
Index: varpool.c
===
--- varpool.c   (revision 152557)
+++ varpool.c   (working copy)
@@ -365,9 +365,9 @@ varpool_analyze_pending_decls (void)
 already informed about increased alignment.  */
   align_variable (decl, 0);

-  if (DECL_INITIAL (decl))
-   record_references_in_initializer (decl);
}
+  if (DECL_INITIAL (decl))
+   record_references_in_initializer (decl, analyzed);
   changed = true;
 }
   timevar_pop (TV_CGRAPH);


-- 


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



[Bug c/41630] [4.3/4.4 Regression] Optimization error on vectors of uint64_t

2009-10-08 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2009-10-08 14:52 ---
Simplified testcase, fails at -O1.  Likely an aliasing issue, but I didn't
yet fully investigate (nor ruled out a non-conforming testcase - though
TBAA is out of the question here):

typedef unsigned long obj[1];
extern void abort (void);
static void test_level2(obj X[])
{
if (*X[0] != 12345
|| *X[1] != 67890)
  abort ();
}
static void test_level1(obj x0, obj x1)
{
obj X[2];

X[0][0] = x0[0];
X[1][0] = x1[0];

if (*x0 != 12345
|| *x1 != 67890)
  abort ();
test_level2 (X);
}
int main()
{
obj X[2];
*X[0] = 12345;
*X[1] = 67890;
test_level1(X[0], X[1]);
return 0;
}


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||rguenth at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Keywords||wrong-code
  Known to fail||4.3.4 4.4.1
  Known to work||4.2.4 4.5.0
   Last reconfirmed|-00-00 00:00:00 |2009-10-08 14:52:06
   date||
Summary|Optimization error on   |[4.3/4.4 Regression]
   |vectors of uint64_t |Optimization error on
   ||vectors of uint64_t


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



[Bug fortran/41631] New: [OOP] Support CLASS IS () in SELECT TYPE

2009-10-08 Thread burnus at gcc dot gnu dot org
CLASS IS() is correctly parsed but it has been disabled as the actual
implementation is missing. There are two parsing test cases, which can be
re-enabled when the the feature is implemented:
- gcc/testsuite/gfortran.dg/select_type_2.f03
- gcc/testsuite/gfortran.dg/select_type_1.f03

Cf. also http://gcc.gnu.org/ml/fortran/2009-09/msg00286.html


-- 
   Summary: [OOP] Support CLASS IS () in SELECT TYPE
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  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=41631



[Bug ada/39502] Unexpected uninitialized warning

2009-10-08 Thread kayhayen at gmx dot de


--- Comment #6 from kayhayen at gmx dot de  2009-10-08 15:02 ---
Hello,

is there anything else we can do to help with this bug?

Yours,
Kay Hayen


-- 

kayhayen at gmx dot de changed:

   What|Removed |Added

 CC||kayhayen at gmx dot de


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



[Bug c/41630] [4.3/4.4 Regression] Optimization error on vectors of uint64_t

2009-10-08 Thread rguenth at gcc dot gnu dot org


--- Comment #5 from rguenth at gcc dot gnu dot org  2009-10-08 15:03 ---
What we can see after inlining is

bb 2:
  X[0][0] ={v} 12345;
  D.1614_1 = (long unsigned int *) X[1];
  *D.1614_1 ={v} 67890;
  D.1614_2 = (long unsigned int *) X[1];
  X.0_3 = (long unsigned int *) X;
  D.1623_5 = *X.0_3;
  X[0][0] ={v} D.1623_5;
  D.1622_6 = *D.1614_2;
  X[1][0] ={v} D.1622_6;
  D.1623_7 = *X.0_3;
  if (D.1623_7 != 12345)
goto bb 4;
...
bb 6:
  D.1625_10 = X[0][1];
  if (D.1625_10 != 67890)
goto bb 7;
  else
goto bb 8;

so the final check is reading from X[0][1] but we only ever store to X[1][0].

So the testcase can be simplified to

typedef unsigned long obj[1];
extern void abort (void);
static void test_level2(obj X[])
{
if (*X[1] != 67890)
  abort ();
}
int main()
{
obj X[2];
X[1][0] = 67890;
test_level2(X);
return 0;
}

or even to

typedef unsigned long obj[1];
extern void abort (void);
int main()
{
obj X[2];
X[1][0] = 67890;
if (X[0][1] != 67890)
  abort ();
return 0;
}

which will also fail with 4.2.4 (but still not 4.5.0).  But that also
raises the question of the validity again.


-- 


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



[Bug c/41630] [4.3/4.4 Regression] Optimization error on vectors of uint64_t

2009-10-08 Thread rguenth at gcc dot gnu dot org


--- Comment #6 from rguenth at gcc dot gnu dot org  2009-10-08 15:07 ---
With 4.3 and 4.4 it is SRA that does not avoid generating wrong code, with
4.5 SRA optimizes the code correctly and recognizes both forms access the
same memory (and thus we optimize the program to return 0).

Workaround: -fno-tree-sra


-- 


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



[Bug c/41630] [4.3/4.4 Regression] Optimization error on vectors of uint64_t

2009-10-08 Thread rguenth at gcc dot gnu dot org


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.3.5


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



[Bug ada/39502] Unexpected uninitialized warning

2009-10-08 Thread charlet at gcc dot gnu dot org


--- Comment #7 from charlet at gcc dot gnu dot org  2009-10-08 15:08 ---
Feel free to submit a patch.
Note that middle-end warnings (such as -Wuninitialized) do not always support
properly all front-end semantics, in particular for high level languages such
as Ada, so I'd recommend simply removing this switch.

Classifying as an enhancement btw, since this is only a warning, and warnings
always produce false positives, so this is not necessarily unexpected.


-- 

charlet at gcc dot gnu dot org changed:

   What|Removed |Added

   Severity|normal  |enhancement


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



[Bug c++/41313] r150553 causes g++.dg/tree-prof/partition1.C compilation and execution test failures on *-apple-darwin*

2009-10-08 Thread howarth at nitro dot med dot uc dot edu


--- Comment #40 from howarth at nitro dot med dot uc dot edu  2009-10-08 
15:16 ---
Created an attachment (id=18752)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18752action=view)
Fix PR41313 with dual approach


-- 

howarth at nitro dot med dot uc dot edu changed:

   What|Removed |Added

  Attachment #18718|0   |1
is obsolete||


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



[Bug c++/41313] r150553 causes g++.dg/tree-prof/partition1.C compilation and execution test failures on *-apple-darwin*

2009-10-08 Thread howarth at nitro dot med dot uc dot edu


--- Comment #41 from howarth at nitro dot med dot uc dot edu  2009-10-08 
15:17 ---
Posted revised patch from Comment 40 to gcc-patches...

http://gcc.gnu.org/ml/gcc-patches/2009-10/msg00519.html


-- 


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



[Bug debug/40521] [4.4/4.5 Regression] -g causes GCC to generate .eh_frame

2009-10-08 Thread doko at ubuntu dot com


--- Comment #7 from doko at ubuntu dot com  2009-10-08 15:17 ---
With binutils from the 2.20 branch, and gcc from the 4.4 branch, including
Jakub's patch, and excluding the current workaround from Ramana, I get:

$ gcc -c main.c 
$ objdump --wide -h main.o | grep ALLOC
  0 .text 001c      0034  2**2  CONTENTS,
ALLOC, LOAD, READONLY, CODE
  1 .data       0050  2**0  CONTENTS,
ALLOC, LOAD, DATA
  2 .bss        0050  2**0  ALLOC
$ gcc -c -g main.c 
$ objdump --wide -h main.o | grep ALLOC
  0 .text 001c      0034  2**2  CONTENTS,
ALLOC, LOAD, READONLY, CODE
  1 .data       0050  2**0  CONTENTS,
ALLOC, LOAD, DATA
  2 .bss        0050  2**0  ALLOC

OpenOffice rebuilt with these tools doesn't crash anymore. See PR ld/10695 and
http://qa.openoffice.org/issues/show_bug.cgi?id=105359


-- 


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



[Bug debug/40521] [4.4/4.5 Regression] -g causes GCC to generate .eh_frame

2009-10-08 Thread ramana at gcc dot gnu dot org


--- Comment #8 from ramana at gcc dot gnu dot org  2009-10-08 15:36 ---
(In reply to comment #7)
 With binutils from the 2.20 branch, and gcc from the 4.4 branch, including
 Jakub's patch, and excluding the current workaround from Ramana, I get:
 

IIUC and to make things explicit, the work-around is needed for any binutils
prior to the 2.20 branch until the backport is done. If the backport is
committed we should pull out my work around as well. 


-- 


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



[Bug fortran/41582] Allocation of abstract types requires a type spec or a SOURCE

2009-10-08 Thread burnus at gcc dot gnu dot org


--- Comment #1 from burnus at gcc dot gnu dot org  2009-10-08 15:39 ---
Created an attachment (id=18753)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18753action=view)
Patch allocate(class) w/o source=/type-spec; plus PR 41581 interim fix
(completely untested)

Patch also changes the warning of allocate(...,source=class) into an error, cf.
PR 41581. Patch is untested - not even by compiling.


-- 


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



[Bug middle-end/41573] [4.5 Regression] segfault in trunk related to strings

2009-10-08 Thread matz at gcc dot gnu dot org


--- Comment #4 from matz at gcc dot gnu dot org  2009-10-08 16:03 ---
Subject: Bug 41573

Author: matz
Date: Thu Oct  8 16:03:11 2009
New Revision: 152563

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=152563
Log:
PR middle-end/41573
* builtins.c (fold_builtin_isascii): Use fold_build2.
(fold_builtin_isdigit): Ditto.
* except.c (duplicate_eh_regions_1): Tolerate NULL labels.
* tree-cfg.c (struct rus_data, remove_useless_stmts_warn_notreached,
remove_useless_stmts_cond, remove_useless_stmts_tf,
remove_useless_stmts_tc, remove_useless_stmts_bind,
remove_useless_stmts_goto, remove_useless_stmts_label,
remove_useless_stmts_1, remove_useless_stmts,
pass_remove_useless_stmts): Remove.
* tree-pass.h (pass_remove_useless_stmts): Don't declare.
* passes.c (init_optimization_passes): Don't add
pass_remove_useless_stmts.
* tree-eh.c (lower_eh_constructs_2): Handle empty cleanups.
* tree.c (free_lang_data_in_decl): Don't clear DECL_INITIAL of
static constants.
* lto-symtab.c (lto_symtab_register_decl): Accepts DECL_INITIAL
for static constants.
* lto-streamer-out.c (output_gimple_stmt): Handle GIMPLE_NOP.
* lto-streamer-in.c (input_gimple_stmt): Handle GIMPLE_NOP.

testsuite/
* gcc.dg/tree-ssa/foldstring-1.c: Use fre dump.
* gcc.dg/tree-ssa/useless-1.c: Use gimple dump.
* gcc.dg/pr41573.c: New test.

Added:
trunk/gcc/testsuite/gcc.dg/pr41573.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/builtins.c
trunk/gcc/except.c
trunk/gcc/lto-streamer-in.c
trunk/gcc/lto-streamer-out.c
trunk/gcc/lto-symtab.c
trunk/gcc/passes.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/tree-ssa/foldstring-1.c
trunk/gcc/testsuite/gcc.dg/tree-ssa/useless-1.c
trunk/gcc/tree-cfg.c
trunk/gcc/tree-eh.c
trunk/gcc/tree-pass.h
trunk/gcc/tree.c


-- 


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



[Bug c++/37177] [c++0x] ICE on decltype(rel_ops::operatorint);

2009-10-08 Thread jason at gcc dot gnu dot org


--- Comment #4 from jason at gcc dot gnu dot org  2009-10-08 16:09 ---
Subject: Bug 37177

Author: jason
Date: Thu Oct  8 16:09:22 2009
New Revision: 152564

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=152564
Log:
PR c++/37177
* pt.c (resolve_nondeduced_context): New.
* cvt.c (convert_to_void): Call it.
* semantics.c (finish_decltype_type): Likewise.
* typeck.c (decay_conversion): Here too.
* pt.c (tsubst_decl): Don't clobber input_location.
Don't register a bad specialization.

Added:
trunk/gcc/testsuite/g++.dg/template/explicit-args2.C
trunk/gcc/testsuite/g++.dg/template/explicit-args3.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/cvt.c
trunk/gcc/cp/pt.c
trunk/gcc/cp/semantics.c
trunk/gcc/cp/typeck.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/cpp0x/variadic-throw.C
trunk/gcc/testsuite/g++.old-deja/g++.pt/crash58.C


-- 


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



[Bug c++/36816] [c++0x] error deducing template argument taking the address of rvalue reference template

2009-10-08 Thread jason at gcc dot gnu dot org


--- Comment #2 from jason at gcc dot gnu dot org  2009-10-08 16:09 ---
Subject: Bug 36816

Author: jason
Date: Thu Oct  8 16:09:31 2009
New Revision: 152565

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=152565
Log:
PR c++/36816
* pt.c (maybe_adjust_types_for_deduction): Do rvalue ref adjustment
even when DEDUCE_EXACT.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/rv-deduce.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/pt.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug target/41605] Static linking of libgcc/libgfortran/libstdc++ can cause inconsistent symbol resolution.

2009-10-08 Thread mrs at gcc dot gnu dot org


--- Comment #3 from mrs at gcc dot gnu dot org  2009-10-08 16:36 ---
These two look ok to me.  The testsuite should be glanced at by Janis to double
check.


-- 


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



[Bug target/41605] Static linking of libgcc/libgfortran/libstdc++ can cause inconsistent symbol resolution.

2009-10-08 Thread mrs at gcc dot gnu dot org


--- Comment #4 from mrs at gcc dot gnu dot org  2009-10-08 16:44 ---
Oh, if one wanted to, one could have libgcc_s forward the EH calls into
/usr/lib/libgcc_s.1.dylib by dlopening it and then doing dlsym on the symbols
and calling them.  This would `fix' the programs that linked against a gcc
libgcc_s file that uses EH when run on a system that has EH on the system. 
With that technology, I think all the mismatching here, just goes away.


-- 


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




[Bug ada/39502] Unexpected uninitialized warning

2009-10-08 Thread manu at gcc dot gnu dot org


--- Comment #8 from manu at gcc dot gnu dot org  2009-10-08 17:39 ---
The output of -fdump-tree-optimized-all-lineno and -fdump-tree-ssa-all-lineno
with and without -fPIC would be interesting. Also, GCC 4.4 and 4.5 fixed a lot
of false positives in Wuninitialized, so please try with at least GCC 4.4.1.


-- 

manu at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||manu at gcc dot gnu dot org
OtherBugsDependingO||24639
  nThis||
 Status|UNCONFIRMED |WAITING


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



[Bug c++/36816] [c++0x] error deducing template argument taking the address of rvalue reference template

2009-10-08 Thread jason at gcc dot gnu dot org


--- Comment #3 from jason at gcc dot gnu dot org  2009-10-08 17:48 ---
Fixed for 4.5.


-- 

jason at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/37177] [c++0x] ICE on decltype(rel_ops::operatorint);

2009-10-08 Thread jason at gcc dot gnu dot org


--- Comment #5 from jason at gcc dot gnu dot org  2009-10-08 17:48 ---
Fixed for 4.5.


-- 

jason at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/37204] [c++0x] reinterpret_castT(v) incorrectly yields an lvalue

2009-10-08 Thread jason at gcc dot gnu dot org


-- 

jason at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jason at gcc dot gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2009-10-08 17:50:56
   date||


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



[Bug preprocessor/41632] New: The preprocessor incorrectly reports #ident as being deprecated

2009-10-08 Thread nvachhar at google dot com
See http://gcc.gnu.org/ml/gcc/2009-10/msg00071.html


-- 
   Summary: The preprocessor incorrectly reports #ident as being
deprecated
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: preprocessor
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: nvachhar at google dot com


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



[Bug c++/41570] [4.5 Regression] [c++0x] ICE with -g and variadic templates

2009-10-08 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|NEW |ASSIGNED
   Last reconfirmed|2009-10-04 18:24:39 |2009-10-08 17:54:20
   date||


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



[Bug lto/40790] plugin-api.h unconditionally includes stdint.h

2009-10-08 Thread espindola at google dot com


--- Comment #9 from espindola at google dot com  2009-10-08 18:20 ---
(In reply to comment #8)
 Raphael, can you look into this?
 

Sure. Sorry about the delay.

The only thing the compiler should need the plugin-api.h for is the enum 
ld_plugin_symbol_resolution. If we split plugin-api.h in two, we would be able
to compile gcc itself without stdint.h.

The problem with this approach is that the lto plugin would still fail to build
in a system without stdint.h. Is it OK to have optional features like the gold
plugin not supported in systems like Tru64 UNIX V4.0F?

Yet another possibility would be to change the build system so that we always
build the lto plugin with xgcc (in addition to the plugin-api.h split). No idea
how hard this is.


-- 


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



[Bug target/41176] [4.4/4.5 Regression] ICE in reload_cse_simplify_operands at postreload.c:396

2009-10-08 Thread uweigand at gcc dot gnu dot org


--- Comment #9 from uweigand at gcc dot gnu dot org  2009-10-08 18:39 
---
(In reply to comment #8)
 This is on (set (reg:DF X) (mem:DF ((plus:DI (reg:DI Y) (const_int 3.
 When X is still a pseudo, this is considered valid, as lfd accept any offset,
 but when RA chooses to assign X to a GPR register, the address doesn't match
 the Y constraint in movdf_hardfloat64.  Is this a bug in reload that it 
 doesn't
 attempt to force the address into a register, or in target description that it
 should tell reload to do so somehow?  Or does the backend need to be able to
 handle these, perhaps by forcing splitting of it?

If reload were fixing up this insn, it would indeed have to make sure that
the Y - r constraints are respected, e.g. by reloading the address.

However, this whole insn is *generated* by reload, in order to load a
value into a reload register.   Unfortunately, for such reload insns
(which are simple moves), reload will simply assume they must be supported
by the target, unless there is a secondary reload for this case.

To fix this, I guess the rs6000 backend either has to accept the insn
and implement it via splitting, or else register a secondary reload for
this case (which is also able to request scratch registers).


-- 


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



[Bug c/41633] New: -Wframe-larger-than should warn about outgoing function calls, specifically varargs

2009-10-08 Thread fche at redhat dot com
gcc should warn when the stack frame for a called varargs function
is in excess of a -Wframe-larger-than=NNN bytes.  Such a check could
be done at each call site, to see whether the outgoing arguments
alone already exhaust NNN.


-- 
   Summary: -Wframe-larger-than should warn about outgoing function
calls, specifically varargs
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: fche at redhat dot com


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



[Bug middle-end/41626] [4.5 Regression] GCC does not bootstrap on powerpc64

2009-10-08 Thread meissner at gcc dot gnu dot org


--- Comment #8 from meissner at gcc dot gnu dot org  2009-10-08 18:59 
---
Created an attachment (id=18754)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18754action=view)
Patch that fixes the powerpc bootstrap problem.

This is the patch that I checked in that came from Jan Hubicka.


-- 


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



[Bug middle-end/41626] [4.5 Regression] GCC does not bootstrap on powerpc64

2009-10-08 Thread meissner at gcc dot gnu dot org


--- Comment #9 from meissner at gcc dot gnu dot org  2009-10-08 19:00 
---
Patch checked into mainline, subversion id 152569.


-- 

meissner at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug libgomp/41418] Can't build libgomp without --enable-languages=fortran

2009-10-08 Thread rwild at gcc dot gnu dot org


--- Comment #16 from rwild at gcc dot gnu dot org  2009-10-08 19:06 ---
Created an attachment (id=18755)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18755action=view)
(hopefully) better patch

Gah.  Initial white space isn't stripped from the case argument,
I should've known.

Can you try this patch instead?

Thanks,
Ralf


-- 

rwild at gcc dot gnu dot org changed:

   What|Removed |Added

  Attachment #18629|0   |1
is obsolete||


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



[Bug debug/41353] VTA missed-debug issues

2009-10-08 Thread aoliva at gcc dot gnu dot org


--- Comment #17 from aoliva at gcc dot gnu dot org  2009-10-08 19:20 ---
Subject: Bug 41353

Author: aoliva
Date: Thu Oct  8 19:20:22 2009
New Revision: 152573

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=152573
Log:
PR debug/41353
* regmove.c (regmove_backward_pass): Replace src with dst in the
debug insn, and check for dst before rather than after.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/regmove.c


-- 


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



[Bug debug/41353] VTA missed-debug issues

2009-10-08 Thread aoliva at gcc dot gnu dot org


--- Comment #18 from aoliva at gcc dot gnu dot org  2009-10-08 19:22 ---
All fixed.


-- 

aoliva at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug libgomp/41418] Can't build libgomp without --enable-languages=fortran

2009-10-08 Thread davek at gcc dot gnu dot org


--- Comment #17 from davek at gcc dot gnu dot org  2009-10-08 19:37 ---
(In reply to comment #16)
 Created an attachment (id=18755)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18755action=view) [edit]
 (hopefully) better patch
 
 Gah.  Initial white space isn't stripped from the case argument,
 I should've known.
 
 Can you try this patch instead?

ESAMEPATCH!

http://gcc.gnu.org/bugzilla/attachment.cgi?id=18629action=view
commit 33c578ca6b47a47ecacae017e45fd796022dadc4

http://gcc.gnu.org/bugzilla/attachment.cgi?id=18755action=view
commit 33c578ca6b47a47ecacae017e45fd796022dadc4

Will wait for you to dig up the correct one, I'm liable to get it wrong if I
try and come up with a properly portable way of stripping whitespace :-)


-- 


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



[Bug libstdc++/41622] [c++0x] std::hashstd::string::operator() copies its argument

2009-10-08 Thread jbytheway at gmail dot com


--- Comment #5 from jbytheway at gmail dot com  2009-10-08 19:40 ---
Ah well.  I'm not surprised.  If you do wish to argue the point at Santa Cruz
and I can be any help then let me know.

I have no particular intention to contribute; I'm just working through my
backlog of bug reports (this one started out as a bug report and even after I
realised it wasn't a bug I thought I might as well tell you anyway).


-- 


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



[Bug libstdc++/41622] [c++0x] std::hashstd::string::operator() copies its argument

2009-10-08 Thread paolo dot carlini at oracle dot com


--- Comment #6 from paolo dot carlini at oracle dot com  2009-10-08 19:54 
---
(In reply to comment #5)
 I have no particular intention to contribute;

Too bad, I hope you want to reconsider this decision. In case, however, please
don't attach patches, because we can't and we don't want to plagiarize your
code and we can't either commit it as-is without a Copyright Assignment on file
(unless the whole patch is, say, below 10 lines)


-- 


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



[Bug libgomp/41418] Can't build libgomp without --enable-languages=fortran

2009-10-08 Thread rwild at gcc dot gnu dot org


--- Comment #18 from rwild at gcc dot gnu dot org  2009-10-08 19:57 ---
Created an attachment (id=18756)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18756action=view)
ditto, but without the d'oh factor

That's what you get when you name one pr-41418 and the other pr41418.
Sorry about that


-- 

rwild at gcc dot gnu dot org changed:

   What|Removed |Added

  Attachment #18755|0   |1
is obsolete||


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



[Bug fortran/41579] [OOP/Polymorphism] Nesting of SELECT TYPE

2009-10-08 Thread janus at gcc dot gnu dot org


--- Comment #1 from janus at gcc dot gnu dot org  2009-10-08 20:27 ---
Mine (have a patch).


-- 

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-10-08 20:27:58
   date||


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



[Bug lto/41529] [4.5 Regression] LTO configuration should detect if the target is ELF

2009-10-08 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2009-10-08 21:26 ---
I installed libelf on a i386-darwin machine at /usr/local so I could build a
cross compiler to spu-elf and test LTO on my laptop.  And now a native build of
GCC picks up libelf and we get:
checking for the correct version of libelf... yes
The following languages will be built: c,lto,c++,fortran,java,objc

So this is a regression.
I will report how it fails later on.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

Summary|LTO configuration should|[4.5 Regression] LTO
   |detect if the target is ELF |configuration should detect
   ||if the target is ELF
   Target Milestone|--- |4.5.0


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



[Bug debug/41616] Variables promoted to Gimple registers by aliasing are not getting debug statements.

2009-10-08 Thread aoliva at gcc dot gnu dot org


--- Comment #2 from aoliva at gcc dot gnu dot org  2009-10-08 21:34 ---
Yup, ADDR_EXPRs don't count as dereferences in debug stmts, but if the variable
doesn't get a memory location, we end up dropping the whole expression.  We
have to.  Finding another location holding the value of b isn't enough if the
relevant value is the address of b.  Since b did not get a memory location, its
address is non-existent.


-- 


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



[Bug lto/41554] -flto and -fwhopr should be moved to common.opt

2009-10-08 Thread jsm28 at gcc dot gnu dot org


--- Comment #5 from jsm28 at gcc dot gnu dot org  2009-10-08 21:36 ---
Likewise, -Wabi and -Wpsabi belong on common.opt, and the post_options
processing belongs in common code not in individual front ends.


-- 


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



[Bug c/41634] New: segfault in trunk

2009-10-08 Thread marcus at jet dot franken dot de
/home/marcus/projects/gcc.trunk/BIN/bin/gcc -m32 -c -O3 -fno-builtin file.i
file.i: In function 'test_readmode':
file.i:4:6: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.


-- 
   Summary: segfault in trunk
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: marcus at jet dot franken dot de
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i586-unknown-linux-gnu


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



[Bug c/41634] segfault in trunk

2009-10-08 Thread marcus at jet dot franken dot de


--- Comment #1 from marcus at jet dot franken dot de  2009-10-08 21:43 
---
Created an attachment (id=18757)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18757action=view)
file.i

/home/marcus/projects/gcc.trunk/BIN/bin/gcc -m32 -c -O3 -fno-builtin file.i


-- 


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



[Bug tree-optimization/41634] [4.5 Regression] ICE in dom

2009-10-08 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2009-10-08 21:46 ---
#0  0x00cb8976 in htab_remove_elt_with_hash (htab=0x43b0dd20,
element=0xb2e4, hash=2085838349) at
/Users/apinski/src/change/gcc/libiberty/hashtab.c:706
#1  0x00672a4e in remove_local_expressions_from_table () at
/Users/apinski/src/change/gcc/gcc/tree-ssa-dom.c:836
#2  0x0067702b in dom_opt_leave_block (walk_data=0xb468, bb=0x43cfc740) at
/Users/apinski/src/change/gcc/gcc/tree-ssa-dom.c:1763
#3  0x00bb6c26 in walk_dominator_tree (walk_data=0xb468, bb=0x43cfc740) at
/Users/apinski/src/change/gcc/gcc/domwalk.c:205
#4  0x00671d45 in tree_ssa_dominator_optimize () at
/Users/apinski/src/change/gcc/gcc/tree-ssa-dom.c:651


Confirmed.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

   Severity|normal  |critical
 Status|UNCONFIRMED |NEW
  Component|middle-end  |tree-optimization
 Ever Confirmed|0   |1
  GCC build triplet|i686-pc-linux-gnu   |
   GCC host triplet|i686-pc-linux-gnu   |
 GCC target triplet|i586-unknown-linux-gnu  |i?86-*-*
   Keywords||ice-on-valid-code
   Last reconfirmed|-00-00 00:00:00 |2009-10-08 21:46:36
   date||
Summary|segfault in trunk   |[4.5 Regression] ICE in dom
   Target Milestone|--- |4.5.0


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



[Bug tree-optimization/41634] [4.5 Regression] ICE in dom

2009-10-08 Thread pinskia at gcc dot gnu dot org


--- Comment #3 from pinskia at gcc dot gnu dot org  2009-10-08 21:49 ---
This appeared between revision 152380 and 152576.
The only patch which touched dom during that time was:
+2009-10-05  Richard Guenther  rguent...@suse.de
+
+   PR tree-optimization/23821
+   * tree-vrp.c (vrp_finalize): Do not perform copy propagation.
+   * tree-ssa-dom.c (cprop_operand): Do not propagate copies into
+   simple IV increments.

But that does not mean it was caused by that patch though.


-- 


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



[Bug lto/41635] New: inappropriate assertion that fopen succeeds

2009-10-08 Thread jsm28 at gcc dot gnu dot org
As noted in my review of the LTO front end,

  resolution = fopen (resolution_file_name, r);
  gcc_assert (resolution != NULL);

is not an appropriate use of an assertion because the fopen could
fail through system resource exhaustion even if you know the file
exists and is readable and has proper contents.  A normal error or
fatal error needs to be given instead.


-- 
   Summary: inappropriate assertion that fopen succeeds
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: lto
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jsm28 at gcc dot gnu dot org


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



[Bug lto/41636] New: lto-elf.c i18n problems

2009-10-08 Thread jsm28 at gcc dot gnu dot org
The macros in lto-elf.c with diagnostics

fatal_error (elf#BITS_getshdr() failed: %s, elf_errmsg (-1));\

fatal_error (elf#BITS_newehdr() failed: %s, elf_errmsg (-1));\

are not i18n-friendly; only the elf bit gets extracted for translation
to gcc.pot.

The code should explicitly say something like

if (BITS == 32)
  fatal_error (...);
else
  fatal_error (...);

so that both messages are explicitly in the source and can be extracted
for gcc.pot and translated.


-- 
   Summary: lto-elf.c i18n problems
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: lto
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=41636



[Bug rtl-optimization/41574] Distribute floating point expressions causes bad code.

2009-10-08 Thread dougkwan at gcc dot gnu dot org


--- Comment #7 from dougkwan at gcc dot gnu dot org  2009-10-08 22:17 
---
Subject: Bug 41574

Author: dougkwan
Date: Thu Oct  8 22:16:58 2009
New Revision: 152580

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=152580
Log:
2009-10-08  Doug Kwan  dougk...@google.com

PR rtl-optimization/41574
* gcc.dg/pr41574.c: New test.

Added:
trunk/gcc/testsuite/gcc.dg/pr41574.c
Modified:
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug rtl-optimization/41574] Distribute floating point expressions causes bad code.

2009-10-08 Thread dougkwan at google dot com


--- Comment #8 from dougkwan at google dot com  2009-10-08 22:20 ---
This is fixed in trunk but at least gcc-4.4.0, where this bug was found, is
still broken.


-- 

dougkwan at google dot com changed:

   What|Removed |Added

 Status|RESOLVED|UNCONFIRMED
  Known to fail||4.4.0
 Resolution|FIXED   |
Version|4.5.0   |4.4.0


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



[Bug c/41045] Extended asm with C operands doesn�t work at top level

2009-10-08 Thread nelhage at mit dot edu


--- Comment #2 from nelhage at mit dot edu  2009-10-08 22:20 ---
For an example of real code that wanted to use toplevel inline ASM, see the
following recent Linux commit:
http://git.kernel.org/linus/796216a57fe45c04adc35bda1f0782efec78a713

Lack of this feature necessitated a fairly hideous (IMO) workaround, and a
multi-paragraph documentation of it in the commit messages.

Note that while (as stated in the commit message) an unrelated GCC issue
originally caused the desire to use inline assembly, a later commit
(0b1c723d0bd199300a1a2de57a46000d17577498) takes advantage of the fact that
this block uses inline assembly, and so they really do want a toplevel assembly
block here.


-- 


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



[Bug c/41045] Extended asm with C operands doesn�t work at top level

2009-10-08 Thread pinskia at gcc dot gnu dot org


--- Comment #3 from pinskia at gcc dot gnu dot org  2009-10-08 22:28 ---
So they want a way to turn off progbits instead?
That seems better than doing extended inline-asm at the top level.


-- 


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



[Bug c/41045] Extended asm with C operands doesn�t work at top level

2009-10-08 Thread pinskia at gcc dot gnu dot org


--- Comment #4 from pinskia at gcc dot gnu dot org  2009-10-08 22:32 ---
(In reply to comment #3)
 So they want a way to turn off progbits instead?
 That seems better than doing extended inline-asm at the top level.

And is less messy really since then the syntax would be something like:
#define RESERVE_BRK(name,sz)   \
static char __brk_reservation_#name[sz]
__attribute__((section(brk_reservation, nobits), used);

Which gets rid of the messy inline-asm and makes things look like a real
variable, etc.


-- 


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



[Bug lto/41565] -m32 causes an ICE when the object files were compiled with 64bit

2009-10-08 Thread pinskia at gcc dot gnu dot org


--- Comment #6 from pinskia at gcc dot gnu dot org  2009-10-08 23:06 ---
I ran into this again, this time on powerpc-linux-gnu when I forgot to include
-maltivec on the link line.


-- 


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



[Bug lto/41565] -m32 causes an ICE when the object files were compiled with 64bit

2009-10-08 Thread pinskia at gcc dot gnu dot org


--- Comment #7 from pinskia at gcc dot gnu dot org  2009-10-08 23:08 ---
Oh -maltivec is even weirder than -m32 as it does not change the ABI (well it
does but not with respect non vector arguments and such) but I should be able
to compile some files with -maltivec and some without.  Note the -maltivec case
shows up in real code already.  Think mpeg players.


-- 


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



[Bug driver/41637] New: testsuite (-flto/-fwrop) leaves crap in /tmp

2009-10-08 Thread pinskia at gcc dot gnu dot org
Just looking into /tmp after a testsuite runs there are a lot of files there.
cc0FIKlt.errccceY3TE.err   
cciZMsdN.o.063t.alias   ccqFjO6o.errccy5TZdA.out 
cc0hiz3p.wpa.o  ccCFYtDM.wpa.o.063t.alias   ccj4ba9L.out   
ccqfuPHN.o.063t.alias   ccy7ECNJ.out 
cc0hKTzD.errccCG7VOZ.lto.o 
ccjdsNY9.wpa.o.064t.alias   ccQkrpZG.args   ccy9sdwM.err 
cc0k5wqP.outccCgeHHu.errccJEfXym.lto.o 
ccqouheB.o.064t.alias   ccyAqAAM.o.063t.alias 
cc0Ozqm1.o.063t.alias   ccCHoca3.outccJGczq7.out   
ccQouyAC.wpa.o.063t.alias   ccyaxNXz.err 
cc0Phjpr.wpa.o.063t.alias   cccK5VB6.out   
ccjgNZW8.wpa.o.063t.alias   ccQozpxk.wpa.o  ccyBmPPE.out 
cc1iVMRd.lto.o  ccckjtgo.o.063t.alias   ccJjqEQP.lto.o 
ccqPmK7z.outccydQI8s.o.063t.alias 
cc1xHp8y.outccclqqey.le
ccjKAC6a.ltrans.out ccqq6YWh.wpa.o.064t.alias   ccyFQagL.out 
cc22yyVE.o.064t.alias   cccMEAnN.o.064t.alias  
ccjkFKpm.o.063t.alias   ccQqd0Yv.wpa.o.063t.alias  
ccyggdbc.wpa.o.063t.alias 
cc2DRkCf.outcccmSh1b.c 
ccjo0gmo.wpa.o.064t.alias   ccQshPjf.lto.o 
ccyiHfNi.o.063t.alias 
cc2gdrl2.ltrans.out cccmVw1b.out   
ccjOy4nj.o.063t.alias   ccQSN6LV.outccYjSSG0.out 
cc2p3Tcf.args   ccCNucKD.out   
ccjQMr9a.ltrans.out ccqUFGHe.outccYLXAnn.lto.o 
cc2QYfVs.s  cccOj91a.outccJT4LeX.ld
ccqvg7qW.ltrans.out ccYPAEzh.le 
cc2tmqG6.args   ccCPi3tX.args  
ccJZuONo.o.063t.alias   ccQvU1p5.lto.o  ccyPdZoe.lto.o 
cc2WeO2S.lto.o  ccCrjXda.args   cck7i7Q2.s 
ccqzAyLd.args   ccYPLCku.out 
cc2zotJQ.o.063t.alias   ccCRmXl1.errcck7SKUV.args  
ccre6xGt.wpa.o.063t.alias   ccYQJku1.wpa.o.063t.alias

Some of them come from bug 41564 but others I don't know where they come from.


-- 
   Summary: testsuite (-flto/-fwrop) leaves crap in /tmp
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: driver
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: pinskia at gcc dot gnu dot org


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



[Bug lto/41638] New: Back-end builtins are mishandled

2009-10-08 Thread pinskia at gcc dot gnu dot org
lto_get_builtin_tree uses built_in_decls but that is only for the
built_in_class of BUILT_IN_NORMAL.  The back-ends have their own array with the
builtins in them for the class of BUILT_IN_MD.
So currently we translate all of the back-end builtins into normal builtins.

This is why gcc.dg/vmx/3a-03.c currently fails;  Most likely all of the vmx
testsuite in fact.
In that example __builtin_altivec_vrefp is changed when reading back the file
into __builtin_lgammal.


-- 
   Summary: Back-end builtins are mishandled
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Keywords: wrong-code, ice-on-valid-code, link-failure
  Severity: normal
  Priority: P3
 Component: lto
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: pinskia at gcc dot gnu dot org


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



[Bug lto/41638] Back-end builtins are mishandled

2009-10-08 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2009-10-08 23:48 ---
Note the back-end builtin arrays don't have the same name so it is not as
simple as using that array.  I think we need to add either a target hook or
have a standard name for them.

Also the assert there for END_BUILTINS is also incorrect for BUILT_IN_MD as
there could be more target builtins than there are normal builtins.

Which means the use of enum built_in_function is incorrect for  function_code
and could break when we compile with the C++ front-end.


-- 


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