[Bug debug/54693] VTA guality issues with loops

2012-10-04 Thread jakub at gcc dot gnu.org


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



--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org 2012-10-04 
06:09:48 UTC ---

As a quick hack just for this testcase we might perhaps do something in jump

threading code, if we have a DEBUG stmt based on a PHI result and are splitting

it up, look if it is the last DEBUG stmt for the variable in the threaded bb

and if so, consider adding a DEBUG stmt also to the fallthru bb after the

threaded block, based on its PHI.



For the general solution, didn't give it much thought yet, but so far I was

thinking about a pass that would analyze on GIMPLE (perhaps shortly before

expansion) all DEBUG stmts and work similarly to tree-into-ssa.c algorithm

(just simplified by performing it just once, never incrementally). 

SSA_NAME_VERSION

for the debug stmt lhs decls could be some integer recorded perhaps as

gimple_uid on the debug stmts, we'd track the current definition of each debug

stmt lhs uid, and instead of inserting PHI nodes we could:

1) look for existing PHI node for the var mentioned in the debug stmt rhs,

   use that if exists

2) in bb with few incoming edges, look for existing PHI node with constant

   PHI arguments where for different current defs of some debug stmt lhs uid

   the constants have different values, like:

 bb 7:

   DEBUG i = D#12

   goto bb 9;

 bb 8:

   DEBUG i = i_17

 bb 9:

   z = PHI 7(7), 19(8)



   We can then insert something like

   DEBUG i = z == 7 ? D#12 : i_17

3) otherwise punt.



Perhaps 2) would need some var-tracking changes, I'm afraid unavailability of a

VALUE for either of the branches of the COND_EXPR would reset it all.  But at

least 1) could work.


[Bug c++/54801] [c++11] static variables constructed with lambda params inside member functions cause undefined errors

2012-10-04 Thread daniel.kruegler at googlemail dot com

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

Daniel Krügler daniel.kruegler at googlemail dot com changed:

   What|Removed |Added

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

--- Comment #1 from Daniel Krügler daniel.kruegler at googlemail dot com 
2012-10-04 07:11:14 UTC ---
Also occurs on gcc 4.8.0 20120930 (experimental).


[Bug c++/54808] New: error: non-trivial conversion at assignment (with bit fields)

2012-10-04 Thread chgena at mail dot ru

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

 Bug #: 54808
   Summary: error: non-trivial conversion at assignment (with bit
fields)
Classification: Unclassified
   Product: gcc
   Version: 4.7.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: chg...@mail.ru


Created attachment 28352
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28352
a.cpp, a.ii, a.s

g++ -c -v a.cpp
Using built-in specs.
COLLECT_GCC=g++
Target: i586-suse-linux
Configured with: ../configure --prefix=/usr --infodir=/usr/share/info
--mandir=/usr/share/man --libdir=/usr/lib --libexecdir=/usr/lib
--enable-languages=c,c++,objc,fortran,obj-c++,java,ada
--enable-checking=release --with-gxx-include-dir=/usr/include/c++/4.7
--enable-ssp --disable-libssp --disable-libitm --disable-plugin
--with-bugurl=http://bugs.opensuse.org/ --with-pkgversion='SUSE Linux'
--disable-libgcj --disable-libmudflap --with-slibdir=/lib --with-system-zlib
--enable-__cxa_atexit --enable-libstdcxx-allocator=new --disable-libstdcxx-pch
--enable-version-specific-runtime-libs --enable-linker-build-id
--program-suffix=-4.7 --enable-linux-futex --without-system-libunwind
--with-arch-32=i586 --with-tune=generic --build=i586-suse-linux
Thread model: posix
gcc version 4.7.1 20120723 [gcc-4_7-branch revision 189773] (SUSE Linux) 
COLLECT_GCC_OPTIONS='-c' '-v' '-shared-libgcc' '-mtune=generic' '-march=i586'
 /usr/lib/gcc/i586-suse-linux/4.7/cc1plus -quiet -v -D_GNU_SOURCE a.cpp -quiet
-dumpbase a.cpp -mtune=generic -march=i586 -auxbase a -version -o
/tmp/ccWMxjpd.s
GNU C++ (SUSE Linux) version 4.7.1 20120723 [gcc-4_7-branch revision 189773]
(i586-suse-linux)
compiled by GNU C version 4.7.1 20120723 [gcc-4_7-branch revision
189773], GMP version 5.0.5, MPFR version 3.1.0-p1, MPC version 0.8.2
GGC heuristics: --param ggc-min-expand=97 --param ggc-min-heapsize=126872
#include ... search starts here:
#include ... search starts here:
 /usr/include/c++/4.7
 /usr/include/c++/4.7/i586-suse-linux
 /usr/include/c++/4.7/backward
 /usr/lib/gcc/i586-suse-linux/4.7/include
 /usr/local/include
 /usr/lib/gcc/i586-suse-linux/4.7/include-fixed
 /usr/lib/gcc/i586-suse-linux/4.7/../../../../i586-suse-linux/include
 /usr/include
End of search list.
GNU C++ (SUSE Linux) version 4.7.1 20120723 [gcc-4_7-branch revision 189773]
(i586-suse-linux)
compiled by GNU C version 4.7.1 20120723 [gcc-4_7-branch revision
189773], GMP version 5.0.5, MPFR version 3.1.0-p1, MPC version 0.8.2
GGC heuristics: --param ggc-min-expand=97 --param ggc-min-heapsize=126872
Compiler executable checksum: 101098d25a1106630df7d70889b6eb44
a.cpp: In function ‘void f()’:
a.cpp:5:6: error: non-trivial conversion at assignment
unnamed-signed:4
int
a.D.1839 = 0;

a.cpp:5: confused by earlier errors, bailing out


Source code:

struct A{
int a:3;
int :4;
};
void f()
{
A a={1};
}


[Bug rtl-optimization/54739] [4.8 regression] FAIL: gcc.dg/lower-subreg-1.c scan-rtl-dump subreg1 Splitting reg

2012-10-04 Thread ebotcazou at gcc dot gnu.org


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



--- Comment #5 from Eric Botcazou ebotcazou at gcc dot gnu.org 2012-10-04 
07:58:31 UTC ---

Thanks.  The code generated for the testcase is certainly better on the SPARC

if lower-subreg doesn't split the DImode objects (which probably means that the

patch was also beneficial for this architecture) so I'll go the ARM way.


[Bug middle-end/54809] New: gengtype ignore mark_hook in struct nested in union

2012-10-04 Thread bstarynk at gcc dot gnu.org


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



 Bug #: 54809

   Summary: gengtype ignore mark_hook in struct nested in union

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: middle-end

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

ReportedBy: bstar...@gcc.gnu.org





Created attachment 28353

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

small example to feed to gengtype



See http://gcc.gnu.org/ml/gcc-patches/2012-10/msg00257.html



The attached basilemarkh.h contains a GTY-ed struct mytest_st with a mark_hook.

That struct mytest_st is a member of some GTY-ed union myutest_un.



No call to the mark_hook is generated by gengtype (both on GCC 4.7 and on 4.8

trunk).



The attached patch to gengtype.c (for GCC 4.8 trunk svn rev 192031) solves the

issue


[Bug middle-end/54809] gengtype ignore mark_hook in struct nested in union

2012-10-04 Thread bstarynk at gcc dot gnu.org


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



--- Comment #1 from Basile Starynkevitch bstarynk at gcc dot gnu.org 
2012-10-04 08:05:00 UTC ---

Created attachment 28354

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

patch to gengtype.c


[Bug middle-end/54804] -Wuninitialized fails to warn about uninitialized local union

2012-10-04 Thread manu at gcc dot gnu.org

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

Manuel López-Ibáñez manu at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2012-10-04
 CC||manu at gcc dot gnu.org
  Component|c   |middle-end
 Blocks||24639
 Ever Confirmed|0   |1

--- Comment #1 from Manuel López-Ibáñez manu at gcc dot gnu.org 2012-10-04 
08:07:35 UTC ---
Confirmed. early SRA creates a scalar replacement for the struct but not for
the union:

;; Function yyparse (yyparse, funcdef_no=0, decl_uid=1710, cgraph_uid=0)
yyparse ()
{
  union YYSTYPE yylval;
  union YYSTYPE D.1720;

bb 2:
  [pr54804.c : 6:6] D.1720 = yylval;
  yylval ={v} {CLOBBER};
  [pr54804.c : 6:6] return D.1720;
}
;; Function yyparse_with_struct (yyparse_with_struct, funcdef_no=1,
decl_uid=1716, cgraph_uid=1)

Created a replacement for xxlval offset: 0, size: 32: xxlval$ival

Symbols to be put in SSA form
{ xxlval$ival }
Incremental SSA update started at block: 0
Number of blocks in CFG: 3
Number of blocks to update: 2 ( 67%)


yyparse_with_struct ()
{
  int xxlval$ival;
  struct s xxlval;
  struct s D.1723;

bb 2:
  [pr54804.c : 15:6] [pr54804.c : 15] MEM[(struct s *)D.1723] =
xxlval$ival_3(D);
  [pr54804.c : 15:6] return D.1723;
}

Alternatively, one may see the problem as Wuninitialized not working with
anything that leaves in memory (structs/union/arrays) unless SRA is applied.
There are a few PRs about that.


[Bug middle-end/54809] gengtype ignore mark_hook in struct nested in union

2012-10-04 Thread bstarynk at gcc dot gnu.org


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



--- Comment #2 from Basile Starynkevitch bstarynk at gcc dot gnu.org 
2012-10-04 08:09:42 UTC ---

Run

   gengtype  -D -v \

   -r gtype.state \

   -P _g-basilemarkh.h basilemarkh.h



The bug appears on GCC 4.6, GCC 4.7 and GCC 4.8 (trunk svn rev 192031)


