[Bug bootstrap/54283] [4.8 regression] build tools don't run after cxx-conversion merge

2012-11-16 Thread ro at CeBiTec dot Uni-Bielefeld.DE


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



--- Comment #4 from ro at CeBiTec dot Uni-Bielefeld.DE ro at CeBiTec dot 
Uni-Bielefeld.DE 2012-11-16 09:11:36 UTC ---

 --- Comment #3 from Andrew Pinski pinskia at gcc dot gnu.org 2012-11-16

 01:06:20 UTC ---

 Does this still happen?



It does.  I've a local patch in my tree to allow bootstrapping at all.

Unfortunately, the patch certainly isn't right, but I still can't fully

wrap my head around the full consequences build/host/target distinction.



Btw., I've got the same problem on i686-linux with a self-built gcc 4.4

as bootstrap compiler, so there's nothing Solaris-specific here.



Rainer


[Bug rtl-optimization/55330] [4.8 Regression] ICE: Maximum number of LRA constraint passes is achieved (15) on gfortran.dg/actual_array_constructor_1.f90

2012-11-16 Thread dcb314 at hotmail dot com


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



David Binderman dcb314 at hotmail dot com changed:



   What|Removed |Added



 CC||dcb314 at hotmail dot com



--- Comment #2 from David Binderman dcb314 at hotmail dot com 2012-11-16 
09:13:53 UTC ---

(In reply to comment #1)

 I don't see it on x86_64-apple-darwin10 (revisions 193495+patches and 193329).



Looks like a duplicate of 55122.


[Bug c/55350] New: verify_gimple failed with invalid (pointer) operands to plus/minus

2012-11-16 Thread dcb314 at hotmail dot com

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

 Bug #: 55350
   Summary: verify_gimple failed with invalid (pointer) operands
to plus/minus
Classification: Unclassified
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: dcb...@hotmail.com


Created attachment 28706
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28706
C source code

I just tried to compile the package gcl-2.6.8-0.11.20120705cvs
on gcc-4.8 trunk dated 2012 on an AMD x86_64 box.

The compiler said

bug91.c: In function ‘intern’:
bug91.c:11585:1: error: invalid (pointer) operands to plus/minus
 intern(st, p)
 ^
_856 = _847 + 8B;

bug91.c:11585:1: error: invalid (pointer) operands to plus/minus
_865 = _856 + 8B;

bug91.c:11585:1: error: invalid (pointer) operands to plus/minus
_874 = _865 + 8B;

bug91.c:11585:1: error: invalid (pointer) operands to plus/minus
_143 = _874 + 8B;

bug91.c:11585:1: internal compiler error: verify_gimple failed
0x90ed8b verify_gimple_in_cfg(function*)
../../src/trunk/gcc/tree-cfg.c:4728
0x84de57 execute_function_todo
../../src/trunk/gcc/passes.c:1975
0x84e897 execute_todo
../../src/trunk/gcc/passes.c:2008
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See http://gcc.gnu.org/bugs.html for instructions.

Preprocessed source code attached. Flag -O3 required.


[Bug target/52855] ARM: Internal compiler error: in extract_insn, at recog.c:2109

2012-11-16 Thread stemidts at cisco dot com


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



Steinar Midtskogen stemidts at cisco dot com changed:



   What|Removed |Added



 CC||stemidts at cisco dot com



--- Comment #4 from Steinar Midtskogen stemidts at cisco dot com 2012-11-16 
09:48:36 UTC ---

I've run into the same bug.  The code below reproduces it:



#include arm_neon.h



static const __attribute__((aligned(16)))

int16_t c[][2][8] =

{

{ { 0 }, { 0 } }, { { 0 }, { 0 } }, { { 0 }, { 0 } }, { { 0 }, { 0 } },

{ { 0 }, { 0 } }, { { 0 }, { 0 } }, { { 0 }, { 0 } }, { { 0 }, { 0 } }

};





int16x8_t test2(int off)

{

return vld1q_u8((uint8_t*)c[off][0]);

}



int16x8_t test(int off, uint8_t **c)

{

static int8_t m[] = { 1, 2, 3 };

long long cf = m[off];



return vld1q_u8((uint8_t*)c[cf]);

}



Version: 4.6.3

Options: -mapcs-frame -mfloat-abi=softfp -mfpu=neon -flax-vector-conversions

-O1



Changing long long cf into int cf eliminates the crash.


[Bug tree-optimization/55260] [4.8 Regression] ICE: in ipa_get_parm_lattices, at ipa-cp.c:263 with -O2 -fno-inline -fipa-cp-clone

2012-11-16 Thread markus at trippelsdorf dot de


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



Markus Trippelsdorf markus at trippelsdorf dot de changed:



   What|Removed |Added



 CC||jamborm at gcc dot gnu.org,

   ||markus at trippelsdorf dot

   ||de



--- Comment #2 from Markus Trippelsdorf markus at trippelsdorf dot de 
2012-11-16 10:04:56 UTC ---

This ICE also hits in the boost testsuite:



markus@x4 more % cat test.ii

struct B

{

virtual void test_suite_finish ();

};

void

fn1 (B  p2)

{

fn1 (p2);

B  a = p2;

a.test_suite_finish ();

B b;

fn1 (b);

}



markus@x4 more % c++ -O3 -c test.ii

test.ii:13:1: internal compiler error: in ipa_get_parm_lattices, at

ipa-cp.c:263

 }

 ^

0xeb2b52 ipa_get_parm_lattices

/home/markus/gcc/gcc/ipa-cp.c:263

0xeb059a ipa_get_parm_lattices

/home/markus/gcc/gcc/ipa-cp.c:2930

0xeb059a cgraph_edge_brings_all_agg_vals_for_node

/home/markus/gcc/gcc/ipa-cp.c:3105

0xeb059a perhaps_add_new_callers

/home/markus/gcc/gcc/ipa-cp.c:3157

0xeb059a decide_about_value

/home/markus/gcc/gcc/ipa-cp.c:3230

0xeb2693 decide_whether_version_node

/home/markus/gcc/gcc/ipa-cp.c:3324

0xeb2693 ipcp_decision_stage

/home/markus/gcc/gcc/ipa-cp.c:3464

0xeb2693 ipcp_driver

/home/markus/gcc/gcc/ipa-cp.c:3506

Please submit a full bug report,

with preprocessed source if appropriate.

Please include the complete backtrace with any bug report.

See http://gcc.gnu.org/bugs.html for instructions.


[Bug fortran/55341] address-sanitizer and Fortran

2012-11-16 Thread janus at gcc dot gnu.org


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



janus at gcc dot gnu.org changed:



   What|Removed |Added



 CC||janus at gcc dot gnu.org



--- Comment #2 from janus at gcc dot gnu.org 2012-11-16 10:27:43 UTC ---

