[Bug c++/50442] Constructing T from implicit conversion to T ambiguous in C++0x mode, not C++98

2011-09-17 Thread mh+gcc at glandium dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50442

Mike Hommey mh+gcc at glandium dot org changed:

   What|Removed |Added

 CC||mh+gcc at glandium dot org

--- Comment #1 from Mike Hommey mh+gcc at glandium dot org 2011-09-17 
06:21:28 UTC ---
More specifically, r178746 from SVN gcc-4_6-branch is affected, while r178501
from the same branch is not.


[Bug libstdc++/50441] [C++0x] type_traits is missing GNU extension types

2011-09-17 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50441

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC||joseph at codesourcery dot
   ||com

--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-17 
09:11:46 UTC ---
The issue seems trivial at the type_traits level, but I'm not sure we want to
do this right away (we have a similar one for numeric_limits and a preliminary
patch sits on my machine): for instance I'm worried that if such types satisfy
an enable_if in overload resolution, then must be handled by the code as any
other integer (or floating point) type, and I don't think that with __int128_t
and __uint128_t the full range of operations available for standard integer
types is available. At least wasn't about a year ago. Also, I don't seem to
remember such types are supported on all the targets. Moreover, when I was
fiddling with numeric_limits, I remember Joseph pointing out the brittle status
(in terms of specs, support, etc) of the 128 bits integer types. Maybe this has
changed?


[Bug libstdc++/50441] [C++0x] type_traits is missing GNU extension types

2011-09-17 Thread marc.glisse at normalesup dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50441

--- Comment #2 from Marc Glisse marc.glisse at normalesup dot org 2011-09-17 
09:30:25 UTC ---
Actually, gcc documents that __int128 is *not* an extended integer type:
http://gcc.gnu.org/onlinedocs/gcc/Integers-implementation.html
(the comment in the source file specifically mentions __int128) so the behavior
is correct. And the standard only allows for 3 floating point types: float,
double and long double.

Now I agree that's not very helpful, I don't know what the libstdc++ policy is
here.


[Bug fortran/50438] [F03] proc pointer to subroutine in structure constructors

2011-09-17 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50438

janus at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011-09-17
Summary|proc pointer to subroutine  |[F03] proc pointer to
   |in structure constructors   |subroutine in structure
   ||constructors
 Ever Confirmed|0   |1

--- Comment #1 from janus at gcc dot gnu.org 2011-09-17 09:39:50 UTC ---
On this variant I get the same error on a different line:


  IMPLICIT NONE
  TYPE :: a
PROCEDURE(aproc), POINTER, NOPASS :: p
  END TYPE
  TYPE(a) :: aa = a(aproc)
CONTAINS
  SUBROUTINE aproc
  END SUBROUTINE
END



PROCEDURE(aproc), POINTER, NOPASS :: p
   1
Error: Symbol 'aproc' at (1) has no IMPLICIT type


[Bug c++/50442] Constructing T from implicit conversion to T ambiguous in C++0x mode, not C++98

2011-09-17 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50442

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jason at gcc dot gnu.org

--- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org 2011-09-17 
09:45:11 UTC ---
maybe the fix for PR 49267 then, Jason?


[Bug c++/50442] Constructing T from implicit conversion to T ambiguous in C++0x mode, not C++98

2011-09-17 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50442

--- Comment #3 from Jonathan Wakely redi at gcc dot gnu.org 2011-09-17 
09:48:55 UTC ---
yep, confirmed that r178552 changed the behaviour


[Bug tree-optimization/50433] [4.7 Regression] ACATS c460010 fails to compile

2011-09-17 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50433

Eric Botcazou ebotcazou at gcc dot gnu.org changed:

   What|Removed |Added

 CC||hubicka at gcc dot gnu.org
  Component|ada |tree-optimization

--- Comment #2 from Eric Botcazou ebotcazou at gcc dot gnu.org 2011-09-17 
10:12:30 UTC ---
 I've already pinged Jan about it.

http://gcc.gnu.org/ml/gcc-patches/2011-09/msg00966.html


[Bug fortran/50403] SIGSEGV in gfc_use_derived

2011-09-17 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50403