[Bug rtl-optimization/54739] [4.8 regression] FAIL: gcc.dg/lower-subreg-1.c scan-rtl-dump subreg1 Splitting reg

2012-10-04 Thread ebotcazou at gcc dot gnu.org


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



--- Comment #6 from Eric Botcazou ebotcazou at gcc dot gnu.org 2012-10-04 
08:15:37 UTC ---

Author: ebotcazou

Date: Thu Oct  4 08:15:11 2012

New Revision: 192066



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

Log:

PR rtl-optimization/54739

* gcc.dg/lower-subreg-1.c: Also skip on SPARC.



Modified:

trunk/gcc/testsuite/ChangeLog

trunk/gcc/testsuite/gcc.dg/lower-subreg-1.c


[Bug middle-end/49754] Wuninitialized does not work with structs/unions/arrays

2012-10-04 Thread manu at gcc dot gnu.org

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

Manuel López-Ibáñez manu at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2012-10-04
 CC||manu at gcc dot gnu.org
  Component|c   |middle-end
Summary|Let gcc warn about all  |Wuninitialized does not
   |uninitialized variables |work with
   ||structs/unions/arrays
 Ever Confirmed|0   |1

--- Comment #6 from Manuel López-Ibáñez manu at gcc dot gnu.org 2012-10-04 
08:23:24 UTC ---
This is a problem of representation. Struct/unions/arrays are represented as
memory operations, and Wuninitialized does not (generally) work on them. It may
warn in some corner cases if the accesses can be converted into scalar
variables, but in general it doesn't work.

I am not even sure if the current middle-end representation can tell whether
the memory is uninitialized and never initialized up to the point of use. That
would be the first thing to implement.


[Bug c++/54801] [c++11] static variables constructed with lambda params inside member functions cause undefined errors

2012-10-04 Thread paolo.carlini at oracle dot com


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



Paolo Carlini paolo.carlini at oracle dot com changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2012-10-04

 Blocks||54367

 Ever Confirmed|0   |1


[Bug c++/54807] Names declared in a for's for-init-statement and condition should be in the same declarative region

2012-10-04 Thread paolo.carlini at oracle dot com


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



Paolo Carlini paolo.carlini at oracle dot com changed:



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

 Resolution||FIXED



--- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com 2012-10-04 
09:19:05 UTC ---

Indeed, already fixed in 4.7.


[Bug target/50356] Poor if condition in h8300 config code

2012-10-04 Thread manu at gcc dot gnu.org

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

Manuel López-Ibáñez manu at gcc dot gnu.org changed:

   What|Removed |Added

 CC||kazu at codesourcery dot
   ||com, law at redhat dot com,
   ||manu at gcc dot gnu.org

--- Comment #1 from Manuel López-Ibáñez manu at gcc dot gnu.org 2012-10-04 
09:20:41 UTC ---
GCC would have caught this with -Wlogical-op, if it was enabled.


[Bug c++/54801] [4.7/4.8 Regression] static variables constructed with lambda params inside member functions cause undefined errors

2012-10-04 Thread paolo.carlini at oracle dot com


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



Paolo Carlini paolo.carlini at oracle dot com changed:



   What|Removed |Added



 CC||hjl.tools at gmail dot com

Summary|[c++11] static variables|[4.7/4.8 Regression] static

   |constructed with lambda |variables constructed with

   |params inside member|lambda params inside member

   |functions cause undefined   |functions cause undefined

   |errors  |errors



--- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com 2012-10-04 
09:26:55 UTC ---

Confirmed. Maybe H.J can help.


[Bug rtl-optimization/54472] ICE (spill_failure): unable to find a register to spill in class 'AREG' with -O -fschedule-insns -fselective-scheduling

2012-10-04 Thread ubizjak at gmail dot com


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



--- Comment #4 from Uros Bizjak ubizjak at gmail dot com 2012-10-04 09:29:15 
UTC ---

