[Bug target/52205] unwinding through signal handler fails

2012-02-15 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52205

Eric Botcazou  changed:

   What|Removed |Added

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


[Bug target/52205] unwinding through signal handler fails

2012-02-15 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52205

--- Comment #11 from Eric Botcazou  2012-02-15 
08:13:29 UTC ---
Author: ebotcazou
Date: Wed Feb 15 08:13:22 2012
New Revision: 184256

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=184256
Log:
PR target/51921
PR target/52205
* config/sparc/sol2-unwind.h (sparc64_is_sighandler): Add support for
Solaris 11 and slightly reformat.
(sparc_is_sighandler): Likewise.

Modified:
branches/gcc-4_6-branch/gcc/ChangeLog
branches/gcc-4_6-branch/gcc/config/sparc/sol2-unwind.h


[Bug target/51921] [4.6/4.7 regression] EH unwinding support is broken

2012-02-15 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51921

--- Comment #14 from Eric Botcazou  2012-02-15 
08:13:29 UTC ---
Author: ebotcazou
Date: Wed Feb 15 08:13:22 2012
New Revision: 184256

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=184256
Log:
PR target/51921
PR target/52205
* config/sparc/sol2-unwind.h (sparc64_is_sighandler): Add support for
Solaris 11 and slightly reformat.
(sparc_is_sighandler): Likewise.

Modified:
branches/gcc-4_6-branch/gcc/ChangeLog
branches/gcc-4_6-branch/gcc/config/sparc/sol2-unwind.h


[Bug target/51921] [4.6/4.7 regression] EH unwinding support is broken

2012-02-15 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51921

--- Comment #13 from Eric Botcazou  2012-02-15 
08:13:20 UTC ---
Author: ebotcazou
Date: Wed Feb 15 08:13:09 2012
New Revision: 184255

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=184255
Log:
PR target/51921
PR target/52205
* config/sparc/sol2-unwind.h (sparc64_is_sighandler): Add support for
Solaris 11 and slightly reformat.
(sparc_is_sighandler): Likewise.

Modified:
trunk/libgcc/ChangeLog
trunk/libgcc/config/sparc/sol2-unwind.h


[Bug target/51921] [4.6/4.7 regression] EH unwinding support is broken

2012-02-15 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51921

Eric Botcazou  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED

--- Comment #15 from Eric Botcazou  2012-02-15 
08:14:23 UTC ---
.


[Bug target/52205] unwinding through signal handler fails

2012-02-15 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52205

--- Comment #10 from Eric Botcazou  2012-02-15 
08:13:20 UTC ---
Author: ebotcazou
Date: Wed Feb 15 08:13:09 2012
New Revision: 184255

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=184255
Log:
PR target/51921
PR target/52205
* config/sparc/sol2-unwind.h (sparc64_is_sighandler): Add support for
Solaris 11 and slightly reformat.
(sparc_is_sighandler): Likewise.

Modified:
trunk/libgcc/ChangeLog
trunk/libgcc/config/sparc/sol2-unwind.h


[Bug tree-optimization/52256] New: CSE the memory load from both branches of if statement

2012-02-15 Thread carrot at google dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52256

 Bug #: 52256
   Summary: CSE the memory load from both branches of if statement
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: car...@google.com
Target: arm-unknown-linux-gnueabi


In mcfutils.c of mcf from SPEC, function refresh_potential() contains following
code snippet

...
 85 if( node->orientation == UP )
 86 node->potential = node->basic_arc->cost +
node->pred->potential;
 87 else /* == DOWN */
 88 {
 89 node->potential = node->pred->potential -
node->basic_arc->cost;
 90 checksum++;
 91 }
...


Compile it with options -march=armv7-a -mthumb -Os, gcc 4.7 generates

