[Bug target/50683] GCC compiles MPFR 3.1.0 wrongly on sparc

2011-10-19 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50683

Eric Botcazou ebotcazou at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||WORKSFORME

--- Comment #8 from Eric Botcazou ebotcazou at gcc dot gnu.org 2011-10-19 
07:00:06 UTC ---
The problem will be fixed in the upcoming binutils 2.22 release.


[Bug middle-end/48087] [4.5/4.6/4.7 Regression] -Wall -Werror adds warnings over and above those generated by -Wall

2011-10-19 Thread rguenther at suse dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48087

--- Comment #13 from rguenther at suse dot de rguenther at suse dot de 
2011-10-19 07:48:30 UTC ---
On Wed, 19 Oct 2011, manu at gcc dot gnu.org wrote:

 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48087
 
 --- Comment #12 from Manuel López-Ibáñez manu at gcc dot gnu.org 2011-10-19 
 01:44:12 UTC ---
 I think the problem is the seen_error() test in gimple_push_cleanup. I am
 guessing that it does some kind of folding that is skipped when an error has
 been issued. There are two issues here:
 
 1) Warnings converted to errors are not real errors, that is, the program is
 still valid and we could in principle do whatever stuff we would do for a 
 valid
 program. We could do s/seen_error/seen_any_error/, and then add 
 seen_real_error
 (program_is_invalid). I bet most of the cases using seen_any_error, actually
 mean program_is_invalid.

I suppose that's reasonable.


[Bug tree-optimization/50789] New: Gather vectorization

2011-10-19 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50789

 Bug #: 50789
   Summary: Gather vectorization
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: ja...@gcc.gnu.org
CC: hjl.to...@gmail.com, i...@gcc.gnu.org,
kirill.yuk...@intel.com


This is to track progress on vectorization using AVX2 v*gather* instructions.

The instructions allow plain unconditional gather, e.g.:
#define N 1024
float f[N];
int k[N];
float *l[N];
int **m[N];

float
f1 (void)
{
  int i;
  float g = 0.0;
  for (i = 0; i  N; i++)
g += f[k[i]];
  return g;
}

float
f2 (float *p)
{
  int i;
  float g = 0.0;
  for (i = 0; i  N; i++)
g += p[k[i]];
  return g;
}

float
f3 (void)
{
  int i;
  float g = 0.0;
  for (i = 0; i  N; i++)
g += *l[i];
  return g;
}

int
f4 (void)
{
  int i;
  int g = 0;
  for (i = 0; i  N; i++)
g += **m[i];
  return g;
}

should be able to vectorize all 4 loops.  In f1/f2 it would use non-zero base
(the vector would contain just indexes into some array, which vgather sign
extends and adds to base), in f3/f4 it would use zero base - the vectors would
be vectors of pointers (resp. uintptr_t).

To vectorize the above I'm afraid we'd need to modify tree-data-ref.c as well
as tree-vect-data-ref.c, because the memory accesses aren't affine and already
dr_analyze_innermost gives up on those, doesn't fill in any of the DR_* stuff.
Perhaps with some flag and when the base resp. offset has vdef in the same loop
we could mark it somehow and at least fill in the other fields.  It would
probably make alias decisions (in tree-vect-data-ref.c?) harder.  Any ideas?

What is additionally possible is to conditionalize loads, either affine or not.
So something like:
for (i = 0; i  N; i++)
  {
c = 6;
if (a[i]  24)
  c = b[i];
d[i] = c + e[i];
  }
for the affine conditional accesses where the vector could be just { 0, 1, 2,
3, ... } but the mask from the comparison.


[Bug c++/41103] g++-4.3/4.4 generates wrong code on x86_64

2011-10-19 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41103

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2011-10-19
 Ever Confirmed|0   |1

--- Comment #7 from Richard Guenther rguenth at gcc dot gnu.org 2011-10-19 
07:51:48 UTC ---
Unlikely, it hasn't been properly analyzed and boost code is a mess.  There
are known issues with PTA and pointer-in-integer tricks.  Use GCC 4.6.1
which should have this fixed.

So, please try 4.5.3 and/or 4.6.1.


[Bug tree-optimization/50789] Gather vectorization