(In reply to comment #3)

  For some reason, -fselective-scheduling is moving

  

  (insn 19 16 22 2 (use (reg/i:SI 0 ax)) testcase.c:6 -1

   (nil))

  

  around. This insn marks function return, so IMO should be at the function 
  exit

  all the time. -fschedule-insns (without -fselective-scheduling) leaves the 
  insn

  at the function exit. Is it OK to move this marker around?

 

 I will take a look but I'm out of office until Friday at least (maybe Monday).



Any progress on this?


[Bug driver/54789] [4.8 Regression] Error in GCC driver when defining GCC_COMPARE_DEBUG

2012-10-04 Thread d.g.gorbachev at gmail dot com


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



--- Comment #1 from Dmitry Gorbachev d.g.gorbachev at gmail dot com 
2012-10-04 09:46:45 UTC ---

Created attachment 28355

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

Patch


[Bug tree-optimization/54810] New: VRP doesn't handle comparison of narrowing cast like comparison of BIT_AND_EXPR

2012-10-04 Thread jakub at gcc dot gnu.org


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



 Bug #: 54810

   Summary: VRP doesn't handle comparison of narrowing cast like

comparison of BIT_AND_EXPR

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Keywords: missed-optimization

  Severity: normal

  Priority: P3

 Component: tree-optimization

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

ReportedBy: ja...@gcc.gnu.org





struct S

{

  unsigned long w;

  void (*u) (void *, unsigned int, unsigned int);

};



struct T;

typedef void (*a_t) (struct T *);

typedef void (*b_t) (struct T *);



struct T

{

  a_t a;

  b_t b;

  struct S c;

  int d, e, f;

};



_Bool fn1 (struct T *, unsigned int);

int fn2 (struct T *, unsigned int, void *, unsigned long);

int fn3 (struct T *, unsigned int, unsigned int *);



static _Bool

foo (struct T *x, unsigned int y, unsigned int z)

{

  unsigned int i;

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

if (!fn1 (x, y + i))

  return 0;

  return 1;

}



int

bar (struct T *x, unsigned int y, void *z, unsigned long s)

{

  unsigned long w = x-c.w;

  unsigned long q = s / w;

  unsigned int v;

  int r, i;

  if (s % x-c.w)

return -22;

  if (y % x-d)

return -22;

  x-a (x);

  if (foo (x, y, q) || x-f || x-e == 0)

r = fn2 (x, y, z, s);

  else

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

  {

r = fn3 (x, y + (i * x-d), v);

if (r != 0)

  break;



x-c.u (z + (i * w), v, 0);

  }

  x-b (x);

  return r;

}



reports at -O2 -Wall maybe uninitialized warning.  While generally it is IMHO

an acceptable false positive, especially if foo doesn't get inlined, this

testcase lead to me find out that while we handle

  _7 = _4  0x;

  if (_7 == 0)

goto bbX;

by adding ASSERT_EXPRs for _4 (in the _7 != 0 code _4 is known to be non-zero,

in the _7 == 0 code it can e.g. have [0, 0x] range), we don't handle

  _7 = (unsigned short) _4;

  if (_7 == 0)

goto bbX;

the same way.


[Bug driver/54789] [4.8 Regression] Error in GCC driver when defining GCC_COMPARE_DEBUG

2012-10-04 Thread d.g.gorbachev at gmail dot com


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



Dmitry Gorbachev d.g.gorbachev at gmail dot com changed:



   What|Removed |Added



 CC||christian.bruel at st dot

   ||com



--- Comment #2 from Dmitry Gorbachev d.g.gorbachev at gmail dot com 
2012-10-04 09:50:00 UTC ---

Probably started with rev. 188102 by Christian Bruel.


[Bug tree-optimization/54810] VRP doesn't handle comparison of narrowing cast like comparison of BIT_AND_EXPR

2012-10-04 Thread jakub at gcc dot gnu.org


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



Jakub Jelinek jakub at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |ASSIGNED

   Last reconfirmed||2012-10-04

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

   |gnu.org |

 Ever Confirmed|0   |1



--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org 2012-10-04 
09:55:25 UTC ---

Created attachment 28356

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

gcc48-pr54810.patch



Untested patch.


[Bug tree-optimization/54810] VRP doesn't handle comparison of narrowing cast like comparison of BIT_AND_EXPR

2012-10-04 Thread pinskia at gcc dot gnu.org


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



Andrew Pinski pinskia at gcc dot gnu.org changed:



   What|Removed |Added



 CC||pinskia at gcc dot gnu.org

   Severity|normal  |enhancement


[Bug driver/54789] [4.8 Regression] Error in GCC driver when defining GCC_COMPARE_DEBUG

2012-10-04 Thread chrbr at gcc dot gnu.org


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



chrbr at gcc dot gnu.org changed:



   What|Removed |Added



 CC||chrbr at gcc dot gnu.org



--- Comment #3 from chrbr at gcc dot gnu.org 2012-10-04 10:32:22 UTC ---

indeed the known switch field should be true for this option. but why not

directly call save_switch function ?



 opt = concat (fcompare-debug=, compare_debug_opt, NULL);

 save_switch (opt, 0, NULL, false, true);



looks more generic to avoid this kind of errors with internal flags and code

duplication.


[Bug rtl-optimization/50557] [4.7/4.8 Regression] Register pressure increase after reassociation (x86, 32 bits)

2012-10-04 Thread izamyatin at gmail dot com


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



--- Comment #16 from Igor Zamyatin izamyatin at gmail dot com 2012-10-04 
11:17:00 UTC ---

Seems with LRA code is fast again


[Bug lto/47788] [4.6 Regression] New LTO failures

2012-10-04 Thread rguenth at gcc dot gnu.org


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



--- Comment #5 from Richard Guenther rguenth at gcc dot gnu.org 2012-10-04 
11:23:23 UTC ---

Author: rguenth

Date: Thu Oct  4 11:23:18 2012

New Revision: 192075



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

Log:

2012-10-04  Richard Guenther  rguent...@suse.de



PR lto/47788

* tree-streamer-out.c (write_ts_block_tree_pointers): For

inlined functions outer scopes write the ultimate origin

as BLOCK_ABSTRACT_ORIGIN and BLOCK_SOURCE_LOCATION.

Do not stream the fragment chains.

* tree-streamer-in.c (lto_input_ts_block_tree_pointers): Likewise.

* dwarf2out.c (gen_subprogram_die): Handle NULL DECL_INITIAL.

(dwarf2out_decl): Always output DECL_ABSTRACT function decls.



Modified:

trunk/gcc/ChangeLog

trunk/gcc/dwarf2out.c

trunk/gcc/tree-streamer-in.c

trunk/gcc/tree-streamer-out.c


[Bug lto/47799] LTO debug info for early inlined functions missing

2012-10-04 Thread rguenth at gcc dot gnu.org


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



Richard Guenther rguenth at gcc dot gnu.org changed:



   What|Removed |Added



 Status|ASSIGNED|RESOLVED

 Resolution||FIXED

   Target Milestone|--- |4.8.0



--- Comment #6 from Richard Guenther rguenth at gcc dot gnu.org 2012-10-04 
11:24:41 UTC ---

Fixed.


[Bug c++/54801] [4.7/4.8 Regression] static variables constructed with lambda params inside member functions cause undefined errors

2012-10-04 Thread jakub at gcc dot gnu.org


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



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-10-04 
11:24:46 UTC ---

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


[Bug c++/52859] ICE (Error reporting routines re-entered) on highly recursive template code

2012-10-04 Thread paolo.carlini at oracle dot com


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



Paolo Carlini paolo.carlini at oracle dot com changed:



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

 Resolution||FIXED

   Target Milestone|--- |4.8.0



--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2012-10-04 
11:39:09 UTC ---

Fixed in mainline (likely by a recent patchlet of mine for another Error

reporting routines re-entered PR).


[Bug c++/54801] [4.7/4.8 Regression] static variables constructed with lambda params inside member functions cause undefined errors

2012-10-04 Thread paolo.carlini at oracle dot com


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



Paolo Carlini paolo.carlini at oracle dot com changed:



   What|Removed |Added



 CC|hjl.tools at gmail dot com  |jason at gcc dot gnu.org



--- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com 2012-10-04 
11:41:06 UTC ---

Thanks Jakub. Let's add Jason in CC then.


[Bug tree-optimization/54735] [4.8 Regression] Segmentation fault in walk_aliased_vdefs_1

2012-10-04 Thread rguenth at gcc dot gnu.org


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



--- Comment #13 from Richard Guenther rguenth at gcc dot gnu.org 2012-10-04 
11:48:31 UTC ---

Author: rguenth

Date: Thu Oct  4 11:48:21 2012

New Revision: 192078



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

Log:

2012-10-04  Richard Guenther  rguent...@suse.de



PR middle-end/54735

* tree-ssa-pre.c (do_pre): Make sure to update virtual SSA form before

cleaning up the CFG.



* g++.dg/torture/pr54735.C: New testcase.



Added:

trunk/gcc/testsuite/g++.dg/torture/pr54735.C

Modified:

trunk/gcc/ChangeLog

trunk/gcc/testsuite/ChangeLog

trunk/gcc/tree-ssa-pre.c


[Bug tree-optimization/54735] [4.7 Regression] Segmentation fault in walk_aliased_vdefs_1

2012-10-04 Thread rguenth at gcc dot gnu.org


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



Richard Guenther rguenth at gcc dot gnu.org changed:



   What|Removed |Added



  Known to work||4.8.0

   Target Milestone|4.8.0   |4.7.3

Summary|[4.8 Regression]|[4.7 Regression]

   |Segmentation fault in   |Segmentation fault in

   |walk_aliased_vdefs_1|walk_aliased_vdefs_1



--- Comment #14 from Richard Guenther rguenth at gcc dot gnu.org 2012-10-04 
11:49:27 UTC ---

Fixed for trunk for now, latent on the branch.


[Bug middle-end/54808] error: non-trivial conversion at assignment (with bit fields)

2012-10-04 Thread rguenth at gcc dot gnu.org


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



Richard Guenther rguenth at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |ASSIGNED

   Keywords||ice-on-valid-code

   Last reconfirmed||2012-10-04

  Component|c++ |middle-end

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

   |gnu.org |

 Ever Confirmed|0   |1



--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2012-10-04 
12:08:43 UTC ---

Confirmed, fails since type checking is there, the zero init of the

anonymous element triggers this.  I will have a look.


[Bug middle-end/54806] [4.7 Regression] Undefined symbols: ___emutls_v.*, ... on *-apple-darwin*

2012-10-04 Thread rguenth at gcc dot gnu.org


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



Richard Guenther rguenth at gcc dot gnu.org changed:



   What|Removed |Added



  Known to work||4.7.1

   Target Milestone|--- |4.7.3

Summary|[4.7.2 Regression]  |[4.7 Regression] Undefined

   |Undefined symbols:  |symbols: ___emutls_v.*,

   |___emutls_v.*, ... on |... on *-apple-darwin*

   |*-apple-darwin* |

  Known to fail||4.7.2


[Bug tree-optimization/54803] Rotates are not vectorized

2012-10-04 Thread rguenth at gcc dot gnu.org


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



Richard Guenther rguenth at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2012-10-04

 Blocks||53947

 Ever Confirmed|0   |1



--- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2012-10-04 
12:11:21 UTC ---

Thus, confirmed.


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

2012-10-04 Thread rguenth at gcc dot gnu.org


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



Richard Guenther rguenth at gcc dot gnu.org changed:



   What|Removed |Added



Version|4.7.3   |4.8.0

   Target Milestone|--- |4.8.0


[Bug c++/52458] [c++0x] compiler fails on for(:*this) with non-public inheritance with message: Internal compiler error: Error reporting routines re-entered.

2012-10-04 Thread paolo.carlini at oracle dot com


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



Paolo Carlini paolo.carlini at oracle dot com changed:



   What|Removed |Added



 Status|NEW |RESOLVED

  Known to work||4.8.0

 Resolution||FIXED



--- Comment #7 from Paolo Carlini paolo.carlini at oracle dot com 2012-10-04 
12:14:29 UTC ---

Confirmed fixed.


[Bug lto/54794] [4.8 regression] tree code '�F Hc���' is not supported in LTO streams

2012-10-04 Thread rguenth at gcc dot gnu.org


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



Richard Guenther rguenth at gcc dot gnu.org changed:



   What|Removed |Added



 Target||x86_64-*-*

 CC||dehao at gcc dot gnu.org,

   ||rguenth at gcc dot gnu.org

   Target Milestone|--- |4.8.0



--- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2012-10-04 
12:15:50 UTC ---

Thanks for any help in reducing this (very likely some random BLOCK again) ;)

If you don't end up with a significantly smaller testcase please also attach

all the original 23 ii-files ...


[Bug lto/54790] [4.8 Regression] Missing optimization with LTO

2012-10-04 Thread rguenth at gcc dot gnu.org


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



Richard Guenther rguenth at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2012-10-04

 CC||hubicka at gcc dot gnu.org

   Target Milestone|--- |4.8.0

 Ever Confirmed|0   |1



--- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2012-10-04 
12:16:44 UTC ---

Confirmed.  We definitely need more testsuite coverage for LTO optimization ...


[Bug driver/54789] [4.8 Regression] Error in GCC driver when defining GCC_COMPARE_DEBUG

2012-10-04 Thread rguenth at gcc dot gnu.org


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



Richard Guenther rguenth at gcc dot gnu.org changed:



   What|Removed |Added



   Target Milestone|--- |4.8.0


[Bug rtl-optimization/54783] [4.8 Regression] valgrind reports using uninitialised data in mark_pseudo_regno_live and make_object_born on basic code

2012-10-04 Thread rguenth at gcc dot gnu.org


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



Richard Guenther rguenth at gcc dot gnu.org changed:



   What|Removed |Added



   Target Milestone|--- |4.8.0



--- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2012-10-04 
12:18:27 UTC ---

Would be definitely nice to split up the valgrind-checking code, with the

annotations enabled by default for yes checking (if the headers are there).


[Bug middle-end/54782] [4.8 Regression] ICE: in change_scope, at final.c:1543 with -O -ffast-math -ftree-parallelize-loops=2 -g

2012-10-04 Thread rguenth at gcc dot gnu.org


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



Richard Guenther rguenth at gcc dot gnu.org changed:



   What|Removed |Added



   Target Milestone|--- |4.8.0


[Bug c++/52536] internal compiler error: Illegal instruction

2012-10-04 Thread paolo.carlini at oracle dot com


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



Paolo Carlini paolo.carlini at oracle dot com changed:



   What|Removed |Added



 Status|WAITING |RESOLVED

 CC|olinchy1983 at gmail dot|

   |com |

 Resolution||INVALID



--- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com 2012-10-04 
12:18:55 UTC ---

Feedback not forthcoming.


[Bug bootstrap/54718] [4.8 regression] ICE in remap_gimple_stmt, at tree-inline.c:1468

2012-10-04 Thread ro at CeBiTec dot Uni-Bielefeld.DE


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



--- Comment #6 from ro at CeBiTec dot Uni-Bielefeld.DE ro at CeBiTec dot 
Uni-Bielefeld.DE 2012-10-04 12:41:42 UTC ---

 --- Comment #5 from Uros Bizjak ubizjak at gmail dot com 2012-09-28

 08:54:51 UTC ---

 (In reply to comment #4)

 The fix for PR bootstrap/54688 also fixed this one.  I can't say if there's

 another unrelated issue here, though.

 

 There's one other problem (which is most likely different and has occured

 before):

 

 Since 20120919, go1 might run into an infinite loop compiling one or more

 sparcv9 libgo modules:



 Related to PR54507. You can try to compile with -fno-var-tracking-assignments.



