[Bug sanitizer/56535] ICE: in build2_stat, at tree.c:3885 when compiling with -fsanitize=address

2013-03-16 Thread markus at trippelsdorf dot de

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

Markus Trippelsdorf markus at trippelsdorf dot de changed:

   What|Removed |Added

 CC||markus at trippelsdorf dot
   ||de

--- Comment #1 from Markus Trippelsdorf markus at trippelsdorf dot de 
2013-03-16 08:04:07 UTC ---
Also happens during --with-build-config=bootstrap-asan and profiledbootstrap 
with -enable-languages=c,c++:

/var/tmp/gcc_build_dir/./prev-gcc/xg++ -B/var/tmp/gcc_build_dir/./prev-gcc/
-B/usr/x86_64-pc-linux-gnu/bin/ -nostdinc++
-B/var/tmp/gcc_build_dir/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs
-B/var/tmp/gcc_build_dir/prev-x86_64-pc-linux-gnu/libstdc++-v3/libsupc++/.libs
-I/var/tmp/gcc_build_dir/prev-x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu
-I/var/tmp/gcc_build_dir/prev-x86_64-pc-linux-gnu/libstdc++-v3/include
-I/home/markus/gcc/libstdc++-v3/libsupc++
-L/var/tmp/gcc_build_dir/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs
-L/var/tmp/gcc_build_dir/prev-x86_64-pc-linux-gnu/libstdc++-v3/libsupc++/.libs
-c -march=native -O3 -pipe -fsanitize=address -fprofile-use -DIN_GCC
-fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing
-Wwrite-strings -Wcast-qual -Wmissing-format-attribute -pedantic -Wno-long-long
-Wno-variadic-macros -Wno-overlength-strings -DHAVE_CONFIG_H -DGENERATOR_FILE
-I. -Ibuild -I/home/markus/gcc/gcc -I/home/markus/gcc/gcc/build
-I/home/markus/gcc/gcc/../include -I/home/markus/gcc/gcc/../libcpp/include
-I/home/markus/gcc/gcc/../libdecnumber
-I/home/markus/gcc/gcc/../libdecnumber/bid -I../libdecnumber
-I/home/markus/gcc/gcc/../libbacktrace -o build/genmodes.o
/home/markus/gcc/gcc/genmodes.c