2011-10-19 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50789

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011-10-19
 CC||rguenth at gcc dot gnu.org
 Ever Confirmed|0   |1
   Severity|normal  |enhancement

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2011-10-19 
08:09:48 UTC ---
Yeah, it would be a data-reference that doesn't quite fit into existing sets.
The aliasing could be dealt with (just don't assume anything about the index).

This sort of pattern happens in SPEC FP 2006 I think in a Fortran benchmark.


[Bug rtl-optimization/50788] [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256

2011-10-19 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50788

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

  Component|target  |rtl-optimization
   Target Milestone|--- |4.7.0


[Bug lto/50786] temporary files not cleaned up on LTO errors

2011-10-19 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50786

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2011-10-19
 Ever Confirmed|0   |1

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2011-10-19 
08:13:48 UTC ---
It's lto-wrapper that is supposed to cleanup the ltrans.o files generated by
WPA stage.  Maybe you mean different files though?


[Bug tree-optimization/50784] [4.7 regression] internal compiler error: segmentation fault in cgraph.c:327

2011-10-19 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50784

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 CC||hubicka at gcc dot gnu.org
   Target Milestone|--- |4.7.0


[Bug rtl-optimization/50782] optimize pragma not applying fast-math

2011-10-19 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50782

--- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2011-10-19 
08:16:34 UTC ---
The interaction of the optimize attribute/pragma with inlining are
interesting.
For some options we prohibit inlining (but only for the target attribute/pragma
I think), otherwise the callee inherits the settings of the caller - sometimes
partly.


[Bug tree-optimization/50780] [4.7 Regression] ICE: verify_gimple failed: invalid operands in ternary operation with -ftree-vectorize -fnon-call-exceptions

2011-10-19 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50780

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||ice-checking
 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011-10-19
 AssignedTo|unassigned at gcc dot   |rguenth at gcc dot gnu.org
   |gnu.org |
   Target Milestone|--- |4.7.0
 Ever Confirmed|0   |1

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2011-10-19 
08:18:44 UTC ---
Hmm.  Probably not properly verified in 4.6.  Mine.


[Bug target/50779] always_inline function fails to inline

2011-10-19 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50779

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||rejects-valid
 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2011-10-19
 Ever Confirmed|0   |1

--- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2011-10-19 
08:21:35 UTC ---
Please provide the error output.  I suppose it is about the ProFileParser
class methods.  Does the error go away when removing the dllexport attribute?


[Bug bootstrap/50778] [4.7 Regression] Bootstrap failure on powerpc-apple-darwin9

2011-10-19 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50778

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 CC||dodji at gcc dot gnu.org
   Target Milestone|--- |4.7.0


[Bug c++/50785] [C++0x][constexpr] static constexpr double undefined reference

2011-10-19 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50785

--- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org 2011-10-19 
08:34:45 UTC ---
The definition is required, see [class.static.data] p3

A static data member of literal type can be declared in the class definition
with the constexpr specifier; [...] The member shall still be defined in a
namespace scope if it is odr-used (3.2) in the program and the namespace scope
definition shall not contain an initializer.


[Bug target/50350] [4.6 Regression] ICE (segfault) in canonicalize_float_value

2011-10-19 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50350

--- Comment #7 from Jakub Jelinek jakub at gcc dot gnu.org 2011-10-19 
08:46:11 UTC ---
Author: jakub
Date: Wed Oct 19 08:45:45 2011
New Revision: 180179

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=180179
Log:
PR target/50350
Backport from mainline
2011-09-27  Richard Sandiford  rdsandif...@googlemail.com

PR middle-end/50386
PR middle-end/50326
* tree-sra.c (build_ref_for_model): Use the type of the field as
the type of the COMPONENT_REF.

Modified:
branches/gcc-4_6-branch/gcc/ChangeLog
branches/gcc-4_6-branch/gcc/tree-sra.c


[Bug bootstrap/50326] [4.7 regression] ICE in set_lattice_value, at tree-ssa-ccp.c:456

2011-10-19 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50326

--- Comment #13 from Jakub Jelinek jakub at gcc dot gnu.org 2011-10-19 
08:46:12 UTC ---
Author: jakub
Date: Wed Oct 19 08:45:45 2011
New Revision: 180179

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=180179
Log:
PR target/50350
Backport from mainline
2011-09-27  Richard Sandiford  rdsandif...@googlemail.com

PR middle-end/50386
PR middle-end/50326
* tree-sra.c (build_ref_for_model): Use the type of the field as
the type of the COMPONENT_REF.

Modified:
branches/gcc-4_6-branch/gcc/ChangeLog
branches/gcc-4_6-branch/gcc/tree-sra.c


[Bug tree-optimization/50789] Gather vectorization

2011-10-19 Thread irar at il dot ibm.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50789

--- Comment #2 from Ira Rosen irar at il dot ibm.com 2011-10-19 08:47:03 UTC 
---
(In reply to comment #0)

 To vectorize the above I'm afraid we'd need to modify tree-data-ref.c as well
 as tree-vect-data-ref.c, because the memory accesses aren't affine and already
 dr_analyze_innermost gives up on those, doesn't fill in any of the DR_* stuff.
 Perhaps with some flag and when the base resp. offset has vdef in the same 
 loop
 we could mark it somehow and at least fill in the other fields.  It would
 probably make alias decisions (in tree-vect-data-ref.c?) harder.  Any ideas?

We have something similar for SLP: if an access is not affine we just fill in
what we can. But I don't really understand what can be filled in for f3/f4.

I don't think any data dependence decision is possible for f3 and f4, since we
can't prove anything. But in all the examples there are no stores, and we don't
care about read-read.

In f1 and f2 we know the base so, assuming no overflow, we can handle stores to
a different array.

 
 What is additionally possible is to conditionalize loads, either affine or 
 not.

Can't we treat it as an unconditional load for the dr analysis purposes?


[Bug libgomp/50386] [4.7 Regression] libgomp.h:87:5: error: unnamed struct/union that defines no instances

2011-10-19 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50386

--- Comment #9 from Jakub Jelinek jakub at gcc dot gnu.org 2011-10-19 
08:46:12 UTC ---
Author: jakub
Date: Wed Oct 19 08:45:45 2011
New Revision: 180179

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=180179
Log:
PR target/50350
Backport from mainline
2011-09-27  Richard Sandiford  rdsandif...@googlemail.com

PR middle-end/50386
PR middle-end/50326
* tree-sra.c (build_ref_for_model): Use the type of the field as
the type of the COMPONENT_REF.

Modified:
branches/gcc-4_6-branch/gcc/ChangeLog
branches/gcc-4_6-branch/gcc/tree-sra.c


[Bug bootstrap/50778] [4.7 Regression] Bootstrap failure on powerpc-apple-darwin9

2011-10-19 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50778

--- Comment #2 from Dominique d'Humieres dominiq at lps dot ens.fr 2011-10-19 
09:00:43 UTC ---
I have bootstrapped revision 180100 on powerpc-apple-darwin9 configured with

../work/configure --prefix=/opt/gcc/gcc4.7w
--enable-languages=c,c++,fortran,objc,obj-c++,java,ada,lto --with-gmp=/sw
--with-libiconv-prefix=/usr --with-system-zlib --with-cloog=/sw --enable-lto
--enable-cloog-backend=isl

after reverting revisions 180081 to 180086, and 180090. Unless someone come
with a fix before, I'll try to restore the revisions one by one to narrow the
range, but each bootstrap takes ~14 hours, so don't hold your breath!-).


[Bug tree-optimization/50789] Gather vectorization

2011-10-19 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50789

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2011-10-19 
09:02:26 UTC ---
(In reply to comment #2)
 We have something similar for SLP: if an access is not affine we just fill in
 what we can. But I don't really understand what can be filled in for f3/f4.

Well, we should be able to at least use TBAA in that case:
void
f5 (void)
{
  int i;
  for (i = 0; i  N; i++)
k[i] += *l[i];
}
should be vectorizable too, as l[i] can't overlap k[i] (normal data dep) and
*l[i], being float read, can't alias with k[i] either (int).
Similarly perhaps:
void
f6 (float *__restrict f, float *__restrict *__restrict l)
{
  int i;
  for (i = 0; i  N; i++)
f[i] += *l[i];
}
(though that one unlikely very soon).
With these gather accesses we can't do any runtime alias checking before the
loop, either we can prove there is no alias, or we can't vectorize.

 Can't we treat it as an unconditional load for the dr analysis purposes?

For that surely, but the conditional loads have other problems for the
vectorizer, currently that means control flow within the loop.  We'd need to
transform it (perhaps temporarily or using pattern recognizer) to something
without control flow that would still be clear on that the load is only
conditional.


[Bug target/50350] [4.6 Regression] ICE (segfault) in canonicalize_float_value

2011-10-19 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50350

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #8 from Jakub Jelinek jakub at gcc dot gnu.org 2011-10-19 
09:03:23 UTC ---
Hopefully fixed.


[Bug tree-optimization/50735] [4.7 Regression] gcc.dg/torture/vector-2.c:52:1: ICE: verify_ssa failed at -O1 and above

2011-10-19 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50735

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org 2011-10-19 
09:04:17 UTC ---
Fixed.


[Bug tree-optimization/50746] [4.7 Regression] FAIL: gcc.dg/vect/pr37482.c (internal compiler error) on powerpc-apple-darwin9

2011-10-19 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50746

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

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||FIXED

--- Comment #10 from Dominique d'Humieres dominiq at lps dot ens.fr 
2011-10-19 09:05:13 UTC ---
The failures are gone at revision 180100 with the the revisions given in
pr50778 reverted and the patch of revision 180106. So I am closing this pr as
fixed.


[Bug target/50766] Binutils 2.22.51 rejects bmi2 pext operation with memory operands

2011-10-19 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50766

Uros Bizjak ubizjak at gmail dot com changed:

   What|Removed |Added

 CC||hjl.tools at gmail dot com,
   ||kirill.yukhin at intel dot
   ||com

--- Comment #1 from Uros Bizjak ubizjak at gmail dot com 2011-10-19 09:04:49 
UTC ---
CC author ob BMI2 intrinsics.


[Bug lto/45375] [meta-bug] Issues with building Mozilla with LTO

2011-10-19 Thread hubicka at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45375

--- Comment #119 from Jan Hubicka hubicka at gcc dot gnu.org 2011-10-19 
09:22:01 UTC ---
Some up to date perfomrance data.  WPA peaks 3.1GB in TOP now. (3261 virt).
Overall compile time is 4m32s real, 21m14 user.
GGC memory is GC 2248537k - 1727826k

WPA time report:
 callgraph optimization  :   1.68 ( 1%) usr   0.00 ( 0%) sys   1.70 ( 1%) wall 
 16008 kB (11%) ggc
 varpool construction:   0.66 ( 0%) usr   0.02 ( 0%) sys   0.68 ( 0%) wall 
 55300 kB (39%) ggc
 ipa cp  :   1.70 ( 1%) usr   0.09 ( 1%) sys   1.79 ( 1%) wall 
 75845 kB (53%) ggc
 ipa lto gimple out  :   9.40 ( 6%) usr   0.91 (10%) sys  10.36 ( 6%) wall 
 0 kB ( 0%) ggc
 ipa lto decl in :  45.99 (29%) usr   1.66 (19%) sys  47.95 (28%) wall
3285797 kB (2315%) ggc
 ipa lto decl out:  35.61 (22%) usr   1.65 (19%) sys  37.23 (22%) wall 
 0 kB ( 0%) ggc
 ipa lto cgraph I/O  :   3.73 ( 2%) usr   0.22 ( 2%) sys   3.95 ( 2%) wall 
621046 kB (438%) ggc
 ipa lto decl merge  :   5.75 ( 4%) usr   0.00 ( 0%) sys   5.75 ( 3%) wall 
   803 kB ( 1%) ggc
 ipa lto cgraph merge:   2.79 ( 2%) usr   0.02 ( 0%) sys   2.81 ( 2%) wall 
 27731 kB (20%) ggc
 inline heuristics   :  31.32 (19%) usr   0.13 ( 1%) sys  31.48 (18%) wall 
252282 kB (178%) ggc
 TOTAL : 161.21 8.82   170.40
141952 kB

(i.e. 60% of overall compilation time and about 1/3 if streaming in 1/3 of
straming out and 1/5th for inliner).

oprofile of streaming in:
9467  6.8109  lto1 htab_find_slot_with_hash
9036  6.5008  lto1 inflate_fast
6608  4.7540  libc-2.11.1.so   memset
6256  4.5008  libc-2.11.1.so   _int_malloc
6243  4.4914  lto1 pointer_map_insert
5694  4.0965  lto1 lto_input_tree
5014  3.6072  lto1 gt_ggc_mx_lang_tree_node
4522  3.2533  lto1 streamer_read_tree_bitfields
4463  3.2108  lto1 ggc_set_mark
4087  2.9403  opreport /usr/bin/opreport
3661  2.6339  lto1 ggc_internal_alloc_stat
3475  2.5000  lto1 streamer_read_uhwi
2508  1.8043  lto1 gimple_type_eq
2418  1.7396  lto1 streamer_read_tree_body
2310  1.6619  libc-2.11.1.so   memcpy
2292  1.6489  lto1 streamer_tree_cache_insert_1
2255  1.6223  libc-2.11.1.so   memcmp
2119  1.5245  lto1 ht_lookup_with_hash
1902  1.3684  lto1 iterative_hash_hashval_t
1885  1.3561  lto1 lto_fixup_types
1884  1.3554  libc-2.11.1.so   _int_free
1872  1.3468  lto1 uniquify_nodes
1842  1.3252  lto1 htab_expand
1825  1.3130  oprofiled/usr/bin/oprofiled
1813  1.3043  lto1 adler32
1734  1.2475  lto1 htab_hash_string
1509  1.0856  libc-2.11.1.so   _IO_vfscanf
1470  1.0576  libc-2.11.1.so   malloc_consolidate

pointer map and htab is mostly type merging still, I believe.

oprofile of inliner:
8772 37.9215  lto1 edge_badness
5532 23.9149  lto1 do_estimate_growth_1
1647  7.1200  lto1 update_caller_keys
1484  6.4154  lto1 can_inline_edge_p
744   3.2163  lto1 estimate_calls_size_and_time.isra.32
509   2.2004  lto1
estimate_edge_size_and_time.constprop.65
495   2.1399  lto1 fibheap_consolidate
267   1.1542  lto1 fibheap_extr_min_node
210   0.9078  lto1 cgraph_maybe_hot_edge_p

I.e. easy to handle by taming down amout of heap updating.

Stream out:
3371119.7166  lto1 lto1
varpool_node_for_asm
13947 8.1572  lto1 lto1
decl_assembler_name_equal
8873  5.1896  lto1 lto1
pointer_map_insert
8765  5.1264  lto1 lto1
linemap_lookup
6809  3.9824  lto1 lto1
lto_output_tree
4931  2.8840  lto1 lto1
inflate_fast
4718  2.7594  lto1 lto1
streamer_write_uhwi_stream
3521  2.0593  lto1 lto1
streamer_tree_cache_insert_1
3340  1.9535  lto1 lto1
splay_tree_splay
3293  1.9260  lto1 lto1
streamer_pack_tree_bitfields
3210  1.8774  libc-2.11.1.so   libc-2.11.1.so   memcpy
3175  1.8570  libc-2.11.1.so  

[Bug target/50766] Binutils 2.22.51 rejects bmi2 pext operation with memory operands

2011-10-19 Thread kirill.yukhin at intel dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50766

--- Comment #2 from Yukhin Kirill kirill.yukhin at intel dot com 2011-10-19 
09:37:17 UTC ---
Hi,
this is obviously a bug (introduced by me).
Memory operand in GCC notation must occur at first place.


[Bug target/50766] Binutils 2.22.51 rejects bmi2 pext operation with memory operands

2011-10-19 Thread kirill.yukhin at intel dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50766

--- Comment #3 from Yukhin Kirill kirill.yukhin at intel dot com 2011-10-19 
09:38:22 UTC ---
Created attachment 25553
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25553
Patch

I am testing it by now


[Bug tree-optimization/50789] Gather vectorization

2011-10-19 Thread irar at il dot ibm.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50789

Ira Rosen irar at il dot ibm.com changed:

   What|Removed |Added

 CC||irar at il dot ibm.com

--- Comment #4 from Ira Rosen irar at il dot ibm.com 2011-10-19 09:38:06 UTC 
---
(In reply to comment #3)
 (In reply to comment #2)
  We have something similar for SLP: if an access is not affine we just fill 
  in
  what we can. But I don't really understand what can be filled in for f3/f4.
 
 Well, we should be able to at least use TBAA in that case:
 void
 f5 (void)
 {
   int i;
   for (i = 0; i  N; i++)
 k[i] += *l[i];
 }
 should be vectorizable too, as l[i] can't overlap k[i] (normal data dep) and
 *l[i], being float read, can't alias with k[i] either (int).

I meant that we can't decompose *l[i] any further.

 With these gather accesses we can't do any runtime alias checking before the
 loop, either we can prove there is no alias, or we can't vectorize.

Agreed.

 
  Can't we treat it as an unconditional load for the dr analysis purposes?
 
 For that surely, but the conditional loads have other problems for the
 vectorizer, currently that means control flow within the loop.  We'd need to
 transform it (perhaps temporarily or using pattern recognizer) to something
 without control flow that would still be clear on that the load is only
 conditional.

Something like this
http://gcc.gnu.org/ml/gcc-patches/2010-11/msg00304.html ?


[Bug target/50766] Binutils 2.22.51 rejects bmi2 pext operation with memory operands

2011-10-19 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50766

--- Comment #4 from Uros Bizjak ubizjak at gmail dot com 2011-10-19 09:46:50 
UTC ---
(In reply to comment #2)
 Hi,
 this is obviously a bug (introduced by me).
 Memory operand in GCC notation must occur at first place.

Please note that gcc also supports Intel notation with -masm=intel. Probably
you need to introduce multiple variants of assembler languages syntax into insn
templates. Please see Instruction output section in GCC Internals manual.


[Bug target/50766] Binutils 2.22.51 rejects bmi2 pext operation with memory operands

2011-10-19 Thread kirill.yukhin at intel dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50766

--- Comment #5 from Yukhin Kirill kirill.yukhin at intel dot com 2011-10-19 
09:48:51 UTC ---
(In reply to comment #4)
 (In reply to comment #2)
  Hi,
  this is obviously a bug (introduced by me).
  Memory operand in GCC notation must occur at first place.
 
 Please note that gcc also supports Intel notation with -masm=intel. Probably
 you need to introduce multiple variants of assembler languages syntax into 
 insn
 templates. Please see Instruction output section in GCC Internals manual.

Thanks, I'll verify it as well


[Bug target/50779] always_inline function fails to inline

2011-10-19 Thread vanboxem.ruben at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50779

--- Comment #3 from Ruben Van Boxem vanboxem.ruben at gmail dot com 
2011-10-19 10:17:54 UTC ---
Sorry about that:

m:\Development\source\qtcreator\src\shared\proparser\profileparser.cpp: In
member function 'void ProFileParser::leaveScope(ushort*)':
m:\Development\source\qtcreator\src\shared\proparser\profileparser.cpp:203:6:
sorry, unimplemented: inlining failed in call to 'void
ProFileParser::putBlockLen(ushort*, uint)': function not inlinable
m:\Development\source\qtcreator\src\shared\proparser\profileparser.cpp:813:31:
sorry, unimplemented: called from here
m:\Development\source\qtcreator\src\shared\proparser\profileparser.cpp:198:6:
sorry, unimplemented: inlining failed in call to 'void
ProFileParser::putTok(ushort*, ushort)': function not inlinable
m:\Development\source\qtcreator\src\shared\proparser\profileparser.cpp:816:38:
sorry, unimplemented: called from here

And yes, the error does go away if I comment out ProfileParser's
PROPARSER_EXPORT qualifier.


[Bug target/50779] always_inline function fails to inline

2011-10-19 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50779

--- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2011-10-19 
10:23:37 UTC ---
So it's probably similar to ELF platforms using a weak always-inline function.
Thus a conflict in marking it replacable at link-time and inlinable.
If dllexport does not have this semantic then there is something to be fixed,
otherwise not.


[Bug target/50779] always_inline function fails to inline

2011-10-19 Thread vanboxem.ruben at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50779

--- Comment #5 from Ruben Van Boxem vanboxem.ruben at gmail dot com 
2011-10-19 10:37:37 UTC ---
There's this on msdn about inline and dllexport:
http://msdn.microsoft.com/en-us/library/xa0d9ste.aspx

On top of this, MSVC allows its __forceinline to be used in a dllexport
context, so I would assume GCC could do the same thing in this case.


[Bug c++/38761] %s substituted with regular word can't be properly translated

2011-10-19 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38761

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 CC|gcc-bugs at gcc dot |
   |gnu.org, paolo.carlini at   |
   |oracle dot com  |
 AssignedTo|unassigned at gcc dot   |paolo.carlini at oracle dot
   |gnu.org |com

--- Comment #8 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-19 
10:54:19 UTC ---
I just checked 0.18.1 and is still unable to extract from conditional
expressions. I guess we want to add a few more G_(), as also pointed out
elsewhere. I'll do it.


[Bug bootstrap/50778] [4.7 Regression] Bootstrap failure on powerpc-apple-darwin9

2011-10-19 Thread dodji at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50778

--- Comment #3 from Dodji Seketeli dodji at gcc dot gnu.org 2011-10-19 
10:55:28 UTC ---
Could I have ssh access to one of the boxes that fail?


[Bug target/50733] avr-gcc 4.3.5 generates incorrect code when using PROGMEM macro

2011-10-19 Thread wek at host dot sk
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50733

Jan Waclawek wek at host dot sk changed:

   What|Removed |Added

 CC||wek at host dot sk

--- Comment #1 from Jan Waclawek wek at host dot sk 2011-10-19 11:01:13 UTC 
---
You cannot access variables placed into FLASH using the PROGMEM macro simply by
their name as if they would be normal variables (which are located in RAM). You
have to use dedicated functions such as pgm_read_byte() prototyped in
avr/pgmspace.h

Please refer to the relevant portions of avr-libc user manual
http://www.nongnu.org/avr-libc/user-manual/pgmspace.html and/or the PROGMEM
tutorial on avrfreaks.net
http://www.avrfreaks.net/index.php?name=PNphpBB2file=viewtopict=38003start=allpostdays=0postorder=asc


[Bug translation/40872] String not extracted for translation

2011-10-19 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40872

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 CC|gcc-bugs at gcc dot gnu.org |paolo.carlini at oracle dot
   ||com
 AssignedTo|unassigned at gcc dot   |paolo.carlini at oracle dot
   |gnu.org |com

--- Comment #22 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-19 
11:07:22 UTC ---
Mine.


[Bug fortran/50790] New: ICE in copy_constant on divide by expression that evaluates to zero

2011-10-19 Thread jonathan.hogg at stfc dot ac.uk
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50790

 Bug #: 50790
   Summary: ICE in copy_constant on divide by expression that
evaluates to zero
Classification: Unclassified
   Product: gcc
   Version: 4.6.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: jonathan.h...@stfc.ac.uk


The following code produces an ICE for me:

program test
   implicit none

   integer :: i

   i = 3

   print *, chk, 3/(i-i)
end program test

This should presumably produce
   Error: Division by zero
at compile time (or run time if we're not being clever).

Produced with:
GNU Fortran (Debian 4.6.1-4) 4.6.1
Copyright (C) 2011 Free Software Foundation, Inc.

Thanks,
Jonathan.


[Bug target/34352] Multi-line descriptions are not picked up for translation

2011-10-19 Thread manu at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34352

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

   What|Removed |Added

 CC||manu at gcc dot gnu.org

--- Comment #3 from Manuel López-Ibáñez manu at gcc dot gnu.org 2011-10-19 
12:05:00 UTC ---
Göran, you seem to care about these things. As you see, the main GCC devs, do
not. So if you really want to get this fixed, you have to submit patches. 

This particular kind of issue is so trivial that you don't need a copyright
assignment. Just send a patch to gcc-patches@. I am pretty sure that if you put
js...@gcc.gnu.org in the CC and ask him to commit it for you, he will. If he
doesn't, you write directly to me and I will commit it in your name.

Send a patch for each .opt file were you find the problem. 

If you know awk, maybe you could propose a patch to the genopt awk scripts to
detect this issue automatically and fix it.


[Bug target/50310] [4.7 Regression] ICE: in gen_vcondv2div2df, at config/i386/sse.md:1435 with -O -ftree-vectorize and __builtin_isunordered()

2011-10-19 Thread uweigand at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50310

--- Comment #16 from Ulrich Weigand uweigand at gcc dot gnu.org 2011-10-19 
12:17:41 UTC ---
Author: uweigand
Date: Wed Oct 19 12:17:35 2011
New Revision: 180184

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=180184
Log:
PR target/50310
* config/spu/spu.c (spu_emit_vector_compare): Support unordered
floating-point comparisons.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/spu/spu.c


[Bug bootstrap/50778] [4.7 Regression] Bootstrap failure on powerpc-apple-darwin9

2011-10-19 Thread iains at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50778

--- Comment #4 from Iain Sandoe iains at gcc dot gnu.org 2011-10-19 12:22:04 
UTC ---
(In reply to comment #3)
 Could I have ssh access to one of the boxes that fail?

unfortunately, I can't do that - company boxes here afflicted by company
policy;
 Jack Howarth seems to be able to - I think he might have a PPC box still.

Otherwise we can offer to try and answer specific questions;

I've got other fails in struc-layout etc. that are bus errors in libcpp:
e.g.
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x
_cpp_pop_context (pfile=0x41806600) at /GCC/gcc-live-trunk/libcpp/macro.c:2139
2139  pfile-context-next = NULL;
(gdb) bt
#0  _cpp_pop_context (pfile=0x41806600) at
/GCC/gcc-live-trunk/libcpp/macro.c:2139
#1  0x00937b44 in cpp_get_token_1 (pfile=0x14, location=0xbfffedac) at
/GCC/gcc-live-trunk/libcpp/macro.c:2328
#2  0x00937684 in enter_macro_context (pfile=0xbfffedac, node=0x4204e160,
result=0x41809a00, location=1242616) at /GCC/gcc-live-trunk/libcpp/macro.c:2074
#3  0x00937b44 in cpp_get_token_1 (pfile=0x41806600, location=0xbfffef08) at
/GCC/gcc-live-trunk/libcpp/macro.c:2328
#4  0x000ac398 in preprocess_file (pfile=0x41806600) at
/GCC/gcc-live-trunk/gcc/c-family/c-ppoutput.c:177
#5  0x000aa450 in c_common_init () at
/GCC/gcc-live-trunk/gcc/c-family/c-opts.c:1090
#6  0x0004cb98 in c_objc_common_init () at
/GCC/gcc-live-trunk/gcc/c-objc-common.c:64
#7  0x006594b0 in toplev_main (argc=25, argv=0x0) at
/GCC/gcc-live-trunk/gcc/toplev.c:1757
#8  0x2464 in start ()
Current language:  auto; currently c++

(in case that's a hint).


[Bug c++/50785] [C++0x][constexpr] static constexpr double undefined reference

2011-10-19 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50785

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC||jason at gcc dot gnu.org

--- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-19 
12:34:23 UTC ---
Let's double check with Jason, the last line of the Description is a bit
upsetting. Seems also related to PR50087 / note that -O fixes it.


[Bug c++/50785] [C++0x][constexpr] static constexpr double undefined reference

2011-10-19 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50785

--- Comment #4 from Jonathan Wakely redi at gcc dot gnu.org 2011-10-19 
12:43:59 UTC ---
test::value is an lvalue, binding a reference to it is an odr-use

(1*test::value) produces an rvalue, the reference is not bound to test::value,
so it is not odr-used


[Bug c++/50785] [C++0x][constexpr] static constexpr double undefined reference

2011-10-19 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50785

--- Comment #5 from Jonathan Wakely redi at gcc dot gnu.org 2011-10-19 
12:46:00 UTC ---
and I assume -O eliminates the reference binding due to inlining and value
propagation

this all seems normal for a missing definition of a static const member, like
dozens of other invalid PRs


[Bug rtl-optimization/50340] [4.7 Regression] Fails to build SPEC 2000 176.gcc

2011-10-19 Thread amonakov at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50340

--- Comment #3 from Alexander Monakov amonakov at gcc dot gnu.org 2011-10-19 
12:46:48 UTC ---
Author: amonakov
Date: Wed Oct 19 12:46:44 2011
New Revision: 180186

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=180186
Log:
2011-10-19  Andrey Belevantsev  a...@ispras.ru

PR rtl-optimization/50340
* sel-sched-ir.c (update_target_availability): LHS register
availability is not known if the unavailable LHS of the other
expression is a different register.

* gcc.dg/pr50340.c: New.


Added:
trunk/gcc/testsuite/gcc.dg/pr50340.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/sel-sched-ir.c
trunk/gcc/testsuite/ChangeLog


[Bug c++/50785] [C++0x][constexpr] static constexpr double undefined reference

2011-10-19 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50785

--- Comment #6 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-19 
12:47:47 UTC ---
I agree, I agree.


[Bug translation/40872] String not extracted for translation

2011-10-19 Thread paolo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40872

--- Comment #23 from paolo at gcc dot gnu.org paolo at gcc dot gnu.org 
2011-10-19 12:46:48 UTC ---
Author: paolo
Date: Wed Oct 19 12:46:42 2011
New Revision: 180185

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=180185
Log:
2011-10-19  Paolo Carlini  paolo.carl...@oracle.com

PR c++/38761
PR c++/40872
* decl.c (duplicate_decls, make_typename_type, grokdeclarator): Use
G_() in error message strings to facilitate translation.
* semantics.c (finish_id_expression): Likewise.
* parser.c (cp_parser_nested_name_specifier_opt,
cp_parser_parameter_declaration): Likewise.

Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/decl.c
trunk/gcc/cp/parser.c
trunk/gcc/cp/semantics.c


[Bug rtl-optimization/50340] [4.7 Regression] Fails to build SPEC 2000 176.gcc

2011-10-19 Thread amonakov at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50340

Alexander Monakov amonakov at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P1  |P3
 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #4 from Alexander Monakov amonakov at gcc dot gnu.org 2011-10-19 
12:47:49 UTC ---
Fixed.


[Bug c++/38761] %s substituted with regular word can't be properly translated

2011-10-19 Thread paolo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38761

--- Comment #9 from paolo at gcc dot gnu.org paolo at gcc dot gnu.org 
2011-10-19 12:46:47 UTC ---
Author: paolo
Date: Wed Oct 19 12:46:42 2011
New Revision: 180185

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=180185
Log:
2011-10-19  Paolo Carlini  paolo.carl...@oracle.com

PR c++/38761
PR c++/40872
* decl.c (duplicate_decls, make_typename_type, grokdeclarator): Use
G_() in error message strings to facilitate translation.
* semantics.c (finish_id_expression): Likewise.
* parser.c (cp_parser_nested_name_specifier_opt,
cp_parser_parameter_declaration): Likewise.

Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/decl.c
trunk/gcc/cp/parser.c
trunk/gcc/cp/semantics.c


[Bug c++/38761] %s substituted with regular word can't be properly translated

2011-10-19 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38761

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.7.0

--- Comment #10 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-19 
12:53:07 UTC ---
Fixed.


[Bug c++/50785] [C++0x] static constexpr double undefined reference

2011-10-19 Thread daniel.kruegler at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50785

--- Comment #8 from Daniel Krügler daniel.kruegler at googlemail dot com 
2011-10-19 12:54:24 UTC ---
I agree that the test case should require the definition of the static member,
the actual reason being that the constraint in 3.2 p2,

[..] unless it is an object that satisfies the requirements for appearing in a
constant expression [..]

is not satisfied, because the operator* of complex is not constexpr. Changing
the reference to std::complex by

templateclass T
struct complex {
private:
T data[2];
public:
constexpr complex(T r = 0, T i = 0) : data{r, i} {}
constexpr T real() { return data[0]; }
constexpr T imag() { return data[1]; }
};

templateclass T
constexpr complexT operator*(const complexT lhs, const T rhs)
{
return complexT(lhs.real() * rhs, lhs.imag() * rhs);
}

also fixes the initial problem, because now the expression

complexdouble(0,1)*test::value

satisfies the criteria to appear in a constant expression.

But I think that the replacement code

complexdouble x = complexdouble(0,1)*(1*test::value);

should also require the definition of test::value. It could be, that the
compiler now reduces the scope of the analysis to the sub-expression
(1*test::value). If so, this is either a compiler defect or a core language
defect, I'm not sure. It is arguable that the description

[..] unless it is an object that satisfies the requirements for appearing in a
constant expression [..]

is somewhat misleading, because it focuses on the object and not on the
expression where it is part of. This could be related to CWG #712 in this case.


[Bug c++/50791] internal compiler error in dependent_type_p_r

2011-10-19 Thread yar at sibnet dot ru
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50791

--- Comment #1 from yar at sibnet dot ru 2011-10-19 12:52:47 UTC ---
Created attachment 2
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=2
Similar code, not causing crash


[Bug c++/50791] internal compiler error in dependent_type_p_r

2011-10-19 Thread yar at sibnet dot ru
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50791

--- Comment #2 from yar at sibnet dot ru 2011-10-19 12:54:59 UTC ---
The code in first attachment make cc1plus stack overflow. The code in second
attachment doesn't.

Backtrace:
#0  dependent_type_p (type=0xb7f22960) at ../../gcc/cp/pt.c:17459
#1  0x080766ec in dependent_type_p_r (type=0xb7f22cc0) at
../../gcc/cp/pt.c:17371
#2  dependent_type_p (type=0xb7f22cc0) at ../../gcc/cp/pt.c:17484
#3  0x08076772 in dependent_type_p_r (type=0xb7f22960) at
../../gcc/cp/pt.c:17448
#4  dependent_type_p (type=0xb7f22960) at ../../gcc/cp/pt.c:17484
#5  0x080766ec in dependent_type_p_r (type=0xb7f22cc0) at
../../gcc/cp/pt.c:17371
#6  dependent_type_p (type=0xb7f22cc0) at ../../gcc/cp/pt.c:17484
#7  0x08076772 in dependent_type_p_r (type=0xb7f22960) at
../../gcc/cp/pt.c:17448
#8  dependent_type_p (type=0xb7f22960) at ../../gcc/cp/pt.c:17484
#9  0x080766ec in dependent_type_p_r (type=0xb7f22cc0) at
../../gcc/cp/pt.c:17371
#10 dependent_type_p (type=0xb7f22cc0) at ../../gcc/cp/pt.c:17484
...
#261894 dependent_type_p (type=0xb7f22cc0) at ../../gcc/cp/pt.c:17484
#261895 0x08076772 in dependent_type_p_r (type=0xb7f22960) at
../../gcc/cp/pt.c:17448
#261896 dependent_type_p (type=0xb7f22960) at ../../gcc/cp/pt.c:17484
#261897 0x080766ec in dependent_type_p_r (type=0xb7f22cc0) at
../../gcc/cp/pt.c:17371
#261898 dependent_type_p (type=0xb7f22cc0) at ../../gcc/cp/pt.c:17484
#261899 0x08076772 in dependent_type_p_r (type=0xb7f22960) at
../../gcc/cp/pt.c:17448
#261900 dependent_type_p (type=0xb7f22960) at ../../gcc/cp/pt.c:17484
#261901 0x080766ec in dependent_type_p_r (type=0xb7f22cc0) at
../../gcc/cp/pt.c:17371
#261902 dependent_type_p (type=0xb7f22cc0) at ../../gcc/cp/pt.c:17484
#261903 0x08076772 in dependent_type_p_r (type=0xb7f22960) at
../../gcc/cp/pt.c:17448
#261904 dependent_type_p (type=0xb7f22960) at ../../gcc/cp/pt.c:17484
#261905 0x080766ec in dependent_type_p_r (type=0xb7f22cc0) at
../../gcc/cp/pt.c:17371
#261906 dependent_type_p (type=0xb7f22cc0) at ../../gcc/cp/pt.c:17484
#261907 0x08076772 in dependent_type_p_r (type=0xb7f22960) at
../../gcc/cp/pt.c:17448
#261908 dependent_type_p (type=0xb7f22960) at ../../gcc/cp/pt.c:17484
#261909 0x080766ec in dependent_type_p_r (type=0xb7f22cc0) at
../../gcc/cp/pt.c:17371
#261910 dependent_type_p (type=0xb7f22cc0) at ../../gcc/cp/pt.c:17484
#261911 0x08076772 in dependent_type_p_r (type=0xb7f22960) at
../../gcc/cp/pt.c:17448
#261912 dependent_type_p (type=0xb7f22960) at ../../gcc/cp/pt.c:17484
#261913 0x080769f8 in dependent_template_arg_p (arg=0xb7f22960) at
../../gcc/cp/pt.c:17903
#261914 0x08076a89 in any_dependent_template_arguments_p (args=0xb7f2b3d4) at
../../gcc/cp/pt.c:17979
#261915 0x080775e8 in uses_template_parms (t=0xb7f2b3d4) at
../../gcc/cp/pt.c:7045
#261916 0x08077931 in register_specialization (spec=0xb7f2c100,
tmpl=0xb7ec6c98, args=0xb7f2b3d4, is_friend=0 '\000', 
hash=1919156452) at ../../gcc/cp/pt.c:1280
#261917 0x08079a68 in tsubst_decl (t=0xb7f1c200, args=0xb7f2b3b8, complain=0)
at ../../gcc/cp/pt.c:9214
#261918 0x0808a9a6 in instantiate_template (tmpl=0xb7ec6c98,
orig_args=0xb7f2b3b8, complain=0) at ../../gcc/cp/pt.c:13082
#261919 0x08053221 in add_template_candidate_real (candidates=0xbfffe5d8,
tmpl=0xb7ec6c98, ctype=0x0, explicit_targs=0x0, 
first_arg=0x0, arglist=0xb7f24a78, return_type=0x0, access_path=0x0,
conversion_path=0x0, flags=3, obj=0x0, strict=DEDUCE_CALL)
at ../../gcc/cp/call.c:2536
#261920 0x08053487 in add_template_candidate (fns=0xb7f24a8c, args=0xb7f24a78,
explicit_targs=0x0, template_only=0 '\000', 
conversion_path=0x0, access_path=0x0, flags=3, candidates=0xbfffe5d8) at
../../gcc/cp/call.c:2612
#261921 add_candidates (fns=0xb7f24a8c, args=0xb7f24a78, explicit_targs=0x0,
template_only=0 '\000', conversion_path=0x0, 
access_path=0x0, flags=3, candidates=0xbfffe5d8) at
../../gcc/cp/call.c:4118
#261922 0x08059fa7 in build_new_op (code=BIT_IOR_EXPR, flags=3,
arg1=0xb7ea4488, arg2=0xb7f271cc, arg3=0x0, 
overloaded_p=0xbfffe74f , complain=3) at ../../gcc/cp/call.c:4248
#261923 0x080c3c7b in build_x_binary_op (code=BIT_IOR_EXPR, arg1=0xb7ea4488,
arg1_code=ERROR_MARK, arg2=value optimized out, 
arg2_code=ERROR_MARK, overloaded_p=0xbfffe74f , complain=3) at
../../gcc/cp/typeck.c:3490
#261924 0x080b2acb in cp_parser_binary_expression (parser=0xb7f25410,
cast_p=value optimized out, no_toplevel_fold_p=0 '\000', 
prec=PREC_NOT_OPERATOR, pidk=0x0) at ../../gcc/cp/parser.c:6464
#261925 0x080b2c77 in cp_parser_assignment_expression (parser=value optimized
out, cast_p=value optimized out, 
pidk=value optimized out) at ../../gcc/cp/parser.c:6561
#261926 0x080b31a1 in cp_parser_constant_expression (parser=0xb7f25410,
allow_non_constant_p=1 '\001', non_constant_p=0xbfffe85e )
at ../../gcc/cp/parser.c:6786
#261927 0x080b34df in cp_parser_initializer_clause (parser=value optimized
out, non_constant_p=0xbfffe85e )
at ../../gcc/cp/parser.c:15512
#261928 0x080afbca in 