--- Comment #8 from janus at gcc dot gnu.org 2011-09-17 10:54:53 UTC ---
Author: janus
Date: Sat Sep 17 10:54:50 2011
New Revision: 178928

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=178928
Log:
2011-09-17  Janus Weil  ja...@gcc.gnu.org

PR fortran/50403
* symbol.c (gfc_use_derived): Fix coding style.

Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/symbol.c


[Bug libstdc++/50441] [C++0x] type_traits is missing GNU extension types

2011-09-17 Thread joseph at codesourcery dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50441

--- Comment #3 from joseph at codesourcery dot com joseph at codesourcery dot 
com 2011-09-17 11:23:43 UTC ---
I have used the term sui generis extended type to refer to types such as 
__int128 that share many properties of integer types but are not such 
types (since intmax_t forms part of the ABI and these types are wider than 
intmax_t).  I don't know what that means for type traits.

All the C operations should work fine on __int128, and for __float128 
where applicable (although it isn't possible to write _Complex __float128 
at present since __float128 is not a keyword).  ARM __fp16 is more 
restricted (in general values are promoted to float before arithmetic) and 
IA64 __fpreg is fairly clearly different from normal floating-point types.

See PR 43622 and references therein.  C++ support that should be present 
for such types, both integer-like and floating-point-like (not __fpreg in 
most cases, I suppose) includes typeinfo, numeric_limits (maybe with 
associated built-in macros), I/O (see libquadmath which libgfortran can 
use, and the associated complications of only linking it in static links 
if required) and mathematical functions in general.


[Bug c++/50443] New: ICE when using brace-enclosed initializer for C-style array in constructor

2011-09-17 Thread z0sh at sogetthis dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50443

 Bug #: 50443
   Summary: ICE when using brace-enclosed initializer for C-style
array in constructor
Classification: Unclassified
   Product: gcc
   Version: 4.6.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: z...@sogetthis.com
  Host: x86
Target: x86


The following code causes GCC 4.6.1 with -std=c++0x to crash:

struct Foo
{
  Foo() : a{{5,7,3}} { }
  int a[3];
};


Message: internal compiler error: in cxx_eval_bare_aggregate, at
cp/semantics.c:6539


[Bug testsuite/50185] [4.7 Regression] Bad AVX2 tests

2011-09-17 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50185

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

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED

--- Comment #7 from Dominique d'Humieres dominiq at lps dot ens.fr 2011-09-17 
12:50:47 UTC ---
I think this is fixed since r178302, hence closing. Please reopen if I am
wrong.


[Bug libstdc++/50441] [C++0x] type_traits is missing GNU extension types

2011-09-17 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50441

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC||paolo.carlini at oracle dot
   ||com

--- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-17 
14:03:41 UTC ---
Ok. I'm still not sure what we should here. In particular, as Marc pointed out,
C++ is very clear about float, double and long double being the only floating
point types. I guess to be safe, better starting with numeric_limits? In terms
of operations, at some point for sure the extended integer types could not be
default constructed, I'm sure because I helped a friend tweaking code to wa
such issue. I suppose I should check again.


[Bug libstdc++/50441] [C++0x] type_traits is missing GNU extension types

2011-09-17 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50441

--- Comment #5 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-17 
14:23:42 UTC ---
Uhm, I noticed only now that submitter talks explicitly about -std=gnu++0x, not
-std=c++0x. Sorry. Would be the first time I guess we enable a C++11 feature
only for gnu but I think the whole idea makes much more sense.


[Bug fortran/50438] [F03] proc pointer to subroutine in structure constructors

2011-09-17 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50438

--- Comment #2 from janus at gcc dot gnu.org 2011-09-17 15:00:33 UTC ---
Contrary to what I suggested in

http://gcc.gnu.org/ml/fortran/2011-09/msg00083.html

this problem does not seem to be specific to SUBROUTINEs. It also happens when
making proc/aproc FUNCTIONS.


[Bug c/50444] New: unaligned movdqa instruction after inlining

2011-09-17 Thread john.salmon at deshaw dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50444

 Bug #: 50444
   Summary: unaligned movdqa instruction after inlining
Classification: Unclassified
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: john.sal...@deshaw.com


Created attachment 25309
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25309
C example