...
 71 ldr r2, [r3, #4]
 72 ldr r4, [r3, #12]
 73 cmp r2, #1
 74 ldr r2, [r3, #24]
 75 bne .L8

 76 ldr r5, [r2, #0]//common memory load
 77 ldr r2, [r4, #0]//common memory load
 78 addsr2, r5, r2
 79 str r2, [r3, #0]
 80 b   .L9
 81 .L8:
 82 ldr r4, [r4, #0]//common memory load
 83 addsr0, r0, #1
 84 ldr r2, [r2, #0]//common memory load
 85 subsr2, r4, r2
 86 str r2, [r3, #0]
 87 .L9:
...

The memory node->basic_arc->cost and node->pred->potential are loaded in both
branches of the if statement, so we can CSE them. But current gcc CSE only
node->basic_arc and node->pred.


[Bug c++/52241] Performance degradation of 447.dealII on corei7 at spec2006_base32.

2012-02-15 Thread izamyatin at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52241

--- Comment #1 from Igor Zamyatin  2012-02-15 
09:06:49 UTC ---
BTW, this is a 4.7 regression


[Bug c++/52257] New: [C++11] switch cases accept floating point constants

2012-02-15 Thread daniel.kruegler at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52257

 Bug #: 52257
   Summary: [C++11] switch cases accept floating point constants
Classification: Unclassified
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: daniel.krueg...@googlemail.com


gcc 4.7.0 20120211 (experimental) accepts the following program, when using
-std=c++11 (with or without -Wall -pedantic):

int main()
{
  int i = 3;
  switch (i) {
case 2: ;
case 3.7: ;
  }
}

The program is correctly rejected when compiling w/o -std=c++11.

Nonetheless, a C++11 compiler has to reject this code. We have [stmt.switch]
p2:

"[..] Any statement within the switch statement can be labeled with one or more
case labels as follows:

case constant-expression :

where the constant-expression shall be a converted constant expression (5.19)
of the promoted type of the switch condition.[..]"

According to [expr.const] p3 we have:

"A converted constant expression of type T is a literal constant expression,
implicitly converted to type T, where the implicit conversion (if any) is
permitted in a literal constant expression and the implicit conversion
sequence contains only user-defined conversions, lvalue-to-rvalue conversions
(4.1), integral promotions (4.5), and integral conversions (4.7) other than
narrowing conversions (8.5.4)."

This clearly excludes floating-integral conversions from 4.9 [conv.fpint].


[Bug c++/51930] [4.7 regression] Explicitly instantiated template gets hidden visibility

2012-02-15 Thread s...@s-e-f-i.de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51930

--- Comment #7 from Philipp  2012-02-15 09:29:27 UTC ---
The test struct might come from an external library I have no control of, which
will make it difficult to change its visibility. Currently, I have quite some
code that depends on the behaviour of gcc-4.6 and lower that won't be easy to
change.


[Bug fortran/47486] gfortran -M exits with fatal error when -o option is used

2012-02-15 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47486

--- Comment #3 from Tobias Burnus  2012-02-15 
09:33:45 UTC ---
Untested patch:

--- a/gcc/fortran/lang-specs.h
+++ b/gcc/fortran/lang-specs.h
@@ -68,7 +68,8 @@
 {"@f95",
 "f951 %i %{E:%{!cpp:%egfortran does not support -E without -cpp}}\
  %{cpp:" F951_CPP_OPTIONS ";:  " CPP_FORWARD_OPTIONS  "} \
- %{!E:" F951_OPTIONS "}", 0, 0, 0},
+ %{!E:%{!M:%{!MM:%{!MT:%{!MQ:%{MD|MMD:" F951_OPTIONS "}}",
+  0, 0, 0},


 #undef CPP_ONLY_OPTIONS


[Bug fortran/47486] gfortran -M exits with fatal error when -o option is used

2012-02-15 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47486

--- Comment #4 from Tobias Burnus  2012-02-15 
09:40:40 UTC ---
Missed some parts. Better patch - still completely untested (not even built). A
shorter version would be "%{!E:%{!M*:", which is also completely untested.

--- a/gcc/fortran/lang-specs.h
+++ b/gcc/fortran/lang-specs.h
@@ -56,3 +56,4 @@
   %{cpp:" F951_CPP_OPTIONS ";: " CPP_FORWARD_OPTIONS  "} \
- %{!E:" F951_OPTIONS "}", 0, 0, 0},
+ %{!E:%{!M:%{!MM:%{!MT:%{!MQ:%{!MD:%{!MMD:" F951_OPTIONS "}}}",
+ 0, 0, 0},
 {".F90", "@f95-cpp-input", 0, 0, 0},
@@ -70,3 +71,4 @@
  %{cpp:" F951_CPP_OPTIONS ";:  " CPP_FORWARD_OPTIONS  "} \
- %{!E:" F951_OPTIONS "}", 0, 0, 0},
+ %{!E:%{!M:%{!MM:%{!MT:%{!MQ:%{!MD:%{!MMD:" F951_OPTIONS "}}}",
+  0, 0, 0},


[Bug fortran/52251] Nonadvancing I/O and the t edit descriptor

2012-02-15 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52251

--- Comment #3 from Tobias Burnus  2012-02-15 
10:10:22 UTC ---
I wonder whether that's a [4.2-4.7] regression (backported to 4.1) due to the
patch for PR 25463. (I have not recompiled to check.)

My impression is that without that patch, commen 0 might be correctly handled.
The patch in PR 25463 fixed the case:

  write (*,'(A)',advance="no") 'ab'
  write (*,'(T1,A)') 'c'

(should be "abc" and not "c" or "ab c" or ...)

I think one needs to save the skips (for advanced='no') somewhere in
dtp->u.p.current_unit as the dtp->u.p.skips are currently gone after
_gfortran_st_write_done, if I understand the code correctly.


[Bug c++/51930] [4.7 regression] Explicitly instantiated template gets hidden visibility

2012-02-15 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51930

--- Comment #8 from Jonathan Wakely  2012-02-15 
10:15:06 UTC ---
(In reply to comment #7)
> The test struct might come from an external library I have no control of, 
> which
> will make it difficult to change its visibility.

You could declare the struct before including that library's headers and set
its visibility with a pragma:

#pragma GCC visibility push(default)
struct test;
#pragma GCC visibility pop


[Bug fortran/47486] gfortran -M exits with fatal error when -o option is used

2012-02-15 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47486

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #5 from Jakub Jelinek  2012-02-15 
10:18:53 UTC ---
Can't you do
"%{E|M|MM|MT|MQ|MD|MMD:;:" F951_OPTIONS "}"
instead?


[Bug target/52258] New: __builtin_isgreaterequal is sometimes signaling on ARM

2012-02-15 Thread aurelien at aurel32 dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52258

 Bug #: 52258
   Summary: __builtin_isgreaterequal is sometimes signaling on ARM
Classification: Unclassified
   Product: gcc
   Version: 4.6.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: aurel...@aurel32.net
  Host: armv7l-unknown-linux-gnueabihf
Target: armv7l-unknown-linux-gnueabihf
 Build: armv7l-unknown-linux-gnueabihf


__builtin_isgreaterequal is supposed to be non-signaling in case a qNaN is
provided in input. It works when the function is alone, but when combined with
another test, it sometimes triggered an invalid FP exception at -O1 and above
optimization levels.

For example:
int sel_fmax (double x, double y)
{
  return __builtin_isgreaterequal(x, y) || isnan(y);
}


At -O0, the corresponding assembly code is:
 :
   0:   b580push{r7, lr}
   2:   b084sub sp, #16
   4:   af00add r7, sp, #0
   6:   ed87 0b02   vstrd0, [r7, #8]
   a:   ed87 1b00   vstrd1, [r7]
   e:   ed97 6b02   vldrd6, [r7, #8]
  12:   ed97 7b00   vldrd7, [r7]
  16:   eeb4 6b47   vcmp.f64d6, d7
  1a:   eef1 fa10   vmrsAPSR_nzcv, fpscr
  1e:   bfacite ge
  20:   2300movge   r3, #0
  22:   2301movlt   r3, #1
  24:   b2dbuxtbr3, r3
  26:   f083 0301   eor.w   r3, r3, #1
  2a:   b2dbuxtbr3, r3
  2c:   2b00cmp r3, #0
  2e:   d106bne.n   3e 
  30:   ed97 0b00   vldrd0, [r7]
  34:   f7ff fffe   bl  0 <__isnan>
34: R_ARM_THM_CALL  __isnan
  38:   4603mov r3, r0
  3a:   2b00cmp r3, #0
  3c:   d002beq.n   44 
  3e:   f04f 0301   mov.w   r3, #1
  42:   e001b.n 48 
  44:   f04f 0300   mov.w   r3, #0
  48:   4618mov r0, r3
  4a:   f107 0710   add.w   r7, r7, #16
  4e:   46bdmov sp, r7
  50:   bd80pop {r7, pc}
  52:   bf00nop


At -O1, the corresponding assembly code is:
 :
   0:   b508push{r3, lr}
   2:   eeb4 0bc1   vcmpe.f64   d0, d1
   6:   eef1 fa10   vmrsAPSR_nzcv, fpscr
   a:   da07bge.n   1c 
   c:   eeb0 0b41   vmov.f64d0, d1
  10:   f7ff fffe   bl  0 <__isnan>
10: R_ARM_THM_CALL  __isnan
  14:   3000addsr0, #0
  16:   bf18it  ne
  18:   2001movne   r0, #1
  1a:   bd08pop {r3, pc}
  1c:   f04f 0001   mov.w   r0, #1
  20:   bd08pop {r3, pc}
  22:   bf00nop


Note how the vcmp.f64 is changed into a vcmpe.f64, triggering an invalid
exception. This means that a lot of the FP functions in the GNU libc trigger an
invalid exception where they should not, therefore rendering FP exceptions
unusable on ARM.


[Bug c++/51930] [4.7 regression] Explicitly instantiated template gets hidden visibility

2012-02-15 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51930

--- Comment #9 from Jason Merrill  2012-02-15 
10:53:37 UTC ---
(In reply to comment #8)
> You could declare the struct before including that library's headers and set
> its visibility with a pragma:
> 
> #pragma GCC visibility push(default)
> struct test;
> #pragma GCC visibility pop

Or just wrap the #include in these pragmas.  If the instantiation needs to have
default visibility, presumably the library has default visibility and so should
its header.


[Bug tree-optimization/46886] [4.5/4.6 Regression] wrong code with -ftree-parallelize-loops -fno-tree-ch

2012-02-15 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46886

--- Comment #12 from Richard Guenther  2012-02-15 
11:05:31 UTC ---
Author: rguenth
Date: Wed Feb 15 11:05:26 2012
New Revision: 184263

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=184263
Log:
2012-02-15  Richard Guenther  

Backport from mainline
2012-02-08  Richard Guenther  

PR tree-optimization/46886
* tree-flow.h (do_while_loop_p): Declare.
* tree-ssa-loop-ch.c (do_while_loop_p): Export.
* tree-parloops.c (parallelize_loops): Only parallelize do-while
loops.

* testsuite/libgomp.c/pr46886.c: New testcase.

Added:
branches/gcc-4_6-branch/libgomp/testsuite/libgomp.c/pr46886.c
Modified:
branches/gcc-4_6-branch/gcc/ChangeLog
branches/gcc-4_6-branch/gcc/tree-flow.h
branches/gcc-4_6-branch/gcc/tree-parloops.c
branches/gcc-4_6-branch/gcc/tree-ssa-loop-ch.c
branches/gcc-4_6-branch/libgomp/ChangeLog


[Bug tree-optimization/46886] [4.5/4.6 Regression] wrong code with -ftree-parallelize-loops -fno-tree-ch

2012-02-15 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46886

Richard Guenther  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work||4.6.3
 Resolution||FIXED
   Target Milestone|4.5.4   |4.6.3

--- Comment #13 from Richard Guenther  2012-02-15 
11:06:01 UTC ---
Fixed for 4.6.3.


[Bug c++/52248] [4.7 Regression] timevar ICE

2012-02-15 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52248

Richard Guenther  changed:

   What|Removed |Added

   Target Milestone|--- |4.7.0


[Bug tree-optimization/52256] Hoist the memory load from both branches of if statement

2012-02-15 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52256

Richard Guenther  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE
Summary|CSE the memory load from|Hoist the memory load from
   |both branches of if |both branches of if
   |statement   |statement

--- Comment #1 from Richard Guenther  2012-02-15 
11:19:55 UTC ---
That's not CSE that's code hoisting.

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


[Bug tree-optimization/23286] missed fully redundant expression

2012-02-15 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23286

--- Comment #34 from Richard Guenther  2012-02-15 
11:19:55 UTC ---
*** Bug 52256 has been marked as a duplicate of this bug. ***


[Bug tree-optimization/52254] VRP does not fold (~a) & N to a ^ N if a has range [0, N]

2012-02-15 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52254

Richard Guenther  changed:

   What|Removed |Added

   Severity|normal  |enhancement

--- Comment #2 from Richard Guenther  2012-02-15 
11:21:53 UTC ---
The combine stage should have access to a valueize() hook as well, to query
SSA propagator/VNs lattice.  That hook can maybe supply this extra info
(I wanted to make VRP info persistent for some time, in SSA_NAME_PTR_INFO
much like we have alignment info there which really is kind of a value-range)


[Bug middle-end/52253] wrong code generation

2012-02-15 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52253

Richard Guenther  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID

--- Comment #3 from Richard Guenther  2012-02-15 
11:31:44 UTC ---
I think it's perfectly ok - we see that tbl.len is 0 and optimize based on
that.


[Bug rtl-optimization/52250] [4.7 Regression] ICE: in sel_remove_bb, at sel-sched-ir.c:5213 with -fsel-sched-pipelining -fsel-sched-pipelining-outer-loops -fselective-scheduling2 and other flags

2012-02-15 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52250

Richard Guenther  changed:

   What|Removed |Added

   Target Milestone|--- |4.7.0


[Bug tree-optimization/52255] [4.7 Regression] ICE: verify_ssa failed, block does not dominate use

2012-02-15 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52255

--- Comment #3 from Jakub Jelinek  2012-02-15 
11:47:15 UTC ---
The problem is that lsm doesn't cleanup unnecessary VOP PHI after changing:
:
  # b.2_21 = PHI 
  # .MEM_22 = PHI <.MEM_18(10), .MEM_16(8)>
  # prephitmp.8_6 = PHI 
  D.1720_7 = prephitmp.8_6;
  D.1721_8 = D.1720_7 | 1;
  # .MEM_17 = VDEF <.MEM_22>
  c[0] = D.1721_8;
  b.3_10 = b.2_21 + 1;
  # .MEM_18 = VDEF <.MEM_17>
  b = b.3_10;
  if (b.3_10 != 0)
goto ;
  else
goto ;

:
  goto ;


into:
  # VUSE <.MEM_17>
  pretmp.7_1 = c[0];
  # VUSE <.MEM_17>
  c_I_lsm.9_12 = c[0];
  # VUSE <.MEM_17>
  b_lsm.10_11 = b;

:
  # b.2_21 = PHI 
  # .MEM_22 = PHI <.MEM_22(10), .MEM_17(8)>
  # prephitmp.8_6 = PHI 
  D.1720_7 = prephitmp.8_6;
  D.1721_8 = D.1720_7 | 1;
  c_I_lsm.9_24 = D.1721_8;
  b.3_10 = b.2_21 + 1;
  b_lsm.10_28 = b.3_10;
  if (b.3_10 != 0)
goto ;
  else
goto ;

:
  # c_I_lsm.9_32 = PHI 
  # b_lsm.10_33 = PHI 
  # .MEM_29 = VDEF <.MEM_22>
  c[0] = c_I_lsm.9_32;
  # .MEM_30 = VDEF <.MEM_29>
  b = b_lsm.10_33;
  goto ;

:
  goto ;

and there is no dom/phicprop pass in between lim1 and vect that would clean
this mess up (with -O3 -fno-tree-vectorize first dom2 changes that
  # .MEM_22 = PHI <.MEM_22(10), .MEM_17(8)>
into
  # .MEM_22 = PHI <.MEM_17(10), .MEM_17(8)>
and then phicprop removes it, but e.g. with -O3 -fno-tree-vectorize
-fno-tree-dominator-opts it survives until *.optimized dump).  The vectorizer
then ignores virtual PHIs, assuming everything will be handled well by the data
ref analysis and adjustments to the stores in the loop.  Which works if the
loop has any stores, because then the stores will have their vdefs renamed, but
if the loop doesn't have any stores, we end up with the verification ICE here.

I think the vectorizer can't rely on these unnecessary virtual PHIs not being
present, so either it could give up on them, or at least for the simple cases
(like this when the virtual PHI on loop->header bb uses itself and some .MEM
from before the loop) could be handled by just propagating the .MEM from before
the loop into all the uses of this vdef.


[Bug tree-optimization/52252] An opportunity for x86 gcc vectorizer (gain up to 3 times)

2012-02-15 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52252

Richard Guenther  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2012-02-15
  Component|target  |tree-optimization
Version|unknown |4.7.0
 Ever Confirmed|0   |1
   Severity|normal  |enhancement

--- Comment #1 from Richard Guenther  2012-02-15 
11:53:58 UTC ---
We fail to SLP vectorize this because of

6: Build SLP failed: different operation in stmt k_15 = MIN_EXPR ;

thus,

out[0] = c - k;
out[1] = m - k;
out[2] = y - k;
out[3] = k;

isn't detected as equivalent to

out[0] = c - k;
out[1] = m - k;
out[2] = y - k;
out[3] =  - k;

or

out[3] = k - 0;

whatever would be more suitable (the latter would fail to be detected as
induction I guess, the former would fail with a similar issue for the
definition of ).

With

out[3] = y - k;

we fail with

6: Load permutation 0 1 2 2 1 1 1 1 0 0 0 0 2 2 2 2
6: Build SLP failed: unsupported load permutation *out_37 = D.1721_16;

we can vectorize

void convert_image(byte *in, byte *out, int size) {
int i;
for(i = 0; i < size; i++) {
byte r = in[0];
byte g = in[1];
byte b = in[2];
byte a = in[3];
byte c, m, y, k, z, tmp;
c = 255 - r;
m = 255 - g;
y = 255 - b;
z = 255 - a;
tmp = MIN(m, y);
k = MIN(c, tmp);
out[0] = c - k;
out[1] = m - k;
out[2] = y - k;
out[3] = z - k;
in += 4;
out += 4;
}
}

though.


[Bug c++/51930] [4.7 regression] Explicitly instantiated template gets hidden visibility

2012-02-15 Thread s...@s-e-f-i.de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51930

--- Comment #10 from Philipp  2012-02-15 12:02:09 UTC ---
But think about a header only library. My test case isn't that far fetched. A
simple struct with no member functions (except for the implicitly generated
ones) should need no visibility at all, in my opinion.
I can work around this somehow, but wouldn't it be better to fix it?


[Bug tree-optimization/52255] [4.7 Regression] ICE: verify_ssa failed, block does not dominate use

2012-02-15 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52255

--- Comment #4 from Richard Guenther  2012-02-15 
12:08:38 UTC ---
It can also, when encountering a virtual PHI, simply rename all VOPs.  LIM
could also fixup those PHIs after performing store-motion.


[Bug testsuite/52259] New: All tm tests fail on targets without pthread support

2012-02-15 Thread Greta.Yorsh at arm dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52259

 Bug #: 52259
   Summary: All tm tests fail on targets without pthread support
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: testsuite
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: greta.yo...@arm.com
Target: arm-none-eabi


All tm tests fail on arm-none-eabi, for example:

/work/builds/a9-feb15/arm-none-eabi/gcc2/gcc/xgcc
-B/work/builds/a9-feb15/arm-none-eabi/gcc2/gcc/
/work/local-checkouts/gcc-fsf/gcc/testsuite/c-c++-common/tm/20100127.c   
-fgnu-tm -O -fdump-tree-tmmark -DSTACK_SIZE=16384 -S-o 20100127.s   
(timeout = 60)
xgcc: error: unrecognized command line option '-pthread'
compiler exited with status 1

Caused by trunk r184174, which added -pthread to the command line of all tm
tests without checking that the target supports pthread:
http://gcc.gnu.org/ml/gcc-patches/2012-02/msg00558.html


[Bug target/52260] New: [4.7 Regression] ICE in clone_tree_hash, at dwarf2out.c:7424

2012-02-15 Thread doko at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52260

 Bug #: 52260
   Summary: [4.7 Regression] ICE in clone_tree_hash, at
dwarf2out.c:7424
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: d...@gcc.gnu.org


Created attachment 26663
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26663
preprocessed source

seen with 20120214 r184236 in stage1 building the debug libstdc++, last
successful build was 20120210 on arm-linux-gnueabi, configured with:

 --enable-libstdcxx-debug
 --enable-libstdcxx-time=yes
 --with-arch=armv7-a
 --with-float=hard
 --with-fpu=vfpv3-d16
 --with-mode=thumb

omitting -gdwarf-4 avoids the ICE.

$ build/gcc/xgcc -Bbuild/gcc/ -c -fno-implicit-templates -std=gnu++11 -gdwarf-4
funcexecpt.ii 
../../../../../../src/libstdc++-v3/src/c++11/functexcept.cc:194:1: internal
compiler error: in clone_tree_hash, at dwarf2out.c:7424
Please submit a full bug report,
with preprocessed source if appropriate.

Breakpoint 1, fancy_abort (file=0x9d63d0 "../../src/gcc/dwarf2out.c",
line=7424,
function=0x9d9c58 "clone_tree_hash") at ../../src/gcc/diagnostic.c:899
899   internal_error ("in %s, at %s:%d", function, trim_filename (file),
line);
(gdb) bt
#0  fancy_abort (file=0x9d63d0 "../../src/gcc/dwarf2out.c", line=7424, 
function=0x9d9c58 "clone_tree_hash") at ../../src/gcc/diagnostic.c:899
#1  0x00269f4a in clone_tree_hash (die=0xb1736540, decl_table=0xeabab0)
at ../../src/gcc/dwarf2out.c:7424
#2  0x0026a04c in copy_decls_walk (unit=0xb1770750, die=0xb161c2a0,
decl_table=0xeabab0)
at ../../src/gcc/dwarf2out.c:7474
#3  0x0026a142 in copy_decls_walk (unit=0xb1770750, die=0xb3fc42d0,
decl_table=0xeabab0)
at ../../src/gcc/dwarf2out.c:7522
#4  0x0026a142 in copy_decls_walk (unit=0xb1770750, die=0xb1770750,
decl_table=0xeabab0)
at ../../src/gcc/dwarf2out.c:7522
#5  0x0026a18e in copy_decls_for_unworthy_types (unit=0xb1770750)
at ../../src/gcc/dwarf2out.c:7538
#6  0x00284302 in dwarf2out_finish (
filename=0xd30328
"../../../../../../src/libstdc++-v3/src/c++11/functexcept.cc")
at ../../src/gcc/dwarf2out.c:22614
#7  0x0048f312 in compile_file () at ../../src/gcc/toplev.c:611
#8  0x0049169a in do_compile () at ../../src/gcc/toplev.c:1938
#9  0x00491822 in toplev_main (argc=20, argv=0xbefff644) at
../../src/gcc/toplev.c:2014
#10 0x001c5e7e in main (argc=20, argv=0xbefff644) at ../../src/gcc/main.c:36


[Bug tree-optimization/50561] [4.7 regression] ICE when compiling zlib with -O2 -floop-flatten -floop-strip-mine

2012-02-15 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50561

--- Comment #10 from Richard Guenther  2012-02-15 
12:20:23 UTC ---
Author: rguenth
Date: Wed Feb 15 12:20:10 2012
New Revision: 184265

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=184265
Log:
2012-02-15  Tobias Grosser 

PR tree-optimization/50561
* graphite-flattening.c (lst_project_loop): Do not
remove old scattering dimensions after flattening.
(lst_do_flatten): Likewise.

* gcc.dg/graphite/pr50561.c: New testcase.

Added:
trunk/gcc/testsuite/gcc.dg/graphite/pr50561.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/graphite-flattening.c
trunk/gcc/testsuite/ChangeLog


[Bug tree-optimization/50561] [4.7 regression] ICE when compiling zlib with -O2 -floop-flatten -floop-strip-mine

2012-02-15 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50561

Richard Guenther  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED

--- Comment #11 from Richard Guenther  2012-02-15 
12:21:18 UTC ---
Fixed.


[Bug target/52261] New: [avr] Add support for AVR Xmega cores

2012-02-15 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52261

 Bug #: 52261
   Summary: [avr] Add support for AVR Xmega cores
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: g...@gcc.gnu.org
CC: eric.wedding...@atmel.com
Target: avr


Xmega core are special with respect to I-flag instruction and writing SPL (low
byte of stack pointer SP):

In old cores, setting I-flag by means of SEI/RETI/OUT has a latency of 1
instruction

In Xmega cores, setting I-flag by means of SEI/RETI/OUT has a latency of 0
instructions.

This, writing to SP by a sequence like

IN  tmp_reg, SREG
CLI
OUT SP_H, %B1
OUT SREG, tmp_reg
OUT SP_L, %A1

is no move correct because write of SP with that sequence is no more atomic.

Xmega's OUT SP_L,* inhibits IRQs for 4 instructions so that the following
sequence can be used instead to write to SP:

OUT SP_L, %A1
OUT SP_H, %B1


[Bug target/52261] [avr] Add support for AVR Xmega cores

2012-02-15 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52261

Georg-Johann Lay  changed:

   What|Removed |Added

   Priority|P3  |P4
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2012-02-15
   Target Milestone|--- |4.7.0
 Ever Confirmed|0   |1

--- Comment #1 from Georg-Johann Lay  2012-02-15 
12:35:38 UTC ---
For Xmega cores and MCUs supported by binutils, see src/gas/config/tc-avr.c

http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/config/tc-avr.c?content-type=text/x-cvsweb-markup&cvsroot=src


[Bug target/52261] [avr] Add support for AVR Xmega cores

2012-02-15 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52261

--- Comment #2 from Georg-Johann Lay  2012-02-15 
13:16:01 UTC ---
Author: gjl
Date: Wed Feb 15 13:15:56 2012
New Revision: 184269

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=184269
Log:
libgcc/
PR target/52261
* config/avr/lib1funcs.S (__prologue_saves__): Handle AVR_XMEGA
(__epilogue_restores__): Ditto.

gcc/
PR target/52261
* config/avr/avr-devices.c (avr_arch_types): Add avrxmega2,
avrxmega4, avrxmega5, avrxmega6, avrxmega7.
Rewrite initializers for .macro.
* config/avr/avr-mcus.def (AVR_MCU): Add known MCUs:
avrxmega2: atxmega16a4, atxmega16d4, atxmega16x1, atxmega32a4
atxmega32d4, atxmega32x1.
avrxmega4: atxmega64a3, atxmega64d3.
avrxmega5: atxmega64a1, atxmega64a1u.
avrxmega6: atxmega128a3, atxmega128d3, atxmega192a3, atxmega192d3,
atxmega256a3, atxmega256a3b, atxmega256a3bu, atxmega256d3.
avrxmega7: atxmega128a1, atxmega128a1u.

* config/avr/multilib.h: Regenerate.
* config/avr/t-multilib: Regenerate.
* config/avr/avr-tables.opt: Regenerate.

* config/avr/avr.h (enum avr_arch): Add: ARCH_AVRXMEGA2,
ARCH_AVRXMEGA4,ARCH_AVRXMEGA5, ARCH_AVRXMEGA6, ARCH_AVRXMEGA7.
(struct base_arch_s): Rename reserved to xmega_p.
Rename reserved2 to have_rampd.
(AVR_XMEGA): New define.
(AVR_HAVE_RAMPD, AVR_HAVE_RAMPX, AVR_HAVE_RAMPY): New defines.
(AVR_HAVE_RAMPZ): Change definition to fit xmega.

* config/avr/predicates.md (io_address_operand): Take into
account SFR offset.
(low_io_address_operand): Ditto.
(high_io_address_operand): Ditto.

* config/avr/avr.md (isa): Add alternatives no_xmega, xmega.
(enabled, movhi_sp_r): Use them.

* config/avr/avr-c.c (avr_cpu_cpp_builtins): Use
cpp_define_formatted to built-in define __AVR_ARCH__.
(__AVR_XMEGA__): New built-in define.
(__AVR_HAVE_RAMPD__): New built-in define.
(__AVR_HAVE_RAMPX__): New built-in define.
(__AVR_HAVE_RAMPY__): New built-in define.
(__AVR_HAVE_RAMPZ__): Change condition when to built-in define it.

* config/avr/avr.c (avr_addr_t): Add ccp, rampd, rampx, rampy.
(avr_option_override): Initialize them.
(sreg_rtx, rampd_rtx, rampx_rtx, rampy_rtx): New GTY rtx.
(avr_init_expanders): Initialize them. No more block several calls.
(emit_push_sfr): New static function.
(avr_prologue_setup_frame): Use it to push SREG, RAMPD/X/Y/Z as needed.
Handle AVR_XMEGA.
(expand_epilogue): Handle AVR_XMEGA. Pop RAMPD/X/Y/Z as needed.
(avr_print_operand): Print addreeses as symbols for
RAMPX, RAMPY, RAMPD, CCP.
(output_movhi): Handle AVR_XMEGA when writing to SP.
(avr_out_movhi_mr_r_xmega): New static function.
(out_movhi_mr_r): Forward to avr_out_movhi_mr_r_xmega for AVR_XMEGA.
(avr_file_start): Print symbol defines for __RAMPX__,  __RAMPY__,
__RAMPD__,  __CCP__ as needed.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/avr/avr-c.c
trunk/gcc/config/avr/avr-devices.c
trunk/gcc/config/avr/avr-mcus.def
trunk/gcc/config/avr/avr-tables.opt
trunk/gcc/config/avr/avr.c
trunk/gcc/config/avr/avr.h
trunk/gcc/config/avr/avr.md
trunk/gcc/config/avr/multilib.h
trunk/gcc/config/avr/predicates.md
trunk/gcc/config/avr/t-multilib
trunk/libgcc/ChangeLog
trunk/libgcc/config/avr/lib1funcs.S


[Bug testsuite/52259] All tm tests fail on targets without pthread support

2012-02-15 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52259

Eric Botcazou  changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2012-02-15
 CC||ebotcazou at gcc dot
   ||gnu.org
 Ever Confirmed|0   |1

--- Comment #1 from Eric Botcazou  2012-02-15 
13:38:35 UTC ---
> Caused by trunk r184174, which added -pthread to the command line of all tm
> tests without checking that the target supports pthread:
> http://gcc.gnu.org/ml/gcc-patches/2012-02/msg00558.html

Please read the patch, it incorporates a method to address this issue.  Does
arm-none-eabi really support -fgnu-tm?  If no, then the problem might already
have been fixed by http://gcc.gnu.org/ml/gcc-cvs/2012-02/msg00458.html


[Bug c++/51930] [4.7 regression] Explicitly instantiated template gets hidden visibility

2012-02-15 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51930

--- Comment #11 from Paolo Carlini  2012-02-15 
13:50:07 UTC ---
("...  wouldn't it be better to fix it?" should read "... to change it?",
otherwise you are begging the question, eh)


[Bug testsuite/52259] All tm tests fail on targets without pthread support

2012-02-15 Thread Greta.Yorsh at arm dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52259

Greta Yorsh  changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||FIXED

--- Comment #2 from Greta Yorsh  2012-02-15 
14:10:40 UTC ---
You are right, the problem has been fixed by r184237.

Thank you,
Greta


[Bug c++/41518] copy initialization of volatile objects

2012-02-15 Thread lucdanton at free dot fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41518

lucdanton at free dot fr changed:

   What|Removed |Added

 CC||lucdanton at free dot fr

--- Comment #3 from lucdanton at free dot fr 2012-02-15 15:08:11 UTC ---
Reproducible with const:

$ cat main.cpp
struct copyable {
copyable() {}
copyable(copyable&) {}
};

struct wrapper {
copyable c;

wrapper(int) {}
};

int
main()
{
wrapper const w = 0;
}

$ g++-snapshot -Wall -Wextra -pedantic main.cpp 
main.cpp: In function 'int main()':
main.cpp:15:23: error: no matching function for call to 'wrapper::wrapper(const
wrapper)'
main.cpp:15:23: note: candidates are:
main.cpp:9:5: note: wrapper::wrapper(int)
main.cpp:9:5: note:   no known conversion for argument 1 from 'const wrapper'
to 'int'
main.cpp:6:8: note: wrapper::wrapper(wrapper&)
main.cpp:6:8: note:   no known conversion for argument 1 from 'const wrapper'
to 'wrapper&'

$ g++-snapshot -Wall -Wextra -pedantic -std=c++11 main.cpp  
main.cpp: In function 'int main()':
main.cpp:15:23: error: no matching function for call to 'wrapper::wrapper(const
wrapper)'
main.cpp:15:23: note: candidates are:
main.cpp:9:5: note: wrapper::wrapper(int)
main.cpp:9:5: note:   no known conversion for argument 1 from 'const wrapper'
to 'int'
main.cpp:6:8: note: wrapper::wrapper(wrapper&)
main.cpp:6:8: note:   no known conversion for argument 1 from 'const wrapper'
to 'wrapper&'

$ g++-snapshot -v
 ...
gcc version 4.7.0 20120128 (experimental) [trunk revision 183664] (Debian
20120128-1)

I noticed a similar problem when using copy-initialization on a const object of
a class that is movable (with move constructor accepting T&&, not T const&&)
but not copyable. I noticed that in C++11 8.5 Initializers [dcl.init] takes
great care to specify:

> [...] if the function is a constructor, the call initializes a temporary of 
> the cv-unqualified version of the destination type.

on paragraph 16 (I'm using n3290). I'm not as familiar with C++03 but
apparently the text only mentions creation of a temporary, without exactly
specifying of which type.


[Bug target/52260] [4.7 Regression] ICE in clone_tree_hash, at dwarf2out.c:7424

2012-02-15 Thread ams at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52260

Andrew Stubbs  changed:

   What|Removed |Added

 CC||ams at gcc dot gnu.org,
   ||jakub at redhat dot com

--- Comment #1 from Andrew Stubbs  2012-02-15 15:23:12 
UTC ---
SVN r184223 builds, r184224 does not. This is perhaps unsurprising given that
that's the revision in which Jakub introduced the crashing function:

2012-02-14  Jakub Jelinek  

   PR debug/51950
   * dwarf2out.c (clone_tree_hash): New function.
   (copy_decls_walk): Use it instead of clone_tree.


[Bug fortran/47486] gfortran -M exits with fatal error when -o option is used

2012-02-15 Thread ktietz at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47486

--- Comment #6 from Kai Tietz  2012-02-15 15:30:58 
UTC ---
I have tested variant suggested in #comment 4 and those in #comment 5.  Both
are fixing the ICE.  The file test.d (as used as crash example) will be created
empty.


[Bug fortran/47486] gfortran -M exits with fatal error when -o option is used

2012-02-15 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47486

--- Comment #7 from Tobias Burnus  2012-02-15 
15:51:45 UTC ---
(In reply to comment #5)
> "%{E|M|MM|MT|MQ|MD|MMD:;:" F951_OPTIONS "}"

Good idea - and looks cleaner. Except (my bug) that -MD and -MMD do not imply
"-E". Thus, those shouldn't appear in that list.

Additionally, with -M the output goes - according to Kai (thanks for testing!)
- still to stdout. I think the "if (gfc_cpp_preprocess_only ())" in
fortran/cpp.c's gfc_cpp_init_0 needs to be modified.


[Bug c++/44783] implement -ftemplate-backtrace-limit=

2012-02-15 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44783

Paolo Carlini  changed:

   What|Removed |Added

  Attachment #26658|0   |1
is obsolete||

--- Comment #13 from Paolo Carlini  2012-02-15 
15:55:26 UTC ---
Created attachment 26664
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26664
Draft 2

As regtested.


[Bug target/52260] [4.7 Regression] ICE in clone_tree_hash, at dwarf2out.c:7424

2012-02-15 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52260

Richard Guenther  changed:

   What|Removed |Added

   Target Milestone|--- |4.7.0


[Bug c++/41518] copy initialization of volatile objects

2012-02-15 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41518

Paolo Carlini  changed:

   What|Removed |Added

 CC|gcc-bugs at gcc dot gnu.org |jason at gcc dot gnu.org

--- Comment #4 from Paolo Carlini  2012-02-15 
16:04:41 UTC ---
Let's ask Jason to double check the triage.


[Bug tree-optimization/23286] missed fully redundant expression

2012-02-15 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23286

Richard Guenther  changed:

   What|Removed |Added

  Attachment #19634|0   |1
is obsolete||

--- Comment #35 from Richard Guenther  2012-02-15 
15:55:52 UTC ---
Created attachment 26665
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26665
forward ported patch

I made the patch apply and build again (unbootstrapped/tested).

Steven, if you happen to have a "latest" patch around from yours somewhere
I'd appreciate if you can make it appear in my inbox somehow ... I'll integrate
it with my changes.  Thx.


[Bug c++/51912] [C++11] G++ accepts floating point case labels

2012-02-15 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51912

Paolo Carlini  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2012-02-15
 Ever Confirmed|0   |1


[Bug c++/52257] [C++11] switch cases accept floating point constants

2012-02-15 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52257

Paolo Carlini  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE

--- Comment #1 from Paolo Carlini  2012-02-15 
16:20:55 UTC ---
Dup.

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


[Bug c++/51912] [C++11] G++ accepts floating point case labels

2012-02-15 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51912

Paolo Carlini  changed:

   What|Removed |Added

 CC||daniel.kruegler at
   ||googlemail dot com

--- Comment #1 from Paolo Carlini  2012-02-15 
16:20:55 UTC ---
*** Bug 52257 has been marked as a duplicate of this bug. ***


[Bug c++/52241] Performance degradation of 447.dealII on corei7 at spec2006_base32.

2012-02-15 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52241

--- Comment #2 from Paolo Carlini  2012-02-15 
16:39:00 UTC ---
I don't understand what you mean by "inlining", since '_Rb_tree_node_base' is a
*type* not a function.

Anyway, I don't see how Benjamin's split could have caused inlining issues.


[Bug fortran/51825] Fortran runtime error: Cannot match namelist object name

2012-02-15 Thread jvdelisle at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51825

--- Comment #4 from Jerry DeLisle  2012-02-15 
17:08:51 UTC ---
I have been working on this one. The order of the lines within the namelist
file can cause the error to go away.  I have also found that the read of the
character string acutally completes OK.  Its an elusive bug, but I am still
working to isolate it.  I o think we are leaving the chracer read in a wrong
state.  I will see if I can map it out.


[Bug middle-end/43548] internal compiler error: in ggc_set_mark, at ggc-page.c:1338

2012-02-15 Thread ktietz at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43548

Kai Tietz  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||ktietz at gcc dot gnu.org
 Resolution||FIXED

--- Comment #8 from Kai Tietz  2012-02-15 17:09:59 
UTC ---
This bug was fixed.  Can't reproduce it with 4.5.x, 4.6.x, and 4.7.x.  IIRC it
was related to a fixed bug about push/pop-macro.


[Bug translation/52262] New: translatable string typos (3): "REAl"

2012-02-15 Thread stigge at antcom dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52262

 Bug #: 52262
   Summary: translatable string typos (3): "REAl"
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: translation
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: sti...@antcom.de


E.g. "Interpret any REAl(4) as a REAL(8)"

1. gcc/fortran/lang.opt:503
2. gcc/fortran/lang.opt:511
3. gcc/fortran/lang.opt:523


[Bug tree-optimization/52255] [4.7 Regression] ICE: verify_ssa failed, block does not dominate use

2012-02-15 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52255

Jakub Jelinek  changed:

   What|Removed |Added

   Keywords||ice-checking

--- Comment #5 from Jakub Jelinek  2012-02-15 
18:10:47 UTC ---
We actually do that, but only at the end of the vectorize_loops after all
vectorization:
mark_sym_for_renaming (gimple_vop (cfun));
+ TODO_update_ssa.
The problem is that this diagnostic is triggered sooner than that, when
gimple_duplicate_loop_to_header_edge calls
#ifdef ENABLE_CHECKING
  if (loops_state_satisfies_p (LOOP_CLOSED_SSA))
verify_loop_closed_ssa (true);
#endif
during vect_loop_versioning, and the function that messes up the VOPs which
triggers the checking failure is slpeel_tree_peel_loop_to_edge.
If I change the above to (false), then it passes and generates correct IL.


[Bug target/52152] MIPS ELF targets should use dbxelf.h

2012-02-15 Thread ro at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52152

--- Comment #2 from Rainer Orth  2012-02-15 18:24:37 UTC 
---
Author: ro
Date: Wed Feb 15 18:24:30 2012
New Revision: 184280

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=184280
Log:
XFAIL objc.dg/stabs-1.m on IRIX (PR target/52152)

PR target/52152
* objc.dg/stabs-1.m: xfail on mips-sgi-irix6.5.

Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/objc.dg/stabs-1.m


[Bug target/52238] -mms-bitfields: __attribute__ ((aligned (n))) ignored for struct members

2012-02-15 Thread ktietz at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52238

Kai Tietz  changed:

   What|Removed |Added

 CC||ktietz at gcc dot gnu.org

--- Comment #2 from Kai Tietz  2012-02-15 18:34:40 
UTC ---
in stor-layout.c function place_field() it is said "We already align ms_struct
fields, so don't re-align them".  This isn't completely true, as desired_align
isn't handled in ms_struct case.

Following patch seems to solve this issue:

Index: stor-layout.c
===
--- stor-layout.c   (revision 184262)
+++ stor-layout.c   (working copy)
@@ -1141,15 +1141,14 @@
 }

   /* Does this field automatically have alignment it needs by virtue
- of the fields that precede it and the record's own alignment?
- We already align ms_struct fields, so don't re-align them.  */
-  if (known_align < desired_align
-  && !targetm.ms_bitfield_layout_p (rli->t))
+ of the fields that precede it and the record's own alignment?  */
+  if (known_align < desired_align)
 {
   /* No, we need to skip space before this field.
 Bump the cumulative size to multiple of field alignment.  */

-  if (DECL_SOURCE_LOCATION (field) != BUILTINS_LOCATION)
+  if (!targetm.ms_bitfield_layout_p (rli->t)
+  && DECL_SOURCE_LOCATION (field) != BUILTINS_LOCATION)
warning (OPT_Wpadded, "padding struct to align %q+D", field);

   /* If the alignment is still within offset_align, just align
@@ -1302,7 +1301,7 @@
 type size!) */
  HOST_WIDE_INT bitsize = tree_low_cst (DECL_SIZE (field), 1);

- if (rli->remaining_in_alignment < bitsize)
+ if (rli->remaining_in_alignment < bitsize) /*  */
{
  HOST_WIDE_INT typesize = tree_low_cst (TYPE_SIZE (type), 1);


[Bug tree-optimization/23286] missed fully redundant expression

2012-02-15 Thread steven at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23286

--- Comment #36 from Steven Bosscher  2012-02-15 
18:37:40 UTC ---
The patch was on one of the gsyprf machines, which are gone (didn't I already
tell you this before??). So the "latest" patch is lost...


[Bug c++/52263] New: Zero-initialization doesn't seem to work correctly for virtual inheritance

2012-02-15 Thread ryan_at_work_also at hotmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52263

 Bug #: 52263
   Summary: Zero-initialization doesn't seem to work correctly for
virtual inheritance
Classification: Unclassified
   Product: gcc
   Version: 4.6.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: ryan_at_work_a...@hotmail.com


Created attachment 2
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=2
error testcase

Using:

g++ (GCC) 4.6.1 20110908 (Red Hat 4.6.1-9)
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

The following code will abort due to the failed check on deconstruction at exit
(damaged memory). Uncomment the constructor of "Derived" and things work fine. 

The larger workspace I found this in actually had data being zeroed for other
objects in memory (from a "rep stos" instruction). It looked like the
initialization of the "Base" object occurred followed by a zero-initialization
of that same object (which had already been created) occurred, BUT at the wrong
memory address in my case (over memory used by other objects in my
application).

The output from compilation:

g++ -Wall -Wextra  -o gcc_fail  gcc_fail.cxx
cc_fail.cxx:53:2: warning: #warning "When uncommented, everything works fine -
when commented, abort occurs" [-Wcpp]
gcc_fail.cxx:66:1: warning: unused parameter ‘argc’ [-Wunused-parameter]
gcc_fail.cxx:66:1: warning: unused parameter ‘argv’ [-Wunused-parameter]


[Bug c++/52263] Zero-initialization doesn't seem to work correctly for virtual inheritance

2012-02-15 Thread ryan_at_work_also at hotmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52263

--- Comment #1 from Ryan  2012-02-15 
18:39:38 UTC ---
I forgot to add the system - Linux 2.6.40.3-0.fc15.x86_64


[Bug libitm/52042] libitm.c/clone-1.c (all darwin) and libitm.c/stackundo.c (darwin 11) execution tests fail with -fpie

2012-02-15 Thread pmarlier at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52042

--- Comment #10 from pmarlier at gcc dot gnu.org 2012-02-15 19:17:47 UTC ---
Author: pmarlier
Date: Wed Feb 15 19:17:42 2012
New Revision: 184281

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=184281
Log:
2012-02-15  Iain Sandoe  
Patrick Marlier  

PR libitm/52042
* config/darwin-crt-tm.c (getTMCloneTable): New function.
(__doTMRegistrations): Call it.
(__doTMdeRegistrations): Likewise. 


Modified:
trunk/libgcc/ChangeLog
trunk/libgcc/config/darwin-crt-tm.c


[Bug tree-optimization/52255] [4.7 Regression] ICE: verify_ssa failed, block does not dominate use

2012-02-15 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52255

--- Comment #6 from Jakub Jelinek  2012-02-15 
19:20:55 UTC ---
Created attachment 26667
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26667
gcc47-pr52255.patch

Untested fix.


[Bug rtl-optimization/52208] [4.7 Regression] Useless store

2012-02-15 Thread vmakarov at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52208

Vladimir Makarov  changed:

   What|Removed |Added

 CC||vmakarov at redhat dot com

--- Comment #4 from Vladimir Makarov  2012-02-15 
19:34:06 UTC ---
(In reply to comment #3)
> The -1000 costs comes from the scan_one_insn subtracting there
> ira_memory_move_cost[][][] * frequency (i.e. memory_cost becomes -4000) and
> on the plus we add just 3000 to memory_cost.
> I wonder if we shouldn't limit this subtraction of mem_cost / setting of
> counted_mem e.g. to general_operand (SET_SRC (set), GET_MODE (SET_SRC (set)))
> and leave the specialized memory loads alone (I know, it would be a hack, but
> works for this and shouldn't pessimize the cases for which this hunk has been
> added).

I would not name this a hack, Jakub.  It is a heuristic :)  This solution is ok
for me.  I checked SPEC2000 and did not find any effect of this patch on
generated code. So the patch is ok but it would be great if you add some
comment for the change. 

  And would at least tiny bit model what reload will do with such
> non-standard mems - as on this testcase it doesn't use the orignal mem, but
> does the load, followed by store to another mem, followed by load from that
> mem.
> 
> --- ira-costs.c.jj 2012-01-20 12:35:17.0 +0100
> +++ ira-costs.c 2012-02-14 14:54:52.297356053 +0100
> @@ -1313,7 +1313,8 @@ scan_one_insn (rtx insn)
>|| (CONSTANT_P (XEXP (note, 0))
>&& targetm.legitimate_constant_p (GET_MODE (SET_DEST (set)),
>  XEXP (note, 0))
> -  && REG_N_SETS (REGNO (SET_DEST (set))) == 1)))
> +  && REG_N_SETS (REGNO (SET_DEST (set))) == 1))
> +  && general_operand (SET_SRC (set), GET_MODE (SET_SRC (set
>  {
>enum reg_class cl = GENERAL_REGS;
>rtx reg = SET_DEST (set);


[Bug c++/41518] copy initialization of volatile objects

2012-02-15 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41518

--- Comment #5 from Jason Merrill  2012-02-15 
19:49:29 UTC ---
I agree with the analysis.


[Bug libstdc++/51368] libstdc++ python pretty printers should use --with-python-dir just like libjava

2012-02-15 Thread bkoz at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51368

--- Comment #2 from Benjamin Kosnik  2012-02-15 
19:56:12 UTC ---
Author: bkoz
Date: Wed Feb 15 19:56:07 2012
New Revision: 184282

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=184282
Log:
2012-02-15  Benjamin Kosnik  

PR libstdc++/51368
* acinclude.m4 (GLIBCXX_ENABLE_PYTHON): New.
* configure.ac: Use it.
* python/Makefile.am: Same.
* configure: Regenerate.
* python/Makefile.in: Regenerate.
* Makefile.in: Same.
* doc/Makefile.in: Same.
* include/Makefile.in: Same.
* po/Makefile.in: Same.
* src/Makefile.in: Same.
* src/c++11/Makefile.in: Same.
* src/c++98/Makefile.in: Same.
* testsuite/Makefile.in: Same.

Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/Makefile.in
trunk/libstdc++-v3/acinclude.m4
trunk/libstdc++-v3/configure
trunk/libstdc++-v3/configure.ac
trunk/libstdc++-v3/doc/Makefile.in
trunk/libstdc++-v3/include/Makefile.in
trunk/libstdc++-v3/libsupc++/Makefile.in
trunk/libstdc++-v3/po/Makefile.in
trunk/libstdc++-v3/python/Makefile.am
trunk/libstdc++-v3/python/Makefile.in
trunk/libstdc++-v3/src/Makefile.in
trunk/libstdc++-v3/src/c++11/Makefile.in
trunk/libstdc++-v3/src/c++98/Makefile.in
trunk/libstdc++-v3/testsuite/Makefile.in


[Bug libstdc++/51368] libstdc++ python pretty printers should use --with-python-dir just like libjava

2012-02-15 Thread bkoz at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51368

--- Comment #3 from Benjamin Kosnik  2012-02-15 
20:11:24 UTC ---
Mine.


[Bug translation/52264] New: translatable string typo: "refernece"

2012-02-15 Thread stigge at antcom dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52264

 Bug #: 52264
   Summary: translatable string typo: "refernece"
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: translation
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: sti...@antcom.de


gcc/cgraphunit.c:670:
"Alias has non-alias refernece" -> "... reference


[Bug libstdc++/51967] FAIL: libstdc++-prettyprinters/48362.cc

2012-02-15 Thread bkoz at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51967

--- Comment #6 from Benjamin Kosnik  2012-02-15 
20:20:24 UTC ---

what's the python version you are using that is not working?

I am using 2.7.2


[Bug libstdc++/51368] libstdc++ python pretty printers should use --with-python-dir just like libjava

2012-02-15 Thread bkoz at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51368

--- Comment #4 from Benjamin Kosnik  2012-02-15 
20:24:51 UTC ---
This probably needs changing
http://gcc.gnu.org/install/configure.html


[Bug translation/52264] translatable string typo: "refernece"

2012-02-15 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52264

Jakub Jelinek  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2012-02-15
 CC||jakub at gcc dot gnu.org
 AssignedTo|unassigned at gcc dot   |jakub at gcc dot gnu.org
   |gnu.org |
   Target Milestone|--- |4.7.0
 Ever Confirmed|0   |1


[Bug fortran/52265] New: [OOP] TREE dump confusing with nested SELECT TYPE

2012-02-15 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52265

 Bug #: 52265
   Summary: [OOP] TREE dump confusing with nested SELECT TYPE
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Keywords: diagnostic
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: bur...@gcc.gnu.org
CC: pa...@gcc.gnu.org


The following program seems to work as expected, however, the dump is very
irritating:

switch (a._vptr->_hash)
  {
case 6231989:;
__tmp_type_t = a._data;
{
  struct t * __tmp_type_t;

  switch (b._vptr->_hash)
{
  case 6231989:;
  __tmp_type_t = b._data;
  *__tmp_type_t = *__tmp_type_t;

There are two variables called "__tmp_type_t", one pointing to a._data and the
other to b._data. Most striking is the last line where both variables occur.
That's very confusing and would be impossible to do in C, C++, or Fortran.

Expected: Use different variable names, e.g. via
  gfc_create_var (type, "__tmp_type_t")


type t
  integer :: i = 5
end type t

class(t), allocatable :: a, b

allocate(a,b)
b%i = 77
select type (a)
  type is (t)
   select type (b)
 type is (t)
   a = b
   b%i = 88
   end select
end select
if (a%i /= 77) call abort ()
if (a%i /= 88) call abort ()
end


[Bug fortran/52227] [OOP] TARGET attribute mishandled in polymorphic types

2012-02-15 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52227

--- Comment #1 from Tobias Burnus  2012-02-15 
20:59:06 UTC ---
A related issue, for
 class(t), target, allocatable :: a(:)
 target :: a
no error is printed - but it should!

The problem seems to be that already for the first line, the class symbol is
created - and the attr.target does not seem to get stored properly.

The same problem occurs for ALLOCATABLE or POINTER - but only if the variable
is a dummy, otherwise class_ok is false and the creation is deferred. Example:

  type t
  end type t
contains
  subroutine foo(a,b)
class(t) :: a, b
allocatable :: a, b
allocate(a,b)
  end subroutine
end

which fails with "ALLOCATABLE attribute conflicts with POINTER" while using
"pointer" fails with "Duplicate POINTER attribute specified"


[Bug target/52199] V2DI vec_duplicate ICE on valid code

2012-02-15 Thread meissner at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52199

--- Comment #2 from Michael Meissner  2012-02-15 
21:17:46 UTC ---
Author: meissner
Date: Wed Feb 15 21:17:42 2012
New Revision: 184285

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=184285
Log:
[gcc]
2012-02-15  Michael Meissner  

PR target/52199
* config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
force_reg instead of copy_to_reg for better optimization.  Force
non-register or memory operands into a register.

[gcc/testsuite]
2012-02-15  Michael Meissner  

PR target/52199
* gcc.target/powerpc/pr52199.c: New file.


Added:
branches/gcc-4_6-branch/gcc/testsuite/gcc.target/powerpc/pr52199.c
Modified:
branches/gcc-4_6-branch/gcc/ChangeLog
branches/gcc-4_6-branch/gcc/config/rs6000/rs6000.c
branches/gcc-4_6-branch/gcc/testsuite/ChangeLog


[Bug middle-end/52236] segfault in program that results from compiling sha512-hash.c

2012-02-15 Thread zooko at zooko dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52236

Zooko Wilcox-O'Hearn  changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||INVALID

--- Comment #4 from Zooko Wilcox-O'Hearn  2012-02-15 
21:22:28 UTC ---
Thanks to Samuel Neves, the bug was identified in the application (pycryptopp),
not in gcc. Thanks!


[Bug target/52199] V2DI vec_duplicate ICE on valid code

2012-02-15 Thread meissner at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52199

Michael Meissner  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2012-02-15
 Ever Confirmed|0   |1


[Bug libffi/52221] [libffi] r183675,r184021 needs to be fixed.

2012-02-15 Thread jojelino at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52221

gee  changed:

   What|Removed |Added

Summary|[libffi] r184021 needs to   |[libffi] r183675,r184021
   |be fixed.   |needs to be fixed.
   Severity|normal  |blocker

--- Comment #7 from gee  2012-02-15 21:32:10 UTC ---
there is an big mistake in r183675

-  ffi_call_win32(ffi_prep_args_raw, &ecif, cif->bytes, cif->flags,
- ecif.rvalue, fn);
+  ffi_call_win32(ffi_prep_args, &ecif, cif->abi, cif->bytes, cif->flags,
+ ecif.rvalue, fn);

and below the mistake, another one.

+if (passed_regs < 2 && abi == FFI_FASTCALL)
+  abi = FFI_THISCALL;
+if (passed_regs < 1 && abi == FFI_THISCALL)
+  abi = FFI_STDCALL;
+ffi_call_win32(ffi_prep_args, &ecif, abi, cif->bytes, cif->flags,
+   ecif.rvalue, fn);
+  }

why ffi_prep_args_raw changed to ffi_prep_args?? this explains why i succeed
but not sigsegving in ExtraClassLoader.
because of this, i decidec to raise the severity to blocker.


[Bug target/52199] V2DI vec_duplicate ICE on valid code

2012-02-15 Thread meissner at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52199

--- Comment #3 from Michael Meissner  2012-02-15 
21:42:04 UTC ---
Author: meissner
Date: Wed Feb 15 21:42:00 2012
New Revision: 184287

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=184287
Log:
[gcc]
2012-02-15  Michael Meissner  

PR target/52199
* config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
force_reg instead of copy_to_reg for better optimization.  Force
non-register or memory operands into a register.

[gcc/testsuite]
2012-02-15  Michael Meissner  

PR target/52199
* gcc.target/powerpc/pr52199.c: New file.


Added:
trunk/gcc/testsuite/gcc.target/powerpc/pr52199.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/rs6000/rs6000.c
trunk/gcc/testsuite/ChangeLog


[Bug target/52199] V2DI vec_duplicate ICE on valid code

2012-02-15 Thread meissner at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52199

Michael Meissner  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #4 from Michael Meissner  2012-02-15 
21:49:58 UTC ---
Trunk fixed in subversion id 184287.
GCC 4.6 branch fixed in subversion id 184283.


[Bug go/52266] New: [4.7 Regression] syntax error in libgo/configure

2012-02-15 Thread doko at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52266

 Bug #: 52266
   Summary: [4.7 Regression] syntax error in libgo/configure
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: go
AssignedTo: i...@airs.com
ReportedBy: d...@gcc.gnu.org


seen in 4.7.0, not 4.6.2:

checking for stdint.h... yes
checking for unistd.h... yes
/scratch/packages/gcc/4.7/gcc-4.7-4.7-20120210/src/libgo/configure: line 4750:
#include: 
command not found
checking for a sed that does not truncate output... /bin/sed
checking for fgrep... /bin/grep -F
checking how to print strings... printf

configure:
[...]

eval as_val=\$$as_ac_Header
   if test "x$as_val" = x""yes; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF

fi

done


$ac_includes_default

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not
truncate output" >
&5
$as_echo_n "checking for a sed that does not truncate output... " >&6; }
if test "${ac_cv_path_SED+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
[...]


[Bug go/46986] Go is not supported on Darwin

2012-02-15 Thread afb at users dot sourceforge.net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46986

--- Comment #19 from Anders F Björklund  
2012-02-15 22:08:59 UTC ---
(In reply to comment #17)
> I think that now the only thing which will need to change in the Go frontend
> proper is using otool instead of objcopy in libgo/Makefile.am.

The otool was simple enough, but the other go_export issues still remain.
And there are some new issues with ucontext being deprecated on Mac OS X.


[Bug go/46986] Go is not supported on Darwin

2012-02-15 Thread afb at users dot sourceforge.net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46986

--- Comment #22 from Anders F Björklund  
2012-02-15 22:16:41 UTC ---
Created attachment 26670
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26670
gcc-ucontext.diff

ucontext is deprecated on Mac OS X 10.5-10.6, including ucontext.h gives error:

In file included from ../../../gcc/libgo/runtime/runtime.h:20:0,
 from ../../../gcc/libgo/runtime/go-main.c:21:
/usr/include/ucontext.h:42:2: error: #error ucontext routines are deprecated,
and require _XOPEN_SOURCE to be defined

ucontext is missing altogether from Mac OS X 10.7, but there is no TLS either:

error: thread-local storage not supported for this target


[Bug go/46986] Go is not supported on Darwin

2012-02-15 Thread afb at users dot sourceforge.net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46986

--- Comment #21 from Anders F Björklund  
2012-02-15 22:12:24 UTC ---
Created attachment 26669
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26669
gcc-go_export.diff

Need to give both segment and section for export on Darwin:

/var/folders/SU/SU8yve9tFP4OXneVoY+KsU+++TI/-Tmp-//ccWicBIX.s:3:Expected comma
after segment-name
/var/folders/SU/SU8yve9tFP4OXneVoY+KsU+++TI/-Tmp-//ccWicBIX.s:3:Rest of line
ignored. 1st junk character valued 32 ( ).
/var/folders/SU/SU8yve9tFP4OXneVoY+KsU+++TI/-Tmp-//ccWicBIX.s:3:Junk character
92 (\).
/var/folders/SU/SU8yve9tFP4OXneVoY+KsU+++TI/-Tmp-//ccWicBIX.s:3:Rest of line
ignored. 1st junk character valued 49 (1).


[Bug go/46986] Go is not supported on Darwin

2012-02-15 Thread afb at users dot sourceforge.net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46986

--- Comment #20 from Anders F Björklund  
2012-02-15 22:10:09 UTC ---
Created attachment 26668
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26668
updated patch for trunk


[Bug go/46986] Go is not supported on Darwin

2012-02-15 Thread mrs at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46986

m...@gcc.gnu.org  changed:

   What|Removed |Added

 CC||mrs at gcc dot gnu.org

--- Comment #23 from mrs at gcc dot gnu.org  2012-02-15 
22:41:37 UTC ---
I'm fine with the last patch, though, I think it needs Ian to approve.


[Bug libitm/52220] FAIL: libitm.c++/eh-1.C execution test due to Xcode 4 weakref linker bug

2012-02-15 Thread pmarlier at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52220

--- Comment #1 from pmarlier at gcc dot gnu.org 2012-02-15 23:39:50 UTC ---
Author: pmarlier
Date: Wed Feb 15 23:39:28 2012
New Revision: 184293

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=184293
Log:
libitm/
2012-02-15  Iain Sandoe  
Patrick Marlier  

PR libitm/52220
* alloc_cpp.cc: No dummy definitions for darwin.
* eh_cpp.cc: Likewise.

libgcc/
2012-02-15  Iain Sandoe  
Patrick Marlier  

PR libitm/52220
* config/darwin-crt-tm.c: Generate dummy functions.


Modified:
trunk/libgcc/ChangeLog
trunk/libgcc/config/darwin-crt-tm.c
trunk/libitm/ChangeLog
trunk/libitm/alloc_cpp.cc
trunk/libitm/eh_cpp.cc


[Bug libstdc++/51967] FAIL: libstdc++-prettyprinters/48362.cc

2012-02-15 Thread dave.anglin at bell dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51967

--- Comment #7 from dave.anglin at bell dot net 2012-02-16 00:28:25 UTC ---
On 15-Feb-12, at 3:20 PM, bkoz at gcc dot gnu.org wrote:

> what's the python version you are using that is not working?


It's 2.4.2.  If I get a chance, I'll try an update it this weekend.

Dave
--
John David Anglindave.ang...@bell.net


[Bug tree-optimization/52254] VRP does not fold (~a) & N to a ^ N if a has range [0, N]

2012-02-15 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52254

--- Comment #3 from Andrew Pinski  2012-02-16 
03:00:22 UTC ---
(In reply to comment #2)
> The combine stage should have access to a valueize() hook as well, to query
> SSA propagator/VNs lattice.  That hook can maybe supply this extra info
> (I wanted to make VRP info persistent for some time, in SSA_NAME_PTR_INFO
> much like we have alignment info there which really is kind of a value-range)

I was thinking about adding that.  Even using nonzero bits to create a simple
range.


[Bug c++/52263] Zero-initialization doesn't seem to work correctly for virtual inheritance

2012-02-15 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52263

--- Comment #2 from Andrew Pinski  2012-02-16 
03:04:24 UTC ---
I think this has been fixed already on both the 4.6 branch and the trunk.


[Bug libitm/52220] FAIL: libitm.c++/eh-1.C execution test due to Xcode 4 weakref linker bug

2012-02-15 Thread howarth at nitro dot med.uc.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52220

Jack Howarth  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED

--- Comment #2 from Jack Howarth  2012-02-16 
03:12:45 UTC ---
Confirmed as fixed on x86_64-apple-darwin11 at r184293.


[Bug tree-optimization/52267] New: a&~N where N has all the bits set up till a specific point can be folded to ((unsigned)a) < N

2012-02-15 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52267

 Bug #: 52267
   Summary: a&~N where N has all the bits set up till a specific
point can be folded to ((unsigned)a) < N
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: tree-optimization
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: pins...@gcc.gnu.org


Take the following two functions.
int f(int a, int b)
{
  if (a>3||a<0) return a;
  a&=3;
  return a&3;
}

int f1(int a)
{
  if (a&~03)  return a;
  return a&3;
}

They should return just the argument.  Right now the first function does but
not the second.


[Bug go/46986] Go is not supported on Darwin

2012-02-15 Thread howarth at nitro dot med.uc.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46986

--- Comment #24 from Jack Howarth  2012-02-16 
03:47:05 UTC ---
(In reply to comment #22)
> 
> ucontext is missing altogether from Mac OS X 10.7, but there is no TLS either:
> 
> error: thread-local storage not supported for this target

There is tis support within clang in Xcode 4.2 (see radar:10291355, "Xcode 4.2
miscompiles tls support in
MPFR 3.1.0" which was fixed in Xcode 4.2.1), however FSF gcc currently doesn't
generate the required assembly for tis support.


[Bug target/52268] New: tls support should be added for darwin11

2012-02-15 Thread howarth at nitro dot med.uc.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52268

 Bug #: 52268
   Summary: tls support should be added for darwin11
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: howa...@nitro.med.uc.edu


The clang compiler in clang 3.0 and Xcode 4.2 currently provides tis support on
darwin11. This same ability to generate the required tis assembly for darwin11
should be added to FSF gcc.


[Bug target/52268] tls support should be added for darwin11

2012-02-15 Thread howarth at nitro dot med.uc.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52268

Jack Howarth  changed:

   What|Removed |Added

 Target||x86_64-apple-darwin11
   Host||x86_64-apple-darwin11
  Build||x86_64-apple-darwin11
   Severity|normal  |enhancement


[Bug translation/52264] translatable string typo: "refernece"

2012-02-15 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52264

--- Comment #1 from Jakub Jelinek  2012-02-16 
06:29:19 UTC ---
Author: jakub
Date: Thu Feb 16 06:29:12 2012
New Revision: 184298

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=184298
Log:
PR translation/52264
* cgraphunit.c (verify_cgraph_node): Fix a typo.

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


[Bug fortran/52265] [OOP] TREE dump confusing with nested SELECT TYPE

2012-02-15 Thread paul.richard.thomas at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52265

--- Comment #1 from paul.richard.thomas at gmail dot com  2012-02-16 06:58:10 UTC ---
Dear Tobias,

I have encountered this in the work on PR41600.  I thought to append a
numeric identifier that increments with each new temporary.  In fact,
I had wondered whether, once the SELECT TYPE is working properly, we
should not simplify the name to __tmp.###?  The present complexity
serves no purpose, since we can tell from the type what tehse things
are.

Cheers

Paul

PS PR41600 is fixed, barring some cleaning up.  Correct code is being
produced but the compiler segfaults at the due to attempted double
frees of array_specs.  I am pretty sure that I know where this is
happening - I'll let you know at lunchtime.

On Wed, Feb 15, 2012 at 9:51 PM, burnus at gcc dot gnu.org
 wrote:
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52265
>
>             Bug #: 52265
>           Summary: [OOP] TREE dump confusing with nested SELECT TYPE
>    Classification: Unclassified
>           Product: gcc
>           Version: 4.7.0
>            Status: UNCONFIRMED
>          Keywords: diagnostic
>          Severity: normal
>          Priority: P3
>         Component: fortran
>        AssignedTo: unassig...@gcc.gnu.org
>        ReportedBy: bur...@gcc.gnu.org
>                CC: pa...@gcc.gnu.org
>
>
> The following program seems to work as expected, however, the dump is very
> irritating:
>
>        switch (a._vptr->_hash)
>          {
>            case 6231989:;
>            __tmp_type_t = a._data;
>            {
>              struct t * __tmp_type_t;
>
>              switch (b._vptr->_hash)
>                {
>                  case 6231989:;
>                  __tmp_type_t = b._data;
>                  *__tmp_type_t = *__tmp_type_t;
>
> There are two variables called "__tmp_type_t", one pointing to a._data and the
> other to b._data. Most striking is the last line where both variables occur.
> That's very confusing and would be impossible to do in C, C++, or Fortran.
>
> Expected: Use different variable names, e.g. via
>  gfc_create_var (type, "__tmp_type_t")
>
>
> type t
>  integer :: i = 5
> end type t
>
> class(t), allocatable :: a, b
>
> allocate(a,b)
> b%i = 77
> select type (a)
>  type is (t)
>   select type (b)
>     type is (t)
>       a = b
>       b%i = 88
>   end select
> end select
> if (a%i /= 77) call abort ()
> if (a%i /= 88) call abort ()
> end
>
> --
> Configure bugmail: http://gcc.gnu.org/bugzilla/userprefs.cgi?tab=email
> --- You are receiving this mail because: ---
> You are on the CC list for the bug.


[Bug translation/52264] translatable string typo: "refernece"

2012-02-15 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52264

Jakub Jelinek  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #2 from Jakub Jelinek  2012-02-16 
07:05:28 UTC ---
Fixed, thanks for reporting it.


[Bug go/51874] Many libgo testsuite failures on Solaris, IRIX

2012-02-15 Thread ian at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51874

--- Comment #12 from ian at gcc dot gnu.org  2012-02-16 
07:17:15 UTC ---
Author: ian
Date: Thu Feb 16 07:17:03 2012
New Revision: 184300

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=184300
Log:
PR go/51874
math: Don't use libc log2 and trunc functions.

Modified:
trunk/libgo/go/math/floor.go
trunk/libgo/go/math/log10.go


[Bug middle-end/51929] [4.7 Regression] ICE: verify_cgraph_node failed with -O2 -fno-guess-branch-probability -fipa-cp-clone

2012-02-15 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51929

Jakub Jelinek  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #11 from Jakub Jelinek  2012-02-16 
07:27:28 UTC ---
Fixed.


[Bug middle-end/51929] [4.7 Regression] ICE: verify_cgraph_node failed with -O2 -fno-guess-branch-probability -fipa-cp-clone

2012-02-15 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51929

--- Comment #10 from Jakub Jelinek  2012-02-16 
07:26:08 UTC ---
Author: jakub
Date: Thu Feb 16 07:25:58 2012
New Revision: 184301

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=184301
Log:
PR middle-end/51929
* cgraphunit.c (verify_edge_corresponds_to_fndecl): If node is
a same_body_alias, also test whether e->callee isn't a former
or current clone of the decl this is a same body alias of.

* g++.dg/ipa/pr51929.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/ipa/pr51929.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/cgraphunit.c
trunk/gcc/testsuite/ChangeLog


[Bug c++/52269] New: [C++11]Body of constexpr function templates instantiated too eagerly in unevaluated operands

2012-02-15 Thread ai.azuma at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52269

 Bug #: 52269
   Summary: [C++11]Body of constexpr function templates
instantiated too eagerly in unevaluated operands
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: ai.az...@gmail.com


The following well-formed code cannot be compiled with GCC 4.7.0 20120211
(experimental) and -std=c++11 flag.


template
int f(T x)
{
  return x.get();
}

// O.K. The body of `f' is not required.
decltype(f(0)) a;

template
constexpr int g(T x)
{
  return x.get();
}

// Seems to instantiate the body of `g'
// and results in an error.
decltype(g(0)) b;


Similar problems also arise in the case of non-template member functions of a
class template.


  1   2   >