[Bug translation/40872] String not extracted for translation

2011-10-19 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40872

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.7.0

--- Comment #24 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-19 
12:53:46 UTC ---
Fixed.


[Bug c++/50791] New: internal compiler error in dependent_type_p_r

2011-10-19 Thread yar at sibnet dot ru
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50791

 Bug #: 50791
   Summary: internal compiler error in dependent_type_p_r
Classification: Unclassified
   Product: gcc
   Version: 4.5.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: y...@sibnet.ru


Created attachment 25554
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25554
Code, causing crash


[Bug c++/50785] [C++0x][constexpr] static constexpr double undefined reference

2011-10-19 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50785

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID

--- Comment #7 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-19 
12:50:34 UTC ---
I think the important message to vehicle to the users - correct me if I'm wrong
- is that constexpr isn't miraculous from this point of view, old-style
static and C++11 static constexpr data members both generally require out of
class definitions.


[Bug tree-optimization/50768] [4.7 Regression] ICE: in execute_todo, at passes.c:1731 with -O2 -ftracer

2011-10-19 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50768

--- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2011-10-19 
12:59:27 UTC ---
Author: rguenth
Date: Wed Oct 19 12:59:21 2011
New Revision: 180187

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=180187
Log:
2011-10-19  Richard Guenther  rguent...@suse.de