On Linux, x86_64, the attached code segfaults when compiled with
gcc4.6.1 and gcc4.6.0.  There's no problem with gcc-4.5.3, nor
when -O1 is removed.

gdb reports that the instruction at the pc when it segfaults is:

   movdqa %xmm0, 0x28(%rbx)

and that 0x28(%rbx) is only 8-bit aligned.  It looks like the
alignment requirement of the movdqa instruction has somehow been
forgotten in the optimization that inlined the call to both caster()
and ssefunc() and eliminated the memcpys.

salm...@drdlogin0039.en.desres$ desres-cleanenv -m gcc/4.6.1-23A/bin gcc -Wall
-O1 e2.c
salm...@drdlogin0039.en.desres$ a.out
Segmentation fault (core dumped)
salm...@drdlogin0039.en.desres$ gdb a.out
GNU gdb (GDB) 7.0.1
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type show copying
and show warranty for details.
This GDB was configured as x86_64-unknown-linux-gnu.
For bug reporting instructions, please see:
http://www.gnu.org/software/gdb/bugs/...
Reading symbols from /d/en/salmonj-0/junk/misalign/a.out...done.
(gdb) r
Starting program: /d/en/salmonj-0/junk/misalign/a.out 
warning: no loadable sections found in added symbol-file system-supplied DSO at
0x2aaab000

Program received signal SIGSEGV, Segmentation fault.
_mm_xor_si128 (e=0x7fffc070) at e2.c:51
51e-v = caster(*incr(e-c), e-key);
(gdb) x /10i $pc
0x400504 method+28:movdqa %xmm0,0x28(%rbx)
0x400509 method+33:movq   $0x4,0x20(%rbx)
0x400511 method+41:mov0x20(%rbx),%rax
0x400515 method+45:lea-0x1(%rax),%rdx
0x400519 method+49:mov%rdx,0x20(%rbx)
0x40051d method+53:mov0x24(%rbx,%rax,4),%eax
0x400521 method+57:pop%rbx
0x400522 method+58:retq   
0x400523 main:push   %rbx
0x400524 main+1:add$0xff80,%rsp
(gdb) info reg
rax0x7fffc080140737488339072
rbx0x7fffc070140737488339056
rcx0x4005704195696
rdx0x7fffc1a8140737488339368
rsi0x7fffc198140737488339352
rdi0x7fffc080140737488339072
rbp0x00x0
rsp0x7fffc0200x7fffc020
r8 0x3f8b3532d0272918459088
r9 0x3f8ac0d730272910833456
r100x00
r110x3f8b01d8a0272915093664
r120x00
r130x7fffc190140737488339344
r140x00
r150x00
rip0x4005040x400504 method+28
eflags 0x10202[ IF RF ]
cs 0x3351
ss 0x2b43
ds 0x00
es 0x00
fs 0x00
gs 0x00
fctrl  0x37f895
fstat  0x00
ftag   0x65535
fiseg  0x00
fioff  0x00
foseg  0x00
fooff  0x00
fop0x00
mxcsr  0x1f80[ IM DM ZM OM UM PM ]
(gdb)


[Bug libstdc++/50441] [C++0x] type_traits is missing GNU extension types

2011-09-17 Thread classixretrox at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50441

--- Comment #6 from RétroX classixretrox at gmail dot com 2011-09-17 16:32:18 
UTC ---
Yeah, I was talking about specifically -std=gnu++0x, because that implies that
you're accepting the GNU extensions into the standard.

I suppose that in this case, because the standard is so strict, having more
than the standard types would probably be a bad idea.  However, having
numeric_limits for them doesn't seem to have any negative impacts; on systems
that support the type, you should be able to get information on the type.


[Bug tree-optimization/34265] Missed optimizations

2011-09-17 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34265

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

   What|Removed |Added

 CC||irar at gcc dot gnu.org,
   ||wschmidt at gcc dot gnu.org

--- Comment #36 from Dominique d'Humieres dominiq at lps dot ens.fr 
2011-09-17 17:09:59 UTC ---
The pr 34265 and 49006 have been fixed by revision 176984:

Author:wschmidt
Date:Sun Jul 31 18:58:06 2011 UTC (6 weeks, 5 days ago)
Changed paths:2
Log Message:
2011-07-29  Bill Schmidt  wschm...@linux.vnet.ibm.com