That helps indeed: on a 1.2 GHz UltraSPARC-T2, the sparcv9 fmt test

takes



real20:14:33.53

user20:14:09.94

sys   12.42



without -fno-var-tracking-assignments, but



real   16:41.37

user   16:11.86

sys4.08



with it.  This is still too slow for the default testsuite timeout of 5

min, but at least a much more reasonable range.



Rainer


[Bug rtl-optimization/54472] ICE (spill_failure): unable to find a register to spill in class 'AREG' with -O -fschedule-insns -fselective-scheduling

2012-10-04 Thread abel at gcc dot gnu.org


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



Andrey Belevantsev abel at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |ASSIGNED

   Last reconfirmed||2012-10-04

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

   |gnu.org |

 Ever Confirmed|0   |1



--- Comment #5 from Andrey Belevantsev abel at gcc dot gnu.org 2012-10-04 
12:43:36 UTC ---

(In reply to comment #4)

 (In reply to comment #3)

   For some reason, -fselective-scheduling is moving

   

   (insn 19 16 22 2 (use (reg/i:SI 0 ax)) testcase.c:6 -1

(nil))

   

   around. This insn marks function return, so IMO should be at the function 
   exit

   all the time. -fschedule-insns (without -fselective-scheduling) leaves 
   the insn

   at the function exit. Is it OK to move this marker around?

  

  I will take a look but I'm out of office until Friday at least (maybe 
  Monday).

 

 Any progress on this?



Sorry Uros, I forgot about this.  I took a look, the reason is actually in

selective scheduler not handling implicit_sets (we miss dependencies between

implicit_sets register sets and other sets/clobbers).  In this example, we miss

a dependency between insns 9 and 16 and thus schedule insn #16 earlier than

insn #9 and then its dependent insn #19 earlier than insn #9.  Thus we are

moving the return mark before the actual function code.



The below patch fixes the test case for me.  I need to double-check whether I

have caught all cases of implicit_sets generating dependencies in sched-deps.c

and then I will submit the patch for review.



diff --git a/gcc/sel-sched-ir.c b/gcc/sel-sched-ir.c

index e7ca3f1..0fbfdbe 100644

--- a/gcc/sel-sched-ir.c

+++ b/gcc/sel-sched-ir.c

@@ -3185,7 +3185,7 @@ has_dependence_note_reg_set (int regno)

  || reg_last-clobbers != NULL)

*dsp = (*dsp  ~SPECULATIVE) | DEP_OUTPUT;



-  if (reg_last-uses)

+  if (reg_last-uses || reg_last-implicit_sets)

*dsp = (*dsp  ~SPECULATIVE) | DEP_ANTI;

 }

 }

@@ -3205,7 +3205,7 @@ has_dependence_note_reg_clobber (int regno)

   if (reg_last-sets)

*dsp = (*dsp  ~SPECULATIVE) | DEP_OUTPUT;



-  if (reg_last-uses)

+  if (reg_last-uses || reg_last-implicit_sets)

*dsp = (*dsp  ~SPECULATIVE) | DEP_ANTI;

 }

 }


[Bug driver/45508] Does adding configure-options for specs-hardcoding make sense?

2012-10-04 Thread ro at CeBiTec dot Uni-Bielefeld.DE


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



--- Comment #10 from ro at CeBiTec dot Uni-Bielefeld.DE ro at CeBiTec dot 
Uni-Bielefeld.DE 2012-10-04 12:46:34 UTC ---

 --- Comment #9 from gellert at dkrz dot de 2012-09-25 17:00:22 UTC ---

[...]

 I agree that gcc/g++/... not adding needed RPATHs to its runtime libraries is

 a major nuissance for every site with more than a single system and a central

 installation of gcc and it has bothered me for a long time.

 

 I'm (slowly) working towards a generic approach to solve this problem, maybe

 I'll have something ready for gcc 4.7.0.



 well, anything done already? If not, what kind of solution do you have in 
 mind?



Unfortunately not since I had to massively cut down my gcc work in

recent months.



The work consists of 3 parts, I think:



* A configure option to selectively enable/disable this since

  unconditional enabling has found massive opposition in the past.



* Changing the build procedure so shared runtime libraries are

  optionally build with RPATHs pointing at the installed locations of

  their dependencies.



* Changing the drivers to add RPATHs for the shared runtime libraries

  linked.



No idea when I'll get around to this, unfortunately.



Rainer


[Bug middle-end/54806] [4.7 Regression] Undefined symbols: ___emutls_v.*, ... on *-apple-darwin*

2012-10-04 Thread dominiq at lps dot ens.fr


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



--- Comment #2 from Dominique d'Humieres dominiq at lps dot ens.fr 2012-10-04 
13:43:48 UTC ---

It works for me on powerpc-apple-darwin8, powerpc-apple-darwin9 and

x86_64-apple-darwin10 (builds from fink). What is your *-apple-darwin*? and

what is your command line?


[Bug fortran/51802] [OOP] Duplicate mangling for OOP symbols

2012-10-04 Thread janus at gcc dot gnu.org


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



--- Comment #4 from janus at gcc dot gnu.org 2012-10-04 13:44:45 UTC ---

Note that, in a way, this 'double mangling' is not a bug but a feature.



It was introduced for PR 46313, in order to handle cases like the one below.

(There might be other ways to deal with this, though.)





module m1

  implicit none

  type mytype

  end type mytype

  type,extends(mytype) :: mytype2

integer :: a(10) = 2

  end type mytype2

contains

  subroutine test1()

class(mytype), allocatable :: a1, a2

allocate (a1, source=mytype2())

allocate ( a2, source=a1)

select type (a2)

  type is (mytype2)

print *, a2%a

end select

deallocate  (a2)

allocate ( a2, mold=a1)

select type (a2)

  type is (mytype2)

print *, a2%a

end select

  end subroutine test1

end module m1



module m2

  implicit none

  type mytype

  end type mytype

  type,extends(mytype) :: mytype2

integer :: b(10) = 8

  end type mytype2

contains

  subroutine test2()

class(mytype), allocatable :: b1, b2

allocate (b1, source=mytype2())

allocate ( b2, source=b1)

select type (b2)

  type is (mytype2)

print *, b2%b

end select

deallocate  (b2)

allocate ( b2, mold=b1)

select type (b2)

  type is (mytype2)

print *, b2%b

end select

  end subroutine test2

end module m2



use m1, only: test1

use m2, only: test2

implicit none

call test1()

call test2()

end


[Bug lto/54811] New: [4.8 regression] tree code '�' is not supported in LTO streams

2012-10-04 Thread ebotcazou at gcc dot gnu.org

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

 Bug #: 54811
   Summary: [4.8 regression] tree code '�' is not supported in LTO
streams
Classification: Unclassified
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: lto
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: ebotca...@gcc.gnu.org
CC: de...@gcc.gnu.org
  Host: x86_64-suse-linux
Target: x86_64-suse-linux
 Build: x86_64-suse-linux


This is similar to PR lto/54632.  LTO bootstrap with Ada enabled is broken:

gcc/xgcc -B/home/eric/build/gcc/native-lto/./prev-gcc/
-B/home/eric/install/gcc/x86_64-suse-linux/bin/
-B/home/eric/install/gcc/x86_64-suse-linux/bin/
-B/home/eric/install/gcc/x86_64-suse-linux/lib/ -isystem
/home/eric/install/gcc/x86_64-suse-linux/include -isystem
/home/eric/install/gcc/x86_64-suse-linux/sys-include-c -g -O2
-flto=jobserver -frandom-seed=1  -gnatpg -gnata -W -Wall -nostdinc -I- -I.
-Iada -I/home/eric/svn/gcc/gcc/ada -I/home/eric/svn/gcc/gcc/ada/gcc-interface
/home/eric/svn/gcc/gcc/ada/sem_attr.adb -o ada/sem_attr.o
+===GNAT BUG DETECTED==+
| 4.8.0 20121004 (experimental) [trunk revision 192031] (x86_64-suse-linux) GCC
error:|
| tree code '�' is not supported in LTO streams|
| Error detected around /home/eric/svn/gcc/gcc/ada/sem_type.ads:65:9   |

raised SYSTEM.ASSERTIONS.ASSERT_FAILURE : namet.adb:655

(gdb) frame 3
#3  0x00e3b45e in write_ts_exp_tree_pointers (ref_p=true, 
expr=0x75e47620, ob=0x2533040)
at /home/eric/svn/gcc/gcc/tree-streamer-out.c:677
677   stream_write_tree (ob, TREE_BLOCK (expr), ref_p);

(gdb) frame 2
#2  lto_output_tree (ob=0x2533040, expr=0x75d9ce60, ref_p=true, 
this_ref_p=optimized out)
at /home/eric/svn/gcc/gcc/lto-streamer-out.c:427
427   lto_write_tree (ob, expr, ref_p);
(gdb) p debug_generic_expr(expr)
 Unknown tree: � 

$2 = void
(gdb) frame 7
#7  0x00e3b370 in write_ts_exp_tree_pointers (ref_p=true, 
expr=0x7546bc58, ob=0x2533040)
at /home/eric/svn/gcc/gcc/tree-streamer-out.c:675
675 stream_write_tree (ob, TREE_OPERAND (expr, i), ref_p);
(gdb) p debug_generic_expr(expr)
MEM[(struct sem_type__interp *)_init + 8B]