PR middle-end/50768
* gimple-fold.c (gimplify_and_update_call_from_tree): Rewrite.

* gcc.dg/torture/pr50768.c: New testcase.

Added:
trunk/gcc/testsuite/gcc.dg/torture/pr50768.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/gimple-fold.c
trunk/gcc/testsuite/ChangeLog


[Bug tree-optimization/50768] [4.7 Regression] ICE: in execute_todo, at passes.c:1731 with -O2 -ftracer

2011-10-19 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50768

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2011-10-19 
13:00:31 UTC ---
Fixed.


[Bug c++/50785] [C++0x] static constexpr double undefined reference

2011-10-19 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50785

--- Comment #9 from Jonathan Wakely redi at gcc dot gnu.org 2011-10-19 
13:04:29 UTC ---
(In reply to comment #8)
 I agree that the test case should require the definition of the static member,
 the actual reason being that the constraint in 3.2 p2,
 
 [..] unless it is an object that satisfies the requirements for appearing in 
 a
 constant expression [..]

The rest of the sentence is relevant:
... and the lvalue-to-rvalue conversion (4.1) is immediately applied.

 is not satisfied, because the operator* of complex is not constexpr.

I disagree.  It is odr-used because the lvalue-to-rvalue conversions is not
immediately applied.

In (1*test::value) the lvalue-to-rvalue conversion is immediately applied.

 Changing
 the reference to std::complex by
 
 templateclass T
 struct complex {
 private:
 T data[2];
 public:
 constexpr complex(T r = 0, T i = 0) : data{r, i} {}
 constexpr T real() { return data[0]; }
 constexpr T imag() { return data[1]; }
 };
 
 templateclass T
 constexpr complexT operator*(const complexT lhs, const T rhs)
 {
 return complexT(lhs.real() * rhs, lhs.imag() * rhs);
 }
 
 also fixes the initial problem, because now the expression
 
 complexdouble(0,1)*test::value
 
 satisfies the criteria to appear in a constant expression.

It is the _object_ (i.e. test:value) that needs to satisfy the criteria for
appearing in a constant expression, not the expression containing it.

test::value satisfies the criteria.


[Bug lto/45375] [meta-bug] Issues with building Mozilla with LTO

2011-10-19 Thread hubicka at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45375

--- Comment #120 from Jan Hubicka hubicka at gcc dot gnu.org 2011-10-19 
13:05:25 UTC ---
weakref reorg saves about 15 seconds, so we have total WPA time 145s and decl
out at 19s (13%).

Honza


[Bug c++/50785] [C++0x] static constexpr double undefined reference

2011-10-19 Thread daniel.kruegler at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50785

--- Comment #10 from Daniel Krügler daniel.kruegler at googlemail dot com 
2011-10-19 13:07:44 UTC ---
(In reply to comment #9)
 I disagree.  It is odr-used because the lvalue-to-rvalue conversions is not
 immediately applied.
 
 In (1*test::value) the lvalue-to-rvalue conversion is immediately applied.

I tend to agree. My first impression was that the core language is unclear
here, but after some rethought I think the core language is clear and your
argumentation chain is convincing to me.


[Bug target/50766] Binutils 2.22.51 rejects bmi2 pext operation with memory operands

2011-10-19 Thread kirill.yukhin at intel dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50766

--- Comment #6 from Yukhin Kirill kirill.yukhin at intel dot com 2011-10-19 
13:09:30 UTC ---
Thread on gcc-patches ML:
http://gcc.gnu.org/ml/gcc-patches/2011-10/msg01719.html


[Bug c++/50791] [c++0x] internal compiler error in dependent_type_p_r

2011-10-19 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50791

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||ice-on-invalid-code
  Known to work||4.7.0
Summary|internal compiler error in  |[c++0x] internal compiler
   |dependent_type_p_r  |error in dependent_type_p_r
  Known to fail||4.6.1

--- Comment #3 from Jonathan Wakely redi at gcc dot gnu.org 2011-10-19 
13:08:58 UTC ---
You forgot to mention -std=c++0x (please follow the http://gcc.gnu.org/bugs/
instructions)

This seems to be fixed on trunk


[Bug translation/48638] gcc/plugin.c: inacessible - inaccessible

2011-10-19 Thread paolo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48638

--- Comment #1 from paolo at gcc dot gnu.org paolo at gcc dot gnu.org 
2011-10-19 13:20:29 UTC ---
Author: paolo
Date: Wed Oct 19 13:20:22 2011
New Revision: 180188

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=180188
Log:
2011-10-19  Roland Stigge  sti...@antcom.de  

PR translation/48638
* plugin.c (add_new_plugin): Fix typo in fatal_error message.

2011-10-19  Roland Stigge  sti...@antcom.de  

PR translation/49517
* config/rx/rx.c (rx_print_operand): Fix typo in warning message.

/cp
2011-10-19  Roland Stigge  sti...@antcom.de

PR translation/49704
* semantics.c (potential_constant_expression_1): Use AST instead of
ast in sorry message.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/rx/rx.c
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/semantics.c
trunk/gcc/plugin.c


[Bug translation/49517] Translation string typo in config/rx/rx.c

2011-10-19 Thread paolo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49517

--- Comment #1 from paolo at gcc dot gnu.org paolo at gcc dot gnu.org 
2011-10-19 13:20:28 UTC ---
Author: paolo
Date: Wed Oct 19 13:20:22 2011
New Revision: 180188

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=180188
Log:
2011-10-19  Roland Stigge  sti...@antcom.de  

PR translation/48638
* plugin.c (add_new_plugin): Fix typo in fatal_error message.

2011-10-19  Roland Stigge  sti...@antcom.de  

PR translation/49517
* config/rx/rx.c (rx_print_operand): Fix typo in warning message.

/cp
2011-10-19  Roland Stigge  sti...@antcom.de

PR translation/49704
* semantics.c (potential_constant_expression_1): Use AST instead of
ast in sorry message.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/rx/rx.c
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/semantics.c
trunk/gcc/plugin.c


[Bug translation/49704] gcc/cp/semantics.c: unexpected ast

2011-10-19 Thread paolo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49704

--- Comment #3 from paolo at gcc dot gnu.org paolo at gcc dot gnu.org 
2011-10-19 13:20:29 UTC ---
Author: paolo
Date: Wed Oct 19 13:20:22 2011
New Revision: 180188

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=180188
Log:
2011-10-19  Roland Stigge  sti...@antcom.de  

PR translation/48638
* plugin.c (add_new_plugin): Fix typo in fatal_error message.

2011-10-19  Roland Stigge  sti...@antcom.de  

PR translation/49517
* config/rx/rx.c (rx_print_operand): Fix typo in warning message.

/cp
2011-10-19  Roland Stigge  sti...@antcom.de

PR translation/49704
* semantics.c (potential_constant_expression_1): Use AST instead of
ast in sorry message.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/rx/rx.c
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/semantics.c
trunk/gcc/plugin.c


[Bug translation/48638] gcc/plugin.c: inacessible - inaccessible

2011-10-19 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48638

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.7.0

--- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-19 
13:21:51 UTC ---
Fixed.


[Bug translation/49704] gcc/cp/semantics.c: unexpected ast

2011-10-19 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49704

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.7.0

--- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-19 
13:23:00 UTC ---
Fixed for 4.7.0.


[Bug translation/49517] Translation string typo in config/rx/rx.c

2011-10-19 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49517

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.7.0

--- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-19 
13:22:21 UTC ---
Fixed.


[Bug translation/47912] translatable string typo: params.def:869: paritition

2011-10-19 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47912

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||WORKSFORME
   Target Milestone|--- |4.7.0

--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-19 
13:25:55 UTC ---
Moot in mainline. Please double check, anyway.


[Bug c++/39409] internal compiler error: Segmentation fault

2011-10-19 Thread dje at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39409

David Edelsohn dje at gcc dot gnu.org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||FIXED

--- Comment #4 from David Edelsohn dje at gcc dot gnu.org 2011-10-19 13:32:52 
UTC ---
I assume the user has GCC 4.2.0 installed because that was the version
available from IBM AIX Toolbox.  Prebuilt binaries of more recent versions of
GCC are available.

I do not have GCC 4.2.0 available to test.  GCC 4.1.3 compiles the file.  GCC
4.2.4 complains about a deprecated convesion:

warning: deprecated conversion from string constant to 'char*'

GCC 4.3.x and above fail with errors and warnings in the libstdc++ header
files.

None of the versions of GCC to which I have access crash with an ICE.  I
believe that this was a bug in the .0 release that was fixed in a later update.


[Bug c++/50793] New: G++ doesn't value-initialize all members of non-trivial type in default argument

2011-10-19 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50793

 Bug #: 50793
   Summary: G++ doesn't value-initialize all members of
non-trivial type in default argument
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Keywords: wrong-code
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: r...@gcc.gnu.org
CC: ja...@gcc.gnu.org


struct NonTrivial
{
NonTrivial() { }
};

struct S
{
NonTrivial nt;
int i;
};

int f(S s = S())
{
s.i = 0xdeadbeef;
return s.i;
}

int g(S s = S())
{
return s.i;
}

int main()
{
f();  // make stack dirty

if ( g() )
__builtin_abort();
}

This should not abort, the default argument of g() should be value-initialized,
which means:

C++03) if T is a non-union class type without a user-declared constructor, then
every non-static data member and base-class component of T is
value-initialized;

C++11) if T is a (possibly cv-qualified) non-union class type without a
user-provided constructor, then the object is zero-initialized and, if T’s
implicitly-declared default constructor is non-trivial, that constructor is
called.