(In reply to comment #1)

 Trying -faddress-sanitizer on CP2K leads to the following failure:



Slightly reduced test case:



MODULE m

  TYPE t

INTEGER, DIMENSION(:), ALLOCATABLE :: orders

  END TYPE

CONTAINS

  SUBROUTINE s

TYPE(t) :: x, y

x = y

  END SUBROUTINE

END MODULE m


[Bug tree-optimization/54717] [4.8 Regression] Runtime regression: polyhedron test rnflow degraded

2012-11-16 Thread hubicka at gcc dot gnu.org


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



--- Comment #18 from Jan Hubicka hubicka at gcc dot gnu.org 2012-11-16 
10:37:30 UTC ---

Author: hubicka

Date: Fri Nov 16 10:37:25 2012

New Revision: 193553



URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=193553

Log:

PR tree-optimization/54717

* tree-ssa-pre.c (do_partial_partial_insertion): Consider also edges

with ANTIC_IN.



Modified:

trunk/gcc/ChangeLog

trunk/gcc/tree-ssa-pre.c


[Bug tree-optimization/55334] mgrid regression (ipa-cp disables vectorization)

2012-11-16 Thread hubicka at gcc dot gnu.org


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



Jan Hubicka hubicka at gcc dot gnu.org changed:



   What|Removed |Added



 CC||matz at suse dot de



--- Comment #4 from Jan Hubicka hubicka at gcc dot gnu.org 2012-11-16 
10:39:34 UTC ---

Hmm, this does not help.  The problem is indeed that we are not able to figure

out that the accesses into subarrays of X are mutually independent.



Martin, Michael, I think you are more familiar with MEM_REF, can you take a

look?


[Bug fortran/55341] address-sanitizer and Fortran

2012-11-16 Thread jakub at gcc dot gnu.org


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



Jakub Jelinek jakub at gcc dot gnu.org changed:



   What|Removed |Added



 CC||jakub at gcc dot gnu.org



--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2012-11-16 
10:54:25 UTC ---

Looks like a FE bug to me.


[Bug fortran/55341] address-sanitizer and Fortran

2012-11-16 Thread jakub at gcc dot gnu.org


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



Jakub Jelinek jakub at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |ASSIGNED

   Last reconfirmed||2012-11-16

 AssignedTo|unassigned at gcc dot   |jakub at gcc dot gnu.org

   |gnu.org |

 Ever Confirmed|0   |1



--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org 2012-11-16 
10:55:53 UTC ---

Created attachment 28707

  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28707

gcc48-pr55341.patch



Untested fix.  memcpy's last argument is size_type_node, i.e. unsigned C

size_t, while in several places the FE was calling memcpy with a signed type of

the argument instead.


[Bug tree-optimization/55334] mgrid regression (ipa-cp disables vectorization)

2012-11-16 Thread vincenzo.innocente at cern dot ch


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



--- Comment #5 from vincenzo Innocente vincenzo.innocente at cern dot ch 
2012-11-16 10:56:11 UTC ---

is the problem similar to what described in PR55213?

or here

float mem[3*1024];

void sum() {

  float * a=mem;

  const float * b=mem+1024;

  const float * c=mem+2*1024;

  for (int i=0;i!=1024;++i)

a[i]=b[i]+c[i];

}



6: create runtime check for data references *_7 and *_6

6: create runtime check for data references *_9 and *_6

6: created 2 versioning for alias checks.


[Bug tree-optimization/55350] [4.8 Regression] verify_gimple failed with invalid (pointer) operands to plus/minus

2012-11-16 Thread jakub at gcc dot gnu.org


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



Jakub Jelinek jakub at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2012-11-16

  Component|c   |tree-optimization

 CC||jakub at gcc dot gnu.org,

   ||wschmidt at gcc dot gnu.org

 Ever Confirmed|0   |1

Summary|verify_gimple failed with   |[4.8 Regression]

   |invalid (pointer) operands  |verify_gimple failed with

   |to plus/minus   |invalid (pointer) operands

   ||to plus/minus

   Target Milestone|--- |4.8.0



--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org 2012-11-16 
11:36:49 UTC ---

Reduced testcase for -O3:

void

foo (__INTPTR_TYPE__ x, __INTPTR_TYPE__ y)

{

  int i;

  void **a = (void *) (__INTPTR_TYPE__) (8UL * (x / 8UL));

  for (i = 0; i  x; i++)

a[i] = (void *) y;

}



Seems to be slsr bug.


[Bug tree-optimization/54073] [4.7/4.8 Regression] SciMark Monte Carlo test performance has seriously decreased in recent GCC releases

2012-11-16 Thread jakub at gcc dot gnu.org


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



--- Comment #13 from Jakub Jelinek jakub at gcc dot gnu.org 2012-11-16 
11:40:42 UTC ---

Author: jakub

Date: Fri Nov 16 11:40:39 2012

New Revision: 193554



URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=193554

Log:

PR target/54073

* config/i386/i386.md (movmodecc): Use comparison_operator

instead of ordered_comparison_operator resp.

ix86_fp_comparison_operator predicates.

* config/i386/i386.c (ix86_expand_fp_movcc): Reject TImode

or for -m32 DImode comparisons.



Modified:

trunk/gcc/ChangeLog

trunk/gcc/config/i386/i386.c

trunk/gcc/config/i386/i386.md


[Bug fortran/55297] [4.8 Regression] type-bound operator clashes with abstract interface

2012-11-16 Thread janus at gcc dot gnu.org


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



janus at gcc dot gnu.org changed:



   What|Removed |Added



 Status|NEW |ASSIGNED

 AssignedTo|unassigned at gcc dot   |janus at gcc dot gnu.org

   |gnu.org |



--- Comment #3 from janus at gcc dot gnu.org 2012-11-16 11:41:50 UTC ---

(In reply to comment #2)

 The question is whether it should be fixed by adding

if (derived-ns != gfc_current_ns)

  return;



Yes, something along this line seems like the appropriate fix to me. In

particular I would propose the following (which does fix the test case):





Index: gcc/fortran/resolve.c

===

--- gcc/fortran/resolve.c(revision 193552)

+++ gcc/fortran/resolve.c(working copy)

@@ -11540,7 +11540,7 @@ resolve_typebound_intrinsic_op (gfc_symbol* derive



   /* Add target to non-typebound operator list.  */

   if (!target-specific-deferred  !derived-attr.use_assoc

-   p-access != ACCESS_PRIVATE)

+   p-access != ACCESS_PRIVATE  derived-ns == gfc_current_ns)

 {

   gfc_interface *head, *intr;

   if (gfc_check_new_interface (derived-ns-op[op], target_proc,





Will commit as obvious after regtesting ...


[Bug target/55351] New: can't build libgcc for -m5-compact variant in SH64

2012-11-16 Thread dan at danny dot cz


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



 Bug #: 55351

   Summary: can't build libgcc for -m5-compact variant in SH64

Classification: Unclassified

   Product: gcc

   Version: 4.7.2

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: target

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: d...@danny.cz





Created attachment 28708

  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28708

preprocessed lib1funcs.S file



when building libgcc for the -m5-compact multilib variant in sh64-linux

compiler I get the following error:





/builddir/build/BUILD/gcc-4.7.2-20121114-aarch64/sh64-linux-gnu/./gcc/xgcc

-B/builddir/build/BUILD/gcc-4.7.2-20121114-aarch64/sh64-linux-gnu/./gcc/

-B/usr/sh64-linux/bin/ -B/usr/sh64-linux/lib/ -isystem /usr/sh64-linux/include

-isystem /usr/sh64-linux/sys-include  -m5-compact -g -O2 -O2  -g -O2 -DIN_GCC

-DCROSS_DIRECTORY_STRUCTURE  -W -Wall -Wno-narrowing -Wwrite-strings

-Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition 

-isystem ./include   -fpic -mieee -mieee -DNO_FPSCR_VALUES -g -DIN_LIBGCC2

-fbuilding-libgcc -fno-stack-protector -Dinhibit_libc  -fpic -mieee -mieee

-DNO_FPSCR_VALUES -I. -I. -I../../.././gcc

-I../../../../gcc-4.7.2-20121114-aarch64/libgcc

-I../../../../gcc-4.7.2-20121114-aarch64/libgcc/.

-I../../../../gcc-4.7.2-20121114-aarch64/libgcc/../gcc

-I../../../../gcc-4.7.2-20121114-aarch64/libgcc/../include  -DHAVE_CC_TLS

-DUSE_EMUTLS -o _div_table.o -MT _div_table.o -MD -MP -MF _div_table.dep

-DL_div_table -xassembler-with-cpp -c

../../../../gcc-4.7.2-20121114-aarch64/libgcc/config/sh/lib1funcs.S

../../../../gcc-4.7.2-20121114-aarch64/libgcc/config/sh/lib1funcs.S: Assembler

messages:

../../../../gcc-4.7.2-20121114-aarch64/libgcc/config/sh/lib1funcs.S:3054:

Error: unknown opcode

../../../../gcc-4.7.2-20121114-aarch64/libgcc/config/sh/lib1funcs.S:3056:

Error: unknown opcode

../../../../gcc-4.7.2-20121114-aarch64/libgcc/config/sh/lib1funcs.S:3057:

Error: unknown opcode

../../../../gcc-4.7.2-20121114-aarch64/libgcc/config/sh/lib1funcs.S:3058:

Error: unknown opcode

../../../../gcc-4.7.2-20121114-aarch64/libgcc/config/sh/lib1funcs.S:3060:

Error: unknown opcode

../../../../gcc-4.7.2-20121114-aarch64/libgcc/config/sh/lib1funcs.S:3061:

Error: unknown opcode

../../../../gcc-4.7.2-20121114-aarch64/libgcc/config/sh/lib1funcs.S:3062:

Error: unknown opcode

../../../../gcc-4.7.2-20121114-aarch64/libgcc/config/sh/lib1funcs.S:3063:

Error: unknown opcode

../../../../gcc-4.7.2-20121114-aarch64/libgcc/config/sh/lib1funcs.S:3064:

Error: unknown opcode

../../../../gcc-4.7.2-20121114-aarch64/libgcc/config/sh/lib1funcs.S:3065:

Error: unknown opcode

../../../../gcc-4.7.2-20121114-aarch64/libgcc/config/sh/lib1funcs.S:3066:

Error: unknown opcode

../../../../gcc-4.7.2-20121114-aarch64/libgcc/config/sh/lib1funcs.S:3067:

Error: unknown opcode

../../../../gcc-4.7.2-20121114-aarch64/libgcc/config/sh/lib1funcs.S:3068:

Error: invalid operands for opcode

../../../../gcc-4.7.2-20121114-aarch64/libgcc/config/sh/lib1funcs.S:3069:

Error: unknown opcode

../../../../gcc-4.7.2-20121114-aarch64/libgcc/config/sh/lib1funcs.S:3070:

Error: invalid operands for opcode

../../../../gcc-4.7.2-20121114-aarch64/libgcc/config/sh/lib1funcs.S:3071:

Error: unknown opcode

../../../../gcc-4.7.2-20121114-aarch64/libgcc/config/sh/lib1funcs.S:3072:

Error: unknown opcode

../../../../gcc-4.7.2-20121114-aarch64/libgcc/config/sh/lib1funcs.S:3073:

Error: unknown opcode

../../../../gcc-4.7.2-20121114-aarch64/libgcc/config/sh/lib1funcs.S:3075:

Error: invalid operands for opcode

../../../../gcc-4.7.2-20121114-aarch64/libgcc/config/sh/lib1funcs.S:3076:

Error: unknown opcode

../../../../gcc-4.7.2-20121114-aarch64/libgcc/config/sh/lib1funcs.S:3077:

Error: unknown opcode

../../../../gcc-4.7.2-20121114-aarch64/libgcc/config/sh/lib1funcs.S:3078:

Error: unknown opcode

../../../../gcc-4.7.2-20121114-aarch64/libgcc/config/sh/lib1funcs.S:3080:

Error: unknown opcode

../../../../gcc-4.7.2-20121114-aarch64/libgcc/config/sh/lib1funcs.S:3081:

Error: unknown opcode

../../../../gcc-4.7.2-20121114-aarch64/libgcc/config/sh/lib1funcs.S:3082:

Error: unknown opcode

../../../../gcc-4.7.2-20121114-aarch64/libgcc/config/sh/lib1funcs.S:3083:

Error: unknown opcode

../../../../gcc-4.7.2-20121114-aarch64/libgcc/config/sh/lib1funcs.S:3084:

Error: unknown opcode

../../../../gcc-4.7.2-20121114-aarch64/libgcc/config/sh/lib1funcs.S:3085:

Error: unknown opcode

../../../../gcc-4.7.2-20121114-aarch64/libgcc/config/sh/lib1funcs.S:3086:

Error: invalid operands for opcode

../../../../gcc-4.7.2-20121114-aarch64/libgcc/config/sh/lib1funcs.S:3087:

Error: invalid operands for opcode

../../../../gcc-4.7.2-20121114-aarch64/libgcc/config/sh/lib1funcs.S:3088:

Error: invalid operands for opcode


[Bug other/55333] libsanitizer StackTrace::FastUnwindStack wrong x32

2012-11-16 Thread hjl at gcc dot gnu.org


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



--- Comment #2 from hjl at gcc dot gnu.org hjl at gcc dot gnu.org 2012-11-16 
12:02:33 UTC ---

Author: hjl

Date: Fri Nov 16 12:02:29 2012

New Revision: 193557



URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=193557

Log:

Define/use hardware pointer type for stack unwind



PR other/55333

* include/sanitizer/common_interface_defs.h (uhwptr): New type

for hardware pointer.

* sanitizer_common/sanitizer_stacktrace.cc (StackTrace::FastUnwindStack):

Replace uptr with uhwptr for stack unwind.



Modified:

trunk/libsanitizer/ChangeLog

trunk/libsanitizer/include/sanitizer/common_interface_defs.h

trunk/libsanitizer/sanitizer_common/sanitizer_stacktrace.cc


[Bug other/55333] libsanitizer StackTrace::FastUnwindStack wrong x32

2012-11-16 Thread hjl.tools at gmail dot com


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



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



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

 Resolution||FIXED

   Target Milestone|--- |4.8.0



--- Comment #3 from H.J. Lu hjl.tools at gmail dot com 2012-11-16 12:03:16 
UTC ---

Fixed.


[Bug fortran/41951] [OOP] Not diagnosing ambiguous operators (TB vs. INTERFACE)

2012-11-16 Thread janus at gcc dot gnu.org


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



--- Comment #16 from janus at gcc dot gnu.org 2012-11-16 12:04:13 UTC ---

(In reply to comment #15)

 (In reply to comment #14)

  Comment 12 is fixed with r189022, but comment 11 is still accepted without

  error.



One way to reject the abstract case in comment 11, would be to just do the

checking, but not add the procedure to the operator list:





Index: gcc/fortran/resolve.c

===

--- gcc/fortran/resolve.c(revision 193552)

+++ gcc/fortran/resolve.c(working copy)

@@ -11539,19 +11539,21 @@ resolve_typebound_intrinsic_op (gfc_symbol* derive

 goto error;



   /* Add target to non-typebound operator list.  */

-  if (!target-specific-deferred  !derived-attr.use_assoc

-   p-access != ACCESS_PRIVATE)

+  if (!derived-attr.use_assoc  p-access != ACCESS_PRIVATE)

 {

-  gfc_interface *head, *intr;

   if (gfc_check_new_interface (derived-ns-op[op], target_proc,

p-where) == FAILURE)

 return FAILURE;

-  head = derived-ns-op[op];

-  intr = gfc_get_interface ();

-  intr-sym = target_proc;

-  intr-where = p-where;

-  intr-next = head;

-  derived-ns-op[op] = intr;

+  if (!target-specific-deferred)

+{

+  gfc_interface *head, *intr;

+  head = derived-ns-op[op];

+  intr = gfc_get_interface ();

+  intr-sym = target_proc;

+  intr-where = p-where;

+  intr-next = head;

+  derived-ns-op[op] = intr;

+}

 }

 }


[Bug tree-optimization/55334] mgrid regression (ipa-cp disables vectorization)

2012-11-16 Thread jakub at gcc dot gnu.org


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



Jakub Jelinek jakub at gcc dot gnu.org changed:



   What|Removed |Added



 CC||jakub at gcc dot gnu.org



--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org 2012-11-16 
12:05:44 UTC ---

Restrict is one thing, not figuring out that disjoint accesses to the same

array don't overlap is another (i.e. the #c5 testcase).  Cast restrict is hard

to do reliably, as the referenced PR documents, while figuring out that say

Creating dr for *_7

analyze_innermost: success.

base_address: mem

offset from base address: 0

constant offset from base address: 4096

step: 4

aligned to: 128

base_object: *(const float *) mem

Access function 0: {4096B, +, 4}_1

and

Creating dr for *_6

analyze_innermost: success.

base_address: mem

offset from base address: 0

constant offset from base address: 0

step: 4

aligned to: 128

base_object: MEM[(float *)mem]

Access function 0: {0B, +, 4}_1

for 1024 iterations would be really nice.


[Bug fortran/41951] [OOP] Not diagnosing ambiguous operators (TB vs. INTERFACE)

2012-11-16 Thread janus at gcc dot gnu.org


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



--- Comment #17 from janus at gcc dot gnu.org 2012-11-16 12:33:00 UTC ---

(In reply to comment #16)

 One way to reject the abstract case in comment 11, would be to just do the

 checking, but not add the procedure to the operator list:



The only problem with the patch in comment 16 is that the error message it

gives on comment 11 ...



generic :: assignment(=) = assign

   1

Error: Entity 'assign_it' at (1) is already present in the interface



... is technically not correct. 'assign_it' is not added twice, but in one case

is just the interface of the deferred type-boud procedure 'assign'. Instead, it

might be better to complain about 'Ambiguous interfaces' (since any

non-abstract extension of the type 'sort_t' will have to override/implement the

type-bound 'assign' with a procedure which is ambiguous to 'assign_it').



However, such an error about 'Ambiguous interfaces' is also missing for the

following case (which is still accepted):



module m_sort

  implicit none



  type, abstract :: sort_t

  contains

generic :: assignment(=) = assign

procedure(assign_ifc), deferred :: assign 

  end type



  abstract interface

subroutine assign_ifc (lhs, rhs)

  import

  class(sort_t), intent(out) :: lhs

  class(sort_t), intent(in) :: rhs

end subroutine

  end interface



  interface assignment(=)

subroutine assign_it (lhs, rhs)

  import

  class(sort_t), intent(out) :: lhs

  class(sort_t), intent(in) :: rhs

end subroutine

  end interface



end module


[Bug c++/54875] Forward declare enums cannot be used as a template argument

2012-11-16 Thread dodji at seketeli dot org


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



--- Comment #3 from dodji at seketeli dot org dodji at seketeli dot org 
2012-11-16 12:57:37 UTC ---

I candidate patchlet has been submitted for this at

http://gcc.gnu.org/ml/gcc-patches/2012-11/msg01375.html.


[Bug tree-optimization/55334] mgrid regression (ipa-cp disables vectorization)

2012-11-16 Thread hubicka at gcc dot gnu.org


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



--- Comment #7 from Jan Hubicka hubicka at gcc dot gnu.org 2012-11-16 
13:19:51 UTC ---

The C testcase is simiar - in the mgrid case we are probably able to derrive

useful loop bounds now and the dependency analysis could use them (but

doesn't). I will try to look into that (though I am not really familiar with

dependency code).



In the mgrid case those are however two different subarrays of one aggregate.

They can not overlap regardless the indexes, but we throw athat info away.


[Bug tree-optimization/54497] [4.8 Regression] Revision 190015 causes 22% degradation on 172.mgrid on PowerPC

2012-11-16 Thread hubicka at gcc dot gnu.org


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



Jan Hubicka hubicka at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

 Resolution||DUPLICATE



--- Comment #6 from Jan Hubicka hubicka at gcc dot gnu.org 2012-11-16 
13:21:38 UTC ---

It is indeed problem with dependnecy analysis as discussed in PR55334. I am

marking this one as a dup because the other one has some more analysis in it.



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


[Bug tree-optimization/55334] mgrid regression (ipa-cp disables vectorization)

2012-11-16 Thread hubicka at gcc dot gnu.org


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



Jan Hubicka hubicka at gcc dot gnu.org changed:



   What|Removed |Added



 CC||pthaugen at gcc dot gnu.org



--- Comment #8 from Jan Hubicka hubicka at gcc dot gnu.org 2012-11-16 
13:21:38 UTC ---

*** Bug 54497 has been marked as a duplicate of this bug. ***


[Bug tree-optimization/55334] mgrid regression (ipa-cp disables vectorization)

2012-11-16 Thread jakub at gcc dot gnu.org


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



--- Comment #9 from Jakub Jelinek jakub at gcc dot gnu.org 2012-11-16 
13:29:05 UTC ---

Ah, on the #c5 testcase the problem seems to be const float * vs. float *,



  /* If the references do not access the same object, we do not know

 whether they alias or not.  */

  if (!operand_equal_p (DR_BASE_OBJECT (a), DR_BASE_OBJECT (b), 0))

{

  DDR_ARE_DEPENDENT (res) = chrec_dont_know;

  return res;

}



operand_equal_p here fails because, while both base objects are MEM_REFs and

operand_equal_p (TREE_OPERAND (DR_BASE_OBJECT (a), 0), TREE_OPERAND

(DR_BASE_OBJECT (b), 0), 0) is true, the second operand of one MEM_REF is

const float *, while on the other MEM_REF it is float *, and operand_equal_p

for that tests:

...

2570   (TYPE_MAIN_VARIANT (TREE_TYPE (TREE_OPERAND (arg0, 1)))

2571  == TYPE_MAIN_VARIANT (TREE_TYPE (TREE_OPERAND (arg1, 1

2572   OP_SAME (0)  OP_SAME (1));

and the TYPE_MAIN_VARIANT check fails.  In this case I believe we don't care

whether it points to const float or float.  Not sure if we should change

operand_equal_p to try harder if TYPE_MAIN_VARIANT of the two types isn't

equal,

but TYPE_MAIN_VARIANT (TREE_TYPE (TREE_TYPE (TREE_OPERAND (argX, 1

is equal, and both pointers have the same deref alias set, or perhaps just

change the above spot to try harder on MEM_REFs if it failed.


[Bug fortran/55352] New: Erroneous gfortran warning of unused module variable when variable is only used in namelist

2012-11-16 Thread AstroFloyd at gmail dot com


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



 Bug #: 55352

   Summary: Erroneous gfortran warning of unused module variable

when variable is only used in namelist

Classification: Unclassified

   Product: gcc

   Version: 4.7.2

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: fortran

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: astrofl...@gmail.com





Created attachment 28709

  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28709

Minimal example source code



gfortran-4.7.2 -Wall gives a warning about unused module variables when those

variables are only used in a namelist.



Test: compile the attached minimal example source file test.f90 with:

gfortran -v -Wall -Werror test.f90 -o test



The following warning is printed:

test.f90:14.6:



  use data, only: a

  1

Warning: Unused module variable 'a' which has been explicitly imported at (1)



The warning goes away when print*,a is uncommented in line 20.  Verbose output

is in the attached file compile_output.txt





Get: warning about unused module variable

Expect:  no warning

Reproduceable:  always

gfortran version: gcc version 4.7.2 (Gentoo 4.7.2 p1.3, pie-0.5.5)


[Bug fortran/55352] Erroneous gfortran warning of unused module variable when variable is only used in namelist

2012-11-16 Thread AstroFloyd at gmail dot com


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



--- Comment #1 from AstroFloyd AstroFloyd at gmail dot com 2012-11-16 
13:43:25 UTC ---

Created attachment 28710

  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28710

Verbose output from compilation of example source file


[Bug tree-optimization/55334] mgrid regression (ipa-cp disables vectorization)

2012-11-16 Thread vincenzo.innocente at cern dot ch


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



--- Comment #10 from vincenzo Innocente vincenzo.innocente at cern dot ch 
2012-11-16 13:46:13 UTC ---

actually looking into the generated code I do not see any trace of runtime

check

even in presence of const



c++ -O3 -ftree-vectorizer-verbose=1 -c alias.cc 



Analyzing loop at alias.cc:6





Vectorizing loop at alias.cc:6



6: create runtime check for data references *_7 and *_6

6: create runtime check for data references *_9 and *_6

6: created 2 versioning for alias checks.



6: LOOP VECTORIZED.

alias.cc:2: note: vectorized 1 loops in function.

pb-d-128-141-131-26:vectorize innocent$ otool -v -V -t alias.o

alias.o:

(__TEXT,__text) section

__Z3sumv:

leaq_mem+0x1000(%rip),%rax

0007leaq_mem+0x2000(%rip),%rdx

000enop

0010movaps(%rax),%xmm0

0013addq$0x10,%rax

0017addps0x0ff0(%rax),%xmm0

001emovaps%xmm0,0xeff0(%rax)

0025cmpq%rdx,%rax

0028jne0x0010

002arepz/ret


[Bug tree-optimization/55334] mgrid regression (ipa-cp disables vectorization)

2012-11-16 Thread jakub at gcc dot gnu.org


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



--- Comment #11 from Jakub Jelinek jakub at gcc dot gnu.org 2012-11-16 
13:55:54 UTC ---

(In reply to comment #10)

 actually looking into the generated code I do not see any trace of runtime

 check

 even in presence of const



The vectorizer creates the versioning for alias, but then vrp2 manages to

optimize the runtime check into a constant and thus the non-vectorized loop is

optimized away.


[Bug tree-optimization/55334] mgrid regression (ipa-cp disables vectorization)

2012-11-16 Thread vincenzo.innocente at cern dot ch


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



--- Comment #12 from vincenzo Innocente vincenzo.innocente at cern dot ch 
2012-11-16 13:58:33 UTC ---

so a better c case is 

float * mem;

void sumN(int n) {

  float * a=mem;

  /*const*/ float * b=mem+n;

  /*const*/ float * c=mem+2*n;

  for (int i=0;i!=n;++i)

a[i]=b[i]+c[i];

}


[Bug other/55313] libsanitizer cannot be installed

2012-11-16 Thread ebotcazou at gcc dot gnu.org


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



Eric Botcazou ebotcazou at gcc dot gnu.org changed:



   What|Removed |Added



 Status|RESOLVED|NEW

   Last reconfirmed||2012-11-16

 Resolution|DUPLICATE   |

 Ever Confirmed|0   |1



--- Comment #2 from Eric Botcazou ebotcazou at gcc dot gnu.org 2012-11-16 
14:07:55 UTC ---

 Dup.



Apparently not:



test -z

/red.a/gnatmail/gcc-x/build-red/x86_64-linux/gnat/gnat-bin/lib/../lib64 ||

/bin/mkdir -p

/red.a/gnatmail/gcc-x/build-red/x86_64-linux/gnat/gnat-bin/lib/../lib64

 /bin/bash ../libtool   --mode=install /usr/bin/install -c   libasan.la

'/red.a/gnatmail/gcc-x/build-red/x86_64-linux/gnat/gnat-bin/lib/../lib64'

libtool: install: error: cannot install `libasan.la' to a directory not ending

in /usr/gnat/lib/../lib64

make[4]: *** [install-toolexeclibLTLIBRARIES] Error 1

make[4]: Leaving directory

`/red.a/gnatmail/gcc-x/build-red/x86_64-linux/gnat/obj/x86_64-pc-linux-gnu/libsanitizer/asan'

make[3]: *** [install-am] Error 2

make[3]: Leaving directory

`/red.a/gnatmail/gcc-x/build-red/x86_64-linux/gnat/obj/x86_64-pc-linux-gnu/libsanitizer/asan'

make[2]: *** [install-recursive] Error 1

make[2]: Leaving directory

`/red.a/gnatmail/gcc-x/build-red/x86_64-linux/gnat/obj/x86_64-pc-linux-gnu/libsanitizer'

make[1]: *** [install-target-libsanitizer] Error 2

make[1]: Leaving directory

`/red.a/gnatmail/gcc-x/build-red/x86_64-linux/gnat/obj'

make: *** [install] Error 2



This is with --disable-multilib as of today.


[Bug c++/55338] Incorrectly reported error in type name hiding

2012-11-16 Thread paolo.carlini at oracle dot com


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



--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2012-11-16 
14:15:34 UTC ---

See:



  http://gcc.gnu.org/ml/gcc/2012-11/msg00241.html



Daniel, do you agree?


[Bug tree-optimization/55334] mgrid regression (ipa-cp disables vectorization)

2012-11-16 Thread jakub at gcc dot gnu.org


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



--- Comment #13 from Jakub Jelinek jakub at gcc dot gnu.org 2012-11-16 
14:17:00 UTC ---

(In reply to comment #12)

 so a better c case is 

 float * mem;

 void sumN(int n) {

   float * a=mem;

   /*const*/ float * b=mem+n;

   /*const*/ float * c=mem+2*n;

   for (int i=0;i!=n;++i)

 a[i]=b[i]+c[i];

 }



Without const and with constant n GCC already does the right thing.  With

non-constant n it is a different thing, then we have

base_object: *mem + (long unsigned int) n_3(D) * 4

base_object: *mem + (long unsigned int) (n_3(D) * 2) * 4

base_object: MEM[(float *)mem]

and obviously it doesn't operand_equal_p either.  Not sure if in that case

we couldn't move (long unsigned int) n_3(D) * 4 resp. (long unsigned int)

(n_3(D) * 2) * 4 from the base object to the access function, so it would be

instead of

Access function 0: {0B, +, 4}_1

say

Access function 0: {n_3(D) * 4, +, 4}_1

and whether rest of data-ref etc. code would handle that properly.


[Bug c++/55337] [4.8 Regression] ICE tree check: expected sizeof_expr, have alignof_expr in cp_tree_equal, at cp/tree.c:2608

2012-11-16 Thread jakub at gcc dot gnu.org


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



--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org 2012-11-16 
14:33:48 UTC ---

Author: jakub

Date: Fri Nov 16 14:33:44 2012

New Revision: 193558



URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=193558

Log:

PR c++/55337

* tree.c (cp_tree_equal) case ALIGNOF_EXPR: Use SIZEOF_EXPR_TYPE_P

only on SIZEOF_EXPR.



* g++.dg/template/alignof2.C: New test.



Added:

trunk/gcc/testsuite/g++.dg/template/alignof2.C

Modified:

trunk/gcc/cp/ChangeLog

trunk/gcc/cp/tree.c

trunk/gcc/testsuite/ChangeLog


[Bug c++/55337] [4.8 Regression] ICE tree check: expected sizeof_expr, have alignof_expr in cp_tree_equal, at cp/tree.c:2608

2012-11-16 Thread jakub at gcc dot gnu.org


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



Jakub Jelinek jakub at gcc dot gnu.org changed:



   What|Removed |Added



 Status|ASSIGNED|RESOLVED

 Resolution||FIXED



--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2012-11-16 
14:36:14 UTC ---

Fixed.


[Bug fortran/48636] Enable more inlining with -O2 and higher

2012-11-16 Thread dominiq at lps dot ens.fr


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



--- Comment #42 from Dominique d'Humieres dominiq at lps dot ens.fr 
2012-11-16 14:42:33 UTC ---

 Fatigue now gets all inlining with -O3 -fwhole-program, with -O3 it gets only

 half of inlining because jump functions are not able to track array 
 descriptors

 in both calls to generalized_hookes_law.  



The same applies to the tests in comments #4 and #10.

What is the status of assumed-shape arrays with respect to array_index

hint?



 What are the other testcases to look at?



ac.f90 and aermod.f90 give a 5-10% faster runtime when compiled with '--param

max-inline-insns-auto=150' (and -Ofast -fwhole-program).


[Bug tree-optimization/55334] [4.8 Regression] mgrid regression (ipa-cp disables vectorization)

2012-11-16 Thread jakub at gcc dot gnu.org


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



Jakub Jelinek jakub at gcc dot gnu.org changed:



   What|Removed |Added



   Target Milestone|--- |4.8.0

Summary|mgrid regression (ipa-cp|[4.8 Regression] mgrid

   |disables vectorization) |regression (ipa-cp disables

   ||vectorization)


[Bug tree-optimization/54073] [4.7 Regression] SciMark Monte Carlo test performance has seriously decreased in recent GCC releases

2012-11-16 Thread jakub at gcc dot gnu.org


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



Jakub Jelinek jakub at gcc dot gnu.org changed:



   What|Removed |Added



Summary|[4.7/4.8 Regression]|[4.7 Regression] SciMark

   |SciMark Monte Carlo test|Monte Carlo test

   |performance has seriously   |performance has seriously

   |decreased in recent GCC |decreased in recent GCC

   |releases|releases



--- Comment #14 from Jakub Jelinek jakub at gcc dot gnu.org 2012-11-16 
14:50:32 UTC ---

Hopefully fixed on the trunk, not planning to backport it right now.


[Bug c++/55338] Incorrectly reported error in type name hiding

2012-11-16 Thread piotr.wyderski at gmail dot com


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



--- Comment #2 from Piotr Wyderski piotr.wyderski at gmail dot com 2012-11-16 
15:06:45 UTC ---

IMO this case is not covered by the linked paragraph,

so please wait and let me create a thread on

compl.lang.c++.moderated and then proceed accordingly.


[Bug c++/54875] Forward declare enums cannot be used as a template argument

2012-11-16 Thread dodji at gcc dot gnu.org


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



--- Comment #4 from Dodji Seketeli dodji at gcc dot gnu.org 2012-11-16 
15:20:11 UTC ---

Author: dodji

Date: Fri Nov 16 15:20:03 2012

New Revision: 193562



URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=193562

Log:

PR c++/54875 -  Error with alias template that resolves to an enum



Consider this short example:



 1templatetypename T

 2using AddConst = T const;

 3

 4enum FwdEnum : int;

 5

 6int main() {

 7  AddConstFwdEnum *ptr = nullptr;

 8}



At line 7, when we build the type for AddConstFwdEnum in

lookup_template_class_1, the resulting type is the enum FwdEnum.  This

confuses lookup_template_class_1 near the if below, wrongly making it

taking the branch and thus calling tsubst_enum while it shouldn't:



  if (TREE_CODE (t) == ENUMERAL_TYPE  !is_dependent_type)

/* Now that the type has been registered on the instantiations

   list, we set up the enumerators.  Because the enumeration

   constants may involve the enumeration type itself, we make

   sure to register the type first, and then create the

   constants.  That way, doing tsubst_expr for the enumeration

   constants won't result in recursive calls here; we'll find

   the instantiation and exit above.  */

tsubst_enum (template_type, t, arglist);



Before the alias template feature, the only reason why TREE_CODE (t)

== ENUMERAL_TYPE would be true is when lookup_template_class_1 is

called for an enum that is a member of a class template.  But that

condition can be also true for an alias template instantiation.



So I guess that condition should be changed to TREE_CODE

(template_type) == ENUMERAL_TYPE, to specifically detect the member

enum of a class template case.  Note that for the alias template

instantiation case above, template_type points to a TEMPLATE_TYPE_PARM

which name is AddConst.



This is what the patchlet below does.



Bootstrapped and tested on x86_64-unknown-linux-gnu against trunk.



gcc/cp/



* pt.c (lookup_template_class_1): Look at the type of the

potential member enum of class template to determine if we are

actually substituting into a member enum of class template.



gcc/testsuite/



* g++.dg/cpp0x/alias-decl-27.C: New test.



Added:

trunk/gcc/testsuite/g++.dg/cpp0x/alias-decl-27.C

Modified:

trunk/gcc/cp/ChangeLog

trunk/gcc/cp/pt.c

trunk/gcc/testsuite/ChangeLog


[Bug c++/54875] Forward declare enums cannot be used as a template argument

2012-11-16 Thread dodji at gcc dot gnu.org


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



Dodji Seketeli dodji at gcc dot gnu.org changed:



   What|Removed |Added



 Status|ASSIGNED|RESOLVED

 Resolution||FIXED



--- Comment #5 from Dodji Seketeli dodji at gcc dot gnu.org 2012-11-16 
15:23:41 UTC ---

Fixed in trunk (4.8)


[Bug other/55313] libsanitizer cannot be installed

2012-11-16 Thread hjl.tools at gmail dot com


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



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



   What|Removed |Added



 Status|NEW |WAITING

 CC||hjl.tools at gmail dot com



--- Comment #3 from H.J. Lu hjl.tools at gmail dot com 2012-11-16 15:36:22 
UTC ---

Please provide complete configure option.


[Bug other/55313] libsanitizer cannot be installed

2012-11-16 Thread hjl.tools at gmail dot com


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



--- Comment #4 from H.J. Lu hjl.tools at gmail dot com 2012-11-16 15:38:42 
UTC ---

BTW, it works for me with



--enable-languages=c,c++ --disable-bootstrap --prefix=/usr/gcc-4.8.0

--with-local-prefix=/usr/local --enable-gnu-indirect-function

--disable-multilib --with-fpmath=sse


[Bug fortran/55345] ICE with abstract interface type with use-renamed local names

2012-11-16 Thread juno.krahn at nih dot gov


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



--- Comment #2 from Juno Krahn juno.krahn at nih dot gov 2012-11-16 15:56:24 
UTC ---

Abstract interfaces and rename aliasing are both seldom used, plus there is a

work-around, so I agree that there is no need for back porting.


[Bug middle-end/53024] Support vector_size that is not a power of 2

2012-11-16 Thread glisse at gcc dot gnu.org


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



Marc Glisse glisse at gcc dot gnu.org changed:



   What|Removed |Added



  Component|c   |middle-end

Summary|Power of 2 requirement on   |Support vector_size that is

   |vector_size not documented  |not a power of 2

   Severity|normal  |enhancement



--- Comment #4 from Marc Glisse glisse at gcc dot gnu.org 2012-11-16 16:06:28 
UTC ---

Not a priority.


[Bug tree-optimization/55260] [4.8 Regression] ICE: in ipa_get_parm_lattices, at ipa-cp.c:263 with -O2 -fno-inline -fipa-cp-clone

2012-11-16 Thread jamborm at gcc dot gnu.org


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



Martin Jambor jamborm at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |ASSIGNED

   Last reconfirmed||2012-11-16

 AssignedTo|unassigned at gcc dot   |jamborm at gcc dot gnu.org

   |gnu.org |

 Ever Confirmed|0   |1



--- Comment #3 from Martin Jambor jamborm at gcc dot gnu.org 2012-11-16 
16:07:31 UTC ---

Mine.


[Bug fortran/55352] Erroneous gfortran warning of unused module variable when variable is only used in namelist

2012-11-16 Thread janus at gcc dot gnu.org


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



janus at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2012-11-16

 CC||janus at gcc dot gnu.org

 Ever Confirmed|0   |1



--- Comment #2 from janus at gcc dot gnu.org 2012-11-16 16:31:27 UTC ---

Confirmed.



I guess we should either set attr.referenced in gfc_match_namelist (match.c),

or check for attr.in_namelist in generate_local_decl (trans-decl.c).


[Bug rtl-optimization/55330] [4.8 Regression] ICE: Maximum number of LRA constraint passes is achieved (15) on gfortran.dg/actual_array_constructor_1.f90

2012-11-16 Thread vmakarov at gcc dot gnu.org


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



--- Comment #3 from Vladimir Makarov vmakarov at gcc dot gnu.org 2012-11-16 
16:32:08 UTC ---

Author: vmakarov

Date: Fri Nov 16 16:32:02 2012

New Revision: 193567



URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=193567

Log:

2012-11-16  Vladimir Makarov  vmaka...@redhat.com



PR rtl-optimization/55330

* lra-constraints.c (MAX_INHERITANCE_PASSES): New macro.

(lra_inheritance, lra_undo_inheritance): Use it to limit number of

the passes.



2012-11-16  Vladimir Makarov  vmaka...@redhat.com



PR rtl-optimization/55330

* gfortran.dg/pr55330.f90: New test.





Added:

trunk/gcc/testsuite/gfortran.dg/pr55330.f90

Modified:

trunk/gcc/ChangeLog

trunk/gcc/lra-constraints.c

trunk/gcc/testsuite/ChangeLog


[Bug rtl-optimization/55330] [4.8 Regression] ICE: Maximum number of LRA constraint passes is achieved (15) on gfortran.dg/actual_array_constructor_1.f90

2012-11-16 Thread vmakarov at redhat dot com


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



Vladimir Makarov vmakarov at redhat dot com changed:



   What|Removed |Added



 CC||vmakarov at redhat dot com



--- Comment #4 from Vladimir Makarov vmakarov at redhat dot com 2012-11-16 
16:39:02 UTC ---

(In reply to comment #2)

 (In reply to comment #1)

  I don't see it on x86_64-apple-darwin10 (revisions 193495+patches and 
  193329).

 

 Looks like a duplicate of 55122.



The both have the same end and diagnostics but reasons for this are different.


[Bug other/55353] New: [asan] the flag for asan should match the one used in clang

2012-11-16 Thread konstantin.s.serebryany at gmail dot com


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



 Bug #: 55353

   Summary: [asan] the flag for asan should match the one used in

clang

Classification: Unclassified

   Product: gcc

   Version: unknown

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: other

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: konstantin.s.serebry...@gmail.com

CC: dseke...@redhat.com, dvyu...@google.com,

ja...@redhat.com





Currently, gcc trunk uses -faddress-sanitizer

Clang has recently changed the flag to -fsanitize=address

(there was a data race between clang change and gcc review-commit cycle :)



We need to match the flags. 



Same applies to tsan (seems like it is not committed to gcc yet)


[Bug fortran/55297] [4.8 Regression] [OOP] type-bound operator clashes with abstract interface

2012-11-16 Thread janus at gcc dot gnu.org


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



--- Comment #4 from janus at gcc dot gnu.org 2012-11-16 17:02:07 UTC ---

Author: janus

Date: Fri Nov 16 17:02:02 2012

New Revision: 193568



URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=193568

Log:

2012-11-16  Janus Weil  ja...@gcc.gnu.org



PR fortran/55297

* resolve.c (resolve_typebound_intrinsic_op): Only add typebound

operators to the operator list in the namespace of the derived type.



2012-11-16  Janus Weil  ja...@gcc.gnu.org



PR fortran/55297

* gfortran.dg/typebound_operator_18.f90: New.



Added:

trunk/gcc/testsuite/gfortran.dg/typebound_operator_18.f90

Modified:

trunk/gcc/fortran/ChangeLog

trunk/gcc/fortran/resolve.c

trunk/gcc/testsuite/ChangeLog


[Bug other/55354] New: [asan] by default, the asan run-time should be linked statically, not dynamically

2012-11-16 Thread konstantin.s.serebryany at gmail dot com


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



 Bug #: 55354

   Summary: [asan] by default, the asan run-time should be linked

statically, not dynamically

Classification: Unclassified

   Product: gcc

   Version: unknown

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: other

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: konstantin.s.serebry...@gmail.com

CC: dseke...@redhat.com, dvyu...@google.com,

ja...@redhat.com





Today, -faddress-sanitizer (to be changed to -fsanitize=address) causes the 

asan run-time library to be linked dynamically. 

It needs to be changed to static linkage because 

  - it matches clang behavior 

  - causes less confusion for users (where is my libasan.so???)

  - better for tsan performance (we'll need to link tsan statically too)





Note that on MacOS we probably want to keep using dynamic linkage

since the future library-interposition-based run-time will require it.


[Bug other/55354] [asan] by default, the asan run-time should be linked statically, not dynamically

2012-11-16 Thread pinskia at gcc dot gnu.org


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



Andrew Pinski pinskia at gcc dot gnu.org changed:



   What|Removed |Added



Version|unknown |4.8.0



--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org 2012-11-16 
17:15:31 UTC ---

  - it matches clang behavior 



But it is inconsistent with the rest of the target libraries of GCC.



  - causes less confusion for users (where is my libasan.so???)



So this is a well documented issue already and easy fixed.  



  - better for tsan performance (we'll need to link tsan statically too)



Not much better performance.


[Bug c++/55355] New: internal compiler error: in tree_low_cst, at tree.c:6415

2012-11-16 Thread rcp at sentientmeat dot ca


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



 Bug #: 55355

   Summary: internal compiler error: in tree_low_cst, at

tree.c:6415

Classification: Unclassified

   Product: gcc

   Version: 4.6.3

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: c++

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: r...@sentientmeat.ca





Created attachment 28711

  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28711

Minimal C++ file to reproduce gcc 3.4.6 ICE in tree_low_cst, at tree.c:6415



The attached file produces the following error when compiled with gcc 3.4.6:



$ /usr/local/gcc-4.6.3/bin/g++ -O2 -save-temps -c test.cpp

test.cpp: In member function 'void C::funcC()':

test.cpp:34:1: internal compiler error: in tree_low_cst, at tree.c:6415

Please submit a full bug report,

with preprocessed source if appropriate.

See http://gcc.gnu.org/bugs.html for instructions.



gcc 3.4.6 is configured thusly:



$ /usr/local/gcc-4.6.3/bin/g++ -v

Using built-in specs.

COLLECT_GCC=/usr/local/gcc-4.6.3/bin/g++

COLLECT_LTO_WRAPPER=/usr/local/gcc-4.6.3/bin/../libexec/gcc/i686-pc-linux-gnu/4.6.3/lto-wrapper

Target: i686-pc-linux-gnu

Configured with: ../gcc-4.6.3/configure --prefix=/opt/soldev/gcc-4.6.3

--with-gnu-as --with-gnu-ld --disable-libgcj --enable-languages=c,c++

Thread model: posix

gcc version 4.6.3 (GCC)


[Bug other/55354] [asan] by default, the asan run-time should be linked statically, not dynamically

2012-11-16 Thread dvyukov at google dot com


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



--- Comment #2 from Dmitry Vyukov dvyukov at google dot com 2012-11-16 
17:20:43 UTC ---

 Not much better performance.



Sole -fPIE vs -fPIC gives us 20% speedup on real programs. Indirect call will

add another 10%.


[Bug other/55354] [asan] by default, the asan run-time should be linked statically, not dynamically

2012-11-16 Thread jakub at gcc dot gnu.org


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



Jakub Jelinek jakub at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

 CC||jakub at gcc dot gnu.org

 Resolution||INVALID



--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2012-11-16 
17:22:03 UTC ---

This has been discussed already.  And Diego agreed Google can have a different

default in google branches if desirable for that kind of usage scenarios, but

otherwise it is undesirable.


[Bug c++/55355] internal compiler error: in tree_low_cst, at tree.c:6415

2012-11-16 Thread rcp at sentientmeat dot ca


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



--- Comment #1 from Richard Perrin rcp at sentientmeat dot ca 2012-11-16 
17:23:11 UTC ---

Oops:

s/3.4.6/4.6.3/ on all above.



All references to gcc 3.4.6 should actually be gcc 4.6.3.  I'm apparently

dyslexic or something today.


[Bug c++/55338] Incorrectly reported error in type name hiding

2012-11-16 Thread pinskia at gcc dot gnu.org


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



--- Comment #3 from Andrew Pinski pinskia at gcc dot gnu.org 2012-11-16 
17:27:50 UTC ---

http://gcc.gnu.org/ml/gcc/2012-11/msg00259.html

Covers why this still invalid code.



See also 13935.


[Bug c++/55355] internal compiler error: in tree_low_cst, at tree.c:6415

2012-11-16 Thread paolo.carlini at oracle dot com


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



--- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com 2012-11-16 
17:30:55 UTC ---

I can't reproduce this on x86_64-linux, neither -m64 nor -m32. Tried 4.6.3,

current 4_6-branch, 4_7-branch and mainline.



Somebody can?


[Bug middle-end/55078] [4.8 Regression] FAIL: g++.dg/torture/pr46154.C

2012-11-16 Thread hubicka at gcc dot gnu.org


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



--- Comment #7 from Jan Hubicka hubicka at gcc dot gnu.org 2012-11-16 
17:32:50 UTC ---

Martin, any news here?


[Bug c++/55338] Incorrectly reported error in type name hiding

2012-11-16 Thread paolo.carlini at oracle dot com


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



Paolo Carlini paolo.carlini at oracle dot com changed:



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

 Resolution||INVALID



--- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com 2012-11-16 
17:38:40 UTC ---

Closing.


[Bug bootstrap/55051] [4.8 Regression] profiledbootstrap failed

2012-11-16 Thread hubicka at gcc dot gnu.org


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



--- Comment #27 from Jan Hubicka hubicka at gcc dot gnu.org 2012-11-16 
17:42:26 UTC ---

  /* Now merge each file.  */

  for (gi_ptr = gcov_list; gi_ptr; gi_ptr = gi_ptr-next)

{

// Open existing gcda file for gi_ptr

// Find program summary corresponding to this executable - save in prg

// Merge execution counts for each function

// Merge program summary

//  - If this is the first merged file for this execution,

save merged summary in all_prg

//  - Otherwise if #runs the same in prg and all_prg,

print error message if prg != all_prg.

// Write merged gcda

}



Hmm, yes, it seems wrong.  We can not expect all gcda files to have same number

of runs.  We really need to process sum_all  friends locally for each file. 

Only I suppose we can check if number of runs of the prg happens to match the

last merged file then sum_all should match. That would be nice consistency

check. If the bootstrap works with this change, consider the patch preapproved.


[Bug target/55339] C++ code compiled with -O2 on Linux ppc hangs in runtime

2012-11-16 Thread anton.katilin at gmail dot com


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



--- Comment #4 from anton.katilin at gmail dot com 2012-11-16 17:44:16 UTC ---

 Why did you do that?



We copied the configuration of gcc 4.1.2 available on the system (Yellow Dog

Linux) out of the box. It had been configured with

--disable-libunwind-exceptions



By the way, the problem is not reproducible with that gcc 4.1.2.


[Bug tree-optimization/38785] [4.5/4.6/4.7/4.8 Regression] huge performance regression on EEMBC bitmnp01

2012-11-16 Thread hubicka at gcc dot gnu.org


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



Jan Hubicka hubicka at gcc dot gnu.org changed:



   What|Removed |Added



 Status|RESOLVED|WAITING

 CC||hubicka at gcc dot gnu.org

 Resolution|FIXED   |



--- Comment #32 from Jan Hubicka hubicka at gcc dot gnu.org 2012-11-16 
17:50:28 UTC ---

Would be possible to double check if this problem is still fixed after the fix

to the tree-ssa-pre patch? I do not see any cold edges involved here, so

perhaps we will need better heuristic.



We now again find some partial redundancies.

Found partial redundancy for expression {mem_ref0B,_20}@.MEM_5 (0024)

Inserted pretmp_57 = *_20;

 in predecessor 6

Created phi prephitmp_56 = PHI _24(20), pretmp_57(6)

 in block 7

Found partial redundancy for expression {mem_ref0B,_20}@.MEM_6 (0029)

Inserted pretmp_55 = *_20;

 in predecessor 8

Created phi prephitmp_63 = PHI _29(21), pretmp_55(8)

 in block 9

Found partial redundancy for expression {mem_ref0B,_20}@.MEM_7 (0034)

Inserted pretmp_64 = *_20;

 in predecessor 10

Created phi prephitmp_65 = PHI _34(22), pretmp_64(10)

 in block 11

Found partial redundancy for expression {mem_ref0B,_20}@.MEM_8 (0039)

Inserted pretmp_66 = *_20;

 in predecessor 12

Created phi prephitmp_67 = PHI _39(23), pretmp_66(12)

 in block 13

Starting insert iteration 2

Replaced *_20 with prephitmp_56 in _29 = *_20;

Replaced *_20 with prephitmp_63 in _34 = *_20;

Replaced *_20 with prephitmp_65 in _39 = *_20;

Replaced *_20 with prephitmp_67 in _44 = *_20;


[Bug c++/55355] internal compiler error: in tree_low_cst, at tree.c:6415

2012-11-16 Thread rcp at sentientmeat dot ca


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



--- Comment #3 from Richard Perrin rcp at sentientmeat dot ca 2012-11-16 
17:50:30 UTC ---

(In reply to comment #2)

 I can't reproduce this on x86_64-linux, neither -m64 nor -m32. Tried 4.6.3,

 current 4_6-branch, 4_7-branch and mainline.



I have tried 4.7.1 and 4.7.2 on the same systems, built with the same

configuration, and can confirm that neither of these versions suffers from this

problem. (Other issues prevent us from adopting those versions.)


[Bug tree-optimization/38785] [4.5/4.6/4.7/4.8 Regression] huge performance regression on EEMBC bitmnp01

2012-11-16 Thread hubicka at gcc dot gnu.org


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



--- Comment #33 from Jan Hubicka hubicka at gcc dot gnu.org 2012-11-16 
18:00:54 UTC ---

And at -O3 the testcase does not look really good indeed

  bb 7:

  # cstore_51 = PHI 0(5), 2147483647(6)

  # prephitmp_82 = PHI 1073741823(5), 3221225470(6)

  # prephitmp_83 = PHI 1789569705(5), 3937053352(6)

  # prephitmp_84 = PHI 2326440616(5), 4473924263(6)

  # prephitmp_85 = PHI 2755937345(5), 4903420992(6)

  # prephitmp_86 = PHI 3113851286(5), 5261334933(6)

  # prephitmp_87 = PHI 2684354557(5), 4831838204(6)

  # prephitmp_88 = PHI 2219066434(5), 4366550081(6)

  # prephitmp_89 = PHI 2576980375(5), 4724464022(6)

  # prephitmp_90 = PHI 2147483646(5), 4294967293(6)

  # prephitmp_91 = PHI 1610612734(5), 3758096381(6)

  # prephitmp_92 = PHI 2040109463(5), 4187593110(6)

  # prephitmp_93 = PHI 2398023404(5), 4545507051(6)

  # prephitmp_94 = PHI 1968526675(5), 4116010322(6)

  # prephitmp_95 = PHI 1503238552(5), 3650722199(6)

  # prephitmp_96 = PHI 1861152493(5), 4008636140(6)

  # prephitmp_97 = PHI 1431655764(5), 3579139411(6)

  # prephitmp_98 = PHI 715827882(5), 2863311529(6)

  # prephitmp_99 = PHI 1252698793(5), 3400182440(6)

  # prephitmp_100 = PHI 1682195522(5), 3829679169(6)

  # prephitmp_103 = PHI 1145324611(5), 3292808258(6)

  # prephitmp_106 = PHI 536870911(5), 2684354558(6)

  # prephitmp_107 = PHI 966367640(5), 3113851287(6)

  # prephitmp_108 = PHI 1324281581(5), 3471765228(6)

  # prephitmp_109 = PHI 894784852(5), 3042268499(6)

  # prephitmp_110 = PHI 429496729(5), 2576980376(6)

  # prephitmp_111 = PHI 787410670(5), 2934894317(6)

  # prephitmp_112 = PHI 357913941(5), 2505397588(6)

  *_18 = cstore_51;

  _24 = *_20;

  _25 = _24  2;

  if (_25 = -14)

goto bb 8;

  else

goto bb 9;



The catch is that the patch disabled the partial PRE by an accident. No cold

edges are involved here since we predict all the branches quite even :(


[Bug bootstrap/55051] [4.8 Regression] profiledbootstrap failed

2012-11-16 Thread tejohnson at google dot com


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



--- Comment #28 from Teresa Johnson tejohnson at google dot com 2012-11-16 
18:03:08 UTC ---

On Fri, Nov 16, 2012 at 9:42 AM, hubicka at gcc dot gnu.org

gcc-bugzi...@gcc.gnu.org wrote:



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



 --- Comment #27 from Jan Hubicka hubicka at gcc dot gnu.org 2012-11-16 
 17:42:26 UTC ---

   /* Now merge each file.  */

   for (gi_ptr = gcov_list; gi_ptr; gi_ptr = gi_ptr-next)

 {

 // Open existing gcda file for gi_ptr

 // Find program summary corresponding to this executable - save in 
 prg

 // Merge execution counts for each function

 // Merge program summary

 //  - If this is the first merged file for this execution,

 save merged summary in all_prg

 //  - Otherwise if #runs the same in prg and all_prg,

 print error message if prg != all_prg.

 // Write merged gcda

 }



 Hmm, yes, it seems wrong.  We can not expect all gcda files to have same 
 number

 of runs.  We really need to process sum_all  friends locally for each file.

 Only I suppose we can check if number of runs of the prg happens to match the

 last merged file then sum_all should match.



I'm confused - that is essentially what it is doing today (although

comparing against the first merged file instead of the last merged

file). It isn't expecting all the gcda files to have the same number

of runs, but when they do it expects them to have the same sum_all.

See the trace of updates I show below this pseudo code in the same

email that shows why that is not working.



 That would be nice consistency

 check. If the bootstrap works with this change, consider the patch 
 preapproved.



I had sent a patch last night to simply rip out this check based on

the analysis I had done, but I assume you are not talking about that.



Thanks,

Teresa





 --

 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.







--

Teresa Johnson | Software Engineer | tejohn...@google.com | 408-460-2413


[Bug libstdc++/55041] prettyprinting/shared_ptr cxx11 fails on some platforms

2012-11-16 Thread redi at gcc dot gnu.org


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



--- Comment #11 from Jonathan Wakely redi at gcc dot gnu.org 2012-11-16 
18:14:02 UTC ---

Tom, do you have any idea what's going on in comment 6 and comment 8 of this

bug?


[Bug fortran/55356] New: ICE with TRANSFER of C_NULL_PTR

2012-11-16 Thread juno.krahn at nih dot gov


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



 Bug #: 55356

   Summary: ICE with TRANSFER of C_NULL_PTR

Classification: Unclassified

   Product: gcc

   Version: 4.7.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: fortran

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: juno.kr...@nih.gov





Example code (bug.f90):



use iso_c_binding

type(C_ptr) :: p

p = transfer(C_NULL_ptr,p)

end





Result:

$ gfortran -c  bug.f90 

f951: 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.





Seems likely related to bug 46974


[Bug c++/55357] New: -Wshadow warns about lambda function parameters matching variables in outer scope

2012-11-16 Thread david at doublewise dot net


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



 Bug #: 55357

   Summary: -Wshadow warns about lambda function parameters

matching variables in outer scope

Classification: Unclassified

   Product: gcc

   Version: 4.7.2

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: c++

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: da...@doublewise.net





Similar to http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30566



input:



int main() {

int x = 1;

auto const lambda = [](int x) {

return x;

};

}







output:



src/main.cpp: In lambda function:

src/main.cpp:3:30: error: declaration of 'x' shadows a previous local

[-Werror=shadow]

src/main.cpp:2:6: error: shadowed declaration is here [-Werror=shadow]

src/main.cpp: In static member function 'static int

main()::lambda(int)::_FUN(int)':

src/main.cpp:5:2: error: declaration of 'x' shadows a previous local

[-Werror=shadow]

src/main.cpp:2:6: error: shadowed declaration is here [-Werror=shadow]

cc1plus: all warnings being treated as errors







My lambda has an empty capture specification, so the outer x is not captured.

Note that if I change the lambda parameter's name but do not change the name of

the returned value, I get an error that x was not captured.



I can't decide if this is correct behavior for the warning. It would catch

errors caused by people thinking they were using the outer variables by simply

disallowing overlap, which is good. However, it's not possible to use the outer

scope variable no matter what I name my variables in the inner scope, so there

is no chance of a silent behavior change.



However, the following code should always give a warning with -Wshadow:



int main() {

int x = 1;

// Capture everything

auto const lambda = [](int x) {

return x;

};

}









I also note that gcc warns me about the first line the lambda appears on (line

3) and the last line (line 5).


[Bug fortran/55297] [4.8 Regression] [OOP] type-bound operator clashes with abstract interface

2012-11-16 Thread janus at gcc dot gnu.org


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



janus at gcc dot gnu.org changed:



   What|Removed |Added



 Status|ASSIGNED|RESOLVED

 Resolution||FIXED



--- Comment #5 from janus at gcc dot gnu.org 2012-11-16 18:17:28 UTC ---

Fixed with r193568. Closing.


[Bug middle-end/53024] Support vector_size that is not a power of 2

2012-11-16 Thread pinskia at gcc dot gnu.org


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



--- Comment #5 from Andrew Pinski pinskia at gcc dot gnu.org 2012-11-16 
18:18:16 UTC ---

I don't think we can ever support vector size of non power 2 size.


[Bug tree-optimization/55286] [4.7/4.8 Regression] Bytemark ASSIGNMENT 4% - 10% slower

2012-11-16 Thread jakub at gcc dot gnu.org


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



--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org 2012-11-16 
18:28:30 UTC ---

Created attachment 28712

  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28712

assign.c



Assignment extracted into a self-contained testcase, does this also make a

similar difference for you?  On which CPU?  Yes, there is a code generation

difference with that commit, in *.optimized the difference seems to be

(-vanilla, + with Kai's patch reverted):

@@ -192,13 +192,12 @@ Assignment (long int[101] * arraybase)

   sizetype _302;

   unsigned long _303;

   sizetype _306;

   long unsigned int pretmp_307;

   long unsigned int pretmp_308;

   long int[101] * pretmp_318;

-  unsigned long _322;

   short unsigned int ivtmp_334;

   unsigned long _350;

   unsigned int _351;

   long unsigned int patt_353;

   short unsigned int _354;

   unsigned long _355;

@@ -286,27 +285,26 @@ Assignment (long int[101] * arraybase)

   bb 5:

   # currentmin_72 = PHI currentmin_402(4)

   _356 = ivtmp.312_453  15;

   _350 = _356  3;

   _355 = -_350;

   _354 = (short unsigned int) _355;

-  _322 = _355  1;

-  prolog_loop_niters.10_359 = (short unsigned int) _322;

+  prolog_loop_niters.10_359 = _354  1;

   if (prolog_loop_niters.10_359 == 0)

 goto bb 7;

   else

 goto bb 6;



   bb 6:

   _272 = MEM[base: pretmp_395, offset: 0B];

   _256 = _272 - currentmin_72;

   MEM[base: pretmp_395, offset: 0B] = _256;



   bb 7:

   # j_269 = PHI 1(6), 0(5)

-  prolog_loop_adjusted_niters.11_124 = _355  1;

+  prolog_loop_adjusted_niters.11_124 = (sizetype) prolog_loop_niters.10_359;

   niters.12_129 = 101 - prolog_loop_niters.10_359;

   base_off.19_523 = prolog_loop_adjusted_niters.11_124 * 8;

   vect_p.20_524 = pretmp_395 + base_off.19_523;

   vect_cst_.23_528 = {currentmin_72, currentmin_72};



   bb 8:



This change happens very late (forwprop4) and nothing afterwards cleans it up

(there is no DCE etc. that would DCE the dead assignment to _354 and there is

no PRE/FRE to replace _355  1 in the second case with _322.  Still just

zero-extending _359 is perhaps cheaper register pressure-wise.



That said, I can't find any measurable differences between the two.


[Bug other/55358] New: Valgrind errors

2012-11-16 Thread hjl.tools at gmail dot com


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



 Bug #: 55358

   Summary: Valgrind errors

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: other

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: hjl.to...@gmail.com





With revision 193546, valgrind reports:



==25552== Invalid read of size 8

==25552==at 0x38F3A88D5F: __GI_mempcpy (in /usr/lib64/libc-2.15.so)

==25552==by 0x38F3A785DD: _IO_default_xsputn (in /usr/lib64/libc-2.15.so)

==25552==by 0x38F3A76940: _IO_file_xsputn@@GLIBC_2.2.5 (in

/usr/lib64/libc-2.15.so)

==25552==by 0x38F3A6C4FC: fwrite (in /usr/lib64/libc-2.15.so)

==25552==by 0x622AD7: ggc_pch_write_object(ggc_pch_data*, _IO_FILE*, void*,

void*, unsigned long, bool) (ggc-page.c:2322)

==25552==by 0x74D8C1: gt_pch_save(_IO_FILE*) (ggc-common.c:593) 

==25552==by 0x610027: c_common_write_pch() (c-pch.c:184)

==25552==by 0x548D45: cp_write_global_declarations() (decl2.c:3948)

==25552==by 0x8A252C: compile_file() (toplev.c:559)

==25552==by 0x8A4087: toplev_main(int, char**) (toplev.c:1881)

==25552==by 0x38F3A21674: (below main) (in /usr/lib64/libc-2.15.so)

==25552==  Address 0x1089a7d8 is not stack'd, malloc'd or (recently) free'd



==25552== Invalid read of size 8

==25552==at 0x4A0A33A: memcpy@@GLIBC_2.14 (mc_replace_strmem.c:881)

==25552==by 0x74D84B: gt_pch_save(_IO_FILE*) (ggc-common.c:583)

==25552==by 0x610027: c_common_write_pch() (c-pch.c:184)

==25552==by 0x548D45: cp_write_global_declarations() (decl2.c:3948)

==25552==by 0x8A252C: compile_file() (toplev.c:559)

==25552==by 0x8A4087: toplev_main(int, char**) (toplev.c:1881)

==25552==by 0x38F3A21674: (below main) (in /usr/lib64/libc-2.15.so)

==25552==  Address 0xce8 is not stack'd, malloc'd or (recently) free'd



==25565== Invalid write of size 8

==25565==at 0x4A0A23B: memcpy@@GLIBC_2.14 (mc_replace_strmem.c:881)

==25565==by 0x74D8E3: gt_pch_save(_IO_FILE*) (ggc-common.c:595)

==25565==by 0x610027: c_common_write_pch() (c-pch.c:184)

==25565==by 0x548D45: cp_write_global_declarations() (decl2.c:3948)

==25565==by 0x8A252C: compile_file() (toplev.c:559)

==25565==by 0x8A4087: toplev_main(int, char**) (toplev.c:1881)

==25565==by 0x38F3A21674: (below main) (in /usr/lib64/libc-2.15.so)

==25565==  Address 0xfb40778 is not stack'd, malloc'd or (recently) free'd



==26359== Invalid read of size 4

==26359==at 0xB58AEE: rest_of_handle_ree() (ree.c:617)

==26359==by 0x74ADA3: execute_one_pass(opt_pass*) (passes.c:2339)

==26359==by 0x74B174: execute_pass_list(opt_pass*) (passes.c:2400)

==26359==by 0x74B186: execute_pass_list(opt_pass*) (passes.c:2401)

==26359==by 0x74B186: execute_pass_list(opt_pass*) (passes.c:2401)

==26359==by 0x5AB16D: expand_function(cgraph_node*) (cgraphunit.c:1643)

==26359==by 0x5AC786: compile() (cgraphunit.c:1747)

==26359==by 0x5ACBA9: finalize_compilation_unit() (cgraphunit.c:2122)

==26359==by 0x4E47DF: c_write_global_declarations() (c-decl.c:10128)

==26359==by 0x7D7F4C: compile_file() (toplev.c:559)

==26359==by 0x7D9AA7: toplev_main(int, char**) (toplev.c:1881)

==26359==by 0x38F3A21674: (below main) (in /usr/lib64/libc-2.15.so)

==26359==  Address 0x4e10d51 is 2,785 bytes inside a block of size 2,788

alloc'd

==26359==at 0x4A06B0F: calloc (vg_replace_malloc.c:593)

==26359==by 0xC0F708: xcalloc (xmalloc.c:162)

==26359==by 0xB59070: rest_of_handle_ree() (ree.c:886)


[Bug bootstrap/55051] [4.8 Regression] profiledbootstrap failed

2012-11-16 Thread hubicka at ucw dot cz


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



--- Comment #29 from Jan Hubicka hubicka at ucw dot cz 2012-11-16 18:57:41 
UTC ---

 

 I'm confused - that is essentially what it is doing today (although

 comparing against the first merged file instead of the last merged

 file). It isn't expecting all the gcda files to have the same number

 of runs, but when they do it expects them to have the same sum_all.

 See the trace of updates I show below this pseudo code in the same

 email that shows why that is not working.



Hmm, after some tought I guess what can happen is that number of run matches

but these are different run, because more than 2 streamings may be running...



Honza


[Bug middle-end/55359] New: [4.8 Regression] ICE in simplify_subreg accessing an unaligned subvector

2012-11-16 Thread glisse at gcc dot gnu.org


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



 Bug #: 55359

   Summary: [4.8 Regression] ICE in simplify_subreg accessing an

unaligned subvector

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: middle-end

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: gli...@gcc.gnu.org





I am not quite sure if this code is legal. I noticed it first with a

BIT_FIELD_REF (generated by a local patch), but it also happens with a MEM_REF.

The code generated by 4.7 seems correct, even if it isn't optimal.



$ cat s.c

#include x86intrin.h



__m128d f(__m256d x){

  return *((__m128d*)((double*)x+1));

}

$ gcc s.c -mavx2 -S -O2

s.c: In function 'f':

s.c:4:3: internal compiler error: in simplify_subreg, at simplify-rtx.c:5688

   return *((__m128d*)((double*)x+1));

   ^

0x9052f6 simplify_subreg(machine_mode, rtx_def*, machine_mode, unsigned int)

/data/repos/gcc/pristine/gcc/simplify-rtx.c:5688

0x90b8bd simplify_gen_subreg(machine_mode, rtx_def*, machine_mode, unsigned

int)

/data/repos/gcc/pristine/gcc/simplify-rtx.c:5903

0x6ec7e8 extract_bit_field_1

/data/repos/gcc/pristine/gcc/expmed.c:1482

0x6ecda3 extract_bit_field(rtx_def*, unsigned long, unsigned long, int, bool,

rtx_def*, machine_mode, machine_mode)

/data/repos/gcc/pristine/gcc/expmed.c:1711

0x6fa77e expand_expr_real_1(tree_node*, rtx_def*, machine_mode,

expand_modifier, rtx_def**)

/data/repos/gcc/pristine/gcc/expr.c:10006

0x6fb505 expand_expr

/data/repos/gcc/pristine/gcc/expr.h:444

0x6fb505 expand_expr_real_1(tree_node*, rtx_def*, machine_mode,

expand_modifier, rtx_def**)

/data/repos/gcc/pristine/gcc/expr.c:9614

0x6fb623 expand_expr_real_1(tree_node*, rtx_def*, machine_mode,

expand_modifier, rtx_def**)

/data/repos/gcc/pristine/gcc/expr.c:9179

0x9152a8 expand_expr

/data/repos/gcc/pristine/gcc/expr.h:444

0x9152a8 expand_return(tree_node*)

/data/repos/gcc/pristine/gcc/stmt.c:1546

0x635273 expand_gimple_stmt_1

/data/repos/gcc/pristine/gcc/cfgexpand.c:2082

0x635273 expand_gimple_stmt

/data/repos/gcc/pristine/gcc/cfgexpand.c:2204

0x636c82 expand_gimple_basic_block

/data/repos/gcc/pristine/gcc/cfgexpand.c:3978

0x639aee gimple_expand_cfg

/data/repos/gcc/pristine/gcc/cfgexpand.c:4497


[Bug bootstrap/54795] [4.8 Regression] Random profiledbootstrap failure with LTO

2012-11-16 Thread markus at trippelsdorf dot de


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



--- Comment #5 from Markus Trippelsdorf markus at trippelsdorf dot de 
2012-11-16 19:36:26 UTC ---

I'm not sure if it's related, but with gcc built with clang's

-fsanitize=address I get:



markus@x4 ~ % /var/tmp/gcc_sani_clang/usr/local/bin/g++ -flto t.cpp 21 |

asan_symbolize.py | c++filt

=

==15267== ERROR: AddressSanitizer: global-buffer-overflow on address

0x02d16424 at pc 0x12ca07a bp 0x7fff5db28190 sp 0x7fff5db28188

READ of size 4 at 0x02d16424 thread T0

#0 0x12ca079 in lto_write_options() /home/markus/gcc/gcc/lto-opts.c:97

#1 0x12c076a in produce_asm_for_decls()

/home/markus/gcc/gcc/lto-streamer-out.c:1407

#2 0x135a74f in ipa_write_summaries_2(opt_pass*, lto_out_decl_state*)

/home/markus/gcc/gcc/passes.c:2430

0x02d16424 is located 28 bytes to the left of global variable '.str2184

(options.c)' (0x2d16440) of size 4

  '.str2184 (options.c)' is ascii string 'gnu'

0x02d16424 is located 25 bytes to the right of global variable '.str2183

(options.c)' (0x2d16400) of size 11

  '.str2183 (options.c)' is ascii string 'local-exec'

Shadow byte and word:

  0x105a2c84: f9

  0x105a2c80: 00 03 f9 f9 f9 f9 f9 f9

More shadow bytes:

  0x105a2c60: 00 00 00 02 f9 f9 f9 f9

  0x105a2c68: 00 07 f9 f9 f9 f9 f9 f9

  0x105a2c70: 00 05 f9 f9 f9 f9 f9 f9

  0x105a2c78: 00 06 f9 f9 f9 f9 f9 f9

=0x105a2c80: 00 03 f9 f9 f9 f9 f9 f9

  0x105a2c88: 04 f9 f9 f9 f9 f9 f9 f9

  0x105a2c90: 05 f9 f9 f9 f9 f9 f9 f9

  0x105a2c98: 00 f9 f9 f9 f9 f9 f9 f9

  0x105a2ca0: 07 f9 f9 f9 f9 f9 f9 f9

Stats: 3M malloced (2M for red zones) by 3820 calls

Stats: 0M realloced by 288 calls

Stats: 2M freed by 1635 calls

Stats: 0M really freed by 0 calls

Stats: 9M (2317 full pages) mmaped in 18 calls

  mmaps   by size class: 7:4095; 8:2047; 9:1023; 10:511; 11:255; 12:384; 13:64;

14:32; 15:16; 16:8; 17:20; 18:2;

  mallocs by size class: 7:2233; 8:820; 9:69; 10:96; 11:228; 12:297; 13:49;

14:1; 15:5; 16:1; 17:20; 18:1;

  frees   by size class: 7:523; 8:492; 9:47; 10:80; 11:156; 12:291; 13:21;

14:1; 15:4; 17:20;

  rfrees  by size class:

Stats: malloc large: 27 small slow: 88

==15267== ABORTING



markus@x4 ~ % cat t.cpp

int main () {}


[Bug middle-end/53024] Support vector_size that is not a power of 2

2012-11-16 Thread glisse at gcc dot gnu.org


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



--- Comment #6 from Marc Glisse glisse at gcc dot gnu.org 2012-11-16 20:03:05 
UTC ---

(In reply to comment #5)

 I don't think we can ever support vector size of non power 2 size.



I don't think we *will* ever support them (too much work, too little benefit),

but I am not sure why we couldn't in principle.


[Bug other/55354] [asan] by default, the asan run-time should be linked statically, not dynamically

2012-11-16 Thread konstantin.s.serebryany at gmail dot com


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



--- Comment #4 from Konstantin Serebryany konstantin.s.serebryany at gmail dot 
com 2012-11-16 20:28:34 UTC ---

You have been warned (especially about tsan performance. tsan run-time heavily

depends on TLS, and TLS is much slower with -fPIC than with -fPIE).



Do we have a flag today which will cause libasan.a to be linked statically, 

while not forcing anything else to link statically?


[Bug libstdc++/55041] prettyprinting/shared_ptr cxx11 fails on some platforms

2012-11-16 Thread tromey at gcc dot gnu.org


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



--- Comment #12 from Tom Tromey tromey at gcc dot gnu.org 2012-11-16 20:46:33 
UTC ---

(In reply to comment #11)

 Tom, do you have any idea what's going on in comment 6 and comment 8 of this

 bug?



Not offhand.

If you send me the failing executable(s) I can take a look at their

debuginfo.  Maybe that will be useful.



I don't think gdb 7.3 really works with trunk after this patch, though:



commit 2dd133d84c8991217864523ea79d11f1885f1388

Author: mark mark@138bc75d-0d04-0410-961f-82ee72b054a4

Date:   Mon Aug 20 20:27:46 2012 +



dwarf2out.c: For DWARF 4+, output DW_AT_high_pc as constant offset.





This required a gdb change.



Another thing to try is turning on complaints before running the program

in gdb:



(gdb) set complaints 1

(gdb) start



For me this prints tons of junk, some of which could actually be gcc

bugs:



DW_AT_low_pc 0x0 is zero for DIE at 0xf055a [in module

/home/tromey/Space/Trunk/Git/build/x86_64-unknown-linux-gnu/./libstdc++-v3/src/.libs/libstdc++.so.6]...



debug_line address at offset 0x449b7 is 0 [in module

/home/tromey/Space/Trunk/Git/build/x86_64-unknown-linux-gnu/./libstdc++-v3/src/.libs/libstdc++.so.6]



It's hard to say without debugging further, this is just a first glance.

I'm not sure if these could cause the problems you're seeing.



FWIW, the tests mostly work for me, except:



UNSUPPORTED: libstdc++-prettyprinters/shared_ptr.cc



In my case the issue seems to be weird debuginfo emitted by gcc;

look at what the breakpoint reports:



Breakpoint 1, _GLOBAL__sub_I__Z4makem () at

/home/tromey/Space/Trunk/Git/gcc/lib

stdc++-v3/testsuite/libstdc++-prettyprinters/shared_ptr.cc:81



Setting it by hand with gdb shared_ptr.exe then break 72:



(gdb) b 72

Breakpoint 1 at 0x400deb:

/home/tromey/Space/Trunk/Git/gcc/libstdc++-v3/testsuite/libstdc++-prettyprinters/shared_ptr.cc:72.

(3 locations)

(gdb) info b

Num Type   Disp Enb AddressWhat

1   breakpoint keep y   MULTIPLE 

1.1 y 0x00400deb in main() 

   at

/home/tromey/Space/Trunk/Git/gcc/libstdc++-v3/testsuite/libstdc++-prettyprinters/shared_ptr.cc:72

1.2 y 0x00400ec0 in

_GLOBAL__sub_I__Z4makem() 

   at

/home/tromey/Space/Trunk/Git/gcc/libstdc++-v3/testsuite/libstdc++-prettyprinters/shared_ptr.cc:72

1.3 y 0x00401070 in

std::_Sp_counted_deleterint*, deleter, std::allocatorint,

(__gnu_cxx::_Lock_policy)2::_M_get_deleter(std::type_info const) 

   at

/home/tromey/Space/Trunk/Git/gcc/libstdc++-v3/testsuite/libstdc++-prettyprinters/shared_ptr.cc:72





... very weird, looks like a gcc bug to me.


[Bug other/55354] [asan] by default, the asan run-time should be linked statically, not dynamically

2012-11-16 Thread jakub at gcc dot gnu.org


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



--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org 2012-11-16 
20:46:35 UTC ---

For TLS, you can just use -ftls-model=initial-exec or __attribute__((tls_model

(initial-exec))).  libasan from what I can see doesn't use TLS at all, and

you really can't just have -fno-pic libasan.a only anyway, any time you want to

instrument a shared library, if you linked non-pic libasan.a into it, it

wouldn't link on many architectures and on others would fail SELinux

restrictions.

If IE TLS mode is used, there is no problem if an app is linked against it or

if libraries it depends on are linked against it, there could be a problem if

its TLS usage is too large and app isn't linked against the library, and you

only dlopen some -fsanitize=address compiled/linked shared library.  Then

dlopen could fail (unless you e.g. LD_PRELOAD=libasan.so.0 or otherwise make

sure the app is linked against it).  Other GCC shared libraries (e.g.

libgomp.so.1) are also using the IE model.


[Bug rtl-optimization/55360] New: [TileGX] Passing structure by value on stack needlessly writes to and reads from memory

2012-11-16 Thread colanderman at gmail dot com


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



 Bug #: 55360

   Summary: [TileGX] Passing structure by value on stack

needlessly writes to and reads from memory

Classification: Unclassified

   Product: gcc

   Version: 4.7.2

Status: UNCONFIRMED

  Severity: enhancement

  Priority: P3

 Component: rtl-optimization

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: colander...@gmail.com





#include stdint.h



struct bar { uint8_t a, b, c, d; };

struct bla { unsigned long a:8, b:8, c:8, d:8; };



uint64_t bar(struct bar);

uint64_t bla(struct bla);



uint64_t foo(uint8_t a, uint8_t b, uint8_t c, uint8_t d)

{ return bar((struct bar) { a, b, c, d }); }



uint64_t baz(uint8_t a, uint8_t b, uint8_t c, uint8_t d)

{ return bla((struct bla) { a, b, c, d }); }



when compiled with gcc -Wall -std=gnu99 -O3 -S pbv.c produces:



.filepbv.c

.text

.align 8

.global foo

.typefoo, @function

foo:

.LFB0:

.cfi_startproc

{

stsp, lr

.cfi_offset 55, 0

mover29, sp

addir28, sp, -16

}

addisp, sp, -24

.cfi_def_cfa_offset 24

{

str28, r29

addir11, sp, 21

addir10, sp, 20

}

{

st1r11, r1

addir11, sp, 22

}

{

st1r11, r2

addir11, sp, 23

}

{

st1r10, r0

moveir0, 0

}

st1r11, r3

ld4ur10, r10

{

bfinsr0, r10, 0, 0+32-1

jalbar

}

addir29, sp, 24

ldlr, r29

{



addisp, sp, 24

.cfi_restore 54

.cfi_restore 55

.cfi_def_cfa_offset 0

jrplr

}

.cfi_endproc

.LFE0:

.sizefoo, .-foo

.align 8

.global baz

.typebaz, @function

baz:

.LFB1:

.cfi_startproc

{

moveir10, 0

stsp, lr

.cfi_offset 55, 0

mover29, sp

}

{

bfinsr10, r0, 0, 7

addir28, sp, -8

}

{

bfinsr10, r1, 8, 8+8-1

addisp, sp, -16

}

.cfi_def_cfa_offset 16

{

bfinsr10, r2, 16, 16+8-1

str28, r29

}

bfinsr10, r3, 24, 24+8-1

{

mover0, r10

jalbla

}

addir29, sp, 16

ldlr, r29

{



addisp, sp, 16

.cfi_restore 54

.cfi_restore 55

.cfi_def_cfa_offset 0

jrplr

}

.cfi_endproc

.LFE1:

.sizebaz, .-baz

.identGCC: (GNU) 4.7.2

.section.note.GNU-stack,,@progbits



My expectation is that the foo and baz should compile identically, and should

use the bfins bit-arithmetic functions like baz does, rather than redundant

stores and loads to stack like foo does.



This is with a vanilla GCC 4.7.2 build on a Tilempower system (roughly CentOS

5.7).



The problem does not occur on Debian x86-64 with either GCC 4.4.6 or GCC 4.7.2.



Possibly related to http://gcc.gnu.org/bugzilla/show_bug.cgi?id=7061 (however

that case seems to be fixed in 4.7.2).


[Bug other/55354] [asan] by default, the asan run-time should be linked statically, not dynamically

2012-11-16 Thread konstantin.s.serebryany at gmail dot com


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



--- Comment #6 from Konstantin Serebryany konstantin.s.serebryany at gmail dot 
com 2012-11-16 20:54:40 UTC ---

Answering my own question: we can get static linking with 

 -Wl,-Bstatic -lasan -Wl,-Bdynamic -ldl -lpthread 



 For TLS, you can just use -ftls-model=initial-exec 

I did not know, thanks. 

Sounds like this could be a good solution for tsan. Will check.


[Bug fortran/55352] Erroneous gfortran warning of unused module variable when variable is only used in namelist

2012-11-16 Thread janus at gcc dot gnu.org


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



--- Comment #3 from janus at gcc dot gnu.org 2012-11-16 21:43:34 UTC ---

(In reply to comment #2)

 I guess we should either set attr.referenced in gfc_match_namelist (match.c),

 or check for attr.in_namelist in generate_local_decl (trans-decl.c).



The latter is what we do for related cases. Proposed patch:



Index: gcc/fortran/trans-decl.c

===

--- gcc/fortran/trans-decl.c(revision 193567)

+++ gcc/fortran/trans-decl.c(working copy)

@@ -4589,23 +4589,26 @@ generate_local_decl (gfc_symbol * sym)

 }



   /* Warn for unused variables, but not if they're inside a common

- block, a namelist, or are use-associated.  */

+ block or a namelist.  */

   else if (warn_unused_variable

-!(sym-attr.in_common || sym-attr.use_assoc || sym-mark

-|| sym-attr.in_namelist))

+!(sym-attr.in_common || sym-mark || sym-attr.in_namelist))

 {

-  gfc_warning (Unused variable '%s' declared at %L, sym-name,

-   sym-declared_at);

-  if (sym-backend_decl != NULL_TREE)

-TREE_NO_WARNING(sym-backend_decl) = 1;

+  if (sym-attr.use_only)

+{

+  gfc_warning (Unused module variable '%s' which has been 

+   explicitly imported at %L, sym-name,

+   sym-declared_at);

+  if (sym-backend_decl != NULL_TREE)

+TREE_NO_WARNING(sym-backend_decl) = 1;

+}

+  else if (!sym-attr.use_assoc)

+{

+  gfc_warning (Unused variable '%s' declared at %L,

+   sym-name, sym-declared_at);

+  if (sym-backend_decl != NULL_TREE)

+TREE_NO_WARNING(sym-backend_decl) = 1;

+}

 }

-  else if (warn_unused_variable  sym-attr.use_only)

-{

-  gfc_warning (Unused module variable '%s' which has been explicitly 

-   imported at %L, sym-name, sym-declared_at);

-  if (sym-backend_decl != NULL_TREE)

-TREE_NO_WARNING(sym-backend_decl) = 1;

-}



   /* For variable length CHARACTER parameters, the PARM_DECL already

  references the length variable, so force gfc_get_symbol_decl


[Bug tree-optimization/55329] [4.8 Regression] ICE: internal compiler error: in operator[], at vec.h:487 with -O -fno-guess-branch-probability -fnon-call-exceptions --param=early-inlining-insns=111

2012-11-16 Thread jakub at gcc dot gnu.org


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



--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org 2012-11-16 
22:05:36 UTC ---

Author: jakub

Date: Fri Nov 16 22:05:32 2012

New Revision: 193577



URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=193577

Log:

PR tree-optimization/55329

* tree-ssa-dom.c (tree_ssa_dominator_optimize): Never clear

bits in needed_eh_cleanup while iterating over the bitmap.

Look through all forwarder blocks at once.



* g++.dg/opt/pr55329.C: New test.



Added:

trunk/gcc/testsuite/g++.dg/opt/pr55329.C

Modified:

trunk/gcc/ChangeLog

trunk/gcc/testsuite/ChangeLog

trunk/gcc/tree-ssa-dom.c


[Bug c++/55361] New: Access control in templates only happens when instantiating a method

2012-11-16 Thread joerg at netbsd dot org


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



 Bug #: 55361

   Summary: Access control in templates only happens when

instantiating a method

Classification: Unclassified

   Product: gcc

   Version: 4.7.2

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: c++

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: jo...@netbsd.org





Consider the following example:



class C

{

bool blocked;

};

template  class  struct F

{

void operator* ()

{

C a;

a.blocked;

}

};



int main() {

Fint x;

}



The operator is violating the access specifications of C, but this isn't

detected until it is actually used. Nothing in it depends on the template

though, so this check should happen earlier.


[Bug c++/55361] Access control in templates only happens when instantiating a method

2012-11-16 Thread pinskia at gcc dot gnu.org


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



--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org 2012-11-16 
22:32:03 UTC ---

The Comeau C/C++ online tester does not error out on this testcase.


[Bug c++/55361] Access control in templates only happens when instantiating a method

2012-11-16 Thread pinskia at gcc dot gnu.org


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



--- Comment #2 from Andrew Pinski pinskia at gcc dot gnu.org 2012-11-16 
22:38:47 UTC ---

I don't think this is a gcc bug as access control is always done only at

template-instantiation time.


[Bug target/54342] OImode is used for _m256 types when using unions in a function call.

2012-11-16 Thread pinskia at gcc dot gnu.org


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



Andrew Pinski pinskia at gcc dot gnu.org changed:



   What|Removed |Added



  Component|rtl-optimization|target

   Target Milestone|4.8.0   |---

Summary|[4.8 Regression] Wrong mode |OImode is used for _m256

   |of call argument|types when using unions in

   ||a function call.



--- Comment #13 from Andrew Pinski pinskia at gcc dot gnu.org 2012-11-16 
22:58:46 UTC ---

(insn 10 9 11 3 (set (reg:OI 21 xmm0) 

(reg:OI 64)) er.c:14 -1 

 (nil)) 





This above is generated by the back-end's call by construct_container.  So this

is not a middle-end issue even if the middle-end says the mode on the union is

BLKmode.  It is up to the back-end to do the correct thing when it is doing a

function call and converting the BLKmode of the union to the correct mode.



  case 4:

gcc_assert (i == 0

 regclass[1] == X86_64_SSEUP_CLASS

 regclass[2] == X86_64_SSEUP_CLASS

 regclass[3] == X86_64_SSEUP_CLASS);

tmpmode = OImode;



Is where the OImode is being generated.



The comment in ix86_hard_regno_mode_ok says:

  /* We implement the move patterns for all vector modes into and

 out of SSE registers, even when no operation instructions

 are available.  OImode move is available only when AVX is

 enabled.  */



So really I don't think this is a bug in the code itself but rather the patch

which you are working on which did not take into account OImode being an AVX

mode.


[Bug target/53101] Recognize casts to sub-vectors

2012-11-16 Thread glisse at gcc dot gnu.org


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



--- Comment #7 from Marc Glisse glisse at gcc dot gnu.org 2012-11-16 23:03:47 
UTC ---

Created attachment 28713

  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28713

Tweak on the patch of PR48037



This is a slight extension of Richard's patch for PR 48037. It needs testing

and doesn't solve the real problem (which is at the RTL level).



I am not sure if BIT_FIELD_REF (a mention of that tree in doc/generic.texi

would be nice) is allowed to refer to an unaligned subvector, the patch allows

it as long as the elements are aligned. See PR 55359 for a related issue.


[Bug c++/55361] Access control in templates only happens when instantiating a method

2012-11-16 Thread paolo.carlini at oracle dot com


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



--- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com 2012-11-16 
23:06:09 UTC ---

Likewise EDG as used by Intel. clang errors out. From the user point of view,

to make debugging easier, the earlier errors are produced the better, but this

is just a general principle, thus I don't think this is a compiler bug, at most

a QoI issue. A well known one, by the way: in many, many, other cases we aren't

very aggressive at that.


[Bug rtl-optimization/55360] [TileGX] Passing structure by value on stack needlessly writes to and reads from memory

2012-11-16 Thread hjl.tools at gmail dot com


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



--- Comment #1 from H.J. Lu hjl.tools at gmail dot com 2012-11-16 23:46:25 
UTC ---

Is this related to PR 28831?


[Bug c++/55361] Access control in templates only happens when instantiating a method

2012-11-16 Thread redi at gcc dot gnu.org


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



--- Comment #4 from Jonathan Wakely redi at gcc dot gnu.org 2012-11-17 
00:19:18 UTC ---

unless this is recategorised as a diagnostic enhancement request this is

clearly invalid, the compiler is not required to give an error for this code


[Bug libstdc++/55041] prettyprinting/shared_ptr cxx11 fails on some platforms

2012-11-16 Thread redi at gcc dot gnu.org


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



Jonathan Wakely redi at gcc dot gnu.org changed:



   What|Removed |Added



 CC||mark at gcc dot gnu.org



--- Comment #13 from Jonathan Wakely redi at gcc dot gnu.org 2012-11-17 
00:47:40 UTC ---

(In reply to comment #12)

 (In reply to comment #11)

  Tom, do you have any idea what's going on in comment 6 and comment 8 of this

  bug?

 

 Not offhand.

 If you send me the failing executable(s) I can take a look at their

 debuginfo.  Maybe that will be useful.



OK, will do so asap



 I don't think gdb 7.3 really works with trunk after this patch, though:

 

 commit 2dd133d84c8991217864523ea79d11f1885f1388

 Author: mark mark@138bc75d-0d04-0410-961f-82ee72b054a4

 Date:   Mon Aug 20 20:27:46 2012 +

 

 dwarf2out.c: For DWARF 4+, output DW_AT_high_pc as constant offset.

 

 

 This required a gdb change.



Ah, that should be in http://gcc.gnu.org/gcc-4.8/changes.html then. Mark?



 ... very weird, looks like a gcc bug to me.



Thanks, I thought it might be but don't know enough to confirm it or know where

to start looking.