PR tree-optimization/49749
* tree-ssa-reassoc.c (get_rank): New forward declaration.
(PHI_LOOP_BIAS): New macro.
(phi_rank): New function.
(loop_carried_phi): Likewise.
(propagate_rank): Likewise.
(get_rank): Add calls to phi_rank and propagate_rank.

The following table compare the execution time and the line at which the
vectorizer reports the vectorization for the twelve variants described in
comment #34, showing that they are now all vectorized:

revision   176983  176984  178905
num den rot  time  line  time  line  time  line
 o   o   o  2.154s  243 2.154s  243 2.133s  243 
 u   o   o  1.973s  243 1.970s  243 2.035s  243 
 o   u   o  2.024s  243 2.023s  243 1.977s  243 
 u   u   o  3.053s  1.817s  234 1.831s  234 
 o   o   u  3.015s  1.839s  234 1.841s  234 
 u   o   u  3.030s  1.828s  234 1.816s  234 
 o   u   u  3.049s  1.818s  234 1.834s  234 
 u   u   u  3.059s  1.820s  234 1.818s  234 
 o   o   f  3.010s  1.825s  234 1.822s  234 
 u   o   f  3.033s  1.836s  234 1.826s  234 
 o   u   f  3.061s  1.814s  234 1.828s  234 
 u   u   f  3.058s  1.825s  234 1.812s  234 
graphite1.937s  243 1.938s  243 1.912s  243 