/home/markus/gcc/gcc/genmodes.c: In function ‘void
_ZL18make_complex_modes10mode_classPKcj.constprop.2(mode_class, unsigned int)’:
/home/markus/gcc/gcc/genmodes.c:423:1: internal compiler error: in build2_stat,
at tree.c:3885
 make_complex_modes (enum mode_class cl,
 ^


[Bug sanitizer/56628] bootstrap-lto bootstrap-asan / profiledbootstrap fails

2013-03-16 Thread markus at trippelsdorf dot de


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



--- Comment #2 from Markus Trippelsdorf markus at trippelsdorf dot de 
2013-03-16 08:08:09 UTC ---

The bootstrap-asan/profiledbootstrap issue looks like dup of Bug 56535.



And please ignore my remark about the huge size of SZ.


[Bug sanitizer/56630] New: gcc's address-sanitizer uses 75% more memory than clang's on simple testcase

2013-03-16 Thread markus at trippelsdorf dot de


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



 Bug #: 56630

   Summary: gcc's address-sanitizer uses 75% more memory than

clang's on simple testcase

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: sanitizer

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

ReportedBy: mar...@trippelsdorf.de

CC: do...@gcc.gnu.org, dvyu...@gcc.gnu.org,

ja...@gcc.gnu.org, k...@gcc.gnu.org





markus@x4 ~ % c++ -O2 -fsanitize=address bench.cpp

markus@x4 ~ % time ./a.out

...

./a.out  61.65s user 1.10s system 100% cpu 1:02.75 total

UIDPID  PPID  CSZ   RSS PSR STIME TTY  TIME CMD

markus3810 22602 99 4563582920 3183864 1 09:15 pts/12 00:01:02 ./a.out





markus@x4 ~ % clang++ -O2 -fsanitize=address bench.cpp

markus@x4 ~ % time ./a.out

...

./a.out  64.04s user 0.29s system 100% cpu 1:04.31 total

UIDPID  PPID  CSZ   RSS PSR STIME TTY  TIME CMD

markus3722 22602 99 4295159814 784236 0 09:13 pts/12 00:01:01 ./a.out


[Bug sanitizer/56630] gcc's address-sanitizer uses 75% more memory than clang's on simple testcase

2013-03-16 Thread markus at trippelsdorf dot de


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



--- Comment #1 from Markus Trippelsdorf markus at trippelsdorf dot de 
2013-03-16 08:24:56 UTC ---

Created attachment 29676

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

simple c++ std. container  benchmark


[Bug target/56110] Sub-optimal code: unnecessary CMP after AND

2013-03-16 Thread til...@code-monkey.de


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



--- Comment #2 from Tilman Sauerbeck til...@code-monkey.de 2013-03-16 
09:01:17 UTC ---

Created attachment 29677

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

WIP patch



I'm not really sure if this patch is good or bad. The discussion on the ML died

off eventually (maybe because I asked one too many silly questions).



Anyway, without guidance I won't be able to finish this, but I want to post my

WIP here at least.


[Bug libstdc++/56627] class hash instead of struct hash

2013-03-16 Thread paolo.carlini at oracle dot com


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



--- Comment #5 from Paolo Carlini paolo.carlini at oracle dot com 2013-03-16 
09:40:02 UTC ---

I agree. And we discussed it already somewhere.


[Bug c++/56629] template struct confused with template member function of same name

2013-03-16 Thread paolo.carlini at oracle dot com


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



Paolo Carlini paolo.carlini at oracle dot com changed:



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

 Resolution||DUPLICATE



--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2013-03-16 
09:45:38 UTC ---

Dup.



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


[Bug c++/55576] Fails to compile a call to template member function

2013-03-16 Thread paolo.carlini at oracle dot com


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



Paolo Carlini paolo.carlini at oracle dot com changed:



   What|Removed |Added



 CC||talljimbo at gmail dot com



--- Comment #14 from Paolo Carlini paolo.carlini at oracle dot com 2013-03-16 
09:45:38 UTC ---

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


[Bug c++/56582] ICE on negative array index in C++11 constant expression evaluation

2013-03-16 Thread paolo at gcc dot gnu.org


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



--- Comment #3 from paolo at gcc dot gnu.org paolo at gcc dot gnu.org 
2013-03-16 10:02:21 UTC ---

Author: paolo

Date: Sat Mar 16 10:02:11 2013

New Revision: 196701



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

Log:

/cp

2013-03-16  Paolo Carlini  paolo.carl...@oracle.com



PR c++/56582

* semantics.c (cxx_eval_array_reference): Check for negative index.



/testsuite

2013-03-16  Paolo Carlini  paolo.carl...@oracle.com



PR c++/56582

* g++.dg/cpp0x/constexpr-array5.C: New.



Added:

trunk/gcc/testsuite/g++.dg/cpp0x/constexpr-array5.C

Modified:

trunk/gcc/cp/ChangeLog

trunk/gcc/cp/semantics.c

trunk/gcc/testsuite/ChangeLog


[Bug c++/56582] ICE on negative array index in C++11 constant expression evaluation

2013-03-16 Thread paolo.carlini at oracle dot com


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



Paolo Carlini paolo.carlini at oracle dot com changed:



   What|Removed |Added



   Target Milestone|--- |4.8.1


[Bug sanitizer/56630] gcc's address-sanitizer uses 75% more memory than clang's on simple testcase

2013-03-16 Thread markus at trippelsdorf dot de


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



--- Comment #2 from Markus Trippelsdorf markus at trippelsdorf dot de 
2013-03-16 10:30:51 UTC ---

Looks like the sorting of a std::list container is mostly responsible:

  168 listelement_t container(first, last);

  169 container.sort();



When I run just with size 10 I get:



markus@x4 ~ % c++ -O2 -fsanitize=address bench.cpp

markus@x4 ~ % time ./mem ./a.out

sizearray   vector with pointersvector with iterators   deque  

10  0.470.480.541.06

listset multiset

13.69(!)2.413.97

./mem ./a.out  21.80s user 0.99s system 99% cpu 22.791 total

peak=2736348  



Without the list test I get a reasonable result:

(238 //run(list_test, buffer, buffer_end, n);)



markus@x4 ~ % time ./mem ./a.out

sizearray   vector with pointersvector with iterators

10  0.460.470.5

deque   set multiset

1.031.933.71

./mem ./a.out  7.67s user 0.56s system 99% cpu 8.245 total

markus@x4 ~ % memusg: peak=1415416



For comparison clang:

markus@x4 ~ % clang++ -O2 -fsanitize=address bench.cpp

markus@x4 ~ % time ./mem ./a.out

sizearray   vector with pointersvector with iterators  deque

10  0.420.410.42   0.96

list   set multiset

5.732.935.69

./mem ./a.out  16.52s user 0.10s system 99% cpu 16.627 total

markus@x4 ~ % memusg: peak=229660


GCC needlessly saves Global Register Variables

2013-03-16 Thread eewiz
I use Microchip's C30 compiler which, for all appearances, including
Microchip's statements, is derived from the GCC. It does us the ld linker.
Although, Microchip refuses to address my issue because they say that the
following is a GCC issue.

Using this syntax, I declare a global register variable pointer PntrC.
register Cavity_t *PntrC asm(w13); // Global cavity pointer

So my question is, why does GCC bother to copy the globally declared w13
register into another register and then use that register as a pointer when
w13 would have worked just fine. Over the length of my program, GCC has
wasted 204 words of flash needlessly copying w13.

Here are five examples out of the 204 total.
D:\ES1030\Firmware\V-1.45_RCH\Subs.c:67036:  149CE  78040D mov.w w13,w8
D:\ES1030\Firmware\V-1.45_RCH\Subs.c:67209:  14A66  78018D mov.w w13,w3
D:\ES1030\Firmware\V-1.45_RCH\Subs.c:70555:  0536C  78008D mov.w w13,w1
D:\ES1030\Firmware\V-1.45_RCH\Subs.c:70726:  0542E  78010D mov.w w13,w2
D:\ES1030\Firmware\V-1.45_RCH\Subs.c:74011:  09258  78050D mov.w w13,w10
Search complete. 204 matches found.

Here is an example:
426:   PntrC-Cavity_TempFP = PntrC-Cavity_TempFP * 1.8 +
32.0;// Convert temperature to
Fahrenheit
 087F8  78040D mov.w w13,w8
 087FA  22 mov.w #0x,w2
 087FC  23FE63 mov.w #0x3fe6,w3
 087FE  90A86D mov.w [w13+220],w0
 08800  90A8FD mov.w [w13+222],w1
 08802  071EED rcall __mulsf3
 08804  22 mov.w #0x0,w2
 08806  242003 mov.w #0x4200,w3
 08808  071F79 rcall __addsf3
 0880A  98AC60 mov.w w0,[w8+220]
 0880C  98AC71 mov.w w1,[w8+222]
427: PntrAG-Data = (t_u16)PntrC-Cavity_TempFP;
   
// Create the integer cavity temperature input
 0880E  809EC9 mov.w PntrAG,w9
 08810  78040D mov.w w13,w8
 08812  90A86D mov.w [w13+220],w0
 08814  90A8FD mov.w [w13+222],w1
 08816  071DDC rcall __fixunssfsi
 08818  780100 mov.w w0,w2
 0881A  780C80 mov.w w0,[w9]
428: if (PntrC-Prb_Res_Avg_Cntr  PROBE_AVG_DVSR)  
   
// If the capture averager pipeline is not yet full
 0881C  90A888 mov.w [w8+208],w1
 0881E  200630 mov.w #0x63,w0
 08820  508F80 sub.w w1,w0,[w15]
 08822  3E0006 bra gtu, 0x008830

In the above code, GCC copies w13 to w8. Then it uses w13 as a pointer, as
it should, until some math library calls, then it uses w8 for a while. Then
GCC does it all again, another copy of w13 to w8, point with w13, then point
with w8. Why??? One might say that GCC is afraid that the library routines
might corrupt w13. But if that were the case, GCC should eventually copy w8
back to w13. This never happens. The only writes to w13 in the entire
program are where my C code purposefully sets the cavity pointer w13. Since
I only have about 150 words of flash left in the chip, I would dearly love
to get back the 204 words needlessly used to save the global register
variable w13.

Is there a way to command GCC to always use the global register declared
w13 pointer directly, without wasting resources needlessly copying it to
other registers?
Wouldn't you call this a bug? The driving idea behind global register
variables is to create highly efficient machine code, not waste 0.5% of
someone's 44,000 words of precious flash memory needlessly.





--
View this message in context: 
http://gcc.1065356.n5.nabble.com/GCC-needlessly-saves-Global-Register-Variables-tp921866.html
Sent from the gcc - bugs mailing list archive at Nabble.com.


[Bug other/56631] New: duplicated sse code in switch

2013-03-16 Thread neleai at seznam dot cz


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



 Bug #: 56631

   Summary: duplicated sse code in switch

Classification: Unclassified

   Product: gcc

   Version: unknown

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: other

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

ReportedBy: nel...@seznam.cz





Consider attached testcase. When compiled with -Os,-O2,-O3 it duplicates

zeroing xmm1 register across all branches. Moving zeroing before braches will

save space.



Relevant assembly at -Os is



  jmp *.L19(,%rax,8)

  .section  .rodata

  .align 8

  .align 4

.L19:

  .quad .L21

  .quad .L4

  .quad .L5

snip 



.L21:

  xorps %xmm1, %xmm1

.L38:

  movaps  %xmm0, %xmm2

  pcmpeqb %xmm1, %xmm2

  pmovmskb  %xmm2, %eax

  testl %eax, %eax

  jne .L1

.L2:

  movdqu  %xmm0, (%rdi)

  addq  $64, %rdi

  movups  64(%rsi), %xmm0

  addq  $64, %rsi

  jmp .L38

.L4:

  xorps %xmm1, %xmm1

  incq  %rdi

.L23:

snip

.L5:

  xorps %xmm1, %xmm1

  addq  $2, %rdi


[Bug other/56631] duplicated sse code in switch

2013-03-16 Thread neleai at seznam dot cz


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



--- Comment #1 from Ondrej Bilka neleai at seznam dot cz 2013-03-16 11:36:04 
UTC ---

Created attachment 29678

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

testcase


[Bug sanitizer/56535] ICE: in build2_stat, at tree.c:3885 when compiling with -fsanitize=address

2013-03-16 Thread dominiq at lps dot ens.fr


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



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



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2013-03-16

 Ever Confirmed|0   |1



--- Comment #2 from Dominique d'Humieres dominiq at lps dot ens.fr 2013-03-16 
11:38:40 UTC ---

Following comment #1, marked as NEW.


[Bug c/56600] loop goes indefinite when non-loop integer variable overflows

2013-03-16 Thread jasonwucj at gmail dot com


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



Chung-Ju Wu jasonwucj at gmail dot com changed:



   What|Removed |Added



 CC||jasonwucj at gmail dot com



--- Comment #3 from Chung-Ju Wu jasonwucj at gmail dot com 2013-03-16 
11:44:03 UTC ---

(In reply to comment #1)

 Integer overflow is causing undefined behaviour.  If you want wraparound

 semantics either use unsigned int or -fwrapv.



Hi, Hyun-Ho Kyeong,



More information about such undefined behavior~ :)



According to C99 standard:



C99 6.3.1.4 Point 1:

... If the value of the integral part cannot be represented

 by the integer type, the behavior is undefined.



C99 6.5 Point 5:

... if the result is ... not in the range of representable

 values for its type... the behavior is undefined.


[Bug c++/56632] New: [C++0x] call mem func from lambda with captured this - internal compiler error

2013-03-16 Thread allocator64 at gmail dot com


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



 Bug #: 56632

   Summary: [C++0x] call mem func from lambda with captured this

- internal compiler error

Classification: Unclassified

   Product: gcc

   Version: 4.7.2

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: c++

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

ReportedBy: allocato...@gmail.com





Created attachment 29679

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

call member func from lambda from another func



g++ -v

Using built-in specs.

COLLECT_GCC=g++

COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.7.2/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 --disable-build-with-cxx

--disable-build-poststage1-with-cxx --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-ppl --with-cloog --with-tune=generic --with-arch_32=i686

--build=x86_64-redhat-linux

Thread model: posix

gcc version 4.7.2 20121109 (Red Hat 4.7.2-8) (GCC) 



g++ -std=c++11 bug.cpp 

bug.cpp: In lambda function:

bug.cpp:16:1: internal compiler error: in get_expr_operands, at

tree-ssa-operands.c:1035





it's normal compile and work, if I change 

[this]() { f(); }();

to

[this]() { this-f(); }();


[Bug libstdc++/56627] class hash instead of struct hash

2013-03-16 Thread andreas.hansson at gmail dot com


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



--- Comment #6 from ahansson andreas.hansson at gmail dot com 2013-03-16 
12:01:39 UTC ---

(In reply to comment #4)

 I'm happy to fix things in libstdc++ that are broken and cause real problems

 for clang users, but this is correct C++ and causes a spurious warning. Not a

 bug, not worth wasting time on.



The potential for real problems was my main reason for pointing it out. I ran

some (unrelated) tests on Fedora Rawhide (fc19) with clang 3.2 RELEASE and gcc

4.8.0 and this issue popped up as -Wall -Werror was used for the project in

question.



The two lines mentioned are the only issues encountered. If it is worth

fixing or not I leave up to you to decide, I merely wanted to highlight the

potential issues.


[Bug c++/56632] [C++0x] call mem func from lambda with captured this - internal compiler error

2013-03-16 Thread allocator64 at gmail dot com


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



--- Comment #1 from galuza allocator64 at gmail dot com 2013-03-16 12:18:40 
UTC ---

This bug is only in template class


[Bug c++/56632] [C++0x] call mem func from lambda with captured this - internal compiler error

2013-03-16 Thread paolo.carlini at oracle dot com


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



Paolo Carlini paolo.carlini at oracle dot com changed:



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

  Known to work||4.7.3, 4.8.0

 Resolution||FIXED



--- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com 2013-03-16 
12:47:36 UTC ---

This is already fixed for 4.7.3.


[Bug c++/56632] [C++0x] call mem func from lambda with captured this - internal compiler error

2013-03-16 Thread paolo.carlini at oracle dot com


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



Paolo Carlini paolo.carlini at oracle dot com changed:



   What|Removed |Added



 Resolution|FIXED   |DUPLICATE



--- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com 2013-03-16 
13:04:11 UTC ---





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


[Bug c++/53137] [4.7/4.8 Regression] g++ segfault

2013-03-16 Thread paolo.carlini at oracle dot com


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



Paolo Carlini paolo.carlini at oracle dot com changed:



   What|Removed |Added



 CC||allocator64 at gmail dot

   ||com



--- Comment #24 from Paolo Carlini paolo.carlini at oracle dot com 2013-03-16 
13:04:11 UTC ---

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


[Bug middle-end/55943] [4.6/4.7/4.8/4.9 Regression] ICE in gen_reg_rtx

2013-03-16 Thread danglin at gcc dot gnu.org


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



John David Anglin danglin at gcc dot gnu.org changed:



   What|Removed |Added



 Target|ia64-*-*|ia64-*-*,hppa*64*-*-*

 CC||danglin at gcc dot gnu.org



--- Comment #4 from John David Anglin danglin at gcc dot gnu.org 2013-03-16 
13:17:17 UTC ---

I believe the problem is in this hunk of code:



  /* See if we can coerce the target into moving both values at once.  */



  /* Move floating point as parts.  */

  if (GET_MODE_CLASS (mode) == MODE_COMPLEX_FLOAT

   can_create_pseudo_p ()

   optab_handler (mov_optab, GET_MODE_INNER (mode)) != CODE_FOR_nothing)

try_int = false;

  /* Not possible if the values are inherently not adjacent.  */

  else if (GET_CODE (x) == CONCAT || GET_CODE (y) == CONCAT)

try_int = false;

  /* Is possible if both are registers (or subregs of registers).  */

  else if (register_operand (x, mode)  register_operand (y, mode))

try_int = true;

  /* If one of the operands is a memory, and alignment constraints

 are friendly enough, we may be able to do combined memory operations.

 We do not attempt this if Y is a constant because that combination is

 usually better with the by-parts thing below.  */

  else if ((MEM_P (x) ? !CONSTANT_P (y) : MEM_P (y))

(!STRICT_ALIGNMENT

   || get_mode_alignment (mode) == BIGGEST_ALIGNMENT))

try_int = true;

  else

try_int = false;



When the inner mode is smaller than a word, a pseudo is needed to extract

the value.  The asm causes this to occur after reload starts, causing the

ICE.


[Bug middle-end/55943] [4.6/4.7/4.8/4.9 Regression] ICE in gen_reg_rtx

2013-03-16 Thread danglin at gcc dot gnu.org


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



--- Comment #5 from John David Anglin danglin at gcc dot gnu.org 2013-03-16 
13:19:46 UTC ---

Created attachment 29680

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

Patch



Oops, previous comment comment contained patch that I'm testing.


[Bug c/56569] When compiling the source insn does not satisfy its constraints:with CFlags as -mcfv4e

2013-03-16 Thread hp at gcc dot gnu.org


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



Hans-Peter Nilsson hp at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

 CC||hp at gcc dot gnu.org

Version|3.4.0   |3.1.2

 Resolution||FIXED

   Target Milestone|--- |4.4.0



--- Comment #4 from Hans-Peter Nilsson hp at gcc dot gnu.org 2013-03-16 
13:20:38 UTC ---

There is no release named gcc-4.3.43 so when closing the report I wrote 4.4.0

as the target milestone.  (Please adjust to a 4.3 release.)


[Bug c++/56633] New: Overload selection error for non-static data member initialization with initializer list in template class

2013-03-16 Thread st at quanttec dot com

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

 Bug #: 56633
   Summary: Overload selection error for non-static data member
initialization with initializer list in template class
Classification: Unclassified
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: s...@quanttec.com


g++ (the current SVN version) fails to compile the following valid c++11 code

#include atomic

struct Test1 {
std::atomicint value2{0}; // no problem here
};

template typename T // T is not used
struct Test2 {
std::atomicint value2{0}; // fails to compile
};

int main() {
Test1 test;
Test2int test2;
return 0;
}

The following error message is generated for Test2:

g++ --std=c++11 test.cpp
test.cpp: In constructor ‘constexpr Test2int::Test2()’:
test.cpp:8:8: error: use of deleted function ‘std::atomicint::atomic(const
std::atomicint)’
 struct Test2 {
^
In file included from test.cpp:1:0:
/opt/gcc/include/c++/4.8.0/atomic:601:7: error: declared here
   atomic(const atomic) = delete;
   ^
test.cpp: In function ‘int main()’:
test.cpp:14:16: note: synthesized method ‘constexpr Test2int::Test2()’ first
required here 
 Test2int test2;


[Bug libgcc/56634] New: libgcc does not compile for 4.7.2: Yields internal compiler error: Bus error

2013-03-16 Thread basilio at udc dot es


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



 Bug #: 56634

   Summary: libgcc does not compile for 4.7.2: Yields internal

compiler error: Bus error

Classification: Unclassified

   Product: gcc

   Version: unknown

Status: UNCONFIRMED

  Severity: major

  Priority: P3

 Component: libgcc

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

ReportedBy: basi...@udc.es





Created attachment 29681

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

preprocessed file generated by adding -save-temps



I was compiling the distribution for gcc 4.7.2 and broke with:



/tmp/obj/./gcc/xgcc -B/tmp/obj/./gcc/

-B/usr/local/gcc-4.72/powerpc-apple-darwin9.8.0/bin/

-B/usr/local/gcc-4.72/powerpc-apple-darwin9.8.0/lib/ -isystem

/usr/local/gcc-4.72/powerpc-apple-darwin9.8.0/include -isystem

/usr/local/gcc-4.72/powerpc-apple-darwin9.8.0/sys-include-g -O2 -m64 -O2 

-g -O2 -DIN_GCC   -W -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes

-Wmissing-prototypes -Wold-style-definition  -isystem ./include   -pipe

-Wa,-force_cpusubtype_ALL -mmacosx-version-min=10.4 -fno-common

-mlong-double-128 -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector  

-pipe -Wa,-force_cpusubtype_ALL -mmacosx-version-min=10.4 -fno-common

-mlong-double-128 -I. -I. -I../../.././gcc -I../../../../gcc-4.7.2/libgcc

-I../../../../gcc-4.7.2/libgcc/. -I../../../../gcc-4.7.2/libgcc/../gcc

-I../../../../gcc-4.7.2/libgcc/../include   -DUSE_EMUTLS -o _muldi3.o -MT

_muldi3.o -MD -MP -MF _muldi3.dep -DL_muldi3 -c

../../../../gcc-4.7.2/libgcc/libgcc2.c -fvisibility=hidden -DHIDE_EXPORTS

../../../../gcc-4.7.2/libgcc/libgcc2.c: In function '__multi3':

../../../../gcc-4.7.2/libgcc/libgcc2.c:549:1: internal compiler error: Bus

error

Please submit a full bug report,

with preprocessed source if appropriate.

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



--



 The output obtained when flags -v -savetemps are added to the command line is:





xgcc: warning: -pipe ignored because -save-temps specified

Reading specs from /tmp/obj/./gcc/specs

COLLECT_GCC=/tmp/obj/./gcc/xgcc

Target: powerpc-apple-darwin9.8.0

Configured with: ../gcc-4.7.2/configure --prefix=/usr/local/gcc-4.72

--enable-languages=c,c++,fortran --disable-nls

Thread model: posix

gcc version 4.7.2 (GCC) 

COLLECT_GCC_OPTIONS='-v' '-save-temps' '-B' '/tmp/obj/./gcc/' '-B'

'/usr/local/gcc-4.72/powerpc-apple-darwin9.8.0/bin/' '-B'

'/usr/local/gcc-4.72/powerpc-apple-darwin9.8.0/lib/' '-isystem'

'/usr/local/gcc-4.72/powerpc-apple-darwin9.8.0/include' '-isystem'

'/usr/local/gcc-4.72/powerpc-apple-darwin9.8.0/sys-include' '-g' '-O2' '-m64'

'-O2' '-g' '-O2' '-D' 'IN_GCC' '-Wextra' '-Wall' '-Wwrite-strings'

'-Wcast-qual' '-Wstrict-prototypes' '-Wmissing-prototypes'

'-Wold-style-definition' '-isystem' './include' '-pipe'

'-mmacosx-version-min=10.4' '-mlong-double-128' '-g' '-D' 'IN_LIBGCC2'

'-fbuilding-libgcc' '-fno-stack-protector' '-pipe' '-mmacosx-version-min=10.4'

'-fno-common' '-mlong-double-128' '-I' '.' '-I' '.' '-I' '../../.././gcc' '-I'

'../../../../gcc-4.7.2/libgcc' '-I' '../../../../gcc-4.7.2/libgcc/.' '-I'

'../../../../gcc-4.7.2/libgcc/../gcc' '-I'

'../../../../gcc-4.7.2/libgcc/../include' '-D' 'USE_EMUTLS' '-o' '_muldi3.o'

'-MT' '_muldi3.o' '-MD' '-MP' '-MF' '_muldi3.dep' '-D' 'L_muldi3' '-c'

'-fvisibility=hidden' '-D' 'HIDE_EXPORTS'

 /tmp/obj/./gcc/cc1 -E -quiet -v -I . -I . -I ../../.././gcc -I

../../../../gcc-4.7.2/libgcc -I ../../../../gcc-4.7.2/libgcc/. -I

../../../../gcc-4.7.2/libgcc/../gcc -I ../../../../gcc-4.7.2/libgcc/../include

-imultilib ppc64 -iprefix

/private/tmp/obj/gcc/../lib/gcc/powerpc-apple-darwin9.8.0/4.7.2/ -isystem

/tmp/obj/./gcc/include -isystem /tmp/obj/./gcc/include-fixed -MD _muldi3.d -MF

_muldi3.dep -MP -MT _muldi3.o -D__DYNAMIC__ -D IN_GCC -D IN_LIBGCC2 -D

USE_EMUTLS -D L_muldi3 -D HIDE_EXPORTS -isystem

/usr/local/gcc-4.72/powerpc-apple-darwin9.8.0/include -isystem

/usr/local/gcc-4.72/powerpc-apple-darwin9.8.0/sys-include -isystem ./include

../../../../gcc-4.7.2/libgcc/libgcc2.c -feliminate-unused-debug-symbols -fPIC

-m64 -mmacosx-version-min=10.4 -mlong-double-128 -mmacosx-version-min=10.4

-mlong-double-128 -Wextra -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes

-Wmissing-prototypes -Wold-style-definition -fbuilding-libgcc

-fno-stack-protector -fno-common -fvisibility=hidden -g -g -g

-fworking-directory -O2 -O2 -O2 -fpch-preprocess -o libgcc2.i

ignoring nonexistent directory

/usr/local/gcc-4.72/powerpc-apple-darwin9.8.0/include

ignoring nonexistent directory

/usr/local/gcc-4.72/powerpc-apple-darwin9.8.0/sys-include

ignoring nonexistent directory ./include

ignoring nonexistent directory

/private/tmp/obj/gcc/../lib/gcc/powerpc-apple-darwin9.8.0/4.7.2/include

ignoring nonexistent directory


[Bug c/56635] New: [4.8 regression] internal compiler error: in find_lattice_value, at tree-complex.c:15

2013-03-16 Thread orion at cora dot nwra.com


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



 Bug #: 56635

   Summary: [4.8 regression] internal compiler error: in

find_lattice_value, at tree-complex.c:15

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: c

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

ReportedBy: or...@cora.nwra.com





In file included from /builddir/build/BUILD/gdl-0.9.3/src/datatypes.cpp:67:0:

/builddir/build/BUILD/gdl-0.9.3/src/basic_op.cpp: In function 'built-in':

/builddir/build/BUILD/gdl-0.9.3/src/basic_op.cpp:3791:9: internal compiler

error: in find_lattice_value, at tree-complex.c:151

 #pragma omp parallel if (nEl = CpuTPOOL_MIN_ELTS  (CpuTPOOL_MAX_ELTS == 0

|| CpuTPOOL_MAX_ELTS = nEl))

 ^

Please submit a full bug report,

with preprocessed source if appropriate.

See http://bugzilla.redhat.com/bugzilla for instructions.

Preprocessed source stored into /tmp/ccXWRPxa.out file, please attach this to

your bugreport.



gcc-4.8.0-0.16.fc19.x86_64


[Bug c/56635] [4.8 regression] internal compiler error: in find_lattice_value, at tree-complex.c:15

2013-03-16 Thread jakub at gcc dot gnu.org


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



Jakub Jelinek jakub at gcc dot gnu.org changed:



   What|Removed |Added



 CC||jakub at gcc dot gnu.org



--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org 2013-03-16 
16:19:56 UTC ---

Preprocessed source stored into /tmp/ccXWRPxa.out file, please attach this to

your bugreport.


[Bug c++/56636] New: strange interaction of dynamic_cast and unique_ptr

2013-03-16 Thread gcc-bugs at naturalcleaningcalgary dot com


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



 Bug #: 56636

   Summary: strange interaction of dynamic_cast and unique_ptr

Classification: Unclassified

   Product: gcc

   Version: 4.7.2

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: c++

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

ReportedBy: gcc-b...@naturalcleaningcalgary.com





The following program produces a segfault at the dynamic_cast.  If I change

std::unique_ptrint to int*, or if I drop the dynamic_cast, the segfault goes

away.





#include memory



struct A

{

void F() const

{

F_impl();

}



virtual std::unique_ptrint F_impl() const = 0;

};



template typename Derived

struct A_impl : virtual A

{

std::unique_ptrint F_impl() const override

{

dynamic_castconst Derived (*this);

return nullptr;

}

};



struct B : virtual A {};



struct C : B, A_implC {};



int main()

{

C().F();

}





$ g++ -std=c++11 -otest test.cpp  ./test.exe



I am using GCC 4.7.2 under MinGW, configured with --enable-libstdcxx-debug

--enable-languages=c,c++ --build=pentium4-pc-mingw32 --disable-nls

--disable-win32-registry --enable-threads.





(gdb) run

Starting program: c:\devel\page\build/test.exe

[New Thread 2356.0xa10]



Program received signal SIGSEGV, Segmentation fault.

__cxxabiv1::__dynamic_cast (src_ptr=0x4031f4, src_type=0x403180,

dst_type=0x403160, src2dst=4)

at ../../../../gcc-4.7.2/libstdc++-v3/libsupc++/dyncast.cc:56

56adjust_pointer void (src_ptr, prefix-whole_object);

(gdb) bt

#0  __cxxabiv1::__dynamic_cast (src_ptr=0x4031f4, src_type=0x403180,

dst_type=0x403160, src2dst=4)

at ../../../../gcc-4.7.2/libstdc++-v3/libsupc++/dyncast.cc:56

#1  0x00401d04 in A_implC::F_impl() const ()

#2  0x00401cc6 in A::F() const ()

#3  0x00401378 in main ()


[Bug fortran/56637] New: Bad result on max(1,shiftr(j,1))

2013-03-16 Thread fkrogh#gcc at mathalacarte dot com


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



 Bug #: 56637

   Summary: Bad result on max(1,shiftr(j,1))

Classification: Unclassified

   Product: gcc

   Version: 4.7.2

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: fortran

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

ReportedBy: fkrogh#g...@mathalacarte.com


[Bug c++/56636] strange interaction of dynamic_cast and unique_ptr

2013-03-16 Thread redi at gcc dot gnu.org


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



Jonathan Wakely redi at gcc dot gnu.org changed:



   What|Removed |Added



 Target||mingw



--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org 2013-03-16 
17:39:54 UTC ---

Must be a target issue, it works fine on x86_64-linux


[Bug c++/56633] Overload selection error for non-static data member initialization with initializer list in template class

2013-03-16 Thread redi at gcc dot gnu.org


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



Jonathan Wakely redi at gcc dot gnu.org changed:



   What|Removed |Added



   Keywords||rejects-valid

 Status|UNCONFIRMED |NEW

   Last reconfirmed||2013-03-16

 CC||jason at gcc dot gnu.org

 Ever Confirmed|0   |1

  Known to fail||4.7.3



--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org 2013-03-16 
17:45:07 UTC ---

Confirmed



struct A {

  A(int) { }

  A(const A) = delete;

};



struct Test1 {

A value2{0}; // no problem here

};



template typename T // T is not used

struct Test2 {

A value2{0}; // fails to compile

};



int main() {

Test1 test;

Test2int test2;

return 0;

}


[Bug fortran/56637] Bad result on max(1,shiftr(j,1))

2013-03-16 Thread fkrogh#gcc at mathalacarte dot com


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



--- Comment #1 from Fred Krogh fkrogh#gcc at mathalacarte dot com 2013-03-16 
18:02:49 UTC ---

I realize this is not much help for a bug report.  I can't get a small test

case to fail, and if I change the optimization level it works.  Also, I can't

be sure whether the problem is in the compiler or the library, but I suspect

the former.  Here is a small snippet of code



k = max(1, shiftr(j,1)) ! The increment during the sort

do ! Sort constraints to make active (Shell sort)

  do i = k + 1, j



In my small test case j is 13.  And k gets the value 1.  If I precede the first

statement with a garbage statement i2=17 then after the first statement

above, k has the correct value of 6, even though the added statement should not

have changed the result.



Here are my flags





-ggdb -march=native -mpc80 -funroll-loops -pipe \

 -ftree-vectorize -floop-strip-mine \

 -floop-block -fimplicit-none -finit-real=NAN -fopenmp\

 -fcheck=bounds -Wall -Wextra



If I follow -ggdb with either -O1 or -O2 it gets the correct result.

This is running on a Gentoo Linux system, with Intel I7 CPU's.

Finally, here is a dump of the assembler code from the start of the first

statement.



Dump of assembler code from 0x40e5f1 to 0x40e6f1:

= 0x0040e5f1 find_unequals+5571: mov0x1204(%rbx),%edx

   0x0040e5f7 find_unequals+5577: mov$0x1,%eax

   0x0040e5fc find_unequals+5582: shr%edx

   0x0040e5fe find_unequals+5584: cmp%eax,%edx

   0x0040e600 find_unequals+5586: jle0x40e604

find_unequals+5590

   0x0040e602 find_unequals+5588: mov%edx,%eax

   0x0040e604 find_unequals+5590: mov%eax,0x1330(%rbx)

   0x0040e60a find_unequals+5596: mov0x1330(%rbx),%eax

   0x0040e610 find_unequals+5602: add$0x1,%eax

   0x0040e613 find_unequals+5605: mov0x1204(%rbx),%esi

   0x0040e619 find_unequals+5611: mov%eax,0x133c(%rbx)

   0x0040e61f find_unequals+5617: mov0x133c(%rbx),%eax

   0x0040e625 find_unequals+5623: cmp%esi,%eax

   0x0040e627 find_unequals+5625: jg 0x40ea50

find_unequals+6690

   0x0040e62d find_unequals+5631: jmp0x40e630

find_unequals+5634

   0x0040e62f find_unequals+5633: nop

   0x0040e630 find_unequals+5634: mov0x133c(%rbx),%eax

   0x0040e636 find_unequals+5640: cltq   

   0x0040e638 find_unequals+5642: test   %rax,%rax

   0x0040e63b find_unequals+5645: setle  %dl

   0x0040e63e find_unequals+5648: movzbl %dl,%edx

   0x0040e641 find_unequals+5651: mov%edx,%edx

   0x0040e643 find_unequals+5653: and$0x1,%edx

   0x0040e646 find_unequals+5656: test   %edx,%edx

   0x0040e648 find_unequals+5658: je 0x40e666

find_unequals+5688

   0x0040e64a find_unequals+5660: mov$0x1,%ecx

   0x0040e64f find_unequals+5665: mov%rax,%rdx

   0x0040e652 find_unequals+5668: mov$0x4820d8,%esi

   0x0040e657 find_unequals+5673: mov$0x4827f0,%edi

   0x0040e65c find_unequals+5678: mov$0x0,%eax

   0x0040e661 find_unequals+5683: callq  0x401d70

_gfortran_runtime_error_at@plt

   0x0040e666 find_unequals+5688: cmp$0x12,%rax

   0x0040e66a find_unequals+5692: setg   %dl

   0x0040e66d find_unequals+5695: movzbl %dl,%edx

   0x0040e670 find_unequals+5698: mov%edx,%edx

   0x0040e672 find_unequals+5700: and$0x1,%edx

   0x0040e675 find_unequals+5703: test   %edx,%edx

   0x0040e677 find_unequals+5705: je 0x40e695

find_unequals+5735

   0x0040e679 find_unequals+5707: mov$0x12,%ecx

   0x0040e67e find_unequals+5712: mov%rax,%rdx

   0x0040e681 find_unequals+5715: mov$0x482148,%esi

   0x0040e686 find_unequals+5720: mov$0x4827f0,%edi

   0x0040e68b find_unequals+5725: mov$0x0,%eax

   0x0040e690 find_unequals+5730: callq  0x401d70

_gfortran_runtime_error_at@plt

   0x0040e695 find_unequals+5735: sub$0x1,%rax

   0x0040e699 find_unequals+5739: add$0x4b8,%rax

   0x0040e69f find_unequals+5745: mov0x4(%rbx,%rax,4),%eax

   0x0040e6a3 find_unequals+5749: mov%eax,0x1200(%rbx)

   0x0040e6a9 find_unequals+5755: mov0x1200(%rbx),%eax

   0x0040e6af find_unequals+5761: add$0x1,%eax

   0x0040e6b2 find_unequals+5764: movslq %eax,%rdx

   0x0040e6b5 find_unequals+5767: test   %rdx,%rdx

   0x0040e6b8 find_unequals+5770: setle  %al

   0x0040e6bb find_unequals+5773: movzbl %al,%eax

   

[Bug fortran/56637] Bad result on max(1,shiftr(j,1))

2013-03-16 Thread dominiq at lps dot ens.fr


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



--- Comment #2 from Dominique d'Humieres dominiq at lps dot ens.fr 2013-03-16 
18:16:10 UTC ---

What happens if you don't use the graphite options '-floop-strip-mine

-floop-block'?

How big is your small test case and on which libraries does it depends?


[Bug fortran/56637] Bad result on max(1,shiftr(j,1))

2013-03-16 Thread fkrogh#gcc at mathalacarte dot com


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



--- Comment #3 from Fred Krogh fkrogh#gcc at mathalacarte dot com 2013-03-16 
18:46:06 UTC ---

First some confusion.  If I single step over the first statement it works

properly. Once past that confusion, deleting both -floop-block and

-floop-strip-mine from the make file it still fails.



Although the test case I'm running is small, the actual code is quite large.



After realizing the problem with single stepping over the statement causing it

to work, I just tried that with the extra statement in front, and that actually

fails if I set the breakpoint after k is defined. So that part of my original

post should be ignored.



When I tried a small test case before, I had not used the same flags as caused

failure.  I just tried such a case, and it worked, so no luck in generating a

small test case.


[Bug c++/56607] [4.8/4.9 regression] GCC fails to warn on division by zero

2013-03-16 Thread jakub at gcc dot gnu.org


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



--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org 2013-03-16 
19:35:48 UTC ---

Author: jakub

Date: Sat Mar 16 19:35:41 2013

New Revision: 196704



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

Log:

PR c++/56607

* typeck.c (cp_build_binary_op): When calling warn_for_div_by_zero,

pass op1 through maybe_constant_value first.



* g++.dg/warn/Wdiv-by-zero-2.C: New test.

* c-c++-common/pr56607.c: New test.



Added:

trunk/gcc/testsuite/c-c++-common/pr56607.c

trunk/gcc/testsuite/g++.dg/warn/Wdiv-by-zero-2.C

Modified:

trunk/gcc/cp/ChangeLog

trunk/gcc/cp/typeck.c

trunk/gcc/testsuite/ChangeLog


[Bug fortran/56638] New: Linker uses a lot of memory in Fortran 77

2013-03-16 Thread ncc1701zzz at gmail dot com


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



 Bug #: 56638

   Summary: Linker uses a lot of memory in Fortran 77

Classification: Unclassified

   Product: gcc

   Version: 4.6.3

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: fortran

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

ReportedBy: ncc1701...@gmail.com





Hi.



I hope this is not a repeated bug. I haven't found a similar bug.



I'm using gfortran 4.6.3 in a Raspberry Pi (ARM architecture).



When compiling a Fortran 77 file, I've noticed that in the linking process, it

uses as much RAM as declared in all the variables. The executable generated is

small and the execution doesn't uses so much RAM if the full array is not

addressed. 



I have a software that reserves a lot of RAM (because Fortran 77 doesn't

support dynamically assigned memory) but it won't address the entire range. I

cannot compile it in the Raspberry Pi, but it compiles fine in a x86 linux and

in Cygwin.



Example program:



  PROGRAM BUG

  IMPLICIT NONE



  INTEGER LARGE(1)

  LARGE(1)=1



  END





Compile the object, this works fine:

gfortran -c program.f



Generate the executable. This uses over 400 MB of RAM (100.000.000 elements of

4 bytes):

gfortran -o program program.f



If you increase the length of the array LARGE in the code, it will use more and

more RAM.



Full output of the compiler version:

$ gfortran -v

Using built-in specs.

COLLECT_GCC=gfortran

COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabihf/4.6/lto-wrapper

Target: arm-linux-gnueabihf

Configured with: ../src/configure -v --with-pkgversion='Debian 4.6.3-14+rpi1'

--with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs

--enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr

--program-suffix=-4.6 --enable-shared --enable-linker-build-id

--with-system-zlib --libexecdir=/usr/lib --without-included-gettext

--enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6

--libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu

--enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object

--enable-plugin --enable-objc-gc --disable-sjlj-exceptions --with-arch=armv6

--with-fpu=vfp --with-float=hard --enable-checking=release

--build=arm-linux-gnueabihf --host=arm-linux-gnueabihf

--target=arm-linux-gnueabihf

Thread model: posix

gcc version 4.6.3 (Debian 4.6.3-14+rpi1)







Is this considered a bug? 



Thanks!

Best regards.


[Bug libstdc++/56002] [C++11] allow generic locks to be used without requiring plattform support for threads

2013-03-16 Thread redi at gcc dot gnu.org


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



--- Comment #4 from Jonathan Wakely redi at gcc dot gnu.org 2013-03-16 
19:46:07 UTC ---

Author: redi

Date: Sat Mar 16 19:45:53 2013

New Revision: 196706



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

Log:

PR libstdc++/56002

* include/std/mutex (lock_guard, unique_lock, lock): Define without

depending on _GLIBCXX_HAS_GTHREADS.

* testsuite/30_threads/lock_guard/cons/1.cc: Run on all targets.



Modified:

trunk/libstdc++-v3/ChangeLog

trunk/libstdc++-v3/include/std/mutex

trunk/libstdc++-v3/testsuite/30_threads/lock_guard/cons/1.cc


[Bug libstdc++/56002] [C++11] allow generic locks to be used without requiring plattform support for threads

2013-03-16 Thread redi at gcc dot gnu.org


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



Jonathan Wakely redi at gcc dot gnu.org changed:



   What|Removed |Added



 Status|NEW |ASSIGNED

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

   |gnu.org |

   Target Milestone|--- |4.7.3



--- Comment #5 from Jonathan Wakely redi at gcc dot gnu.org 2013-03-16 
19:52:42 UTC ---

Fixed on trunk so far, the fix will also be done for 4.7.3 and 4.8.1


[Bug libstdc++/56468] Clang exposes bug with unexpected forward-declaration of type_info

2013-03-16 Thread redi at gcc dot gnu.org


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



--- Comment #5 from Jonathan Wakely redi at gcc dot gnu.org 2013-03-16 
20:01:27 UTC ---

Author: redi

Date: Sat Mar 16 20:01:16 2013

New Revision: 196709



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

Log:

PR libstdc++/56468

* libsupc++/exception_ptr.h (type_info): Declare.



Modified:

trunk/libstdc++-v3/ChangeLog

trunk/libstdc++-v3/libsupc++/exception_ptr.h


[Bug libstdc++/56002] [C++11] allow generic locks to be used without requiring plattform support for threads

2013-03-16 Thread redi at gcc dot gnu.org


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



--- Comment #6 from Jonathan Wakely redi at gcc dot gnu.org 2013-03-16 
20:22:40 UTC ---

Author: redi

Date: Sat Mar 16 20:22:30 2013

New Revision: 196710



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

Log:

PR libstdc++/56002

* include/std/mutex (lock_guard, unique_lock, lock): Define without

depending on _GLIBCXX_HAS_GTHREADS.

* testsuite/30_threads/lock_guard/cons/1.cc: Run on all targets.



Modified:

branches/gcc-4_7-branch/libstdc++-v3/ChangeLog

branches/gcc-4_7-branch/libstdc++-v3/include/std/mutex

   

branches/gcc-4_7-branch/libstdc++-v3/testsuite/30_threads/lock_guard/cons/1.cc


[Bug libstdc++/56468] Clang exposes bug with unexpected forward-declaration of type_info

2013-03-16 Thread redi at gcc dot gnu.org


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



--- Comment #6 from Jonathan Wakely redi at gcc dot gnu.org 2013-03-16 
20:22:57 UTC ---

Author: redi

Date: Sat Mar 16 20:22:40 2013

New Revision: 196711



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

Log:

PR libstdc++/56468

* libsupc++/exception_ptr.h (type_info): Declare.



Modified:

branches/gcc-4_7-branch/libstdc++-v3/ChangeLog

branches/gcc-4_7-branch/libstdc++-v3/libsupc++/exception_ptr.h


[Bug libstdc++/56468] Clang exposes bug with unexpected forward-declaration of type_info

2013-03-16 Thread redi at gcc dot gnu.org


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



Jonathan Wakely redi at gcc dot gnu.org changed:



   What|Removed |Added



 Status|NEW |ASSIGNED

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

   |gnu.org |

   Target Milestone|--- |4.7.3



--- Comment #7 from Jonathan Wakely redi at gcc dot gnu.org 2013-03-16 
20:23:58 UTC ---

Fixed on trunk and 4.7 branch so far, the fix will also be done for 4.8.1


[Bug fortran/56637] Bad result on max(1,shiftr(j,1))

2013-03-16 Thread tkoenig at gcc dot gnu.org


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



Thomas Koenig tkoenig at gcc dot gnu.org changed:



   What|Removed |Added



 CC||tkoenig at gcc dot gnu.org



--- Comment #4 from Thomas Koenig tkoenig at gcc dot gnu.org 2013-03-16 
21:22:43 UTC ---

The symptoms you describe could indicate a classic error like

an index out of bounds error, an argument mismatch or a variable

which has not been set.



You could run your program under valgrind, and see if you

find anything.



You could also look the output from -fdump-tree-original

to see if anything looks wrong.


[Bug fortran/56637] Bad result on max(1,shiftr(j,1))

2013-03-16 Thread fkrogh#gcc at mathalacarte dot com


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



--- Comment #5 from Fred Krogh fkrogh#gcc at mathalacarte dot com 2013-03-16 
21:25:46 UTC ---

I don't mean to be argumentative, but I would like to ask:

Would an index out of bounds explain why single stepping over the statement

make it work, and would it explain that a higher level of optimization works?


[Bug fortran/56637] Bad result on max(1,shiftr(j,1))

2013-03-16 Thread dominiq at lps dot ens.fr


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



--- Comment #6 from Dominique d'Humieres dominiq at lps dot ens.fr 2013-03-16 
21:36:54 UTC ---

 I don't mean to be argumentative, but I would like to ask:

 Would an index out of bounds explain why single stepping over the statement

 make it work, and would it explain that a higher level of optimization works?



Absolutely: all the errors mentioned by Thomas give behaviors sensitive to the

memory layout! However if you compile with -fcheck=bounds, out of bounds

error(s) should be detected. Did you check that you pass the right arguments

(position, type, kind, ...) to the procedures in the libraries you are using?


[Bug fortran/56637] Bad result on max(1,shiftr(j,1))

2013-03-16 Thread fkrogh#gcc at mathalacarte dot com


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



--- Comment #7 from Fred Krogh fkrogh#gcc at mathalacarte dot com 2013-03-16 
21:44:46 UTC ---

As mentioned in my first post, I am compiling with -fcheck-bounds.  The errors

are occurring in a subroutine inside what at the moment is a main program. 

That subroutine has no arguments.  As this is code in the process of being

developed, I have had run time errors for indexes being out of bounds.  It

turns out as a result of thinking more about the problems I'm dealing with

(algorithmic issues) this part of the code is likely to disappear.  I do

appreciate others trying to find my problem, that is very nice.  I was posting

in the hope that I might help someone in finding a compiler bug.


[Bug fortran/56637] Bad result on max(1,shiftr(j,1))

2013-03-16 Thread tkoenig at gcc dot gnu.org


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



--- Comment #8 from Thomas Koenig tkoenig at gcc dot gnu.org 2013-03-16 
23:03:06 UTC ---



 I was posting

 in the hope that I might help someone in finding a compiler bug.



And we do appreciate that very much.



The problem is that without a self-contained example (i.e. one which

compiles and shows the erroneous behavior) we cannot do much.



If you can upload something which reproduces the problem, even if

it is large, we could then try to find the issue.



Would that be possible for you?


[Bug libstdc++/56468] Clang exposes bug with unexpected forward-declaration of type_info

2013-03-16 Thread steven at gcc dot gnu.org


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



--- Comment #8 from Steven Bosscher steven at gcc dot gnu.org 2013-03-16 
23:46:08 UTC ---

(In reply to comment #7)

 Fixed on trunk and 4.7 branch so far, the fix will also be done for 4.8.1



It's unusual for a bug to be fixed for a previous release and for trunk,

but not on the latest release. Isn't this worth applying to GCC 4.8.0

also? The patch looks safe and simple enough...


[Bug fortran/56638] Linker uses a lot of memory in Fortran 77

2013-03-16 Thread kargl at gcc dot gnu.org


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



kargl at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

 CC||kargl at gcc dot gnu.org

 Resolution||INVALID



--- Comment #1 from kargl at gcc dot gnu.org 2013-03-17 01:24:10 UTC ---

(In reply to comment #0)



 I have a software that reserves a lot of RAM (because Fortran 77 doesn't

 support dynamically assigned memory) but it won't address the entire range.



gfortran is a Fortran 95 compiler.  Learn to use dynamic memory

allocation or lower expectations with regards to declaring arrays

that consume a large amount of memory.


[Bug c/56635] [4.8 regression] internal compiler error: in find_lattice_value, at tree-complex.c:15

2013-03-16 Thread orion at cora dot nwra.com


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



--- Comment #2 from Orion Poplawski orion at cora dot nwra.com 2013-03-17 
01:44:29 UTC ---

Created attachment 29682

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

Preprocessed source



Sorry, looks like it was too big.  Here it is compressed.


[Bug c++/56095] [4.6/4.7 Regression] Crash casting function pointer as non-type template argument

2013-03-16 Thread jason at gcc dot gnu.org


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



--- Comment #10 from Jason Merrill jason at gcc dot gnu.org 2013-03-17 
02:33:46 UTC ---

Author: jason

Date: Sun Mar 17 02:33:38 2013

New Revision: 196722



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

Log:

PR c++/56095

* class.c (resolve_address_of_overloaded_function): Accept a

reference to function for target_type.

(instantiate_type): Likewise.

* pt.c (convert_nontype_argument): Pass it to

convert_nontype_argument_function.



Modified:

trunk/gcc/cp/ChangeLog

trunk/gcc/cp/class.c

trunk/gcc/cp/pt.c


[Bug debug/49090] provide a way to recognize defaulted template parameters

2013-03-16 Thread jason at gcc dot gnu.org


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



--- Comment #11 from Jason Merrill jason at gcc dot gnu.org 2013-03-17 
02:33:59 UTC ---

Author: jason

Date: Sun Mar 17 02:33:50 2013

New Revision: 196723



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

Log:

PR debug/49090

* dwarf2out.c (gen_generic_params_dies): Indicate default arguments

with DW_AT_default_value.



Modified:

trunk/gcc/ChangeLog

trunk/gcc/dwarf2out.c

trunk/gcc/langhooks.h


[Bug c++/56238] [4.7 regression] ICE in tree check: expected record_type or union_type or qual_union_type, have template_type_parm in lookup_conversions, at cp/search.c:2515

2013-03-16 Thread jason at gcc dot gnu.org


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



--- Comment #5 from Jason Merrill jason at gcc dot gnu.org 2013-03-17 
02:34:17 UTC ---

Author: jason

Date: Sun Mar 17 02:34:03 2013

New Revision: 196724



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

Log:

PR c++/56238

* pt.c (fold_non_dependent_expr_sfinae): Check

instantiation_dependent_expression_p.



Modified:

trunk/gcc/cp/ChangeLog

trunk/gcc/cp/pt.c


[Bug c++/55241] [C++11] diagnostics show sizeof...(T) as sizeof(T...)

2013-03-16 Thread jason at gcc dot gnu.org


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



--- Comment #2 from Jason Merrill jason at gcc dot gnu.org 2013-03-17 
02:34:45 UTC ---

Author: jason

Date: Sun Mar 17 02:34:31 2013

New Revision: 196726



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

Log:

PR c++/55241

* error.c (dump_expr) [SIZEOF_EXPR]: Print sizeof... properly.



Added:

trunk/gcc/testsuite/g++.dg/diagnostic/variadic1.C

Modified:

trunk/gcc/cp/ChangeLog

trunk/gcc/cp/error.c


[Bug c++/55240] [c++0x] ICE on non-static data member initialization using 'auto' variable from containing function

2013-03-16 Thread jason at gcc dot gnu.org


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



--- Comment #3 from Jason Merrill jason at gcc dot gnu.org 2013-03-17 
02:35:01 UTC ---

Author: jason

Date: Sun Mar 17 02:34:45 2013

New Revision: 196727



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

Log:

PR c++/55240

* parser.c (parsing_nsdmi): New.

* semantics.c (outer_automatic_var_p): Check it.

(finish_id_expression): Likewise.

* cp-tree.h: Declare it.



Added:

trunk/gcc/testsuite/g++.dg/cpp0x/nsdmi-local.C

Modified:

trunk/gcc/cp/ChangeLog

trunk/gcc/cp/cp-tree.h

trunk/gcc/cp/parser.c

trunk/gcc/cp/semantics.c


[Bug c++/55017] [DR 1051] [C++11] Rvalue-reference member should cause copy constructor to be deleted, but still declared

2013-03-16 Thread jason at gcc dot gnu.org


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



--- Comment #5 from Jason Merrill jason at gcc dot gnu.org 2013-03-17 
02:35:18 UTC ---

Author: jason

Date: Sun Mar 17 02:35:01 2013

New Revision: 196728



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

Log:

PR c++/55017

* method.c (walk_field_subobs): Disallow copy of rvalue ref.



Added:

trunk/gcc/testsuite/g++.dg/cpp0x/rv-copy1.C

Modified:

trunk/gcc/cp/ChangeLog

trunk/gcc/cp/method.c

trunk/libstdc++-v3/ChangeLog

trunk/libstdc++-v3/testsuite/20_util/pair/piecewise2.cc


[Bug c++/56447] [C++11] Lambda in template has conversion op it shouldn't have

2013-03-16 Thread jason at gcc dot gnu.org


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



--- Comment #2 from Jason Merrill jason at gcc dot gnu.org 2013-03-17 
02:35:34 UTC ---

Author: jason

Date: Sun Mar 17 02:35:18 2013

New Revision: 196729



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

Log:

PR c++/56447

PR c++/55532

* pt.c (instantiate_class_template_1): Instantiate lambda capture

list here.

(tsubst_copy_and_build): Not here.



Added:

trunk/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv8.C

trunk/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mutable2.C

Modified:

trunk/gcc/cp/ChangeLog

trunk/gcc/cp/pt.c


[Bug c++/55532] Runtime segfault calling mutable lambda wrapped in a non-mutable lambda within a template function

2013-03-16 Thread jason at gcc dot gnu.org


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



--- Comment #3 from Jason Merrill jason at gcc dot gnu.org 2013-03-17 
02:35:35 UTC ---

Author: jason

Date: Sun Mar 17 02:35:18 2013

New Revision: 196729



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

Log:

PR c++/56447

PR c++/55532

* pt.c (instantiate_class_template_1): Instantiate lambda capture

list here.

(tsubst_copy_and_build): Not here.



Added:

trunk/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv8.C

trunk/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mutable2.C

Modified:

trunk/gcc/cp/ChangeLog

trunk/gcc/cp/pt.c


[Bug c++/54946] ICE on template parameter from cast char-pointer in C++11 constexpr struct

2013-03-16 Thread jason at gcc dot gnu.org


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



--- Comment #3 from Jason Merrill jason at gcc dot gnu.org 2013-03-17 
02:36:09 UTC ---

Author: jason

Date: Sun Mar 17 02:35:50 2013

New Revision: 196731



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

Log:

PR c++/54946

* pt.c (convert_nontype_argument): Handle invalid pointer.



Added:

trunk/gcc/testsuite/g++.dg/cpp0x/constexpr-template5.C

Modified:

trunk/gcc/cp/ChangeLog

trunk/gcc/cp/pt.c


[Bug c++/54835] [C++11][DR 1518] Explicit default constructors not respected during copy-list-initialization

2013-03-16 Thread jason at gcc dot gnu.org


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



--- Comment #5 from Jason Merrill jason at gcc dot gnu.org 2013-03-17 
02:36:25 UTC ---

Author: jason

Date: Sun Mar 17 02:36:08 2013

New Revision: 196732



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

Log:

DR 1518

PR c++/54835

* call.c (convert_like_real): Check for explicit constructors

even for value-initialization.



Modified:

trunk/gcc/cp/ChangeLog

trunk/gcc/cp/call.c

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


[Bug c++/17232] classes and class template specializations treated differently w.r.t. core issue #337

2013-03-16 Thread jason at gcc dot gnu.org


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



--- Comment #18 from Jason Merrill jason at gcc dot gnu.org 2013-03-17 
02:36:54 UTC ---

Author: jason

Date: Sun Mar 17 02:36:40 2013

New Revision: 196734



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

Log:

DR 337

PR c++/17232

* pt.c (tsubst) [ARRAY_TYPE]: Use abstract_virtuals_error_sfinae.

* typeck2.c (abstract_virtuals_error_sfinae): Call complete_type.



Added:

trunk/gcc/testsuite/g++.dg/template/abstract-dr337.C

Modified:

trunk/gcc/cp/ChangeLog

trunk/gcc/cp/pt.c

trunk/gcc/cp/typeck2.c


[Bug c++/52748] [C++11] N3276 changes to decltype

2013-03-16 Thread jason at gcc dot gnu.org


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



--- Comment #5 from Jason Merrill jason at gcc dot gnu.org 2013-03-17 
02:37:21 UTC ---

Author: jason

Date: Sun Mar 17 02:37:09 2013

New Revision: 196736



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

Log:

N3276

PR c++/52748

* cp-tree.h (tsubst_flags): Add tf_decltype.

* call.c (build_cxx_call): Don't build a temporary if it's set.

(build_over_call): Make sure it's only passed to build_cxx_call.

* parser.c (cp_parser_primary_expression): Add decltype_p parm.

(cp_parser_unary_expression): Likewise.

(cp_parser_cast_expression): Likewise.

(cp_parser_binary_expression): Likewise.

(cp_parser_assignment_expression): Likewise.

(cp_parser_postfix_expression): Likewise.  Pass tf_decltype.

(cp_parser_explicit_instantiation): Add decltype_p.  Force a

temporary for a call on the LHS of a comma.

(cp_parser_decltype): Pass true to decltype_p parms.

* pt.c (tsubst) [DECLTYPE_TYPE]: Pass tf_decltype.

(tsubst_copy_and_build): Pass tf_decltype down only for

CALL_EXPR and the RHS of COMPOUND_EXPR.

* tree.c (build_cplus_new): Call complete_type_or_maybe_complain.



Added:

trunk/gcc/testsuite/g++.dg/cpp0x/decltype-call1.C

Modified:

trunk/gcc/cp/ChangeLog

trunk/gcc/cp/call.c

trunk/gcc/cp/cp-tree.h

trunk/gcc/cp/parser.c

trunk/gcc/cp/pt.c

trunk/gcc/cp/tree.c


[Bug c++/56481] [4.8 Regression] endless loop compiling a C++ file

2013-03-16 Thread jason at gcc dot gnu.org


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



--- Comment #6 from Jason Merrill jason at gcc dot gnu.org 2013-03-17 
02:37:34 UTC ---

Author: jason

Date: Sun Mar 17 02:37:21 2013

New Revision: 196737



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

Log:

PR c++/56481

* semantics.c (potential_constant_expression_1): Use of 'this' in

a non-constexpr function makes the expression not potentially

constant.



Modified:

trunk/gcc/cp/ChangeLog

trunk/gcc/cp/semantics.c


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

2013-03-16 Thread jason at gcc dot gnu.org


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



--- Comment #2 from Jason Merrill jason at gcc dot gnu.org 2013-03-17 
02:38:16 UTC ---

Author: jason

Date: Sun Mar 17 02:38:01 2013

New Revision: 196739



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

Log:

PR c++/55357

* semantics.c (maybe_add_lambda_conv_op): Clear DECL_NAME of copied

parms to avoid duplicate -Wshadow warnings.



Added:

trunk/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-shadow1.C

Modified:

trunk/gcc/cp/ChangeLog

trunk/gcc/cp/semantics.c


[Bug c++/54359] [C++0x] decltype in member function's trailing return type when defined outside of class

2013-03-16 Thread jason at gcc dot gnu.org


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



--- Comment #4 from Jason Merrill jason at gcc dot gnu.org 2013-03-17 
02:38:34 UTC ---

Author: jason

Date: Sun Mar 17 02:38:21 2013

New Revision: 196740



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

Log:

PR c++/54359

* parser.c (cp_parser_direct_declarator): Fix late return

for out-of-class defn of member function.



Added:

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

Modified:

trunk/gcc/cp/ChangeLog

trunk/gcc/cp/parser.c


[Bug c++/56039] ICE in iterative_hash_template_arg, at cp/pt.c:1606

2013-03-16 Thread jason at gcc dot gnu.org


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



--- Comment #10 from Jason Merrill jason at gcc dot gnu.org 2013-03-17 
02:38:49 UTC ---

Author: jason

Date: Sun Mar 17 02:38:35 2013

New Revision: 196741



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

Log:

PR c++/56039

* tree.c (strip_typedefs_expr): Complain about lambda, don't abort.



Added:

trunk/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-sfinae1.C

Modified:

trunk/gcc/cp/ChangeLog

trunk/gcc/cp/tree.c


[Bug c++/54764] In class initialization of non-static lambda member can't be used in class with default template paramer

2013-03-16 Thread jason at gcc dot gnu.org


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



--- Comment #3 from Jason Merrill jason at gcc dot gnu.org 2013-03-17 
02:39:05 UTC ---

Author: jason

Date: Sun Mar 17 02:38:50 2013

New Revision: 196742



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

Log:

PR c++/54764

PR c++/55972

* name-lookup.h (tag_scope): Add ts_lambda.

* semantics.c (begin_lambda_type): Use it.

* decl.c (xref_tag_1): Set CLASSTYPE_LAMBDA_EXPR.

* pt.c (check_default_tmpl_args): Ignore lambdas.

(push_template_decl_real): Handle lambdas.

* tree.c (no_linkage_check): Adjust lambda check.



Added:

trunk/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg4.C

trunk/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi3.C

Modified:

trunk/gcc/cp/ChangeLog

trunk/gcc/cp/decl.c

trunk/gcc/cp/name-lookup.h

trunk/gcc/cp/pt.c

trunk/gcc/cp/semantics.c

trunk/gcc/cp/tree.c


[Bug c++/55972] cannot access private member from lambda used in NSDMI

2013-03-16 Thread jason at gcc dot gnu.org


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



--- Comment #1 from Jason Merrill jason at gcc dot gnu.org 2013-03-17 
02:39:03 UTC ---

Author: jason

Date: Sun Mar 17 02:38:50 2013

New Revision: 196742



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

Log:

PR c++/54764

PR c++/55972

* name-lookup.h (tag_scope): Add ts_lambda.

* semantics.c (begin_lambda_type): Use it.

* decl.c (xref_tag_1): Set CLASSTYPE_LAMBDA_EXPR.

* pt.c (check_default_tmpl_args): Ignore lambdas.

(push_template_decl_real): Handle lambdas.

* tree.c (no_linkage_check): Adjust lambda check.



Added:

trunk/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg4.C

trunk/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi3.C

Modified:

trunk/gcc/cp/ChangeLog

trunk/gcc/cp/decl.c

trunk/gcc/cp/name-lookup.h

trunk/gcc/cp/pt.c

trunk/gcc/cp/semantics.c

trunk/gcc/cp/tree.c


[Bug c++/52374] [C++11] Fails to transform id-expression into dependent base member access in lambda expression

2013-03-16 Thread jason at gcc dot gnu.org


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



--- Comment #1 from Jason Merrill jason at gcc dot gnu.org 2013-03-17 
02:39:18 UTC ---

Author: jason

Date: Sun Mar 17 02:39:04 2013

New Revision: 196743



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

Log:

PR c++/52374

* pt.c (tsubst_qualified_id): Use current_nonlambda_class_type.



Added:

trunk/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this13.C

Modified:

trunk/gcc/cp/ChangeLog

trunk/gcc/cp/pt.c


[Bug c++/45917] inaccessible types allowed as template argument in nested-name-specifier

2013-03-16 Thread jason at gcc dot gnu.org


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



--- Comment #4 from Jason Merrill jason at gcc dot gnu.org 2013-03-17 
02:39:39 UTC ---

Author: jason

Date: Sun Mar 17 02:39:22 2013

New Revision: 196744



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

Log:

PR c++/45917

* parser.c (cp_parser_template_id): Don't forget access checks.



Added:

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

Modified:

trunk/gcc/cp/ChangeLog

trunk/gcc/cp/parser.c


[Bug c++/55931] [C++11] Constexpr member function inside a static member is not working

2013-03-16 Thread jason at gcc dot gnu.org


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



--- Comment #7 from Jason Merrill jason at gcc dot gnu.org 2013-03-17 
02:40:06 UTC ---

Author: jason

Date: Sun Mar 17 02:39:51 2013

New Revision: 196746



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

Log:

PR c++/55931

* parser.c (cp_parser_template_argument): Don't

fold_non_dependent_expr.



Added:

trunk/gcc/testsuite/g++.dg/cpp0x/constexpr-template4.C

Modified:

trunk/gcc/cp/ChangeLog

trunk/gcc/cp/parser.c


[Bug c++/54277] Template class member referred to with implicit this inside lambda is incorrectly const-qualified

2013-03-16 Thread jason at gcc dot gnu.org


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



--- Comment #5 from Jason Merrill jason at gcc dot gnu.org 2013-03-17 
02:41:35 UTC ---

Author: jason

Date: Sun Mar 17 02:41:22 2013

New Revision: 196747



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

Log:

PR c++/54277

* cp-tree.h (WILDCARD_TYPE_P): Split out from...

(MAYBE_CLASS_TYPE_P): ...here.

* semantics.c (lambda_capture_field_type): Only build a

magic decltype for wildcard types.

(lambda_proxy_type): Likewise.

(finish_non_static_data_member): Get the quals from

the object.



Added:

trunk/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this9.C

Modified:

trunk/gcc/cp/ChangeLog

trunk/gcc/cp/cp-tree.h

trunk/gcc/cp/semantics.c


[Bug fortran/56637] Bad result on max(1,shiftr(j,1))

2013-03-16 Thread fkrogh#gcc at mathalacarte dot com


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



--- Comment #9 from Fred Krogh fkrogh#gcc at mathalacarte dot com 2013-03-17 
04:42:39 UTC ---

I have tried, but the small examples I've tried all work.  And the code uses a

library that I am not free to pass on.  Probably you just have to call this

unconfirmed and forget it.  Sorry.


[Bug c/56635] [4.8 regression] internal compiler error: in find_lattice_value, at tree-complex.c:15

2013-03-16 Thread markus at trippelsdorf dot de

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

Markus Trippelsdorf markus at trippelsdorf dot de changed:

   What|Removed |Added

 CC||markus at trippelsdorf dot
   ||de

--- Comment #3 from Markus Trippelsdorf markus at trippelsdorf dot de 
2013-03-17 04:44:38 UTC ---
markus@x4 tmp % cat test.ii
templatetypenamestruct A;
templatetypename _TpA_Tpoperator/(A_Tp, A_Tp p2)
{
  A_Tp a;
  a /= p2;
  return a;
}

templatetypename _Tpbool operator!=(A_Tp p1, A_Tp)
{
  return p1.real();
}

templatestruct Adouble
{
  double real()
  {
return __real__ _M_value;
  }

  templatetypename _Tpvoid operator/=(A_Tp)
  {
_M_value /= 10;
  }

  _Complex double _M_value;
};

templateclass Tclass B {
  T *buf;

public:

  B(int, bool);
  T operator[](int)
  {
return buf[0];
  }
};

struct C
{
  C(const int);
  typedef AdoubleTy;
  typedef BTyDataT;
  Adoublezero;
  enum InitType
  { NOZERO };
  virtual C* DivInv(C *);
};
templateclass Spclass D : Sp {
  typedef typename Sp::TyTy;
  typedef typename Sp::DataT DataT;
  DataT dd;

public:

  D(const int, C::InitType);
  Ty operator[](int)
  {
return dd[0];
  }

  D* DivInv(C *);
};

templateclass SpDSp *DSp::DivInv(C *)
{
  if ((*this)[0] != this-zero) (*this)[0] = (*static_castD *(0))[0] /
 (*this)[0];
  else (*this)[0] = (*static_castD *(0))[0];
  return 0;
}

DC *b = new DC(0, C::NOZERO);
templateclass SpDSp::D(const int, C::InitType) : Sp(0), dd(0, 0)
{}

markus@x4 tmp % c++ -Wextra -Wall -c -O3 test.ii
test.ii: In member function ‘DSp* DSp::DivInv(C*) [with Sp = C]’:
test.ii:67:26: internal compiler error: in find_lattice_value, at
tree-complex.c:151
 templateclass SpDSp *DSp::DivInv(C *)
  ^


[Bug tree-optimization/56635] [4.8 regression] internal compiler error: in find_lattice_value, at tree-complex.c:15

2013-03-16 Thread pinskia at gcc dot gnu.org


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



Andrew Pinski pinskia at gcc dot gnu.org changed:



   What|Removed |Added



  Component|c   |tree-optimization

   Target Milestone|--- |4.8.0