If the implicitly-declared constructor S::S() is trivial, then S::i is
zero-initialized as expected.  When S::S() is non-trivial,
NonTrivial::NonTrivial() is called correctly, but S::i is not zero-initialized.

N.B. the test does not fail if the default argument uses list-init, S{}


This was identified by my -Wmeminit patch for PR 2972 which identified 
uninitialized data when doing:

  std::vectorS v;
  v.resize(1);


[Bug bootstrap/50777] [4.7 regression] bootstrap fails on Solaris 10

2011-10-19 Thread ro at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50777

Rainer Orth ro at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
URL||http://gcc.gnu.org/ml/gcc-p
   ||atches/2011-10/msg01726.htm
   ||l
 AssignedTo|unassigned at gcc dot   |ro at gcc dot gnu.org
   |gnu.org |

--- Comment #4 from Rainer Orth ro at gcc dot gnu.org 2011-10-19 14:19:24 UTC 
---
Mine, patch submitted.


[Bug target/50705] Wrong assembly generated for bitwise AND for ppc 476

2011-10-19 Thread santoshkumar.a at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50705

--- Comment #11 from SK santoshkumar.a at gmail dot com 2011-10-19 14:22:16 
UTC ---
FILE::
/mm/page_alloc.c:5363
flags - 0x3
HASH_EARLY -  0x1