(num, den and rot stand for numerator, denominator and rotate respectively; o,
u, and f stand for original, unrolled, and folded.

Since now gcc has (at least for this class of code;) the three properties I
expect from a good optimizer:
(1) it does not destroy the hand optimization I have done;
(2) it optimizes the original code;
(3) it has a consistent behavior across variants;
I think a test should be added to the test suite to check that none of these
properties are lost in future revisions.


[Bug fortran/50438] [F03] proc pointer to subroutine in structure constructors

2011-09-17 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50438

--- Comment #3 from janus at gcc dot gnu.org 2011-09-17 17:44:25 UTC ---
I think the problem is that the structure constructor is resolved too early
(already when parsing the corresponding source line, where 'aproc' is not known
yet).

Here is a simple patch to avoid this:


Index: gcc/fortran/expr.c
===
--- gcc/fortran/expr.c(revision 178927)
+++ gcc/fortran/expr.c(working copy)
@@ -2654,7 +2654,6 @@ gfc_match_init_expr (gfc_expr **result)
 {
   gfc_expr *expr;
   match m;
-  gfc_try t;

   expr = NULL;

@@ -2667,14 +2666,6 @@ gfc_match_init_expr (gfc_expr **result)
   return m;
 }

-  t = gfc_reduce_init_expr (expr);
-  if (t != SUCCESS)
-{
-  gfc_free_expr (expr);
-  gfc_init_expr_flag = false;
-  return MATCH_ERROR;
-}
-
   *result = expr;
   gfc_init_expr_flag = false;



It cures both test cases, but I'm pretty sure it will have quite a number of
testsuite failures (haven't checked yet). If we remove it here,
'gfc_reduce_init_expr' should be called somewhere at resolution stage, of
course! We just need a suitable place for doing this ...


[Bug fortran/50438] [F03] proc pointer to subroutine in structure constructors

2011-09-17 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50438

--- Comment #4 from janus at gcc dot gnu.org 2011-09-17 17:53:01 UTC ---
(In reply to comment #3)
 I think the problem is that the structure constructor is resolved too early

Btw, there was a similar problem recently (PR 49112 comment 6), which was fixed
by this patch:

http://gcc.gnu.org/ml/fortran/2011-07/msg00305.html


[Bug target/50223] AVRGCC - dont clear r26 and r27.....its a (small) waste of CPU cycles.

2011-09-17 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50223

Georg-Johann Lay gjl at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
  Known to work||4.6.1
 Resolution||WORKSFORME

--- Comment #2 from Georg-Johann Lay gjl at gcc dot gnu.org 2011-09-17 
18:35:52 UTC ---
Following test program

extern uint8_t leadingZeros[];

#define pgm_read(a,b) asm (lpm %0,%a1 : =r (a) : z ((uint16_t)(b)))

uint8_t ldgZeroCntNormU32 (uint32_t* x)
{
  uint8_t zCount = 0;
  uint8_t shft;
  uint32_t quad = *x;

  while (!(uint8_t)(quad  24))
  {
zCount += 8;
quad =8;
  }
  pgm_read (shft, leadingZeros[(uint8_t)(quad  24)]);
  *x = quad  shft;
  return zCount + shft;
}

yields with avr-gcc-4.6.1 -Os -mmcu=atmega8 -S following result:

ldgZeroCntNormU32:
movw r26,r24
ld r20,X+
ld r21,X+
ld r22,X+
ld r23,X
sbiw r26,3
ldi r24,lo8(0)
rjmp .L2
.L3:
subi r24,lo8(-(8))
mov r23,r22
mov r22,r21
mov r21,r20
clr r20
.L2:
mov r30,r23
tst r23
breq .L3
ldi r31,lo8(0)
subi r30,lo8(-(leadingZeros))
sbci r31,hi8(-(leadingZeros))
/* #APP */
 ;  20 foo.c 1
lpm r30,Z
 ;  0  2
/* #NOAPP */
mov r0,r30
rjmp 2f
1:lsl r20
rol r21
rol r22
rol r23
2:dec r0
brpl 1b
st X+,r20
st X+,r21
st X+,r22
st X,r23
sbiw r26,3
add r24,r30
ret

So there is no CLR for the while (!(uint8_t)(quad  24))

Closed as works for me.


[Bug lto/50394] [meta-bug] Issues with building libreoffice with LTO

2011-09-17 Thread markus at trippelsdorf dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50394

--- Comment #12 from Markus Trippelsdorf markus at trippelsdorf dot de 
2011-09-17 19:35:56 UTC ---
(In reply to comment #11)
 With fix I commited for PR50430 and the workaround for PR50383 my build dies 
 on
 java modules.  I believe it is the problem we run into with Michael on the
 opensuse conference and we made that module to be last (it is because on my
 setup sun java does not work and ibm java apparently breaks with current
 libreoffice). So perhaps this is all needed?

It will build fine with LTO (and --without-java), but the resulting binary
crashes during startup:

terminate called after throwing an instance of
'com::sun::star::container::NoSuchElementException'
It throws an exception in: xmlreader::XmlReader::XmlReader(rtl::OUString
const) () from image/usr/ure/lib/libxmlreader.so.
This happens in xmlreader/source/xmlreader.cxx.

I haven't looked deeper yet, but a non LTO build shows no problems at all.


[Bug libstdc++/50441] [C++0x] type_traits is missing GNU extension types

2011-09-17 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50441

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011-09-17
 CC|paolo.carlini at oracle dot |
   |com |
 AssignedTo|unassigned at gcc dot   |paolo.carlini at oracle dot
   |gnu.org |com
 Ever Confirmed|0   |1


[Bug libstdc++/50441] [C++0x] type_traits is missing GNU extension types

2011-09-17 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50441

--- Comment #7 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-17 
19:51:48 UTC ---
Ok, I'm doing this. By the way, the type for which we had weird problems was
__m128i, not __int128_t (not my idea using it...)


[Bug libstdc++/50441] [C++0x] type_traits is missing GNU extension types

2011-09-17 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50441

--- Comment #8 from Jonathan Wakely redi at gcc dot gnu.org 2011-09-17 
20:33:31 UTC ---
(In reply to comment #4)
 In terms
 of operations, at some point for sure the extended integer types

*Ahem!* __int128 is not an extended integer type! GCC does not support any
extended integer types! :)

http://gcc.gnu.org/onlinedocs/gcc/Integers-implementation.html


[Bug c++/50445] New: Rejects use of constant expression using a pointer non-type template parameter

2011-09-17 Thread schaub.johannes at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50445

 Bug #: 50445
   Summary: Rejects use of constant expression using a pointer
non-type template parameter
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: schaub.johan...@googlemail.com


This is rejected by GCC:

extern int const values[] = { 1, 2, 3 }; 

templateint const *values struct X { 
   static int const val0 = values[0]; 
}; 

int array[Xvalues::val0];

GCC error message:

error: non-constant in-class initialization invalid for static member
'X((const int*)( values))::val0'

However, as far as I can see, values[0] is a valid integral constant
expression.


[Bug libstdc++/50441] [C++0x] type_traits is missing GNU extension types

2011-09-17 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50441

--- Comment #9 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-17 
20:40:30 UTC ---
Sorry, I didn't mean *extended* in any technical sense, but in the same sense
used by Joseph, sui generis.


[Bug c++/50443] ICE when using brace-enclosed initializer for C-style array in constructor

2011-09-17 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50443

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org 2011-09-17 
20:49:21 UTC ---
works fine with
gcc version 4.7.0 20110917 (experimental) [trunk revision 178930] (GCC) 
and
gcc version 4.6.2 20110917 (prerelease) [gcc-4_6-branch revision 178930] (GCC)


[Bug c++/50443] ICE when using brace-enclosed initializer for C-style array in constructor

2011-09-17 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50443

--- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org 2011-09-17 
20:55:14 UTC ---
by works fine I mean no ICE, there's an error because it should be a{5,7,3}


[Bug libstdc++/50441] [C++0x] type_traits is missing GNU extension types

2011-09-17 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50441

--- Comment #10 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-17 
21:19:05 UTC ---
I'd like to have some help about the best way to figure out whether the target
supports __int128_t and __uint128_t: is __CHAR_BIT__ * __SIZEOF_LONG__ = 64
good enough?


[Bug libstdc++/50441] [C++0x] type_traits is missing GNU extension types

2011-09-17 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50441

--- Comment #11 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-17 
21:32:49 UTC ---
Better adding configure tests...


[Bug lto/50394] [meta-bug] Issues with building libreoffice with LTO

2011-09-17 Thread markus at trippelsdorf dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50394

--- Comment #13 from Markus Trippelsdorf markus at trippelsdorf dot de 
2011-09-17 21:42:57 UTC ---
(In reply to comment #12)
 (In reply to comment #11)
  With fix I commited for PR50430 and the workaround for PR50383 my build 
  dies on
  java modules.  I believe it is the problem we run into with Michael on the
  opensuse conference and we made that module to be last (it is because on my
  setup sun java does not work and ibm java apparently breaks with current
  libreoffice). So perhaps this is all needed?
 
 It will build fine with LTO (and --without-java), but the resulting binary
 crashes during startup:
 
 terminate called after throwing an instance of
 'com::sun::star::container::NoSuchElementException'
 It throws an exception in: xmlreader::XmlReader::XmlReader(rtl::OUString
 const) () from image/usr/ure/lib/libxmlreader.so.
 This happens in xmlreader/source/xmlreader.cxx.
 
 I haven't looked deeper yet, but a non LTO build shows no problems at all.

The above happened when I configured --with-max-jobs=4 and --with-num-cpus=4.
With -with-max-jobs=1 and --with-num-cpus=4 I get a different crash on startup:


Program received signal SIGABRT, Aborted.
0x77db7695 in __GI_raise (sig=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:64
64return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
#0  0x77db7695 in __GI_raise (sig=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1  0x77db8b3d in __GI_abort () at abort.c:93
#2  0x77bc486d in _Unwind_SetGRValue (val=optimized out,
index=optimized out, context=optimized out) at
/var/tmp/portage/sys-devel/gcc-4.5.3-r1/work/gcc-4.5.3/libgcc/../gcc/unwind-dw2.c:253
#3  uw_update_context_1 (context=0x7fffbdc0, fs=0x7fffbc40) at
/var/tmp/portage/sys-devel/gcc-4.5.3-r1/work/gcc-4.5.3/libgcc/../gcc/unwind-dw2.c:1368
#4  0x77bc4b91 in uw_update_context (context=0x7fffbdc0,
fs=0x7fffbc40) at
/var/tmp/portage/sys-devel/gcc-4.5.3-r1/work/gcc-4.5.3/libgcc/../gcc/unwind-dw2.c:1388
#5  0x77bc57cb in _Unwind_RaiseException (exc=0xe64150) at
/var/tmp/portage/sys-devel/gcc-4.5.3-r1/work/gcc-4.5.3/libgcc/../gcc/unwind.inc:122
#6  0x77d0d741 in __cxa_throw () from /usr/lib64/libstdc++.so.6
#7  0x718915c8 in gcc3::raiseException(_uno_Any*, _uno_Mapping*) ()
from
/var/tmp/portage/app-office/libreoffice--r1/image/usr/ure/lib/libgcc3_uno.so
#8  0x71892dff in
cpp2uno_call(bridges::cpp_uno::shared::CppInterfaceProxy*,
_typelib_TypeDescription const*, _typelib_TypeDescriptionReference*, int,
_typelib_MethodParameter*, void**, void**, void**, unsigned long*) () from
/var/tmp/portage/app-office/libreoffice--r1/image/usr/ure/lib/libgcc3_uno.so
#9  0x71893553 in cpp_vtable_call () from
/var/tmp/portage/app-office/libreoffice--r1/image/usr/ure/lib/libgcc3_uno.so
#10 0x71895356 in privateSnippetExecutor () from
/var/tmp/portage/app-office/libreoffice--r1/image/usr/ure/lib/libgcc3_uno.so
#11 0x779389f3 in cppu::throwException(com::sun::star::uno::Any const)
() from
/var/tmp/portage/app-office/libreoffice--r1/image/usr/program/../basis-link/program/../ure-link/lib/libuno_cppuhelpergcc3.so.3
#12 0x769cd7ec in
ucbhelper::cancelCommandExecution(com::sun::star::ucb::IOErrorCode,
com::sun::star::uno::Sequencecom::sun::star::uno::Any const,
com::sun::star::uno::Referencecom::sun::star::ucb::XCommandEnvironment
const, rtl::OUString const,
com::sun::star::uno::Referencecom::sun::star::ucb::XCommandProcessor const)
() from
/var/tmp/portage/app-office/libreoffice--r1/image/usr/program/../basis-link/program/libucbhelper4gcc3.so
#13 0x in ?? ()


[Bug c++/50443] ICE when using brace-enclosed initializer for C-style array in constructor

2011-09-17 Thread z0sh at sogetthis dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50443

--- Comment #3 from Kerrek SB z0sh at sogetthis dot com 2011-09-17 21:50:05 
UTC ---
Alright, if it's fixed already, that's fine. I only have the full release
versions, so I didn't test anything newer than 4.6.1. Thanks!


[Bug c++/50442] [4.6 regression] Constructing T from implicit conversion to T ambiguous in C++0x mode, not C++98

2011-09-17 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50442

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||rejects-valid
 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011-09-17
Version|4.6.1   |4.6.2
 AssignedTo|unassigned at gcc dot   |jason at gcc dot gnu.org
   |gnu.org |
Summary|Constructing T from |[4.6 regression]
   |implicit conversion to T   |Constructing T from
   |ambiguous in C++0x mode,|implicit conversion to T
   |not C++98   |ambiguous in C++0x mode,
   ||not C++98
 Ever Confirmed|0   |1


[Bug c++/50442] [4.6 regression] Constructing T from implicit conversion to T ambiguous in C++0x mode, not C++98

2011-09-17 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50442

--- Comment #4 from Jason Merrill jason at gcc dot gnu.org 2011-09-17 
22:35:15 UTC ---
Author: jason
Date: Sat Sep 17 22:35:10 2011
New Revision: 178932

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=178932
Log:
PR c++/50442
Revert:
PR c++/49267
* call.c (compare_ics): rvaluedness_matches_p can differ
based on the source type, not just target.

Removed:
branches/gcc-4_6-branch/gcc/testsuite/g++.dg/cpp0x/rv-conv1.C
Modified:
branches/gcc-4_6-branch/gcc/cp/ChangeLog
branches/gcc-4_6-branch/gcc/cp/call.c
branches/gcc-4_6-branch/gcc/testsuite/ChangeLog


[Bug c++/49267] Ambiguity with conversion functions T and T, initializing a T

2011-09-17 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49267

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|4.6.2   |4.7.0

--- Comment #6 from Jason Merrill jason at gcc dot gnu.org 2011-09-17 
22:37:08 UTC ---
The fix in 4.6.2 caused bug 50442, so I've reverted it; still fixed for 4.7.


[Bug c++/49267] Ambiguity with conversion functions T and T, initializing a T

2011-09-17 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49267

--- Comment #5 from Jason Merrill jason at gcc dot gnu.org 2011-09-17 
22:35:15 UTC ---
Author: jason
Date: Sat Sep 17 22:35:10 2011
New Revision: 178932

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=178932
Log:
PR c++/50442
Revert:
PR c++/49267
* call.c (compare_ics): rvaluedness_matches_p can differ
based on the source type, not just target.

Removed:
branches/gcc-4_6-branch/gcc/testsuite/g++.dg/cpp0x/rv-conv1.C
Modified:
branches/gcc-4_6-branch/gcc/cp/ChangeLog
branches/gcc-4_6-branch/gcc/cp/call.c
branches/gcc-4_6-branch/gcc/testsuite/ChangeLog


[Bug c++/50442] [4.6 regression] Constructing T from implicit conversion to T ambiguous in C++0x mode, not C++98

2011-09-17 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50442

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #5 from Jason Merrill jason at gcc dot gnu.org 2011-09-17 
22:35:48 UTC ---
Fixed by reverting the earlier patch.


[Bug libstdc++/50441] [C++0x] type_traits is missing GNU extension types

2011-09-17 Thread paolo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50441

--- Comment #12 from paolo at gcc dot gnu.org paolo at gcc dot gnu.org 
2011-09-17 23:53:30 UTC ---
Author: paolo
Date: Sat Sep 17 23:53:26 2011
New Revision: 178933

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

PR libstdc++/50441
* acinclude.m4 ([GLIBCXX_ENABLE_INT128_FLOAT128]): Add.
* configure.ac: Call it.
* include/std/type_traits (__is_integral_helper__int128_t,
__is_integral_helper__uint128_t,
__is_floating_point_helper__float128,
__make_unsigned__int128_t, __make_signed__uint128_t): Add.
* testsuite/20_util/make_signed/requirements/typedefs-1.cc: Extend.
* testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
* testsuite/20_util/make_unsigned/requirements/typedefs-1.cc: Likewise.
* testsuite/20_util/make_unsigned/requirements/typedefs-2.cc: Likewise.
* testsuite/20_util/is_signed/value.cc: Likewise.
* testsuite/20_util/is_unsigned/value.cc: Likewise.
* testsuite/20_util/is_integral/value.cc: Likewise.
* testsuite/20_util/is_floating_point/value.cc: New.
* testsuite/20_util/is_floating_point/requirements/typedefs.cc:
Likewise.
* testsuite/20_util/is_floating_point/requirements/
explicit_instantiation.cc: Likewise.
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
dg-error line numbers.
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
Likewise.
* testsuite/20_util/declval/requirements/1_neg.cc: Likewise.
* configure: Regenerate.
* config.h.in: Likewise.

Added:
trunk/libstdc++-v3/testsuite/20_util/is_floating_point/
trunk/libstdc++-v3/testsuite/20_util/is_floating_point/requirements/
   
trunk/libstdc++-v3/testsuite/20_util/is_floating_point/requirements/explicit_instantiation.cc
   
trunk/libstdc++-v3/testsuite/20_util/is_floating_point/requirements/typedefs.cc
trunk/libstdc++-v3/testsuite/20_util/is_floating_point/value.cc
Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/acinclude.m4
trunk/libstdc++-v3/config.h.in
trunk/libstdc++-v3/configure
trunk/libstdc++-v3/configure.ac
trunk/libstdc++-v3/include/std/type_traits
trunk/libstdc++-v3/testsuite/20_util/declval/requirements/1_neg.cc
trunk/libstdc++-v3/testsuite/20_util/is_integral/value.cc
trunk/libstdc++-v3/testsuite/20_util/is_signed/value.cc
trunk/libstdc++-v3/testsuite/20_util/is_unsigned/value.cc
trunk/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-1.cc
trunk/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc
   
trunk/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs_neg.cc
   
trunk/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-1.cc
   
trunk/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc
   
trunk/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc


[Bug libstdc++/50441] [C++0x] type_traits is missing GNU extension types

2011-09-17 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50441

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

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

--- Comment #13 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-17 
23:55:22 UTC ---
Done.