(gdb) frame 11
#11 0x00e3a88a in write_ts_decl_common_tree_pointers (ref_p=true, 
expr=0x753c4260, ob=0x2533040)
at /home/eric/svn/gcc/gcc/tree-streamer-out.c:512
512 stream_write_tree (ob, DECL_DEBUG_EXPR (expr), ref_p);
(gdb) p debug_generic_expr(expr)
_init$8

(gdb) frame 15
#15 0x014685b8 in output_gimple_stmt (stmt=0x74ea5828, 
ob=0x2533040) at /home/eric/svn/gcc/gcc/gimple-streamer-out.c:138
138   stream_write_tree (ob, op, true);
(gdb) p debug_gimple_stmt(stmt)
# DEBUG _init$8 = it$F$abstract_op_118(D)


[Bug debug/54796] [4.8 Regression] Non-addressable stack parameter debug quality regression

2012-10-04 Thread jakub at gcc dot gnu.org


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



Jakub Jelinek jakub at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |ASSIGNED

   Last reconfirmed||2012-10-04

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

   |gnu.org |

 Ever Confirmed|0   |1



--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2012-10-04 
14:08:49 UTC ---

Created attachment 28357

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

gcc48-pr54796.patch



Untested patch that looks promissing to me.

For -m32 guality.exp results improve:

+XPASS: gcc.dg/guality/example.c  -Os  execution test

-FAIL: gcc.dg/guality/pr43051-1.c  -Os  line 39 c == a[0]

-FAIL: gcc.dg/guality/pr54519-3.c  -Os  line 23 y == 117

-FAIL: gcc.dg/guality/pr54519-3.c  -Os  line 23 z == 8  

(plus all gcc.dg/guality/pr54796.c -O1 and above results which fail without the

non-testsuite part of the patch).  For -m64 no change (expectedly, one would

need to have more than 6 arguments in teststo trigger stack slot passing).


[Bug testsuite/52945] FAIL: gcc.dg/lto/pr52634 c_lto_pr52634_1.o assemble, -O* -flto *

2012-10-04 Thread hubicka at ucw dot cz


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



--- Comment #5 from Jan Hubicka hubicka at ucw dot cz 2012-10-04 14:16:15 UTC 
---

 I have the following patch in my tree for some time now

 

 PR gcc/52945

 * testsuite/gcc.dg/lto/pr52634_0.c: skip the test on Darwin.

 

 --- /opt/gcc/_clean/gcc/testsuite/gcc.dg/lto/pr52634_0.c2012-04-10

 08:58:02.0 +0200

 +++ /opt/gcc/work/gcc/testsuite/gcc.dg/lto/pr52634_0.c2012-06-19

 15:09:29.0 +0200

 @@ -1,3 +1,5 @@

 +/* { dg-require-weak  } */

 +/* { dg-require-alias  } */



yes, this looks right.  The patch is OK.



Honza


[Bug tree-optimization/54776] [4.8 Regression] tramp3d-v4: 20% performance regression using -O3

2012-10-04 Thread hubicka at gcc dot gnu.org


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



Jan Hubicka hubicka at gcc dot gnu.org changed:



   What|Removed |Added



 Status|NEW |ASSIGNED

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

   |gnu.org |



--- Comment #2 from Jan Hubicka hubicka at gcc dot gnu.org 2012-10-04 
14:21:08 UTC ---

Mine.


[Bug lto/54790] [4.8 Regression] Missing optimization with LTO

2012-10-04 Thread hubicka at gcc dot gnu.org


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



Jan Hubicka hubicka at gcc dot gnu.org changed:



   What|Removed |Added



 Status|NEW |ASSIGNED

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

   |gnu.org |



--- Comment #3 from Jan Hubicka hubicka at gcc dot gnu.org 2012-10-04 
14:23:40 UTC ---

Mine.


[Bug tree-optimization/54077] [4.7/4.8 Regression] Bytemark FP EMULATION 44% slower than with clang

2012-10-04 Thread wbrana at gmail dot com


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



--- Comment #15 from wbrana wbrana at gmail dot com 2012-10-04 14:25:29 UTC 
---

I can reliably reproduce bug on Core 2.

Reverting 175752 reliably fixes bug.


[Bug lto/54095] Unnecessary static variable renaming

2012-10-04 Thread hubicka at gcc dot gnu.org


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



Jan Hubicka hubicka at gcc dot gnu.org changed:



   What|Removed |Added



 AssignedTo|rguenth at gcc dot gnu.org  |hubicka at gcc dot gnu.org



--- Comment #13 from Jan Hubicka hubicka at gcc dot gnu.org 2012-10-04 
14:28:03 UTC ---

Mine now ;)


[Bug c++/54812] New: [C++11] Delete expression doesn't respect access of defaulted destructor

2012-10-04 Thread daniel.kruegler at googlemail dot com


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



 Bug #: 54812

   Summary: [C++11] Delete expression doesn't respect access of

defaulted destructor

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: c++

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

ReportedBy: daniel.krueg...@googlemail.com

CC: pa...@gcc.gnu.org





While working on a further simplification of the is_constructible traits using

gcc 4.8.0 20120930 (experimental) with the compiler flags



-Wall -pedantic -std=c++11



the following program demonstrates that private access of a *defaulted*

destructor is not properly respected during delete expressions:



//

#include new



templateclass T

T declval();



struct P1 {

private:

  ~P1();

};



struct P2 {

  ~P2() = delete;

};



struct P3 {

private:

  ~P3() = default;

};



typedef decltype(::delete declvalP1*()) t1;  // #20

typedef decltype(::delete declvalP2*()) t2;  // #21

typedef decltype(::delete declvalP3*()) t3;  // #22 *Not* detected

//



This program produces only two errors instead of the expected three:



main.cpp|8|error: 'P1::~P1()' is private|

 main.cpp|20|error: within this context|

 main.cpp|21|error: use of deleted function 'P2::~P2()'|

 main.cpp|12|error: declared here|





According to [expr.delete] p10 access control shall be done for the destructor.


[Bug c++/54323] Friend function declaration not correctly identified with CRTP + enable_if

2012-10-04 Thread paolo.carlini at oracle dot com


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



Paolo Carlini paolo.carlini at oracle dot com changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2012-10-04

   Target Milestone|--- |4.8.0

 Ever Confirmed|0   |1



--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2012-10-04 
15:06:33 UTC ---

This works in mainline. I'm adding the testcase and closing the PR.


[Bug c++/54323] Friend function declaration not correctly identified with CRTP + enable_if

2012-10-04 Thread paolo at gcc dot gnu.org


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



--- Comment #2 from paolo at gcc dot gnu.org paolo at gcc dot gnu.org 
2012-10-04 15:19:42 UTC ---

Author: paolo

Date: Thu Oct  4 15:19:34 2012

New Revision: 192083



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

Log:

2012-10-04  Paolo Carlini  paolo.carl...@oracle.com



PR c++/54323

* g++.dg/cpp0x/pr54323.C: New.



Added:

trunk/gcc/testsuite/g++.dg/cpp0x/pr54323.C

Modified:

trunk/gcc/testsuite/ChangeLog


[Bug c++/54323] Friend function declaration not correctly identified with CRTP + enable_if

2012-10-04 Thread paolo.carlini at oracle dot com


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



Paolo Carlini paolo.carlini at oracle dot com changed:



   What|Removed |Added



 Status|NEW |RESOLVED

 Resolution||FIXED



--- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com 2012-10-04 
15:22:20 UTC ---

Done.


[Bug c++/54424] Compiler crash with -std=gnu++0x

2012-10-04 Thread paolo.carlini at oracle dot com


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



Paolo Carlini paolo.carlini at oracle dot com changed:



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

 Resolution||INVALID



--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2012-10-04 
15:30:18 UTC ---

You are not providing a preprocessed *.ii file and 4.4.x is very old and not

maintained anymore: we can't do much here. If you can still reproduce the issue

with 4.6.x or better 4.7.x please file a complete PR.


[Bug lto/54794] [4.8 regression] tree code '�F Hc���' is not supported in LTO streams

2012-10-04 Thread hjl.tools at gmail dot com


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



--- Comment #4 from H.J. Lu hjl.tools at gmail dot com 2012-10-04 15:34:04 
UTC ---

This may be related to PR 54795.


[Bug c++/53845] Another error reporting routines re-entered issue

2012-10-04 Thread paolo.carlini at oracle dot com


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



Paolo Carlini paolo.carlini at oracle dot com changed:



   What|Removed |Added



 CC||paolo.carlini at oracle dot

   ||com



--- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com 2012-10-04 
15:34:56 UTC ---

With current mainline the testcase is actually accepted. Is it really invalid?


[Bug c++/53845] Another error reporting routines re-entered issue

2012-10-04 Thread jewillco at osl dot iu.edu


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



--- Comment #4 from Jeremiah Willcock jewillco at osl dot iu.edu 2012-10-04 
15:43:30 UTC ---

I don't know whether it is valid or not after all of the trimming I did on it.


[Bug tree-optimization/54776] [4.8 Regression] tramp3d-v4: 20% performance regression using -O3

2012-10-04 Thread hubicka at gcc dot gnu.org


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



Jan Hubicka hubicka at gcc dot gnu.org changed:



   What|Removed |Added



 Status|ASSIGNED|NEW

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

   ||gnu.org



--- Comment #3 from Jan Hubicka hubicka at gcc dot gnu.org 2012-10-04 
15:49:32 UTC ---

Hehe, i am still testing with tramp3d.  The issue with predicate patch was that

I fixed some off-by-one accounting issues in the conditions that needs me to

push up early-inlining-insns and I decided to leave this for later re-tunning

of the parameters.



I will take a look how LTO can help us.  I believe part of the problem should

be fixed by dropping the COMDAT hack for V1 API that is on my TODO list for

this week.



Honza


[Bug c++/54144] [4.6 Regression] With -std=c++0x certain incorrect arguments to map.insert cause gcc crash