CODE::
if (flags  HASH_EARLY)

Assembly:
70307c44:   fe 0f e0 54 rlwinm  r0,r7,1,31,31

r7 = 0x3 =        0011 (bits 0...31. So, bit 30 ==
1 and bit 31 == 1).

HASH_EARLY should ideally be seen by the compiler as     
  0001 (bits 0...31. So, bit 31 == 1).

So, if in Little Endian mode, then in PowerPC terms the above if is testing
bit 31 of the flags field. 
In which case, the compiler should be generating assembly as: rlwinm 
r0,r7,0,31,31

However, it appears the compiler sees HASH_EARLY as 1000    
   (bits 0...31. So, bit 0 == 1).
So, if in Little Endian mode, then in PowerPC terms the above if is testing
bit 0 of the flags field.
In which case, the compiler is generating assembly as: rlwinm  r0,r7,1,31,31



CODE::
MMU_FTR_TYPE_47x has 0x40
cur_cpu_spec-mmu_features - 0x140040

static inline int mmu_has_feature(unsigned long feature) {
return(cur_cpu_spec-mmu_features  feature); }

Assembly:
andis.  r10,r11,512

What the above assembly instruction does is basically this: r10 = r11  (512 
16) = r11  0x0200 (i.e. bit 6 is getting tested).
Now, where does 512 come from? Let's look at MMU_FTR_TYPE_47x:

MMU_FTR_TYPE_47x should ideally be seen by the compiler as    
  0100  (bits 0...31. So, bit 25 == 1).
So, if in Little Endian mode, then in PowerPC terms the above  operation is
testing bit 25 of the cur_cpu_spec-mmu_features field.
In which case, the compiler should be generating assembly as: andi.  r10,r11,64

However, it appears the compiler sees MMU_FTR_TYPE_47x as  0010  
    (bits 0...31. So, bit 6 == 1).
So, if in Little Endian mode, then in PowerPC terms the above  is testing
bit 6 of the cur_cpu_spec-mmu_features field.
In which case, the compiler is generating assembly as: andis.  r10,r11,512

++

Therefore it appears that constants are being interrupted wrongly i.e as a
mirror image.

Few Observations:
1) After I compile a small piece of code and run  file binary  the output
is 

ELF 32-bit LSB executable, PowerPC, Versoin 1 (SYSV), dynamically linked (uses
shared libs), for GNU/Linux 2.6.39, not stripped

2) __LITTLE_ENDIAN is defined.

3) Though the above 2 are true the machine is still working in Big Endian.
confirmed by writing 1 into b and reading a[0]. which reads 0.
union endian{
  unsigned int b;
  unsigned char a[4] ;
}

++


[Bug target/50794] New: [picochip] incorrect implementation of ashrsi3 for negative numbers

2011-10-19 Thread Paulo.Matos at csr dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50794

 Bug #: 50794
   Summary: [picochip] incorrect implementation of ashrsi3 for
negative numbers
Classification: Unclassified
   Product: gcc
   Version: 4.6.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: paulo.ma...@csr.com


I was looking at the ashrsi3 implementation in picochip and I find something
odd. I think it would generate incorrect results for negative numbers. Note,
however that I have not tested the code, so this is through inspection only.

Picochip ashrsi3.c contains the following piece of code:

  /* Given a word of sign bits, shift back left to create the
 destination sign bits. */
  wordOfSignBits = __builtin_asri(value.s.high, 15);
  signWord = wordOfSignBits  reverseCount;
  result.s.high |= signWord;

Note however that wordOfSignBits should be 0x for negative value.s.high and
0x for positive value.s.high. However, this will either be 0x for
positive value.s.high or 0x0001 for negative value.s.high. This is because
value.s.high is unsigned, so arithmetic shift will be performed as if on an
unsigned value and the word will never contain the expected value.

Replacing the above by:
  /* Given a word of sign bits, shift back left to create the
 destination sign bits. */
+  HItype topword = value.s.high;
+  wordOfSignBits = __builtin_asri(topword, 15);
-  wordOfSignBits = __builtin_asri(value.s.high, 15);
   signWord = wordOfSignBits  reverseCount;
   result.s.high |= signWord;


[Bug lto/50786] temporary files not cleaned up on LTO errors

2011-10-19 Thread andi-gcc at firstfloor dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50786

--- Comment #2 from Andi Kleen andi-gcc at firstfloor dot org 2011-10-19 
14:40:53 UTC ---
I'm not 100% sure which stage generates them, but I have lots of 
cc*.o and some others (.res etc.) left over after the LTRANS failure.
After two failures in a row i always have a full /.


[Bug tree-optimization/50717] [4.7 Regression] Silent code gen fault with incorrect widening of multiply

2011-10-19 Thread ams at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50717

Andrew Stubbs ams at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #8 from Andrew Stubbs ams at gcc dot gnu.org 2011-10-19 14:41:19 
UTC ---
The bug is now fixed.


[Bug tree-optimization/50780] [4.7 Regression] ICE: verify_gimple failed: invalid operands in ternary operation with -ftree-vectorize -fnon-call-exceptions

2011-10-19 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50780

--- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2011-10-19 
14:54:41 UTC ---
Author: rguenth
Date: Wed Oct 19 14:54:34 2011
New Revision: 180192

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=180192
Log:
2011-10-19  Richard Guenther  rguent...@suse.de

PR middle-end/50780
* tree-ssa-forwprop.c (forward_propagate_into_cond): Verify
the condition is properly gimple before using it.
* tree-eh (stmt_could_throw_1_p): Properly extract the
operation type from comparisons.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-eh.c
trunk/gcc/tree-ssa-forwprop.c


