[Bug target/58067] ICE in GFortran recog.c:2158

2013-08-03 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58067

--- Comment #2 from Uroš Bizjak ubizjak at gmail dot com ---
You can add -mtls-dialect=gnu2 to -fpic and -mcmodel=large.

[Bug c++/58047] parse error with typedef introduced from base class

2013-08-03 Thread fabien at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58047

fabien at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |fabien at gcc dot 
gnu.org

--- Comment #4 from fabien at gcc dot gnu.org ---
(In reply to Paolo Carlini from comment #3)
 Seems closely related to PR37140.

Can be a dup indeed, but let it open. This way, I will not forget to check this
tescase when I work on PR37140 -- which I generally don't for duplicates.


[Bug testsuite/58070] New: gcc.c-torture: useless check -O3 -fomit-frame-pointer

2013-08-03 Thread bernd.edlinger at hotmail dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58070

Bug ID: 58070
   Summary: gcc.c-torture: useless check -O3
-fomit-frame-pointer
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: testsuite
  Assignee: unassigned at gcc dot gnu.org
  Reporter: bernd.edlinger at hotmail dot de

The -fomit-frame-pointer is now (since 4.6) the default at -O3.

Therefore I would suggest to change that to test
-O3 and -O3 -fno-omit-frame-pointer instead.


[Bug target/53976] [SH] Unnecessary clrt after bt

2013-08-03 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53976

--- Comment #3 from Oleg Endo olegendo at gcc dot gnu.org ---
(In reply to Oleg Endo from comment #2)
 Interestingly, the following function shows some improved behavior (notice
 the removed volatile mem store):
 
 int test_2_1 (int* a, int b, int c)
 {
   a[1] = b != 0;
 
   if (b == 0)
 a[10] = c;
 
   return b == 0;
 }
 
 -O2 -m2a:
 tst r5,r5
 movrt   r1
 mov.l   r1,@(4,r4)
 bf  .L4
 mov.l   r6,@(40,r4)
 .L4:
 rts
 movtr0
 
 
 This is already minimal.
 However, for non-SH2A it's still the same:
 tst r5,r5
 mov #-1,r1
 negcr1,r1
 tst r5,r5
 bf/s.L4
 mov.l   r1,@(4,r4)
 mov.l   r6,@(40,r4)
 tst r5,r5
 .L4:
 rts
 movtr0

One of the problems in this case is that negc clobbers the T bit.  Another
alternative
movt   r0
xor#1,r0

should be selected here.  This could be done by looking at the insns around the
negc-movrt and check whether some insn after negc-movrt sets the T bit in the
same way as it was set before the negc-movrt.  In this case not clobbering the
T bit would eliminate the redundant test.  However, if this pattern occurs in a
loop or pressure on R0 is high, using negc and the redundant test is probably
going to be better.


[Bug middle-end/58041] Unaligned access to arrays in packed structure

2013-08-03 Thread bernd.edlinger at hotmail dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58041

--- Comment #27 from Bernd Edlinger bernd.edlinger at hotmail dot de ---
(In reply to Martin Jambor from comment #24)
 Created attachment 30594 [details]
 Proposed patch

I think it would be safe to put my initial test case
under gcc/testsuite/gcc.target/arm/pr58041.c

It passes with your patch at least in my environment.


[Bug testsuite/58070] gcc.c-torture: useless check -O3 -fomit-frame-pointer

2013-08-03 Thread sch...@linux-m68k.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58070

--- Comment #1 from Andreas Schwab sch...@linux-m68k.org ---
This is target dependent.


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

2013-08-03 Thread hubicka at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45375

--- Comment #187 from Jan Hubicka hubicka at gcc dot gnu.org ---
WPA time report
Execution times (seconds)
 phase setup :   0.01 ( 0%) usr   0.00 ( 0%) sys   0.01 ( 0%) wall 
  1398 kB ( 0%) ggc
 phase opt and generate  :  80.79 (13%) usr   1.01 ( 3%) sys  81.96 (12%) wall 
315727 kB (25%) ggc
 phase stream in : 283.33 (45%) usr   7.82 (24%) sys 292.12 (44%) wall 
940315 kB (74%) ggc
 phase stream out: 261.66 (42%) usr  23.14 (72%) sys 287.88 (43%) wall 
  7534 kB ( 1%) ggc
 garbage collection  :  14.45 ( 2%) usr   0.02 ( 0%) sys  14.48 ( 2%) wall 
 0 kB ( 0%) ggc
 callgraph optimization  :   2.55 ( 0%) usr   0.00 ( 0%) sys   2.55 ( 0%) wall 
33 kB ( 0%) ggc
 ipa cp  :  10.45 ( 2%) usr   0.36 ( 1%) sys  10.81 ( 2%) wall 
456287 kB (36%) ggc
 ipa inlining heuristics :  42.12 ( 7%) usr   1.06 ( 3%) sys  43.27 ( 7%) wall
1485346 kB (117%) ggc
 ipa lto gimple in   :   0.56 ( 0%) usr   0.25 ( 1%) sys   0.87 ( 0%) wall 
 0 kB ( 0%) ggc
 ipa lto gimple out  :  21.77 ( 3%) usr   1.72 ( 5%) sys  23.53 ( 4%) wall 
 0 kB ( 0%) ggc
 ipa lto decl in : 183.90 (29%) usr   4.77 (15%) sys 189.46 (29%) wall 
959299 kB (76%) ggc
 ipa lto decl out: 231.70 (37%) usr  10.78 (34%) sys 242.73 (37%) wall 
 0 kB ( 0%) ggc
 ipa lto cgraph I/O  :  14.38 ( 2%) usr   1.57 ( 5%) sys  15.99 ( 2%) wall
2405760 kB (190%) ggc
 ipa lto decl merge  :  32.16 ( 5%) usr   0.00 ( 0%) sys  32.24 ( 5%) wall 
  8268 kB ( 1%) ggc
 ipa lto cgraph merge:  28.72 ( 5%) usr   0.06 ( 0%) sys  28.81 ( 4%) wall 
135235 kB (11%) ggc
 whopr wpa   :   9.57 ( 2%) usr   0.05 ( 0%) sys   9.62 ( 1%) wall 
  7537 kB ( 1%) ggc
 whopr wpa I/O   :   2.07 ( 0%) usr  10.62 (33%) sys  15.49 ( 2%) wall 
 0 kB ( 0%) ggc
 whopr partitioning  :   3.26 ( 1%) usr   0.03 ( 0%) sys   3.29 ( 0%) wall 
 0 kB ( 0%) ggc
 ipa reference   :   5.55 ( 1%) usr   0.05 ( 0%) sys   5.62 ( 1%) wall 
 0 kB ( 0%) ggc
 ipa profile :   2.82 ( 0%) usr   0.05 ( 0%) sys   2.88 ( 0%) wall 
 0 kB ( 0%) ggc
 ipa pure const  :   6.25 ( 1%) usr   0.13 ( 0%) sys   6.38 ( 1%) wall 
 0 kB ( 0%) ggc
 unaccounted todo:  13.25 ( 2%) usr   0.28 ( 1%) sys  13.58 ( 2%) wall 
 0 kB ( 0%) ggc
 TOTAL : 625.7931.97   661.97   
1264976 kB


[Bug testsuite/58070] gcc.c-torture: useless check -O3 -fomit-frame-pointer

2013-08-03 Thread bernd.edlinger at hotmail dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58070

--- Comment #2 from Bernd Edlinger bernd.edlinger at hotmail dot de ---
(In reply to Andreas Schwab from comment #1)
 This is target dependent.

OK, my target is --target=arm-eabi

What exactly is target dependent?


[Bug testsuite/58070] gcc.c-torture: useless check -O3 -fomit-frame-pointer

2013-08-03 Thread sch...@linux-m68k.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58070

--- Comment #3 from Andreas Schwab sch...@linux-m68k.org ---
The default state of -fomit-frame-pointer.


[Bug c++/58059] gcc-4.7.2-r1 - g++: internal compiler error: Segmentation fault (program cc1plus)

2013-08-03 Thread mikpe at it dot uu.se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58059

--- Comment #3 from Mikael Pettersson mikpe at it dot uu.se ---
The non-preprocessed test case crashes g++ 4.7, 4.8, and 4.9 for me on
x86_64-linux.


[Bug libgcc/58061] internal compiler error

2013-08-03 Thread mikpe at it dot uu.se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58061

--- Comment #1 from Mikael Pettersson mikpe at it dot uu.se ---
This is clearly a duplicate of PR57848.  Then there is PR57897 which crashes
with a different error message but still on #pragma target and mingw, I believe
that one is at least closely related.


[Bug fortran/58064] Cannot compile gcc-4.8.1 by gcc-3.4.6

2013-08-03 Thread mikpe at it dot uu.se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58064

--- Comment #1 from Mikael Pettersson mikpe at it dot uu.se ---
init2.c:37: MPFR assertion failed: (64 - 0) == ((64 - 0)/8) * 8 
sizeof(mp_limb_t) == ((64 - 0)/8)

seems your mpfr library is broken


[Bug c++/58071] New: Premature instantiation of default argument

2013-08-03 Thread rogero at howzatt dot demon.co.uk
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58071

Bug ID: 58071
   Summary: Premature instantiation of default argument
   Product: gcc
   Version: 4.8.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: rogero at howzatt dot demon.co.uk

If a function is declared with a default argument of a template type the
compiler fails if the constructor cannot be instantiated at the point of
definition of the function.

As I understand it 8.3.6p5 states The names in the default argument are
bound, and the semantic constraints are checked, at the point where the default
argument appears.

So the compiler can instantiate the *class* definition but I do not believe it
should be instantiating the constructor body unless and until the default
argument is actually *used*.

The code below compiles and links with Clang and icc (and msvc)

Example:


template typename T
class generic
{
public:
  generic() { T p; test(p); }
  generic(T *) {}
};

class Foo {};

void f(genericFoo const  = genericFoo());

int main() {}


g++ -Wall -Wextra 8.3.6p5.cpp
8.3.6p5.cpp: In instantiation of 'genericT::generic() [with T = Foo]':
8.3.6p5.cpp:11:44:   required from here
8.3.6p5.cpp:5:20: error: 'test' was not declared in this scope


[Bug c++/58071] Premature instantiation of default argument

2013-08-03 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58071

--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com ---
We may have a Dup of this. I'll check later today if nobody beats me.


[Bug testsuite/58070] gcc.c-torture: useless check -O3 -fomit-frame-pointer

2013-08-03 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58070

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

--- Comment #4 from Andrew Pinski pinskia at gcc dot gnu.org ---
x86_64 is not the only target which GCC supports.  Some other targets disable
omit-frame-pointer.


[Bug c++/58047] parse error with typedef introduced from base class

2013-08-03 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58047

--- Comment #5 from Paolo Carlini paolo.carlini at oracle dot com ---
You should ;) Seriously, when committing a patch I think that it's a good
practice to double check it on the duplicates, even if everything goes well
consider adding sufficiently different testcases coming from the dups. The
division of labor between triaging and fixing will never be perfect!

Thanks for working on this!


[Bug rtl-optimization/57708] [4.8 regression] function clobbers callee saved register on ARM

2013-08-03 Thread rearnsha at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57708

Richard Earnshaw rearnsha at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |rearnsha at gcc dot 
gnu.org


[Bug target/51784] PIC register not correctly preserved in nested funcs / with non-local goto

2013-08-03 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51784

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

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|FIXED   |---

--- Comment #48 from Dominique d'Humieres dominiq at lps dot ens.fr ---
Reopened as the test gcc.c-torture/execute/pr51447.c still fails on
powerpc-apple-darwin9 (see
http://gcc.gnu.org/ml/gcc-testresults/2013-08/msg00136.html ). The test
succeeds with the patch for pr10901 at
http://gcc.gnu.org/bugzilla/attachment.cgi?id=26370 .


[Bug target/51784] PIC register not correctly preserved in nested funcs / with non-local goto

2013-08-03 Thread iains at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51784

Iain Sandoe iains at gcc dot gnu.org changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution|--- |FIXED

--- Comment #49 from Iain Sandoe iains at gcc dot gnu.org ---
(In reply to Dominique d'Humieres from comment #48)
 Reopened as the test gcc.c-torture/execute/pr51447.c still fails on
 powerpc-apple-darwin9 (see
 http://gcc.gnu.org/ml/gcc-testresults/2013-08/msg00136.html ). The test
 succeeds with the patch for pr10901 at
 http://gcc.gnu.org/bugzilla/attachment.cgi?id=26370 .

As Andrew noted above, that was recorded in PR 10901 :) 
[I have a PPC patch-in-progress - add 10901 to your list, and I'll post to
there when ready to test].


[Bug tree-optimization/57993] [4.9 Regression] ICE: verify_ssa failed (definition in block n does not dominate use in block m)

2013-08-03 Thread wschmidt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57993

--- Comment #9 from Bill Schmidt wschmidt at gcc dot gnu.org ---
I missed a couple of candidate replacements in the previous fix; these are
fixed in r201466.


[Bug c++/58072] New: [C++11] Error messages involving user-defined literals are poor (refer to tokens)

2013-08-03 Thread 3dw4rd at verizon dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58072

Bug ID: 58072
   Summary: [C++11] Error messages involving user-defined literals
are poor (refer to tokens)
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: 3dw4rd at verizon dot net

Created attachment 30603
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30603action=edit
Patch triggering a range of bad errors.

This bug is branched from PR58057.

in that bug a file such as this:
---
...
externCvoid*blah_4(void*);//error: expected unqualified-id before
user-defined string literal

extern\x43void*blah_5(void*);  //error: expected unqualified-id before
user-defined string literal

int main() {}
---

gives errors like this:
blah.cpp:12:7: error: expected unqualified-id before ‘STRING_USERDEF’ token
 externCvoid*blah_4(void*);//error: expected unqualified-id before
user-defined string literal
   ^
blah.cpp:14:7: error: expected unqualified-id before ‘STRING_USERDEF’ token
 extern\x43void*blah_5(void*);  //error: expected unqualified-id before
user-defined string literal

Referring to internal tokens is not helpful to users.
Let's fix this.

[Bug c++/58072] [C++11] Error messages involving user-defined literals are poor (refer to tokens)

2013-08-03 Thread 3dw4rd at verizon dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58072

--- Comment #1 from Ed Smith-Rowland 3dw4rd at verizon dot net ---
Created attachment 30604
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30604action=edit
Patch c_parse_error to catch and describe user-defined literal tokens
explicitly.


gcc/c-family:

2013-08-03  Ed Smith-Rowland  3dw...@verizon.net

PR c++/58072
* c-common.c (c_parse_error): Catch user-defined literal tokens and
provide useful error strings.


Waiting for testing because I'm sure there will be testsuite fallout.

We get this:
ed@bad-horse:~$ ./bin_literal/bin/g++ -fdiagnostics-color -std=c++1y blah.cpp
-o blah
blah.cpp:6:8: error: expected unqualified-id before user-defined character
literal
 extern 'c'void*blah(void*);
^
blah.cpp:7:8: error: expected unqualified-id before user-defined character
literal
 extern L'c'void*Lblah(void*);
^
blah.cpp:8:8: error: expected unqualified-id before user-defined character
literal
 extern u'c'void*ublah(void*);
^
blah.cpp:9:8: error: expected unqualified-id before user-defined character
literal
 extern U'c'void*Ublah(void*);
^
blah.cpp:11:8: error: expected unqualified-id before user-defined string
literal
 extern cvoid*strblah(void*);
^
blah.cpp:12:8: error: expected unqualified-id before user-defined string
literal
 extern Lcvoid*Lstrblah(void*);
^
blah.cpp:13:8: error: expected unqualified-id before user-defined string
literal
 extern ucvoid*ustrblah(void*);
^
blah.cpp:14:8: error: expected unqualified-id before user-defined string
literal
 extern Ucvoid*Ustrblah(void*);
^
blah.cpp:15:8: error: expected unqualified-id before user-defined string
literal
 extern u8cvoid*u8strblah(void*);
^
blah.cpp:17:8: error: expected unqualified-id before numeric constant
 extern 123void*ULLblah(void*);
^
blah.cpp:18:8: error: expected unqualified-id before numeric constant
 extern 123.456void*Ldblblah(void*);
^


[Bug fortran/56666] Suppression flag for DO loop at (1) will be executed zero times

2013-08-03 Thread tkoenig at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=5

Thomas Koenig tkoenig at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |tkoenig at gcc dot 
gnu.org


[Bug c/58073] New: Suboptimal optimisation of ((x 0x70) == 0x00 (x 0x70) == 0x10 (x 0x70) == 0x20) on x86_64

2013-08-03 Thread dhowells at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58073

Bug ID: 58073
   Summary: Suboptimal optimisation of ((x  0x70) == 0x00  (x 
0x70) == 0x10  (x  0x70) == 0x20) on x86_64
   Product: gcc
   Version: 4.8.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: dhowells at redhat dot com

Created attachment 30605
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30605action=edit
Demonstration source code

When the attached demo code is compiled with gcc-4.8.1, two of the cases
optimise fine and the third case is optimised suboptimally - probably because
it initially matches the optimisation for the second case.

Going through the cases individually for 'shift' being 4:

 (1) return (mask(d) == (0x0  shift));

This is rendered as a single TEST instruction in x86_64 asm:

   0:   f6 07 70testb  $0x70,(%rdi)
   3:   0f 94 c0sete   %al
   6:   c3  retq   

which is good.

 (2) return (mask(d) == (0x0  shift) ||
mask(d) == (0x1  shift));

This is also rendered as a single TEST instruction:

  10:   f6 07 60testb  $0x60,(%rdi)
  13:   0f 94 c0sete   %al
  16:   c3  retq   

which is again good.  The problem comes with the third case:

 (3) return (mask(d) == (0x0  shift) ||
   mask(d) == (0x1  shift) ||
   mask(d) == (0x2  shift));

This is rendered as:

  20:   8b 17   mov(%rdi),%edx
  22:   b8 01 00 00 00  mov$0x1,%eax
  27:   f6 c2 60test   $0x60,%dl
  2a:   74 09   je 35 foo3+0x15
  2c:   83 e2 70and$0x70,%edx
  2f:   83 fa 20cmp$0x20,%edx
  32:   0f 94 c0sete   %al
  35:   f3 c3   repz retq 

which is odd.  I would expect the thing to be turned into MOV, AND, CMP, SETE,
RETQ since the numbers it is checking for lie adjacent to each other, starting
from zero.

I think what has happened is that the first two comparisons matched the
optimisation for case (2) - resulting in three extra instructions.

The compilation command line was:

gcc -O2 -c foo.c -Wall  objdump -d foo.o

The compiler version:

Using built-in specs.
COLLECT_GCC=/usr/bin/gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.1/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla
--enable-bootstrap --enable-shared --enable-threads=posix
--enable-checking=release --with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions --enable-gnu-unique-object
--enable-linker-build-id --with-linker-hash-style=gnu
--enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin
--enable-initfini-array --enable-java-awt=gtk --disable-dssi
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre
--enable-libgcj-multifile --enable-java-maintainer-mode
--with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib
--with-isl=/builddir/build/BUILD/gcc-4.8.1-20130603/obj-x86_64-redhat-linux/isl-install
--with-cloog=/builddir/build/BUILD/gcc-4.8.1-20130603/obj-x86_64-redhat-linux/cloog-install
--with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.8.1 20130603 (Red Hat 4.8.1-1) (GCC) 

as supplied by Fedora: gcc-4.8.1-1.fc19.x86_64


[Bug c/58073] Suboptimal optimisation of ((x 0x70) == 0x00 (x 0x70) == 0x10 (x 0x70) == 0x20) on x86_64

2013-08-03 Thread dhowells at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58073

--- Comment #1 from dhowells at redhat dot com dhowells at redhat dot com ---
Interestingly, the suboptimality shifts if the 'shift' value in the demo
program is changed to 0:

Going through the cases individually::

 (1) return (mask(d) == (0x0  shift));

This is rendered as a single TEST instruction in x86_64 asm:

   0:   f6 07 07testb  $0x7,(%rdi)
   3:   0f 94 c0sete   %al
   6:   c3  retq   

which is fine.

 (2) return (mask(d) == (0x0  shift) ||
mask(d) == (0x1  shift));

is rendered as:

  10:   8b 07   mov(%rdi),%eax
  12:   83 e0 07and$0x7,%eax
  15:   83 f8 01cmp$0x1,%eax
  18:   0f 96 c0setbe  %al
  1b:   c3  retq   

which is not what I'd expect.  What happened to the single TEST instruction
that was produced for shift = 4?

And then:

 (3) return (mask(d) == (0x0  shift) ||
   mask(d) == (0x1  shift) ||
   mask(d) == (0x2  shift));

which is rendered as:

  20:   8b 07   mov(%rdi),%eax
  22:   83 e0 07and$0x7,%eax
  25:   83 f8 02cmp$0x2,%eax
  28:   0f 96 c0setbe  %al
  2b:   c3  retq   

which is good (and which is similar to what I'd've expected case 3 to generate
when shift = 4).


[Bug c++/58057] gcc lexer cannot parse extern \x43 void blah() with option -std=c++0x;

2013-08-03 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58057

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

--- Comment #13 from Paolo Carlini paolo.carlini at oracle dot com ---
Ok, let's close this one. The diagnostic issue is tracked in PR58072.


[Bug c++/58072] [C++11] Error messages involving user-defined literals are poor (refer to tokens)

2013-08-03 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58072

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2013-08-03
   Assignee|unassigned at gcc dot gnu.org  |3dw4rd at verizon dot 
net
 Ever confirmed|0   |1

--- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com ---
Thanks. As soon as you are ready with the testsuite tweaks, just send it to
gcc-patches CC Jason.


[Bug c++/58074] New: [C++11] __is_trivial intrinsic fails for deleted members and for non-trivial copy-c'tors

2013-08-03 Thread daniel.kruegler at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58074

Bug ID: 58074
   Summary: [C++11] __is_trivial intrinsic fails for deleted
members and for non-trivial copy-c'tors
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: daniel.kruegler at googlemail dot com

The following observations where originally found by testing the
std::is_trivial trait from type_traits, but the actual problem seems to
result from the __is_trivial intrinsic, therefore I created a non-library issue
from this.

gcc 4.9.0 20130616 (experimental) when compiled with the flags

-std=c++11 -Wall -pedantic

rejects the following code:

//-
struct Trivial
{
  Trivial() = delete;
};

struct NonTrivial
{
  NonTrivial() = default;
  NonTrivial(NonTrivial) = default;
  NonTrivial operator=(NonTrivial) = default;
};

static_assert(__is_trivial(Trivial), Ouch);
static_assert(!__is_trivial(NonTrivial), Ouch);
//-


main.cpp|13|error: static assertion failed: Ouch|
main.cpp|14|error: static assertion failed: Ouch|


The first test should be valid, because 12.1 p4 says 

A default constructor is trivial if it is **not user-provided** and if [..] 

and according to 8.4.2 p4 

A function is user-provided if it is user-declared and **not explicitly
defaulted or deleted** on its first declaration.. 

The deleted default constructor should not prevent type Trivial of being
trivial (Maybe this part of the problem is related to bug 52707, but I'm not
sure).

The second test should succeed, because according to 12.8 p12:

A copy/move constructor for class X is trivial if it is not user-provided,
**its declared parameter type is the same as if it had been implicitly
declared**, and if [..]

and 12.8 p25, respectively:

A copy/move assignment operator for class X is trivial if it is not
user-provided, **its declared parameter type is the same as if it had been
implicitly declared**, and if [..]

The copy-constructor/assignment operator of NonTrivial do both not have the
parameter type (according to the definition of function parameter types as of
8.3.5) as if it had been implicitly declared.


[Bug c++/58074] [C++11] __is_trivial intrinsic fails for deleted members and for non-trivial copy-c'tors

2013-08-03 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58074

--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com ---
... and the issue is one more level deeper, because __is_trivial just uses the
internal trivial_type_p. I mean, it should be pretty easy to construct
testcases not involving __is_trival at all but handled incorrectly: outside the
implementation of the intrinsics, the internal pod_type_p itself is,
predictably, std_layout_type_p  trivial_type_p and then anything depending on
POD-ness is sensitive.


[Bug c++/58046] template operator= in SFINAE class

2013-08-03 Thread daniel.kruegler at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58046

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

   What|Removed |Added

 CC||daniel.kruegler@googlemail.
   ||com

--- Comment #1 from Daniel Krügler daniel.kruegler at googlemail dot com ---
The same problem occurs for gcc 4.9.0 20130616 (experimental) as well.

A version without any dependencies to the library headers:

//
templatebool, class T = void
struct enable_if {};

templateclass T
struct enable_iftrue, T
{
  using type = T;
};

templateclass T
struct is_true
{
  static constexpr bool value = true;
};

extern void* enabler;

template typename T, typename enable_ifis_trueT::value::type* = enabler
class A
{
public:
A()
{}
template typename U
A operator=( AU rhs )
{
return *this;
}
};

int main()
{
Aint a_i;
Adouble a_d;

a_i = a_d;
}
//-

Gives as well:


main.cpp|36|required from here|
main.cpp|36|internal compiler error: in unify, at cp/pt.c:17325|


It is interesting to note that a variation of this sfinae construction doesn't
produce the ICE:

template typename T, typename enable_ifis_trueT::value, bool::type =
false
class A
{
public:
A()
{}
template typename U
A operator=( AU rhs )
{
return *this;
}
};

int main()
{
Aint a_i;
Adouble a_d;

a_i = a_d;
}

[Bug c++/58062] [C++11] bogus __func__ lookup in lambda body

2013-08-03 Thread daniel.kruegler at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58062

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

   What|Removed |Added

 CC||daniel.kruegler@googlemail.
   ||com

--- Comment #2 from Daniel Krügler daniel.kruegler at googlemail dot com ---
The fact that MSVC is giving the expected error is a bit misleading. It
rejects it, because it still is not conforming and is not aware of __func__ in
any context. But I agree that correct MSVC behaviour can be deduced when
__FUNCTION__ is used instead.

While I agree that gcc is not conforming I would like to add that many existing
compilers do not and to my knowledge there is an core language issue planned in
regard to exactly this problem, so I recommend to defer working on that.

[Bug c++/58063] default arguments evaluated twice per call

2013-08-03 Thread daniel.kruegler at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58063

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

   What|Removed |Added

 CC||daniel.kruegler@googlemail.
   ||com

--- Comment #1 from Daniel Krügler daniel.kruegler at googlemail dot com ---
The behavior looks indeed odd to me (and I can confirm it for gcc 4.9 as well).
I suspect at the moment that it is somehow related to the very specific
definition of std::cout, because when I try to mimic the problem for a model
type like the following, I cannot produce this effect:

//-
#include iostream

struct my_ostream
{
  my_ostream(){}
  virtual ~my_ostream() {}
  operator void*() const { return const_castmy_ostream*(this); }
  bool operator!() const { return false; }
private:
  my_ostream(const my_ostream);
  my_ostream operator=(const my_ostream);
 } my_cout;

my_ostream operator(my_ostream os, const char* s)
{
  std::cout  s;
  return os;
}

void f(bool x = !(std::cout  hi!\n)) {
  std::cout  x  '\n';
}

void f2(bool x = !(my_cout  hi!\n)) {
  std::cout  x  '\n';
}

int main() {
 f();
 std::cout  --\n;
 f2();
}
//-

gives the output:

quote
hi!
hi!
0
--
hi!
0
/quote

Looking at the generate assembly (mingw 64 but), I see the following relevant
lines:

0x004017ADlea0x7a86d(%rip),%rdx# 0x47c021
std::piecewise_construct+1
0x004017B4mov0x7e4a5(%rip),%rcx# 0x47fc60 .refptr._ZSt4cout
0x004017BBcallq  0x4624c0 std::operator std::char_traitschar
(std::basic_ostreamchar, std::char_traitschar , char const*)
0x004017C0mov%rax,%rbx
0x004017C3lea0x7a857(%rip),%rdx# 0x47c021
std::piecewise_construct+1
0x004017CAmov0x7e48f(%rip),%rcx# 0x47fc60 .refptr._ZSt4cout
0x004017D1callq  0x4624c0 std::operator std::char_traitschar
(std::basic_ostreamchar, std::char_traitschar , char const*)
0x004017D6mov(%rax),%rax
0x004017D9sub$0x18,%rax
0x004017DDmov(%rax),%rax
0x004017E0add%rbx,%rax
0x004017E3mov%rax,%rcx
0x004017E6callq  0x433f60 std::basic_ioschar, std::char_traitschar
::operator!() const
0x004017EBmovzbl %al,%eax
0x004017EEmov%eax,%ecx

[Bug fortran/58027] Arithmetic overflow converting ... in PARAMETER triggers an ICE

2013-08-03 Thread tkoenig at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58027

Thomas Koenig tkoenig at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-08-03
 Ever confirmed|0   |1

--- Comment #1 from Thomas Koenig tkoenig at gcc dot gnu.org ---
The problem is that the error raised in arith_error does not
get emitted, and the function gets passed to
gfc_conv_array_initializer, where it ICEs.

I played around this a little bit.  The problem is that
an obvious thing like issuing a gfc_error_now in
arith_error leads to regressions (like unclassifiable statements)
in boz_4.f90.

Putting in a specific error for this case where the ICE occurs seems
hackish, to put it mildly.


[Bug c++/57138] [4.8 Regression][DR 1430] ICE with pack expansion and alias template

2013-08-03 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57138

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |jason at gcc dot gnu.org
Summary|[4.8/4.9 Regression] ICE in |[4.8 Regression][DR 1430]
   |cp_parser_class_specifier   |ICE with pack expansion and
   |with variadic templates,|alias template
   |using declarations  |

--- Comment #6 from Jason Merrill jason at gcc dot gnu.org ---
ICE fixed for 4.9 with r201469.


[Bug c++/51239] [DR 1430] ICE with variadic template alias

2013-08-03 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51239

--- Comment #6 from Jason Merrill jason at gcc dot gnu.org ---
Patch applied as r201469.  Leaving suspended until the DR resolution is final.


[Bug c++/58063] default arguments evaluated twice per call

2013-08-03 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58063

--- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com ---
The standard streams are indeed special, being constructed once and never
destroyed, see libstdc++-v3/src/c++98/ios_init.cc. I suppose a minimal
reproducer could involve a file scope static of some sort...


[Bug c++/53756] [C++1y] ICE: in gen_type_die_with_usage, at dwarf2out.c:18774 with -g and operator auto ()

2013-08-03 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53756

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 ---
Jason, looks like some bits related to debugging are missing from the work on
return type deduction and people cannot debug uses of the new facility.

gen_type_die_with_usage gets a TEMPLATE_TYPE_PARM which doesn't know how to
handle. Is it just matter of somehow having an equivalent of is_auto and using
a DW_TAG_unspecified_type? Or we shouldn't have a TEMPLATE_TYPE_PARM at all at
this point? (I don't see what else)

... or you prefer to look a bit into this? ;)


[Bug c++/58063] default arguments evaluated twice per call

2013-08-03 Thread daniel.kruegler at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58063

--- Comment #3 from Daniel Krügler daniel.kruegler at googlemail dot com ---
(In reply to Paolo Carlini from comment #2)
 I suppose a minimal reproducer could involve a file scope static of some 
 sort...

I'm a bit confused by your reply, Paolo: Isn't my_cout also a file scope
static? (Even, if I declare it to have static linkage, it still behaves
differently compared to std::cout)

[Bug c++/58063] default arguments evaluated twice per call

2013-08-03 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58063

--- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com ---
Sorry, I didn't study it in sufficient detail. Anyway, no mysteries, this is
free software: libstdc++-v3/src/c++98/ios_init.cc etc.


[Bug c++/58063] default arguments evaluated twice per call

2013-08-03 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58063

--- Comment #5 from Paolo Carlini paolo.carlini at oracle dot com ---
Ah, in case isn't obvious already: it only happens when the I/O expression
has the ! operator in front.


[Bug c++/58063] default arguments evaluated twice per call

2013-08-03 Thread daniel.kruegler at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58063

--- Comment #6 from Daniel Krügler daniel.kruegler at googlemail dot com ---
(In reply to Paolo Carlini from comment #5)
 Ah, in case isn't obvious already: it only happens when the I/O expression
 has the ! operator in front.

I suspected that and ensured that I added a similar operator! to my ostream
model type, but this hadn't any impact on the outcome for that type. Further, I
don't understand how it is related to ostream initialization, because the issue
also occurs when we invert the order of the function calls:

int main() {
 f2();
 std::cout  --\n;
 f();
}

gives me:

quote
hi!
0
--
hi!
hi!
0
/quote

Are you sure that this is not due to improper code generation?

[Bug c++/58063] default arguments evaluated twice per call

2013-08-03 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58063

--- Comment #7 from Paolo Carlini paolo.carlini at oracle dot com ---
I'm not at all sure! But it happens with -O0 too, right?, thus at this point
the front-end seems more likely than the back-end, I would not change the
Component from c++ to something else. In any case we badly need a reduced
testcase ;)


[Bug c++/58063] default arguments evaluated twice per call

2013-08-03 Thread daniel.kruegler at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58063

--- Comment #8 from Daniel Krügler daniel.kruegler at googlemail dot com ---
(In reply to Paolo Carlini from comment #7)
 But it happens with -O0 too, right?

Yes.

 In any case we badly need a reduced testcase ;)

I agree. Unfortunately I'm on vacations from tomorrow on (1 week), so I cannot
look into it until next week.

[Bug c++/58063] default arguments evaluated twice per call

2013-08-03 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58063

--- Comment #9 from Paolo Carlini paolo.carlini at oracle dot com ---
Your help is always very appreciated, Daniel. Here we have plenty of work to do
anyway, if when you will back the bug will be unchanged, consider helping more.


[Bug target/56979] ICE in output_operand: invalid operand for code 'P'

2013-08-03 Thread rearnsha at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56979

--- Comment #3 from Richard Earnshaw rearnsha at gcc dot gnu.org ---
The problem here is that float2 has alignment 8, although this is not it's
natural alignment (which would be 4).

This argument is passed by value to the routine operator-(float, float2), and
the compiler treats float2 as an HFA containing 2 floats; these get allocated
to s1 and s2 under the AAPCS VFP rules.  On entry to the function, the compiler
then tries to store s1 and s2 as a pairwise (64-bit) type to the stack (since
the type is 64-bit aligned) -- the latter fails because for this to work the
64-bit type must start with an even numbered register.

The AAPCS does not describe what happens when arguments do not have their
natural alignment -- most cases will almost certainly not work as expected,
particularly if the alignment is greater than the natural stack alignment.

Although the compiler shouldn't ICE, it's arguable that passing over-aligned
values by value to functions is not supportable (c11, for example, does not
support over-aligning function arguments even though it does permit
over-aligning some other objects) and that this case is really an ICE on
invalid.


[Bug middle-end/57748] [4.8/4.9 Regression] ICE when expanding assignment to unaligned zero-sized array

2013-08-03 Thread david.abdurachmanov at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57748

David Abdurachmanov david.abdurachmanov at gmail dot com changed:

   What|Removed |Added

 CC||david.abdurachmanov at gmail 
dot c
   ||om

--- Comment #17 from David Abdurachmanov david.abdurachmanov at gmail dot com 
---
Just for the record.

I hit the same bug on Cortex-A9 NEON GCC 4.8.1 hard floats, while compiling
scipy 0.8.0 RPM. There was not issue on 4.8.0 and pre-4.9.0 w/o NEON as FPU.

scipy/spatial/ckdtree.c: In function
'__pyx_f_5scipy_7spatial_7ckdtree_7cKDTree___query':
scipy/spatial/ckdtree.c:4194:66: internal compiler error: in expand_assignment,
at expr.c:4761
 (__pyx_v_inf2-side_distances[__pyx_v_inode-split_dim]) =
__pyx_f_5scipy_7spatial_7ckdtree_dabs((__pyx_v_inode-split -
(__pyx_v_x[__pyx_v_inode-split_dim])));
  ^
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.
error: Command gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv
-O3 -Wall -Wstrict-prototypes -fPIC
-I/build/davidlt/481-ext/a/fc18_armv7hl_gcc481/external/py2-numpy/1.6.1/lib/python2.7/site-packages/numpy/core/include
-I/build/davidlt/481-ext/a/fc18_armv7hl_gcc481/external/python/2.7.3/include/python2.7
-c scipy/spatial/ckdtree.c -o
build/temp.linux-armv7l-2.7/scipy/spatial/ckdtree.o failed with exit status 1

### GCC configuration ###

Target: armv7hl-redhat-linux-gnueabi
Configured with: ../configure
--prefix=/build/davidlt/481/b/tmp/BUILDROOT/4464b4bee054158584ab26d304d9b1a8/opt/cmssw/fc18_armv7hl_gcc481/external/gcc/4.8.1
--disable-multilib --disable-nls --with-zlib=no
--enable-languages=c,c++,fortran --enable-gold=yes --enable-ld=default
--enable-lto
--with-gmp=/build/davidlt/481/b/tmp/BUILDROOT/4464b4bee054158584ab26d304d9b1a8/opt/cmssw/fc18_armv7hl_gcc481/external/gcc/4.8.1
--with-mpfr=/build/davidlt/481/b/tmp/BUILDROOT/4464b4bee054158584ab26d304d9b1a8/opt/cmssw/fc18_armv7hl_gcc481/external/gcc/4.8.1
--with-mpc=/build/davidlt/481/b/tmp/BUILDROOT/4464b4bee054158584ab26d304d9b1a8/opt/cmssw/fc18_armv7hl_gcc481/external/gcc/4.8.1
--with-isl=/build/davidlt/481/b/tmp/BUILDROOT/4464b4bee054158584ab26d304d9b1a8/opt/cmssw/fc18_armv7hl_gcc481/external/gcc/4.8.1
--with-cloog=/build/davidlt/481/b/tmp/BUILDROOT/4464b4bee054158584ab26d304d9b1a8/opt/cmssw/fc18_armv7hl_gcc481/external/gcc/4.8.1
--enable-checking=release --build=armv7hl-redhat-linux-gnueabi
--host=armv7hl-redhat-linux-gnueabi --enable-libstdcxx-time=rt
--enable-bootstrap --enable-threads=posix --enable-__cxa_atexit
--disable-libunwind-exceptions --enable-gnu-unique-object
--with-linker-hash-style=gnu --enable-plugin --enable-initfini-array
--enable-linker-build-id --disable-build-with-cxx
--disable-build-poststage1-with-cxx --with-cpu=cortex-a9 --with-tune=cortex-a9
--with-arch=armv7-a --with-float=hard --with-fpu=neon --with-abi=aapcs-linux
--disable-sjlj-exceptions --enable-shared CC='gcc -fPIC' CXX='c++ -fPIC'
CPP=cpp CXXCPP='c++ -E'
Thread model: posix


[Bug target/58065] ARM MALLOC_ABI_ALIGNMENT is wrong

2013-08-03 Thread david.abdurachmanov at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58065

David Abdurachmanov david.abdurachmanov at gmail dot com changed:

   What|Removed |Added

 CC||david.abdurachmanov at gmail 
dot c
   ||om

--- Comment #5 from David Abdurachmanov david.abdurachmanov at gmail dot com 
---
malloc() [glibc implementation] default alignment is sizeof(long double) or 2 *
sizeof(size_t) if I remember correctly, which is 8 bytes for ARMv7. I think,
based on C and C++ standard you have to make sure that alignment is good for
whatever primitive type, which means alignment size being the size of the
biggest primitive type (long double).

Reference bug ticket(9 years old):
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15795

Quote from C standard (identical or similar exist in C++):

The pointer returned if the allocation succeeds is suitably aligned so that
it may be assigned to a pointer to any type of object and then used to
access such an object or an array of such objects in the space allocated
(until the space is explicitly deallocated).


[Bug go/58075] New: Unable to build go on ia64-hp-hpux11.31

2013-08-03 Thread pda at freeshell dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58075

Bug ID: 58075
   Summary: Unable to build go on ia64-hp-hpux11.31
   Product: gcc
   Version: 4.7.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: go
  Assignee: ian at airs dot com
  Reporter: pda at freeshell dot org

Excuse the lack of further detail, but the message looks pretty
self-explanatory.

.../gcc-4.7.3/libgo/runtime/proc.c:114:4: error: #error unknown case for
SETCONTEXT_CLOBBERS_TLS

Is this just a case of go not being ready for this platform yet?


[Bug libgcc/58061] internal compiler error

2013-08-03 Thread whitequill at abstractions dot me
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58061

--- Comment #2 from Whitequill Riclo whitequill at abstractions dot me ---
This is the first bug I have reported, so I didn't know where to look to see if
it has been reported before.
Also I can reproduce it over, and over again without fail.
I was a little unnerved when I saw the text:

Please submit a full bug report,
with prepossessed source if appropriate.
Please include complete back-trace with any bug report.

Did I include enough?