2012-10-04 Thread paolo.carlini at oracle dot com


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



Paolo Carlini paolo.carlini at oracle dot com changed:



   What|Removed |Added



 Status|NEW |RESOLVED

 Resolution||FIXED



--- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com 2012-10-04 
15:52:20 UTC ---

Confirmed already fixed.


[Bug c++/53845] Another error reporting routines re-entered issue

2012-10-04 Thread paolo.carlini at oracle dot com


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



--- Comment #5 from Paolo Carlini paolo.carlini at oracle dot com 2012-10-04 
15:55:26 UTC ---

Minimally, can somebody check clang? Lately we fixed quite a few error

reporting routines re-entered issues and if the testcase isn't even invalid

there is no point in keeping the Bug report open. Thanks.


[Bug c++/54101] Using std::declval for types without a default constructor and with a deleted copy constructor errors.

2012-10-04 Thread paolo.carlini at oracle dot com


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



Paolo Carlini paolo.carlini at oracle dot com changed:



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

 CC|supercilious.dude at gmail  |

   |dot com |

 Resolution||DUPLICATE



--- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com 2012-10-04 
15:57:07 UTC ---

Dup.



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


[Bug c++/53000] Conditional operator does not behave as standardized

2012-10-04 Thread paolo.carlini at oracle dot com


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



--- Comment #10 from Paolo Carlini paolo.carlini at oracle dot com 2012-10-04 
15:57:07 UTC ---

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


[Bug tree-optimization/54776] [4.8 Regression] tramp3d-v4: 20% performance regression using -O3

2012-10-04 Thread markus at trippelsdorf dot de


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



--- Comment #4 from Markus Trippelsdorf markus at trippelsdorf dot de 
2012-10-04 15:57:19 UTC ---



 I will take a look how LTO can help us.  I believe part of the problem should

 be fixed by dropping the COMDAT hack for V1 API that is on my TODO list for

 this week.



The reported numbers above were taken with the COMDAT hack

dropped already. I always use this patch:



diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c

index afe4951..71b9d57 100644

--- a/gcc/lto-streamer-out.c

+++ b/gcc/lto-streamer-out.c

@@ -1308,7 +1308,7 @@ produce_symtab (struct output_block *ob)

   if (DECL_EXTERNAL (node-symbol.decl))

continue;

   if (DECL_COMDAT (node-symbol.decl)

-  cgraph_comdat_can_be_unshared_p (node))

+  cgraph_comdat_can_be_unshared_p (node)  0)

continue;

   if ((node-alias  !node-thunk.alias) || node-global.inlined_to)

continue;

@@ -1327,7 +1327,7 @@ produce_symtab (struct output_block *ob)

   if (!node-symbol.address_taken  !node-callers)

continue;

   if (DECL_COMDAT (node-symbol.decl)

-  cgraph_comdat_can_be_unshared_p (node))

+  cgraph_comdat_can_be_unshared_p (node)  0)

continue;

   if ((node-alias  !node-thunk.alias) || node-global.inlined_to)

continue;

@@ -1348,7 +1348,7 @@ produce_symtab (struct output_block *ob)

   if (DECL_COMDAT (vnode-symbol.decl)

   !vnode-symbol.force_output

   vnode-finalized 

-  DECL_VIRTUAL_P (vnode-symbol.decl))

+  DECL_VIRTUAL_P (vnode-symbol.decl)  0)

continue;

   if (vnode-alias  !vnode-alias_of)

continue;

@@ -1364,7 +1364,7 @@ produce_symtab (struct output_block *ob)

   if (DECL_COMDAT (vnode-symbol.decl)

   !vnode-symbol.force_output

   vnode-finalized 

-  DECL_VIRTUAL_P (vnode-symbol.decl))

+  DECL_VIRTUAL_P (vnode-symbol.decl)  0)

continue;

   if (vnode-alias  !vnode-alias_of)

continue;


[Bug tree-optimization/54776] [4.8 Regression] tramp3d-v4: 20% performance regression using -O3

2012-10-04 Thread hubicka at gcc dot gnu.org


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



--- Comment #5 from Jan Hubicka hubicka at gcc dot gnu.org 2012-10-04 
16:07:19 UTC ---

I assume it is with linker plugin, right?  In that case we need to track why

some of the functions do not become static.

There is bug in this right now, see PR52945. I will look into it tomorrow.



I assume you do see improvements with -O3 -fwhole-program?  (it improves the

scores in my setup, I would be curious to see how it compares to other numbers

you report)


[Bug tree-optimization/54776] [4.8 Regression] tramp3d-v4: 20% performance regression using -O3

2012-10-04 Thread markus at trippelsdorf dot de


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



--- Comment #6 from Markus Trippelsdorf markus at trippelsdorf dot de 
2012-10-04 16:16:58 UTC ---