[Bug tree-optimization/50780] [4.7 Regression] ICE: verify_gimple failed: invalid operands in ternary operation with -ftree-vectorize -fnon-call-exceptions

2011-10-19 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50780

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2011-10-19 
14:55:29 UTC ---
Fixed.


[Bug target/50447] [avr] Better support of AND, OR, XOR and PLUS with constant integers for 16- and 32-bit values

2011-10-19 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50447

--- Comment #6 from Georg-Johann Lay gjl at gcc dot gnu.org 2011-10-19 
14:59:05 UTC ---
Author: gjl
Date: Wed Oct 19 14:59:00 2011
New Revision: 180193

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=180193
Log:
PR target/50447
* config/avr/avr.md (cc): New alternative out_plus_noclobber.
(adjust_len): Ditto.
(addhi3): Don't pipe through short; use gen_int_mode instead.
Prior to reload, expand to gen_addhi3_clobber.
(*addhi3): Use avr_out_plus_noclobber if applicable, use
out_plus_noclobber in cc and adjust_len attribute.
(addhi3_clobber): 2 new RTL peepholes.
(addhi3_clobber): New insn.
* config/avr/avr-protos.h: (avr_out_plus_noclobber): New prototype.
* config/avr/avr.c (avr_out_plus_noclobber): New function.
(notice_update_cc): Handle CC_OUT_PLUS_NOCLOBBER.
(avr_out_plus_1): Tweak if only MSB is +/-1 and other bytes are 0.
Set cc0 to set_zn for adiw on 16-bit values.
(adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS_NOCLOBBER.
(expand_epilogue): No need to add 0 to frame_pointer_rtx.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/avr/avr-protos.h
trunk/gcc/config/avr/avr.c
trunk/gcc/config/avr/avr.md


[Bug bootstrap/50778] [4.7 Regression] Bootstrap failure on powerpc-apple-darwin9

2011-10-19 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50778

--- Comment #5 from Dominique d'Humieres dominiq at lps dot ens.fr 2011-10-19 
15:01:47 UTC ---
 Could I have ssh access to one of the boxes that fail?

I can give you access to my (slowww) G5 if you mail me your ssh key.


[Bug target/50733] avr-gcc 4.3.5 generates incorrect code when using PROGMEM macro

2011-10-19 Thread marcos_vc at coel dot com.br
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50733

--- Comment #2 from marcos_vc at coel dot com.br 2011-10-19 15:02:10 UTC ---
In that case avr-gcc should print an error/warning when one try to access
variables that way. I'm newbie for this specific target and this code compiles
without any error or warning.


[Bug lto/50786] temporary files not cleaned up on LTO errors

2011-10-19 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50786

--- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2011-10-19 
15:18:21 UTC ---
cc*.o files are supposed to be cleaned up by the driver(s).  Are you sure
you are not using -save-temps? ;)


[Bug middle-end/50790] ICE in copy_constant on divide by expression that evaluates to zero

2011-10-19 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50790

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

 CC||burnus at gcc dot gnu.org
  Component|fortran |middle-end

--- Comment #1 from Tobias Burnus burnus at gcc dot gnu.org 2011-10-19 
15:23:55 UTC ---
-fdump-tree-original:

  static integer(kind=4) C.1534 = 3 / 0;
  _gfortran_transfer_integer_write (dt_parm.0, C.1534, 4);

It gives with 4.7 the ICE:
  internal compiler error: in copy_constant, at varasm.c:3031

I think it is - at least in general - not be detectable in the front end but
only in the ME.



A similar C test case works (cf. below for a simpler version); I think there is
no compiler option to print a warning -- at least -Wall -Wextra don't.

int
main ()
{
  int i = 3;
  printf (%d\n, 3/(i-i));
  return 0;
}


[Bug lto/50786] temporary files not cleaned up on LTO errors

2011-10-19 Thread andi-gcc at firstfloor dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50786

--- Comment #4 from Andi Kleen andi-gcc at firstfloor dot org 2011-10-19 
15:28:07 UTC ---
I'm not, this was a normal lto bootstrap without any special flags


[Bug middle-end/48087] [4.5/4.6/4.7 Regression] -Wall -Werror adds warnings over and above those generated by -Wall

2011-10-19 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48087

--- Comment #14 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-19 
15:39:08 UTC ---
Thanks for explaining the seen_error mechanism, which I didn't know, but there
is something I still don't understand here. Consider PR49508 (I'm interested
because I opened it ;) : in that case we have only real errors, and then a
bugus warning. I don't see how fiddling with something at beginning of
gimple_push_cleanup could deal with such cases, and indeed if I hack it to
remove the early return, the warning triggers exactly in the same way. Or maybe
all this just indicated that  PR49508 really is a different issue, but I'm not
convinced...


[Bug tree-optimization/50763] [4.7 Regression] ICE: verify_gimple failed: missing PHI def with -ftree-tail-merge

2011-10-19 Thread vries at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50763

--- Comment #6 from vries at gcc dot gnu.org 2011-10-19 15:48:38 UTC ---
Created attachment 25556
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25556
Updated patch, tries to keep dominance info up-to-date.


[Bug middle-end/49310] [4.7 Regression] Compile time hog in var-tracking emit

2011-10-19 Thread aoliva at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49310

--- Comment #10 from Alexandre Oliva aoliva at gcc dot gnu.org 2011-10-19 
15:50:04 UTC ---
Author: aoliva
Date: Wed Oct 19 15:50:00 2011
New Revision: 180194

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=180194
Log:
PR debug/49310
* var-tracking.c (loc_exp_dep, onepart_aux): New structs.
(variable_part): Replace offset with union.
(enum onepart_enum, onepart_enum_t): New.
(variable_def): Drop cur_loc_changed, add onepart.
(value_chain_def, const_value_chain): Remove.
(VAR_PART_OFFSET, VAR_LOC_1PAUX): New macros, with checking.
(VAR_LOC_DEP_LST, VAR_LOC_DEP_LSTP): New macros.
(VAR_LOC_FROM, VAR_LOC_DEPTH, VAR_LOC_DEP_VEC): Likewise.
(value_chain_pool, value_chains): Remove.
(dropped_values): New.
(struct parm_reg): Only if HAVE_window_save.
(vt_stack_adjustments): Don't record register arguments.
(dv_as_rtx): New.
(dv_onepart_p): Return a onepart_enum_t.
(onepart_pool): New.
(dv_pool): Remove.
(dv_from_rtx): New.
(variable_htab_free): Release onepart aux data.  Reset flags.
(value_chain_htab_hash, value_chain_htab_eq): Remove.
(unshare_variable): Use onepart field.  Propagate onepart aux
data or offset.  Drop cur_loc_changed.
(val_store): Cope with NULL insn.  Rephrase dump output.  Check
for unsuitable locs.  Add FIXME on using cselib locs.
(val_reset): Remove FIXME of unfounded concerns.
(val_resolve): Check for unsuitable locs.  Add FIXME on using
cselib locs.
(variable_union): Use onepart field, adjust access to offset.
(NO_LOC_P): New.
(VALUE_CHANGED, DECL_CHANGED): Update doc.
(set_dv_changed): Clear NO_LOC_P when changed.
(find_loc_in_1pdv): Use onepart field.
(intersect_loc_chains): Likewise.
(unsuitable_loc): New.
(loc_cmp): Keep ENTRY_VALUEs at the end of the loc list.
(add_value_chain, add_value_chains): Remove.
(add_cselib_value_chains, remove_value_chain): Likewise.
(remove_value_chains, remove_cselib_value_chains): Likewise.
(canonicalize_loc_order_check): Use onepart.  Drop cur_loc_changed.
(canonicalize_values_star, canonicalize_vars_star): Use onepart.
(variable_merge_over_cur): Likewise.  Adjust access to offset.
Drop cur_loc_changed.
(variable_merge_over_src): Use onepart field.
(remove_duplicate_values): Likewise.
(variable_post_merge_new_vals): Likewise.
(find_mem_expr_in_1pdv): Likewise.
(dataflow_set_preserve_mem_locs): Likewise.  Drop cur_loc_changed
and value chains.
(dataflow_set_remove_mem_locs): Likewise.  Use VAR_LOC_FROM.
(variable_different_p): Use onepart field.  Move onepart test out
of the loop.
(argument_reg_set): Drop.
(add_uses, add_stores): Preserve but do not record in dynamic
tables equivalences for ENTRY_VALUEs and CFA_based addresses.
Avoid unsuitable address expressions.
(EXPR_DEPTH): Unlimit.
(EXPR_USE_DEPTH): Repurpose PARAM_MAX_VARTRACK_EXPR_DEPTH.
(prepare_call_arguments): Use DECL_RTL_IF_SET.
(dump_var): Adjust access to offset.
(variable_from_dropped, recover_dropped_1paux): New.
(variable_was_changed): Drop cur_loc_changed.  Use onepart.
Preserve onepart aux in empty_var.  Recover empty_var and onepart
aux from dropped_values.
(find_variable_location_part): Special-case onepart.  Adjust
access to offset.
(set_slot_part): Use onepart.  Drop cur_loc_changed.  Adjust
access to offset.  Initialize onepaux.  Drop value chains.
(delete_slot_part): Drop value chains.  Use VAR_LOC_FROM.
(VEC (variable, heap), VEC (rtx, stack)): Define.
(expand_loc_callback_data): Drop dummy, cur_loc_changed,
ignore_cur_loc.  Add expanding, pending, depth.
(loc_exp_dep_alloc, loc_exp_dep_clear): New.
(loc_exp_dep_insert, loc_exp_dep_set): New.
(notify_dependents_of_resolved_value): New.
(update_depth, vt_expand_var_loc_chain): New.
(vt_expand_loc_callback): Revamped.
(resolve_expansions_pending_recursion): New.
(INIT_ELCD, FINI_ELCD): New.
(vt_expand_loc): Use the new macros above.  Drop ignore_cur_loc
parameter, adjust all callers.
(vt_expand_loc_dummy): Drop.
(vt_expand_1pvar): New.
(emit_note_insn_var_location): Operate on non-debug decls only.
Revamp multi-part cur_loc recomputation and one-part expansion.
Drop cur_loc_changed.  Adjust access to offset.
(VEC (variable, heap)): Drop.
(changed_variables_stack, changed_values_stack): Drop.
(check_changed_vars_0, check_changed_vars_1): Remove.
(check_changed_vars_2, check_changed_vars_3): Remove.
(values_to_stack, remove_value_from_changed_variables): New.
(notify_dependents_of_changed_value, process_changed_values): New.
(emit_notes_for_changes): Revamp onepart updates.
(emit_notes_for_differences_1): Use onepart.  Drop cur_loc_changed
and value chains.  Propagate onepaux.  Recover empty_var and onepaux
from dropped_values.
(emit_notes_for_differences_2): Drop value chains.
(emit_notes_in_bb): Adjust.
(vt_emit_notes): Drop value chains, changed_variables_stack.
Initialize and release dropped_values.
(create_entry_value): Revamp.
(vt_add_function_parameter): Use new interface.
(note_register_arguments): Remove.
(vt_initialize): Drop value chains and register arguments.