(In reply to comment #5)

 I assume it is with linker plugin, right?



Yes.



 I assume you do see improvements with -O3 -fwhole-program?  (it improves the

 scores in my setup, I would be curious to see how it compares to other numbers

 you report)



Yes, with -O3 -fwhole-program I get:

 Time spent in iteration: 6.34161



(With -fprofile-use -Ofast -march=native:

 Time spent in iteration: 2.75908 )


[Bug lto/54811] [4.8 regression] tree code '�' is not supported in LTO streams

2012-10-04 Thread rguenth at gcc dot gnu.org


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



Richard Guenther rguenth at gcc dot gnu.org changed:



   What|Removed |Added



 CC||rguenth at gcc dot gnu.org

   Target Milestone|--- |4.8.0



--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2012-10-04 
16:24:52 UTC ---

I suppose we forget to clear gimple_block of debug stmts in

remove_unused_block_scopes?


[Bug c++/54813] New: NULL pointer conversion fails for template code

2012-10-04 Thread tjablin at gmail dot com

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

 Bug #: 54813
   Summary: NULL pointer conversion fails for template code
Classification: Unclassified
   Product: gcc
   Version: 4.6.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: tjab...@gmail.com


int foo(int i);

templateclass Fun static void bar(Fun fun, char[][sizeof(fun(0))]) {}

void baz() {

  // With an explicit template parameter, 0 is converted to a multidimensional
  // array
  barint (*)(int)(foo, 0); // succeeds

  // The template type is inferred when a has the right type.
  char a[4][sizeof(foo(0))];
  bar(foo, a);   // succeeds

  // Combining the two previous examples fails in g++ but is accepted by
clang++.
  // Compilers that emit errors for this line: g++ 4.4.7, 4.5.3, 4.6.3
  // Compilers that will compile this line: clang++ 3.2
  bar(foo, 0);   // failure
}

Error message with g++ 4.6.3:
test.cc: In function ‘void baz()’:
test.cc:9:13: error: no matching function for call to ‘bar(int ()(int), int)’
test.cc:9:13: note: candidate is:
test.cc:3:33: note: templateclass Fun void bar(Fun, char (*)[sizeof
(fun(0))])


[Bug lto/54811] [4.8 regression] tree code '�' is not supported in LTO streams

2012-10-04 Thread dehao at gcc dot gnu.org


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



--- Comment #2 from dehao at gcc dot gnu.org 2012-10-04 16:33:00 UTC ---

I think in clear_unused_block_pointer, we already removed all block for debug

statements.


[Bug lto/54811] [4.8 regression] tree code '�' is not supported in LTO streams

2012-10-04 Thread rguenth at gcc dot gnu.org


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



Richard Guenther rguenth at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2012-10-04

 Ever Confirmed|0   |1



--- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2012-10-04 
16:37:31 UTC ---

No, look again - for some reason we skip debug stmts.  That's obviously

a bug.  Eric - mind testing the obvious patch?


[Bug lto/54811] [4.8 regression] tree code '�' is not supported in LTO streams

2012-10-04 Thread rguenth at gcc dot gnu.org


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



--- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2012-10-04 
16:38:19 UTC ---

(In reply to comment #3)

 No, look again - for some reason we skip debug stmts.  That's obviously

 a bug.  Eric - mind testing the obvious patch?



Err, misread the code ;)  Not enough caffeine.


[Bug c++/54813] NULL pointer conversion fails for template code

2012-10-04 Thread tjablin at gmail dot com


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



--- Comment #1 from tjablin at gmail dot com 2012-10-04 16:41:06 UTC ---

I have further simplified the testcase as follows:



templateclass T static void bar(T, char[][sizeof(T)]) {}



void baz() {

  barint(0, 0); // succeeds

  char a[4][sizeof(int)];

  bar(0, a);  // succeeds

  bar(0, 0);  // fails

}


[Bug c++/54813] NULL pointer conversion fails for template code

2012-10-04 Thread paolo.carlini at oracle dot com


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



Paolo Carlini paolo.carlini at oracle dot com changed:



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

 Resolution||DUPLICATE



--- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com 2012-10-04 
16:42:51 UTC ---

This is a Dup of PR23055 isn't it?



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


[Bug c++/23055] overload resolution does not find templated function (zero - pointer)

2012-10-04 Thread paolo.carlini at oracle dot com


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



Paolo Carlini paolo.carlini at oracle dot com changed:



   What|Removed |Added



 CC||tjablin at gmail dot com



--- Comment #7 from Paolo Carlini paolo.carlini at oracle dot com 2012-10-04 
16:42:51 UTC ---

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


[Bug lto/54811] [4.8 regression] tree code '�' is not supported in LTO streams

2012-10-04 Thread rguenth at gcc dot gnu.org


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



--- Comment #5 from Richard Guenther rguenth at gcc dot gnu.org 2012-10-04 
16:43:37 UTC ---

Instead what happened is that I specifically restricted processing

DECL_DEBUG_EXPRs to local-vars in a previous fix.  But it seems that

local vars no longer contains this decl.  So it seems we have to

re-instantiate the case in the tree walker (we can't re-order

clear_unused_block_pointer () and removal of vars from local-decls

easily).


[Bug other/54814] New: [4.8 Regression] ICE: unable to find a register to spill in class 'R0_REG'

2012-10-04 Thread gjl at gcc dot gnu.org


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



 Bug #: 54814

   Summary: [4.8 Regression] ICE: unable to find a register to

spill in class 'R0_REG'

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Keywords: ice-on-valid-code, ra

  Severity: normal

  Priority: P3

 Component: other

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

ReportedBy: g...@gcc.gnu.org

CC: eric.wedding...@atmel.com

Target: avr





Created attachment 28358

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

spills.txt: Hundreds of Spill Fails



The testsuit throws hundreds of spill fails when running against the avr cross

compiler.



The testsuite used to produce about ~5 spill fails with avr-gcc.



The strange with these spill fails is that they report register class RO_REG

which contains just one fixed register.



./gcc/testsuite/gcc.c-torture/compile/20010426-1.c:19:1: error: unable to find

a register to spill in class 'R0_REG'



./gcc/testsuite/gcc.c-torture/compile/20040121-1.c:41:1: error: unable to find

a register to spill in class 'R0_REG'



...



For a complete list see attachment.







== configure ==



SVN trunk r192090 from today (2012-10-04)



$ ../../gcc.gnu.org/trunk/configure --target=avr

--prefix=/local/gnu/install/gcc-4.8 --disable-nls --with-dwarf2

--enable-target-optspace=yes --enable-languages=c,c++


[Bug middle-end/54806] [4.7 Regression] Undefined symbols: ___emutls_v.*, ... on *-apple-darwin*

2012-10-04 Thread whatmannerofburgeristhis at gmail dot com


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



--- Comment #3 from Matt Arsenault whatmannerofburgeristhis at gmail dot com 
2012-10-04 17:34:35 UTC ---

I'm using it from macports. OS X 10.8.2, x86_64-apple-darwin12.2.0



$ g++ -std=c++11 testcase.cpp

Undefined symbols for architecture x86_64:

  ___emutls_v._ZSt11__once_call, referenced from:

  void std::call_oncevoid

(std::__future_base::_State_base::*)(std::functionstd::unique_ptrstd::__future_base::_Result_base,

std::__future_base::_Result_base::_Deleter (), bool),

std::__future_base::_State_base* const,

std::reference_wrapperstd::functionstd::unique_ptrstd::__future_base::_Result_base,

std::__future_base::_Result_base::_Deleter () , std::reference_wrapperbool

(std::once_flag, void

(std::__future_base::_State_base::*)(std::functionstd::unique_ptrstd::__future_base::_Result_base,

std::__future_base::_Result_base::_Deleter (), bool),

std::__future_base::_State_base* const,

std::reference_wrapperstd::functionstd::unique_ptrstd::__future_base::_Result_base,

std::__future_base::_Result_base::_Deleter () ,

std::reference_wrapperbool) in ccaHSMCA.o

  ___emutls_v._ZSt15__once_callable, referenced from:

  void std::call_oncevoid

(std::__future_base::_State_base::*)(std::functionstd::unique_ptrstd::__future_base::_Result_base,

std::__future_base::_Result_base::_Deleter (), bool),

std::__future_base::_State_base* const,

std::reference_wrapperstd::functionstd::unique_ptrstd::__future_base::_Result_base,

std::__future_base::_Result_base::_Deleter () , std::reference_wrapperbool

(std::once_flag, void

(std::__future_base::_State_base::*)(std::functionstd::unique_ptrstd::__future_base::_Result_base,

std::__future_base::_Result_base::_Deleter (), bool),

std::__future_base::_State_base* const,

std::reference_wrapperstd::functionstd::unique_ptrstd::__future_base::_Result_base,

std::__future_base::_Result_base::_Deleter () ,

std::reference_wrapperbool) in ccaHSMCA.o

  void std::__once_call_implstd::_Bind_simplestd::_Mem_fnvoid

(std::__future_base::_State_base::*)(std::functionstd::unique_ptrstd::__future_base::_Result_base,

std::__future_base::_Result_base::_Deleter (), bool)

(std::__future_base::_State_base*,

std::reference_wrapperstd::functionstd::unique_ptrstd::__future_base::_Result_base,

std::__future_base::_Result_base::_Deleter () ,

std::reference_wrapperbool) () in ccaHSMCA.o

ld: symbol(s) not found for architecture x86_64

collect2: error: ld returned 1 exit status


[Bug lto/54206] build in source dir breaks lto plugin detection

2012-10-04 Thread matt at godbolt dot org


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



Matt Godbolt matt at godbolt dot org changed:



   What|Removed |Added



 CC||matt at godbolt dot org



--- Comment #3 from Matt Godbolt matt at godbolt dot org 2012-10-04 18:10:55 
UTC ---

I've just hit this problem too after a large amount (for me!) of debugging the

build process of GCC. A big +1 to either fixing it properly (however that may

be achieved), or completely deprecating the srcdir==objdir build so people like

myself and Andi don't get waylaid for a long time diagnosing the issue.


[Bug other/54815] New: [avr] missed optimization with operations with constant operands

2012-10-04 Thread gjl at gcc dot gnu.org


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



 Bug #: 54815

   Summary: [avr] missed optimization with operations with

constant operands

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Keywords: missed-optimization

  Severity: normal

  Priority: P3

 Component: other

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

ReportedBy: g...@gcc.gnu.org

CC: eric.wedding...@atmel.com

Target: avr





Created attachment 28359

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

mov.c: C test case



== C code ==



void f (int, int);



void f_and (int x)

{

f (x, x  0xff23);

}



void f_or (int x)

{

f (x, x | 42);

}



void f_xor (int x)

{

f (x, x ^ 0x80);

}







== Compile with ==



$ avr-gcc mov.c -S -Os -mmcu=atmega8 -dp



The result is 



f_or:

ldi r22,lo8(42) ;  15*movhi/5[length = 2]

ldi r23,0

or r22,r24 ;  6iorhi3/1[length = 2]

or r23,r25

rjmp f



but the code could MOVW first to the destination and the IOR instead of loading

the target with the const and then IOR against the source:



f_or:

movw r22,r24   ; *movhi[length = 1]

ori r22,lo8(42) ;  iorhi3[length = 1]

rjmp f



Similar for the other test functions.


[Bug target/54816] New: [avr] shift is better than widening mul

2012-10-04 Thread gjl at gcc dot gnu.org


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



 Bug #: 54816

   Summary: [avr] shift is better than widening mul

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Keywords: missed-optimization

  Severity: normal

  Priority: P3

 Component: target

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

ReportedBy: g...@gcc.gnu.org

CC: eric.wedding...@atmel.com

Target: avr





The following C test case 



int wmul (char a, char b)

{

return a * (char) (b  3);

}



$ avr-gcc wmul.c -S -Os -mmcu=atmega8 -dp



produces with current avr-gcc:





wmul:

ldi r25,lo8(8) ;  25movqi_insn/2[length = 1]

muls r22,r25 ;  26mulqihi3[length = 3]

movw r22,r0

clr __zero_reg__

muls r24,r22 ;  17mulqihi3[length = 3]

movw r24,r0

clr __zero_reg__

ret ;  29return[length = 1]

.identGCC: (GNU) 4.8.0 20121004 (experimental)





avr-gcc-4.7 was smarter with its code:



wmul:

lsl r22 ;  10*ashlqi3/5[length = 3]

lsl r22

lsl r22

muls r24,r22 ;  12mulqihi3[length = 3]

movw r22,r0

clr __zero_reg__

movw r24,r22 ;  31*movhi/1[length = 1]

ret ;  30return[length = 1]

.identGCC: (GNU) 4.7.2





The 4.7 code is faster, smaller and has smaller register pressure.


[Bug target/33135] [SH] -ffinite-math-only should not be on by default

2012-10-04 Thread olegendo at gcc dot gnu.org


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



--- Comment #16 from Oleg Endo olegendo at gcc dot gnu.org 2012-10-04 
18:32:26 UTC ---

Author: olegendo

Date: Thu Oct  4 18:32:20 2012

New Revision: 192097



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

Log:

PR target/33135

* config/sh/t-sh (HOST_LIBGCC2_CFLAGS): Delete.

* config/sh/t-netbsd (HOST_LIBGCC2_CFLAGS): Delete.

* config/sh/t-linux (HOST_LIBGCC2_CFLAGS): Remove mieee option.





Modified:

trunk/gcc/config/sh/sh.md

trunk/gcc/testsuite/gcc.target/sh/pr52933-1.c

trunk/libgcc/ChangeLog

trunk/libgcc/config/sh/t-linux

trunk/libgcc/config/sh/t-netbsd

trunk/libgcc/config/sh/t-sh


[Bug lto/54206] build in source dir breaks lto plugin detection

2012-10-04 Thread manu at gcc dot gnu.org

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

Manuel López-Ibáñez manu at gcc dot gnu.org changed:

   What|Removed |Added

 CC||aoliva at gcc dot gnu.org,
   ||bonzini at gnu dot org, dj
   ||at redhat dot com,
   ||Ralf.Wildenhues at gmx dot
   ||de

--- Comment #4 from Manuel López-Ibáñez manu at gcc dot gnu.org 2012-10-04 
18:44:16 UTC ---
(In reply to comment #3)
 I've just hit this problem too after a large amount (for me!) of debugging the
 build process of GCC. A big +1 to either fixing it properly (however that 
 may
 be achieved), or completely deprecating the srcdir==objdir build so people 
 like
 myself and Andi don't get waylaid for a long time diagnosing the issue.

Nobody is even thinking about fixing it ever, so I wonder why keep punishing
users.

It would be extra nice to detect that objdir is a subdirectory of srcdir and
give a nice error.


[Bug lto/54206] build in source dir breaks lto plugin detection

2012-10-04 Thread andi-gcc at firstfloor dot org


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



--- Comment #5 from Andi Kleen andi-gcc at firstfloor dot org 2012-10-04 
18:50:52 UTC ---

This is the configure snippet glibc is using for this.

Someone with better autoconf-fu than me could add it





if test `cd $srcdir; /bin/pwd` = `/bin/pwd`; then

  AC_MSG_ERROR([you must configure in a separate build directory])

fi


[Bug target/50356] Poor if condition in h8300 config code

2012-10-04 Thread law at redhat dot com


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



Jeffrey A. Law law at redhat dot com changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2012-10-04

 Ever Confirmed|0   |1



--- Comment #2 from Jeffrey A. Law law at redhat dot com 2012-10-04 19:04:45 
UTC ---

Note that this bug will only effect the quality of the code we generate as this

bug is in a costing function.  I'll have it fixed shortly.


[Bug lto/54206] build in source dir breaks lto plugin detection

2012-10-04 Thread jakub at gcc dot gnu.org


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



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-10-04 
19:04:56 UTC ---

Build directory as subdirectory of the build directory works just fine, I'm

using it for more than a decade, it is just srcdir == builddir that is broken

and not supported.


[Bug target/28896] -fstack-limit-symbol and m68k and non 68020

2012-10-04 Thread baker at usgs dot gov


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



--- Comment #43 from Larry Baker baker at usgs dot gov 2012-10-04 19:14:44 
UTC ---

Those of you that use the uClinux elf2flt toolchain will find that

__stack_start is not correctly defined.  This is due to a bug in the elf2flt.ld

linker script.  Edit either/both elf2flt.ld (from a binary distribution) or

elf2flt.ld.in (from the source distribution) to output the .stack section to

the flatmem memory image:



From



.stack : {

. = ALIGN(0x4);

__stack_start = .;

}



To



.stack : {

. = ALIGN(0x4);

__stack_start = .;

}  flatmem



See http://mailman.uclinux.org/pipermail/uclinux-dev/2012-October/052176.html.


[Bug tree-optimization/54776] [4.8 Regression] tramp3d-v4: 20% performance regression using -O3

2012-10-04 Thread hubicka at ucw dot cz


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



--- Comment #7 from Jan Hubicka hubicka at ucw dot cz 2012-10-04 19:17:46 UTC 
---

  I assume you do see improvements with -O3 -fwhole-program?  (it improves the

  scores in my setup, I would be curious to see how it compares to other 
  numbers

  you report)

 

 Yes, with -O3 -fwhole-program I get:

  Time spent in iteration: 6.34161

 

 (With -fprofile-use -Ofast -march=native:

  Time spent in iteration: 2.75908 )



Hmm, interesting.  Fixing the current resolution bug should get -flto and

-fwhole-program scores equivalent, but obviously there is a lot room for

improvement - I did not see so much preivously.



How does text size compare with clang lto/non-lto and gcc

whole-program/non-whole-program?



Honza


[Bug tree-optimization/54776] [4.8 Regression] tramp3d-v4: 20% performance regression using -O3

2012-10-04 Thread markus at trippelsdorf dot de


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



--- Comment #8 from Markus Trippelsdorf markus at trippelsdorf dot de 
2012-10-04 19:40:27 UTC ---

(In reply to comment #7)

   I assume you do see improvements with -O3 -fwhole-program?  (it improves 
   the

   scores in my setup, I would be curious to see how it compares to other 
   numbers

   you report)

  

  Yes, with -O3 -fwhole-program I get:

   Time spent in iteration: 6.34161

  

  (With -fprofile-use -Ofast -march=native:

   Time spent in iteration: 2.75908 )

 

 Hmm, interesting.  Fixing the current resolution bug should get -flto and

 -fwhole-program scores equivalent, but obviously there is a lot room for

 improvement - I did not see so much preivously.

 

 How does text size compare with 

 clang lto/non-lto



 1003656/1332016



 gcc whole-program/non-whole-program?



 1518688/1722480/(1873392(-flto))


[Bug middle-end/54806] [4.7 Regression] Undefined symbols: ___emutls_v.*, ... on x86_64-apple-darwin12

2012-10-04 Thread dominiq at lps dot ens.fr


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



Dominique d'Humieres dominiq at lps dot ens.fr changed:



   What|Removed |Added



 Target|*-apple-darwin* |x86_64-apple-darwin12

   Host|*-apple-darwin* |x86_64-apple-darwin12

Summary|[4.7 Regression] Undefined  |[4.7 Regression] Undefined

   |symbols: ___emutls_v.*,   |symbols: ___emutls_v.*,

   |... on *-apple-darwin*  |... on

   ||x86_64-apple-darwin12

  Build|*-apple-darwin* |x86_64-apple-darwin12



--- Comment #4 from Dominique d'Humieres dominiq at lps dot ens.fr 2012-10-04 
20:37:34 UTC ---

Jack Howarth has posted his results for 4.8.0 (see

http://gcc.gnu.org/ml/gcc-testresults/2012-10/msg00434.html ) without failures

for libgomp. What is the origin of your 4.7.2?


[Bug target/50356] Poor if condition in h8300 config code

2012-10-04 Thread law at gcc dot gnu.org


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



--- Comment #3 from Jeffrey A. Law law at gcc dot gnu.org 2012-10-04 20:58:33 
UTC ---

Author: law

Date: Thu Oct  4 20:58:30 2012

New Revision: 192103



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

Log:

* PR target/50356

* config/h8300/h8300.c (h8300_rtx_costs): Fix typo in CONST_INT case.







Modified:

trunk/gcc/ChangeLog

trunk/gcc/config/h8300/h8300.c


[Bug target/50356] Poor if condition in h8300 config code

2012-10-04 Thread law at redhat dot com


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



Jeffrey A. Law law at redhat dot com changed:



   What|Removed |Added



 Status|NEW |RESOLVED

 Resolution||FIXED



--- Comment #4 from Jeffrey A. Law law at redhat dot com 2012-10-04 20:59:44 
UTC ---

Obvious typo fixed.


[Bug c++/53403] Function template friend denied access to private types of granting template class.

2012-10-04 Thread paolo.carlini at oracle dot com


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



--- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com 2012-10-04 
23:06:18 UTC ---

Works in mainline. I'm adding the testcase and closing the PR.


[Bug c++/53403] Function template friend denied access to private types of granting template class.

2012-10-04 Thread paolo at gcc dot gnu.org


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



--- Comment #4 from paolo at gcc dot gnu.org paolo at gcc dot gnu.org 
2012-10-04 23:19:52 UTC ---

Author: paolo

Date: Thu Oct  4 23:19:46 2012

New Revision: 192108



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

Log:

2012-10-04  Paolo Carlini  paolo.carl...@oracle.com



PR c++/53403

* g++.dg/template/friend53.C



Added:

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

Modified:

trunk/gcc/testsuite/ChangeLog


[Bug c++/53403] Function template friend denied access to private types of granting template class.

2012-10-04 Thread paolo.carlini at oracle dot com


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



Paolo Carlini paolo.carlini at oracle dot com changed:



   What|Removed |Added



 Status|NEW |RESOLVED

 Resolution||FIXED

   Target Milestone|--- |4.8.0



--- Comment #5 from Paolo Carlini paolo.carlini at oracle dot com 2012-10-04 
23:23:42 UTC ---

Done.


[Bug c++/52233] ICE segmentation fault with using-declaration

2012-10-04 Thread paolo.carlini at oracle dot com


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



--- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com 2012-10-04 
23:37:19 UTC ---

This works in 4.7.2 and mainline. I'm adding the testcase to mainline and

closing the PR.


[Bug c/54817] New: Warning about extern declarations in C and C++ files.

2012-10-04 Thread eugene.zelenko at gmail dot com


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



 Bug #: 54817

   Summary: Warning about extern declarations in C and C++ files.

Classification: Unclassified

   Product: gcc

   Version: unknown

Status: UNCONFIRMED

  Severity: enhancement

  Priority: P3

 Component: c

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

ReportedBy: eugene.zele...@gmail.com





Hi!



I think will be good idea if GCC will produce warnings when extern declarations

are placed in C/C++ files (not included from other files).



Such declarations are definitely belong to headers, so their appearance in

source files are indication of bad coding practices.



Intel compiler produces such warnings as warning #1419: external declaration

in primary source file.



Eugene.


[Bug c++/52233] ICE segmentation fault with using-declaration

2012-10-04 Thread paolo at gcc dot gnu.org


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



--- Comment #3 from paolo at gcc dot gnu.org paolo at gcc dot gnu.org 
2012-10-04 23:48:20 UTC ---

Author: paolo

Date: Thu Oct  4 23:48:16 2012

New Revision: 192109



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

Log:

2012-10-04  Paolo Carlini  paolo.carl...@oracle.com



PR c++/52233

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



Added:

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

Modified:

trunk/gcc/testsuite/ChangeLog


[Bug target/54685] [SH] Improve unsigned int comparison with 0x7FFFFFFF

2012-10-04 Thread olegendo at gcc dot gnu.org


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



--- Comment #1 from Oleg Endo olegendo at gcc dot gnu.org 2012-10-04 23:50:16 
UTC ---

Just for the record...

I've tried adding this pattern



Failed to match this instruction:

(parallel [

(set (reg:SI 166 [ D.42391+-3 ])

(ge:SI (reg:SI 4 r4 [ a ])

(const_int 0 [0])))

(clobber (reg:SI 147 t))

])



It fixes the test cases in the description, but prevents some of the div0s

integer sign comparison patterns from matching, since combine would try out

different combinations with the pattern above.


  1   2   >