[Bug middle-end/50795] New: [4.7 Regression] FAIL: gcc.dg/tree-ssa/builtin-expect-[1234].c

2011-10-19 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50795

 Bug #: 50795
   Summary: [4.7 Regression] FAIL:
gcc.dg/tree-ssa/builtin-expect-[1234].c
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: hjl.to...@gmail.com


On Linux/x86, revision 180114 gave

FAIL: gcc.dg/tree-ssa/builtin-expect-1.c scan-tree-dump-times gimple
builtin_expect[^\n]*, 0\);\n[^\n]*if 2
FAIL: gcc.dg/tree-ssa/builtin-expect-2.c scan-tree-dump-times gimple
builtin_expect[^\n]*, 0\);\n[^\n]*if 2
FAIL: gcc.dg/tree-ssa/builtin-expect-3.c scan-tree-dump-times gimple
builtin_expect[^\n]*, 0\);\n[^\n]*if 2
FAIL: gcc.dg/tree-ssa/builtin-expect-4.c scan-tree-dump-times gimple
builtin_expect[^\n]*, 0\);\n[^\n]*if 2

Revision 180105 is OK.


[Bug lto/50796] New: [4.7 Regression] FAIL: gcc.dg/plugin/plugindir[1234].c

2011-10-19 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50796

 Bug #: 50796
   Summary: [4.7 Regression] FAIL: gcc.dg/plugin/plugindir[1234].c
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: lto
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: hjl.to...@gmail.com


On Linux/x86, revision 180189 gave

FAIL: gcc.dg/plugin/plugindir1.c (test for excess errors)
FAIL: gcc.dg/plugin/plugindir2.c (test for excess errors)
FAIL: gcc.dg/plugin/plugindir3.c (test for excess errors)
FAIL: gcc.dg/plugin/plugindir4.c (test for excess errors)

Revision 180187 is OK.


[Bug middle-end/48087] [4.5/4.6/4.7 Regression] -Wall -Werror adds warnings over and above those generated by -Wall

2011-10-19 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48087

--- Comment #15 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-19 
15:53:01 UTC ---
On this PR, removing the early return *works*, we have two non-bogus warnings
with -Wall and two errors with -Werror. Maybe we should really proceed one PR
at a time, re-open PR49508.

Now, in detail: do I understand correctly that you are proposing we would use
the new seen_real_errors *only* in gimple_push_cleanup? (at the moment I also
honestly don't know how to tell errors from warnings from real errors, but of
course can figure out myself)


[Bug lto/50786] temporary files not cleaned up on LTO errors

2011-10-19 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50786

--- Comment #5 from Richard Guenther rguenth at gcc dot gnu.org 2011-10-19 
15:55:22 UTC ---
You would need to debug this then - generally the drivers clean up after
them (and I remember testing this, at least for the non-failing case ...)


[Bug bootstrap/50777] [4.7 regression] bootstrap fails on Solaris 10

2011-10-19 Thread ro at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50777

--- Comment #5 from Rainer Orth ro at gcc dot gnu.org 2011-10-19 16:02:35 UTC 
---
Author: ro
Date: Wed Oct 19 16:02:30 2011
New Revision: 180195

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=180195
Log:
Properly test for madvise on Solaris 10 (PR bootstrap/50777)

PR bootstrap/50777
* configure.ac: Save and restore CXXFLAGS around
gcc_AC_CHECK_DECLS uses.
Check for madvise() declaration with g++ if --enable-build-with-cxx.
* configure: Regenerate.
* config.in: Regenerate.
* ggc-page.c (USING_MADVISE): Also check HAVE_DECL_MADVISE.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/config.in
trunk/gcc/configure   (contents, props changed)
trunk/gcc/configure.ac
trunk/gcc/ggc-page.c


[Bug middle-end/50795] [4.7 Regression] FAIL: gcc.dg/tree-ssa/builtin-expect-[1234].c

2011-10-19 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50795

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

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011-10-19
 CC||ktietz at gcc dot gnu.org
 Ever Confirmed|0   |1

--- Comment #1 from Dominique d'Humieres dominiq at lps dot ens.fr 2011-10-19 
16:03:47 UTC ---
A patch has been posted at
http://gcc.gnu.org/ml/gcc-patches/2011-10/msg01613.html .


[Bug bootstrap/50777] [4.7 regression] bootstrap fails on Solaris 10

2011-10-19 Thread ro at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50777

Rainer Orth ro at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #6 from Rainer Orth ro at gcc dot gnu.org 2011-10-19 16:21:35 UTC 
---
Fixed for 4.7.0.


[Bug tree-optimization/50769] [4.7 Regression] ICE: in phi_alternatives_equal, at tree-cfgcleanup.c:355 with -O2 -fno-delete-null-pointer-checks -fno-guess-branch-probability -fipa-pta

2011-10-19 Thread vries at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50769

--- Comment #4 from vries at gcc dot gnu.org 2011-10-19 16:29:52 UTC ---
Author: vries
Date: Wed Oct 19 16:29:42 2011
New Revision: 180197

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=180197
Log:
2011-10-19  Tom de Vries  t...@codesourcery.com

PR tree-optimization/50769
* tree-ssa-tail-merge.c (replace_block_by): Calculate phi_vuse2
unconditionally.  Handle case that phi_vuse2 is not an SSA_NAME.  Add
dummy argument .MEM to phi when increasing number of arguments of phi by
redirecting edges to the block with phi.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-ssa-tail-merge.c


[Bug tree-optimization/50769] [4.7 Regression] ICE: in phi_alternatives_equal, at tree-cfgcleanup.c:355 with -O2 -fno-delete-null-pointer-checks -fno-guess-branch-probability -fipa-pta

2011-10-19 Thread vries at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50769

vries at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #5 from vries at gcc dot gnu.org 2011-10-19 16:32:35 UTC ---
patch checked in, marking fixed.


[Bug c++/50785] [C++0x] static constexpr double undefined reference

2011-10-19 Thread trashyankes at wp dot pl
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50785

--- Comment #11 from trashyankes at wp dot pl 2011-10-19 16:35:06 UTC ---
it will be possible to add better waring/error in this case?
is complicity misleading when you use `static const` or `static constexpr` for
long time and when you try get ref that value you get error.
its get very weird when you have two lines that use it and only one give error.
code:

struct test
{
static const int z = 6;
static constexpr double t = 0.001;
};
templateclass T
T ref(const T i)
{
return i;
}
templateclass T
T value(const T i)
{
return i;
}

int main()
{
value(test::z);
value(test::t);
ref(test::z); //error
ref(test::t); //error
}

until today i thought this code is correct.
maybe some info when you try take ref from const static objects?


[Bug bootstrap/50777] [4.7 regression] bootstrap fails on Solaris 10

2011-10-19 Thread gseanmcg at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50777

--- Comment #7 from Sean McGovern gseanmcg at gmail dot com 2011-10-19 
16:39:15 UTC ---
Thanks for the fix, bootstrapping that revision now.

-- Sean McG.
--Original Message--
From: ro at gcc dot gnu.org
To: McGovern, Sean
Subject: [Bug bootstrap/50777] [4.7 regression] bootstrap fails on Solaris 10
Sent: Oct 19, 2011 12:21

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

Rainer Orth ro at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #6 from Rainer Orth ro at gcc dot gnu.org 2011-10-19 12:21:35 EDT
---
Fixed for 4.7.0.


[Bug c++/50785] [C++0x] static constexpr double undefined reference

2011-10-19 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50785

--- Comment #12 from Jonathan Wakely redi at gcc dot gnu.org 2011-10-19 
16:58:05 UTC ---
(In reply to comment #11)
 it will be possible to add better waring/error in this case?

Not easily, the error you get is from the linker.  This has been discussed MANY
times in other bugzilla reports, search for PRs with status=RESOLVED and the
words static const undefined reference

 maybe some info when you try take ref from const static objects?

No, because there is nothing wrong with doing that as long as you have a
definition for the member.  I do not want the compiler to complain when I write
correct code just to remind people who write incorrect code not to forget
something.


[Bug debug/49459] attribute((mode(byte))) in a typedef produces wrong debug information

2011-10-19 Thread pkoning at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49459

Paul Koning pkoning at gcc dot gnu.org changed:

   What|Removed |Added

  Known to fail||4.1.2

--- Comment #2 from Paul Koning pkoning at gcc dot gnu.org 2011-10-19 
17:00:09 UTC ---
I see the same issue as far back as 4.1.2.

As I mentioned, it works in 3.3.3.  I compared readelf outputs.  The difference
is that in 3.3.3 the typedef points to a DW_TAG_base_type entry, which supplies
the size of 1 -- but also makes the type look like unsigned char instead of
enum.  That at least doesn't break the debugger but it isn't ideal either.


 16d: Abbrev Number: 6 (DW_TAG_variable)
6e   DW_AT_name: foo
72   DW_AT_decl_file   : 1
73   DW_AT_decl_line   : 4
74   DW_AT_type: 0x3a
78   DW_AT_external: 1
79   DW_AT_location: 5 byte block: 3 1 0 0 0 (DW_OP_addr: 1)

 13a: Abbrev Number: 4 (DW_TAG_typedef)
3b   DW_AT_name: e1
3e   DW_AT_decl_file   : 1
3f   DW_AT_decl_line   : 1
40   DW_AT_type: 0x44
 144: Abbrev Number: 5 (DW_TAG_base_type)
45   DW_AT_name: (indirect string, offset: 0x0): unsigned char
49   DW_AT_byte_size   : 1
4a   DW_AT_encoding: 8(unsigned char)


  1   2   >