[Bug c++/53599] [4.7/4.8 Regression] gcc-4.7.1_rc20120606 segfaults compiling boost.karma

2012-06-08 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53599

--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org 2012-06-08 
06:43:51 UTC ---
Yeah, I agree with that.


[Bug target/51408] Miscompilation in arm.md:*minmax_arithsi

2012-06-08 Thread jye2 at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51408

--- Comment #6 from jye2 at gcc dot gnu.org 2012-06-08 06:58:32 UTC ---
Author: jye2
Date: Fri Jun  8 06:58:25 2012
New Revision: 188327

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=188327
Log:
Backport mainline r179607, r179979, r179980, r181416, r182014
2012-06-08  Joey Ye  joey...@arm.com

Backport r182014 from mainline.
2011-12-05  Kazu Hirata  k...@codesourcery.com

PR target/51408
* config/arm/arm.md (*minmax_arithsi): Always require the else
clause in the MINUS case.

Backport r181416 from mainline.
2011-11-16  Richard Earnshaw  rearn...@arm.com
Bernd Schmidt ber...@coudesourcery.com
Sebastian Huber sebastian.hu...@embedded-brains.de

PR target/49641
* config/arm/arm.c (store_multiple_sequence): Avoid cases where
the base reg is stored iff compiling for Thumb1.

Backport r179980 from mainline.
2011-10-14  David Alan Gilbert  david.gilb...@linaro.org

PR target/48126
* config/arm/arm.c (arm_output_sync_loop): Move label before barrier.

Backport r179979 from mainline.
2011-10-14  David Alan Gilbert  david.gilb...@linaro.org

* config/arm/arm.h (TARGET_HAVE_DMB_MCR): MCR Not available in Thumb1.

Backport r179607 from mainline.
2011-10-06  Bernd Schmidt  ber...@codesourcery.com

PR target/49049
* config/arm/arm.md (arm_subsi3_insn): Lose the last alternative.

Testsuites:
Backport r182014 from mainline
2011-12-05  Kazu Hirata  k...@codesourcery.com

PR target/51408
* gcc.dg/pr51408.c: New.

Backport r181416 from mainline
2011-11-16  Richard Earnshaw  rearn...@arm.com
Bernd Schmidt ber...@coudesourcery.com
Sebastian Huber sebastian.hu...@embedded-brains.de

PR target/49641
* gcc.target/arm/pr49641.c: New test.

Backport r179607 from mainline
2011-10-06  Bernd Schmidt  ber...@codesourcery.com

PR target/49049
* gcc.c-torture/compile/pr49049.c: New test.


Added:
   
branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.c-torture/compile/pr49049.c
branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.dg/pr51408.c
branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.target/arm/pr49641.c
Modified:
branches/ARM/embedded-4_6-branch/gcc/ChangeLog.arm
branches/ARM/embedded-4_6-branch/gcc/config/arm/arm.c
branches/ARM/embedded-4_6-branch/gcc/config/arm/arm.h
branches/ARM/embedded-4_6-branch/gcc/config/arm/arm.md
branches/ARM/embedded-4_6-branch/gcc/testsuite/ChangeLog.arm


[Bug target/48126] arm_output_sync_loop: misplaced memory barrier

2012-06-08 Thread jye2 at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48126

--- Comment #12 from jye2 at gcc dot gnu.org 2012-06-08 06:58:32 UTC ---
Author: jye2
Date: Fri Jun  8 06:58:25 2012
New Revision: 188327

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=188327
Log:
Backport mainline r179607, r179979, r179980, r181416, r182014
2012-06-08  Joey Ye  joey...@arm.com

Backport r182014 from mainline.
2011-12-05  Kazu Hirata  k...@codesourcery.com

PR target/51408
* config/arm/arm.md (*minmax_arithsi): Always require the else
clause in the MINUS case.

Backport r181416 from mainline.
2011-11-16  Richard Earnshaw  rearn...@arm.com
Bernd Schmidt ber...@coudesourcery.com
Sebastian Huber sebastian.hu...@embedded-brains.de

PR target/49641
* config/arm/arm.c (store_multiple_sequence): Avoid cases where
the base reg is stored iff compiling for Thumb1.

Backport r179980 from mainline.
2011-10-14  David Alan Gilbert  david.gilb...@linaro.org

PR target/48126
* config/arm/arm.c (arm_output_sync_loop): Move label before barrier.

Backport r179979 from mainline.
2011-10-14  David Alan Gilbert  david.gilb...@linaro.org

* config/arm/arm.h (TARGET_HAVE_DMB_MCR): MCR Not available in Thumb1.

Backport r179607 from mainline.
2011-10-06  Bernd Schmidt  ber...@codesourcery.com

PR target/49049
* config/arm/arm.md (arm_subsi3_insn): Lose the last alternative.

Testsuites:
Backport r182014 from mainline
2011-12-05  Kazu Hirata  k...@codesourcery.com

PR target/51408
* gcc.dg/pr51408.c: New.

Backport r181416 from mainline
2011-11-16  Richard Earnshaw  rearn...@arm.com
Bernd Schmidt ber...@coudesourcery.com
Sebastian Huber sebastian.hu...@embedded-brains.de

PR target/49641
* gcc.target/arm/pr49641.c: New test.

Backport r179607 from mainline
2011-10-06  Bernd Schmidt  ber...@codesourcery.com

PR target/49049
* gcc.c-torture/compile/pr49049.c: New test.


Added:
   
branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.c-torture/compile/pr49049.c
branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.dg/pr51408.c
branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.target/arm/pr49641.c
Modified:
branches/ARM/embedded-4_6-branch/gcc/ChangeLog.arm
branches/ARM/embedded-4_6-branch/gcc/config/arm/arm.c
branches/ARM/embedded-4_6-branch/gcc/config/arm/arm.h
branches/ARM/embedded-4_6-branch/gcc/config/arm/arm.md
branches/ARM/embedded-4_6-branch/gcc/testsuite/ChangeLog.arm


[Bug c++/53602] [4.7/4.8 Regression] Libre Office causes an internal compiler error

2012-06-08 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53602

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||rth at gcc dot gnu.org

--- Comment #7 from Jakub Jelinek jakub at gcc dot gnu.org 2012-06-08 
07:51:25 UTC ---
We end up with:
(insn 38 73 40 5 (parallel [
(set (reg/f:SI 7 sp)
(plus:SI (reg/f:SI 7 sp)
(const_int 12 [0xc])))
(clobber (reg:CC 17 flags))   
]) pr53602.ii:359 251 {*addsi_1}  
 (expr_list:REG_UNUSED (reg:CC 17 flags)
(expr_list:REG_ARGS_SIZE (const_int 0 [0])
(nil

(insn 40 38 41 5 (parallel [
(set (reg/f:SI 7 sp)
(plus:SI (reg/f:SI 7 sp)
(const_int -12 [0xfff4])))
(clobber (reg:CC 17 flags))
]) pr53602.ii:64 251 {*addsi_1}
 (expr_list:REG_UNUSED (reg:CC 17 flags)
(expr_list:REG_ARGS_SIZE (const_int 12 [0xc])
(nil

(insn 41 40 42 5 (set (mem/f:SI (pre_dec:SI (reg/f:SI 7 sp)) [0 S4 A32])
(mem/f/c:SI (plus:SI (reg/f:SI 6 bp)
(const_int -12 [0xfff4])) [3 D.3489.pData+0 S4
A32])) pr53602.ii:64 43 {*pushsi2}
 (expr_list:REG_ARGS_SIZE (const_int 16 [0x10])
(nil)))

before csa and csa obviously merges the two into sp += 0 that it wants to
delete.
force_move_args_size is called with prev == NULL (as it is at the start of a
bb).  But apparently cleanup_cfg at the start of csa pass jump threaded the
call sequence starting at insn 41, so the two stack adjustments that cancel
each other end up the only insns in a bb.  So we trigger:
  /* ??? We *must* have a place, lest we ICE on the lost adjustment.
 Options are: dummy clobber insn, nop, or prevent the removal of
 the sp += 0 insn.  Defer that decision until we can prove this
 can actually happen.  */

I guess if we proved that all the predecessors of the bb have the same current
REG_ARGS_SIZE, or all the successor have the same current REG_ARGS_SIZE, we
could avoid the note altogether.  Or do one of the things the comment talks
about.  Richard, can you please handle this?


[Bug fortran/52552] [OOP] ICE when trying to allocate non-allocatable object giving a dynamic type

2012-06-08 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52552

--- Comment #5 from janus at gcc dot gnu.org 2012-06-08 07:55:34 UTC ---
(In reply to comment #4)
 This patch avoids the segfault and correctly rejects the test case. I hope it
 does not introduce any other problems (I'll try it on the testsuite soon).

It passes the testsuite without any failures.


[Bug c++/53602] [4.7/4.8 Regression] Libre Office causes an internal compiler error

2012-06-08 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53602

--- Comment #8 from Jakub Jelinek jakub at gcc dot gnu.org 2012-06-08 
07:57:23 UTC ---
Or perhaps just handle this particular case for now, when there has been jump
threading right after the sp adjustment sequence that cancelled each other.
Thus, if we reach end of bb after the insn without seeing a CALL or or throwing
insn and the bb has a single fallthru successor only, keep looking in the
successor bb.


[Bug target/51915] [4.7 Regression] ICE in output_move_double

2012-06-08 Thread jye2 at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51915

--- Comment #6 from jye2 at gcc dot gnu.org 2012-06-08 08:58:01 UTC ---
Author: jye2
Date: Fri Jun  8 08:57:53 2012
New Revision: 188332

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=188332
Log:
2012-06-08  Joey Ye  joey...@arm.com

Backport r184442 from mainline
2012-02-21  Richard Earnshaw  rearn...@arm.com

PR target/52294
* thumb2.md (thumb2_shiftsi3_short): Split register and 
immediate shifts.  For register shifts tie operands 0 and 1.
(peephole2 for above): Check that register-controlled shifts
have suitably tied operands.

Backport r183756 from mainline
2012-01-31  Matthew Gretton-Dann  matthew.gretton-d...@arm.com

* config/arm/thumb2.md (thumb2_mov_notscc): Use MVN for true
condition.

Backport r183349 from mainline
2012-01-20  Jakub Jelinek  ja...@redhat.com

PR target/51915
* config/arm/arm.c (arm_count_output_move_double_insns): Call
output_move_double on a copy of operands array.

Backport r183095 from mainline
2012-01-11  Matthew Gretton-Dann  matthew.gretton-d...@arm.com

* config/arm/arm.md (mov_notscc): Use MVN for false condition.

Backport r182628 from mainline
2011-12-21  Richard Earnshaw  rearn...@arm.com

PR target/51643
* arm.c (arm_function_ok_for_sibcall): Use DECL_WEAK in previous
change.

Backport r182621 from mainline
2011-12-21  Richard Earnshaw  rearn...@arm.com

PR target/51643
* arm.c (arm_function_ok_for_sibcall): Don't try to tailcall a
weak function on bare-metal EABI targets.

Testsuite:
Backport r183349 from mainline
2012-01-20  Jakub Jelinek  ja...@redhat.com

PR target/51915
* gcc.target/arm/pr51915.c: New test.

Backport r183095 from mainline
2012-01-11  Matthew Gretton-Dann  matthew.gretton-d...@arm.com

* gcc.c-torture/execute/20120110-1.c: New testcase.

Backport r182621 from mainline
2011-12-21  Richard Earnshaw  rearn...@arm.com

PR target/51643
* gcc.target/arm/sibcall-2.c: New test.


Added:
   
branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.c-torture/execute/20120111-1.c
branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.target/arm/pr51915.c
branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.target/arm/sibcall-2.c
Modified:
branches/ARM/embedded-4_6-branch/gcc/ChangeLog.arm
branches/ARM/embedded-4_6-branch/gcc/config/arm/arm.c
branches/ARM/embedded-4_6-branch/gcc/config/arm/arm.md
branches/ARM/embedded-4_6-branch/gcc/config/arm/thumb2.md
branches/ARM/embedded-4_6-branch/gcc/testsuite/ChangeLog.arm


[Bug target/52294] [4.7 Regression] [ARM Thumb] generated asm code produces branch out of range error in gas with -Os -mcpu=cortex-a9

2012-06-08 Thread jye2 at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52294

--- Comment #12 from jye2 at gcc dot gnu.org 2012-06-08 08:57:59 UTC ---
Author: jye2
Date: Fri Jun  8 08:57:53 2012
New Revision: 188332

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=188332
Log:
2012-06-08  Joey Ye  joey...@arm.com

Backport r184442 from mainline
2012-02-21  Richard Earnshaw  rearn...@arm.com

PR target/52294
* thumb2.md (thumb2_shiftsi3_short): Split register and 
immediate shifts.  For register shifts tie operands 0 and 1.
(peephole2 for above): Check that register-controlled shifts
have suitably tied operands.

Backport r183756 from mainline
2012-01-31  Matthew Gretton-Dann  matthew.gretton-d...@arm.com

* config/arm/thumb2.md (thumb2_mov_notscc): Use MVN for true
condition.

Backport r183349 from mainline
2012-01-20  Jakub Jelinek  ja...@redhat.com

PR target/51915
* config/arm/arm.c (arm_count_output_move_double_insns): Call
output_move_double on a copy of operands array.

Backport r183095 from mainline
2012-01-11  Matthew Gretton-Dann  matthew.gretton-d...@arm.com

* config/arm/arm.md (mov_notscc): Use MVN for false condition.

Backport r182628 from mainline
2011-12-21  Richard Earnshaw  rearn...@arm.com

PR target/51643
* arm.c (arm_function_ok_for_sibcall): Use DECL_WEAK in previous
change.

Backport r182621 from mainline
2011-12-21  Richard Earnshaw  rearn...@arm.com

PR target/51643
* arm.c (arm_function_ok_for_sibcall): Don't try to tailcall a
weak function on bare-metal EABI targets.

Testsuite:
Backport r183349 from mainline
2012-01-20  Jakub Jelinek  ja...@redhat.com

PR target/51915
* gcc.target/arm/pr51915.c: New test.

Backport r183095 from mainline
2012-01-11  Matthew Gretton-Dann  matthew.gretton-d...@arm.com

* gcc.c-torture/execute/20120110-1.c: New testcase.

Backport r182621 from mainline
2011-12-21  Richard Earnshaw  rearn...@arm.com

PR target/51643
* gcc.target/arm/sibcall-2.c: New test.


Added:
   
branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.c-torture/execute/20120111-1.c
branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.target/arm/pr51915.c
branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.target/arm/sibcall-2.c
Modified:
branches/ARM/embedded-4_6-branch/gcc/ChangeLog.arm
branches/ARM/embedded-4_6-branch/gcc/config/arm/arm.c
branches/ARM/embedded-4_6-branch/gcc/config/arm/arm.md
branches/ARM/embedded-4_6-branch/gcc/config/arm/thumb2.md
branches/ARM/embedded-4_6-branch/gcc/testsuite/ChangeLog.arm


[Bug target/51643] Incorrect code produced for tail-call of weak function with -O2/-O3 option

2012-06-08 Thread jye2 at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51643

--- Comment #16 from jye2 at gcc dot gnu.org 2012-06-08 08:58:02 UTC ---
Author: jye2
Date: Fri Jun  8 08:57:53 2012
New Revision: 188332

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=188332
Log:
2012-06-08  Joey Ye  joey...@arm.com

Backport r184442 from mainline
2012-02-21  Richard Earnshaw  rearn...@arm.com

PR target/52294
* thumb2.md (thumb2_shiftsi3_short): Split register and 
immediate shifts.  For register shifts tie operands 0 and 1.
(peephole2 for above): Check that register-controlled shifts
have suitably tied operands.

Backport r183756 from mainline
2012-01-31  Matthew Gretton-Dann  matthew.gretton-d...@arm.com

* config/arm/thumb2.md (thumb2_mov_notscc): Use MVN for true
condition.

Backport r183349 from mainline
2012-01-20  Jakub Jelinek  ja...@redhat.com

PR target/51915
* config/arm/arm.c (arm_count_output_move_double_insns): Call
output_move_double on a copy of operands array.

Backport r183095 from mainline
2012-01-11  Matthew Gretton-Dann  matthew.gretton-d...@arm.com

* config/arm/arm.md (mov_notscc): Use MVN for false condition.

Backport r182628 from mainline
2011-12-21  Richard Earnshaw  rearn...@arm.com

PR target/51643
* arm.c (arm_function_ok_for_sibcall): Use DECL_WEAK in previous
change.

Backport r182621 from mainline
2011-12-21  Richard Earnshaw  rearn...@arm.com

PR target/51643
* arm.c (arm_function_ok_for_sibcall): Don't try to tailcall a
weak function on bare-metal EABI targets.

Testsuite:
Backport r183349 from mainline
2012-01-20  Jakub Jelinek  ja...@redhat.com

PR target/51915
* gcc.target/arm/pr51915.c: New test.

Backport r183095 from mainline
2012-01-11  Matthew Gretton-Dann  matthew.gretton-d...@arm.com

* gcc.c-torture/execute/20120110-1.c: New testcase.

Backport r182621 from mainline
2011-12-21  Richard Earnshaw  rearn...@arm.com

PR target/51643
* gcc.target/arm/sibcall-2.c: New test.


Added:
   
branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.c-torture/execute/20120111-1.c
branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.target/arm/pr51915.c
branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.target/arm/sibcall-2.c
Modified:
branches/ARM/embedded-4_6-branch/gcc/ChangeLog.arm
branches/ARM/embedded-4_6-branch/gcc/config/arm/arm.c
branches/ARM/embedded-4_6-branch/gcc/config/arm/arm.md
branches/ARM/embedded-4_6-branch/gcc/config/arm/thumb2.md
branches/ARM/embedded-4_6-branch/gcc/testsuite/ChangeLog.arm


[Bug c++/53609] New: Wrong variadic template pack expansion

2012-06-08 Thread Gaetano.Checinski at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53609

 Bug #: 53609
   Summary: Wrong variadic template pack expansion
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: gaetano.checin...@googlemail.com


g++-4.7 missinterperts folowing code :


templateclass...I struct List{};
templateint I struct Z{ static constexpr int value=I;};
templateint...I using NumList = List  ZI... ;

templateclass Lstruct Mover;
templatetemplateclass...class C, class...I
struct MoverCI...
{
using NL = NumList I::value...  ;  // aka :  List  ZI... 
// missinterpreted as : List ZI... 
};

using L=List Z1,Z2,Z3 ; // Works fine
using L2= NumList 1,2,3 ; // Works also fine

Mover L ::NL A; // dont work : should be 1 not 3 args in 'Z'


[Bug c++/53610] New: C++11: constructors accept silly initializers

2012-06-08 Thread akim.demaille at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53610

 Bug #: 53610
   Summary: C++11: constructors accept silly initializers
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: akim.demai...@gmail.com


Created attachment 27584
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27584
test case

Use braces to call a constructor, G++ 4.7 and 4.8 both accept silly arguments,
provided the number of members matches the number of expected arguments.

#include iostream

class bar
{
public:
  bar(int a, int b)
  {
std::cerr  a  ' '  b  std::endl;
  }
};

int
main()
{
  bar{.first = 42, .second = 51};
}


$ g++-mp-4.7 --version
g++-mp-4.7 (MacPorts gcc47 4.7.0_3) 4.7.0
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ g++-mp-4.7 -Wall -std=c++11 bar.cc
$ ./a.out
42 51

$ g++-mp-4.8 --version
g++-mp-4.8 (MacPorts gcc48 4.8-20120603_1) 4.8.0 20120603 (experimental)
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ g++-mp-4.8 -Wall -std=c++11 bar.cc
$ ./a.out
42 51


[Bug c++/53610] C++11: constructors accept silly initializers

2012-06-08 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53610

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org 2012-06-08 
09:14:23 UTC ---
This seems to be an incomplete implementation of C99 designated initializers,
use -pedantic or -pedantic-errors to get a diagnostic.


[Bug c++/53494] [4.7/4.8 Regression] ICE with invalid initializer list

2012-06-08 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53494

--- Comment #21 from Paolo Carlini paolo.carlini at oracle dot com 2012-06-08 
09:20:47 UTC ---
No includes:

templatetypename T, typename U
struct pair
{
  T first;
  U second;

  pair(const T, const U);
};

templatetypename T
struct array
{
  typedef T value_type;
  value_type data[1];
};

struct string
{
  string(const char*) { }
};

arraypairstring, unsigned const const matchSynonyms{ {smile,1} };


[Bug c++/53494] [4.7/4.8 Regression] ICE with invalid initializer list

2012-06-08 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53494

--- Comment #22 from Paolo Carlini paolo.carlini at oracle dot com 2012-06-08 
09:27:34 UTC ---
A tad simpler:

templatetypename T, typename U
struct pair
{
  T first;
  U second;

  pair(const T, const U);
};

templatetypename T
struct array
{
  typedef T value_type;
  value_type data[1];
};

arraypairint, int const matchSynonyms{ { 1, 1 } };


[Bug c++/53609] Wrong variadic template pack expansion in alias template

2012-06-08 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53609

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||rejects-valid
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2012-06-08
 CC||dodji at gcc dot gnu.org
Summary|Wrong variadic template |Wrong variadic template
   |pack expansion  |pack expansion in alias
   ||template
 Ever Confirmed|0   |1
  Known to fail||4.7.0, 4.8.0

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org 2012-06-08 
09:49:33 UTC ---
Confirmed.

It works fine if you rewrite it without alias templates:

templateint...I struct NumList { typedef List  ZI...  type; };

then use NumList::type instead of NumList, so the problem is with the alias
template substitution.

G++ seems to be treating ZI... as ZI... in the type-id of the
alias-declaration.


[Bug c++/53611] New: class with hidden visibility cause function returns pointer to class also be hidden

2012-06-08 Thread kirbyz...@sogou-inc.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53611

 Bug #: 53611
   Summary: class with hidden visibility cause function returns
pointer to class also be hidden
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: kirbyz...@sogou-inc.com


[root@djt-17-109-v06 tmp]# cat tvisi.cpp

extern C typedef struct __cook cook_t;
extern C cook_t* myopen();

struct __attribute__ ((visibility (hidden))) __cook {
virtual ~__cook() = 0;
};

//__attribute__ ((visibility (default)))
cook_t* myopen()
{
return 0;
}

[root@djt-17-109-v06 tmp]# g++ tvisi.cpp -o libxx.so -shared -fPIC  nm -D
libxx.so | fgrep myopen
05cc T myopen  

The function myopen is exported by g++ 4.4.6

[root@djt-17-109-v06 tmp]# g++47 tvisi.cpp -o libxx.so -shared -fPIC  nm -D
libxx.so | fgrep myopen
[root@djt-17-109-v06 tmp]# 

The function myopen is not exported by g++ 4.7.0

Workaround: define '__cook' after the definition of 'myopen'


[Bug c/53612] New: __attribute__((format(...))) does not work with wchar_t format strings

2012-06-08 Thread vhaisman at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53612

 Bug #: 53612
   Summary: __attribute__((format(...))) does not work with
wchar_t format strings
Classification: Unclassified
   Product: gcc
   Version: 4.5.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: vhais...@gmail.com


The __attribute__((format(...))) does not work for wchar_t format strings:

/*-8--*/
#include wchar.h

void foo (char const * fmt, ...) __attribute__ ((format (__printf__, 1, 2)));
void wide_foo (wchar_t const * fmt, ...) __attribute__ ((format (__printf__, 1,
2)));
/*-8--*/

I get the following error with Cygwin's GCC 4.5.3:

./format_attr_text.c:4:1: error: format string argument not a string type


[Bug c++/53613] New: Cannot override a inline = default virtual destructor.

2012-06-08 Thread kirbyz...@sogou-inc.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53613

 Bug #: 53613
   Summary: Cannot override a inline = default virtual
destructor.
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: kirbyz...@sogou-inc.com


[root@djt-17-109-v06 tmp]# cat tover.cpp 
struct __cook {
virtual ~__cook() = default;
};

struct __cook1: public __cook {
virtual ~__cook1() = default;
};

struct __cook2: public __cook {
virtual ~__cook2();
};
__cook2::~__cook2() {};

struct __cook3: public __cook {
virtual ~__cook3();
};
__cook3::~__cook3() = default;

[root@djt-17-109-v06 tmp]# g++47 -c -std=gnu++11 tover.cpp 
tover.cpp:6:10: error: looser throw specifier for 'virtual __cook1::~__cook1()'
tover.cpp:2:10: error:   overriding 'virtual __cook::~__cook() noexcept (true)'
tover.cpp:10:10: error: looser throw specifier for 'virtual
__cook2::~__cook2()'
tover.cpp:2:10: error:   overriding 'virtual __cook::~__cook() noexcept (true)'
tover.cpp:15:10: error: looser throw specifier for 'virtual
__cook3::~__cook3()'
tover.cpp:2:10: error:   overriding 'virtual __cook::~__cook() noexcept (true)
'
[root@djt-17-109-v06 tmp]# g++ -c -std=gnu++0x tover.cpp 
# g++ 4.4.6 works

Workaround: define parent destructor outside the class definition.

[root@djt-17-109-v06 tmp]# cat tover.cpp 
struct __cook {
virtual ~__cook();
};
__cook::~__cook() = default;
/*...*/


[Bug c++/53611] class with hidden visibility cause function returns pointer to class also be hidden

2012-06-08 Thread kirbyz...@sogou-inc.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53611

--- Comment #1 from Kirby Zhou kirbyz...@sogou-inc.com 2012-06-08 11:16:36 
UTC ---
gcc source base:

DATE 20120604
svn://gcc.gnu.org/svn/gcc/branches/redhat/gcc-4_7-branch@188193


[Bug c++/53613] Cannot override a inline = default virtual destructor.

2012-06-08 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53613

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org 2012-06-08 
11:16:47 UTC ---
Fixed on trunk by patch for PR 50043


[Bug c++/53613] Cannot override a inline = default virtual destructor.

2012-06-08 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53613

--- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org 2012-06-08 
11:18:47 UTC ---
(In reply to comment #0)
 Workaround: define parent destructor outside the class definition.

Or add explicit 'noexcept' specifiers to the derived destructors.


[Bug fortran/52531] [OOP] Compilation fails with polymorphic dummy argument and OpenMP

2012-06-08 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52531

janus at gcc dot gnu.org changed:

   What|Removed |Added

 CC||janus at gcc dot gnu.org

--- Comment #3 from janus at gcc dot gnu.org 2012-06-08 13:00:53 UTC ---
(In reply to comment #2)
 Out of curiosity, would there be a technical issue in this case?
 It sure seemed natural to me.

AFAICS there should not be any huge issues. One might consider to implement
this as an extension.


[Bug tree-optimization/51938] missed optimization: 2 comparisons

2012-06-08 Thread glisse at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51938

--- Comment #5 from Marc Glisse glisse at gcc dot gnu.org 2012-06-08 13:06:52 
UTC ---
The main difficulty is trapping math. It isn't hard to add to
tree-ssa-ifcombine an ifcombine_ifnotandif variant, and we could make it call
maybe_fold_and_comparisons (as ifcombine_ifandif does) with
invert_tree_comparison (gimple_cond_code (outer_cond),...), but unless we pass
-fno-trapping-math, it won't help.

combine_comparisons (fold-const.c) has relevant code to determine whether the
optimization is safe wrt trapping, but it does so with the semantic that
UNLT_EXPR never traps, whereas I am (wrongfully) using it for
TRUTH_NOT_EXPR(GE_EXPR). So I guess that means two more versions of
maybe_fold_and_comparisons/maybe_fold_or_comparisons are needed :-(


[Bug c++/53602] [4.7/4.8 Regression] Libre Office causes an internal compiler error

2012-06-08 Thread rth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53602

Richard Henderson rth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 AssignedTo|unassigned at gcc dot   |rth at gcc dot gnu.org
   |gnu.org |

--- Comment #9 from Richard Henderson rth at gcc dot gnu.org 2012-06-08 
14:10:29 UTC ---
Mine.


[Bug c++/53614] New: g++ undefined symbols static const data members conditional assignment

2012-06-08 Thread cam888eron at yahoo dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53614

 Bug #: 53614
   Summary: g++ undefined symbols static const data members
conditional assignment
Classification: Unclassified
   Product: gcc
   Version: 4.4.6
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: cam888e...@yahoo.com


Created attachment 27585
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27585
output of -save-temps

I wanted to attach a 2nd file, main.ii.  Also a 3rd file, Foo.cc.
  Looks like this only allows 1 attachment.  I will try to send later.

  main.ii should let you duplicate ld error undefined symbols.
  Foo.cc if you wish to verify correctness using
  -DWORKAROUND, otherwise please ignore it.  Thanks.

% echo ; g++ -v -save-temps -m64 -c Foo.cc ; echo ; g++ -v -save-temps -m64
-odefineMe main.cc Foo.o

Using built-in specs.
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-languages=c,c++,objc,obj-c++,java,fortran,ada --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.4.6 20110731 (Red Hat 4.4.6-3) (GCC) 
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-m64' '-c' '-shared-libgcc'
'-mtune=generic'
 /usr/libexec/gcc/x86_64-redhat-linux/4.4.6/cc1plus -E -quiet -v -D_GNU_SOURCE
Foo.cc -m64 -mtune=generic -fpch-preprocess -o Foo.ii
ignoring nonexistent directory
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include-fixed
ignoring nonexistent directory
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../x86_64-redhat-linux/include
#include ... search starts here:
#include ... search starts here:
 /usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6

/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/x86_64-redhat-linux
 /usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/backward
 /usr/local/include
 /usr/lib/gcc/x86_64-redhat-linux/4.4.6/include
 /usr/include
End of search list.
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-m64' '-c' '-shared-libgcc'
'-mtune=generic'
 /usr/libexec/gcc/x86_64-redhat-linux/4.4.6/cc1plus -fpreprocessed Foo.ii
-quiet -dumpbase Foo.cc -m64 -mtune=generic -auxbase Foo -version -o Foo.s
GNU C++ (GCC) version 4.4.6 20110731 (Red Hat 4.4.6-3) (x86_64-redhat-linux)
compiled by GNU C version 4.4.6 20110731 (Red Hat 4.4.6-3), GMP
version 4.3.1, MPFR version 2.4.1.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 42c2a139506c57f2f1525b40cf548e53
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-m64' '-c' '-shared-libgcc'
'-mtune=generic'
 as -V -Qy --64 -o Foo.o Foo.s
GNU assembler version 2.20.51.0.2 (x86_64-redhat-linux) using BFD version
version 2.20.51.0.2-5.28.el6 20091009
COMPILER_PATH=/usr/libexec/gcc/x86_64-redhat-linux/4.4.6/:/usr/libexec/gcc/x86_64-redhat-linux/4.4.6/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/4.4.6/:/usr/lib/gcc/x86_64-redhat-linux/:/usr/libexec/gcc/x86_64-redhat-linux/4.4.6/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/4.4.6/:/usr/lib/gcc/x86_64-redhat-linux/
LIBRARY_PATH=/usr/lib/gcc/x86_64-redhat-linux/4.4.6/:/usr/lib/gcc/x86_64-redhat-linux/4.4.6/:/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-m64' '-c' '-shared-libgcc'
'-mtune=generic'

Using built-in specs.
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-languages=c,c++,objc,obj-c++,java,fortran,ada --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.4.6 20110731 (Red Hat 4.4.6-3) (GCC) 
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-m64' '-odefineMe' '-shared-libgcc'

[Bug c++/53614] g++ undefined symbols static const data members conditional assignment

2012-06-08 Thread cam888eron at yahoo dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53614

--- Comment #1 from Cameron MacMinn cam888eron at yahoo dot com 2012-06-08 
15:17:48 UTC ---
Created attachment 27586
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27586
2nd output of -save-temps


[Bug c++/53614] g++ undefined symbols static const data members conditional assignment

2012-06-08 Thread cam888eron at yahoo dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53614

--- Comment #2 from Cameron MacMinn cam888eron at yahoo dot com 2012-06-08 
15:18:59 UTC ---
Created attachment 27587
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27587
to verify correctness using -DWORKAROUND, else ignore


[Bug libitm/53113] Build fails in x86_avx.cc if AVX disabled but supported by as (Solaris Linux)

2012-06-08 Thread safety0ff.bugz at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53113

safety0ff.bugz at gmail dot com changed:

   What|Removed |Added

 CC||safety0ff.bugz at gmail dot
   ||com

--- Comment #1 from safety0ff.bugz at gmail dot com 2012-06-08 15:21:52 UTC ---
I have this problem too.

I'm using Gentoo x86_64, with GNU binutils 2.22 as well.
My CPU does support AVX (Intel Sandy Bridge.)

It is using the following flags:
-g -march=native -mtune=generic -mno-avx -O2 -pipe

It is a pain for me because Valgrind doesn't support AVX and compiling programs
with my system/default gcc version ends up using the 4.7 libgcc_s.so at run
time which will contain AVX code if I compile with AVX enabled.


[Bug c++/53614] g++ undefined symbols static const data members conditional assignment

2012-06-08 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53614

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID

--- Comment #3 from Jonathan Wakely redi at gcc dot gnu.org 2012-06-08 
15:41:15 UTC ---
Not a bug, see
http://gcc.gnu.org/wiki/VerboseDiagnostics#missing_static_const_definition


[Bug other/53615] New: Buffer overflow in the compiler?

2012-06-08 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53615

 Bug #: 53615
   Summary: Buffer overflow in the compiler?
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: other
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: g...@gcc.gnu.org
  Host: x86-linux-gnu, mingw32
Target: avr
 Build: x86-linux-gnu


This is a bug I observe with the GCC 4.7.1 release snapshot SVN 188257.

== Command line ==

$ avr-gcc -c wek.c -mmcu=atmega2561 -O3 -mstrict-X

== configure ==

Target: avr
Configured with: ../../gcc.gnu.org/gcc-4_7-branch/configure --target=avr
--prefix=/local/gnu/install/gcc-4.7 --disable-nls --with-dwarf2
--enable-languages=c,c++ --enable-target-optspace=yes
Thread model: single
gcc version 4.7.1 20120606 (prerelease) (GCC)

GNU C (GCC) version 4.7.1 20120606 (prerelease) (avr)
compiled by GNU C version 4.3.2 [gcc-4_3-branch revision 141291], GMP
version 4.3.2, MPFR version 2.4.2, MPC version 0.8.2

The problem can also be seen with canadian cross configured as:

../../gcc.gnu.org/gcc-4_7-branch/configure --target=avr
--prefix=/local/gnu/install/gcc-4.7-mingw32 --host=i386-mingw32
--build=i686-linux-gnu --enable-languages=c,c++ --disable-nls --disable-shared
--with-dwarf2


[Bug other/53615] Buffer overflow in the compiler?

2012-06-08 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53615

--- Comment #1 from Georg-Johann Lay gjl at gcc dot gnu.org 2012-06-08 
16:48:22 UTC ---
Created attachment 27588
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27588
wek.c

And here is the source file wek.c

Compiled with the above options yields:

$ avr-gcc -c wek.c -mmcu=atmega2561 -O3 -mstrict-X
wek.c: In function 'foo':
wek.c:86:20: error: can't find a register in class 'BASE_POINTER_REGS' while
reloading 'asm'
wek.c:86:20: error: 'asm' operand has impossible constraints

At the beginning of the source you see a macro called CODE32 that is defined to
a string literal which is used as inline assembler code template.

If CODE32 is defined to a shorter string like

#define CODE32 \
  ;%2, %C1%1%A0, Z+\n\telpm %B0, Z\n\t

the compiler passes.

By all of by understanding such an error should not depend on the length of the
inline assembler template. Thus, does this indicates a buffer overflow or
missing GTY or similar?

Notice that the %-operands / %-operand sequence is unchanged in the shorter
version of CODE32.


[Bug other/53615] Buffer overflow in the compiler?

2012-06-08 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53615

--- Comment #2 from Georg-Johann Lay gjl at gcc dot gnu.org 2012-06-08 
16:52:54 UTC ---
Note: In attachment 27588 the long version is commented out. You have to remove
the comment and the second CODE32 like so:


#define CODE32  \
  out %2, %C1\n\tmovw r30, %1\n\telpm %A0, Z+\n\telpm %B0, Z\n\t


instead of


//#define CODE32  \
//  out %2, %C1\n\tmovw r30, %1\n\telpm %A0, Z+\n\telpm %B0, Z\n\t

#define CODE32  \
  ;%2, %C1%1%A0, Z+\n\telpm %B0, Z\n\t


[Bug rtl-optimization/53595] Code size increase of +10% between two 4.7.1 snapshot

2012-06-08 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53595

--- Comment #11 from Georg-Johann Lay gjl at gcc dot gnu.org 2012-06-08 
17:04:41 UTC ---
FYI, the patch attachment 27568 also resolves the strange error described in
PR53615, at least for the test case given there.


[Bug middle-end/53616] New: [4.8 Regression] 416.gamess in SPEC CPU 2006 miscompiled

2012-06-08 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53616

 Bug #: 53616
   Summary: [4.8 Regression]  416.gamess in SPEC CPU 2006
miscompiled
Classification: Unclassified
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: hjl.to...@gmail.com
CC: areg.melikadam...@gmail.com


On Linux/x86-64, revision 188299 miscompiled 416.gamess in SPEC CPU 2006
with:

-O3 -funroll-loops -ffast-math -ffixed-form  -DSPEC_CPU_LP64

 Running 416.gamess ref peak lnx32e-gcc default

*** Miscompare of triazolium.out; for details see
   
/export/gnu/import/git/gcc-test-spec/spec/2006/x86_64/spec/benchspec/CPU2006
/416.gamess/run/run_peak_ref_lnx32e-gcc./triazolium.out.mis

*** Miscompare of cytosine.2.out; for details see
   
/export/gnu/import/git/gcc-test-spec/spec/2006/x86_64/spec/benchspec/CPU2006
/416.gamess/run/run_peak_ref_lnx32e-gcc./cytosine.2.out.mis

Revision 188248 is OK.


[Bug libitm/53113] Build fails in x86_avx.cc if AVX disabled but supported by as (Solaris Linux)

2012-06-08 Thread safety0ff.bugz at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53113

--- Comment #2 from safety0ff.bugz at gmail dot com 2012-06-08 17:20:28 UTC ---
Created attachment 27589
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27589
This patch works for me (I have no clue whether it is the proper fix.)

This patch works for me (I have no clue whether it is the proper fix.)

Compiles, I can compile stuff with the resulting g++, compiled stuff runs...


[Bug fortran/52552] [OOP] ICE when trying to allocate non-allocatable object giving a dynamic type

2012-06-08 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52552

--- Comment #6 from janus at gcc dot gnu.org 2012-06-08 17:26:18 UTC ---
Author: janus
Date: Fri Jun  8 17:26:11 2012
New Revision: 188335

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=188335
Log:
2012-06-08  Janus Weil  ja...@gcc.gnu.org

PR fortran/52552
* match.c (gfc_match_allocate): Modify order of checks. Change wording
of error message. Remove FIXME note.
* resolve.c (resolve_allocate_expr): Add a comment.

2012-06-08  Janus Weil  ja...@gcc.gnu.org

PR fortran/52552
* gfortran.dg/allocate_alloc_opt_1.f90: Modified.
* gfortran.dg/allocate_class_1.f90: Modified.
* gfortran.dg/allocate_with_typespec_4.f90: Modified.
* gfortran.dg/allocate_class_2.f90: New.

Added:
trunk/gcc/testsuite/gfortran.dg/allocate_class_2.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/match.c
trunk/gcc/fortran/resolve.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/allocate_alloc_opt_1.f90
trunk/gcc/testsuite/gfortran.dg/allocate_class_1.f90
trunk/gcc/testsuite/gfortran.dg/allocate_with_typespec_4.f90


[Bug fortran/52552] [OOP] ICE when trying to allocate non-allocatable object giving a dynamic type

2012-06-08 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52552

janus at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #7 from janus at gcc dot gnu.org 2012-06-08 17:38:46 UTC ---
Fixed with r188335. Closing.

Thanks for the report!


[Bug fortran/52265] [OOP] TREE dump confusing with nested SELECT TYPE

2012-06-08 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52265

janus at gcc dot gnu.org changed:

   What|Removed |Added

 CC||janus at gcc dot gnu.org

--- Comment #2 from janus at gcc dot gnu.org 2012-06-08 18:21:36 UTC ---
(In reply to comment #0)
 Expected: Use different variable names, e.g. via
   gfc_create_var (type, __tmp_type_t)

I guess the technical problem here is that the temporaries are created already
at resolution stage (in resolve_select_type) on a gfc_symtree level, while
gfc_create_var operates on tree-level (at translation stage).

Do we have any other mechanism for creating temporaries, which could be
employed here? Or do we need to generate a numerically-decorated (or
'randomized') name by hand?


[Bug c/53612] __attribute__((format(...))) does not work with wchar_t format strings

2012-06-08 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53612

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE

--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org 2012-06-08 
18:42:45 UTC ---
This is PR 38308 really.

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


[Bug c/38308] -Wformat does not work for wide strings

2012-06-08 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38308

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 CC||vhaisman at gmail dot com

--- Comment #4 from Andrew Pinski pinskia at gcc dot gnu.org 2012-06-08 
18:42:45 UTC ---
*** Bug 53612 has been marked as a duplicate of this bug. ***


[Bug c++/53611] class with hidden visibility cause function returns pointer to class also be hidden

2012-06-08 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53611

--- Comment #2 from Andrew Pinski pinskia at gcc dot gnu.org 2012-06-08 
18:44:18 UTC ---
I think this is expected behavior as if someone defines a __cook in the
executable which links to the shared library, it will be considered a different
type.


[Bug fortran/52531] [OOP] Compilation fails with polymorphic dummy argument and OpenMP

2012-06-08 Thread kaladhorn at me dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52531

--- Comment #4 from kaladhorn at me dot com 2012-06-08 18:46:11 UTC ---
(In reply to comment #3)
 (In reply to comment #2)
  Out of curiosity, would there be a technical issue in this case?
  It sure seemed natural to me.
 
 AFAICS there should not be any huge issues. One might consider to implement
 this as an extension.

If it does not hurt, I think it would be a good thing.

As far as I am concerned, I engineered around it, as it is really an edge case
we do not want to rely on.
It arguably makes some code uglier, though.


[Bug fortran/52552] [OOP] ICE when trying to allocate non-allocatable object giving a dynamic type

2012-06-08 Thread gccbgz.lionm at xoxy dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52552

--- Comment #8 from gccbgz.lionm at xoxy dot net 2012-06-08 18:56:19 UTC ---
Nice! Thanks for fixing!


[Bug tree-optimization/51938] missed optimization: 2 comparisons

2012-06-08 Thread glisse at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51938

--- Comment #6 from Marc Glisse glisse at gcc dot gnu.org 2012-06-08 19:49:07 
UTC ---
Created attachment 27590
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27590
incomplete patch

I wonder if this is the right direction. At least it passes the testsuite and
optimizes the original testcase.


[Bug tree-optimization/51938] missed optimization: 2 comparisons

2012-06-08 Thread glisse at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51938

Marc Glisse glisse at gcc dot gnu.org changed:

   What|Removed |Added

  Attachment #27590|0   |1
is obsolete||

--- Comment #7 from Marc Glisse glisse at gcc dot gnu.org 2012-06-08 20:03:35 
UTC ---
Created attachment 27591
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27591
incomplete patch

The same with one less typo and more up-to-date comments.


[Bug middle-end/53616] [4.8 Regression] 416.gamess in SPEC CPU 2006 miscompiled

2012-06-08 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53616

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

 CC||rguenth at gcc dot gnu.org
   Target Milestone|--- |4.8.0

--- Comment #1 from H.J. Lu hjl.tools at gmail dot com 2012-06-08 22:15:39 
UTC ---
It is caused by revision 188261:

http://gcc.gnu.org/ml/gcc-cvs/2012-06/msg00171.html


[Bug target/53256] [avr] Attribute 'interrupt' shall override attribute 'signal'

2012-06-08 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53256

--- Comment #4 from Georg-Johann Lay gjl at gcc dot gnu.org 2012-06-08 
22:42:27 UTC ---
See also the following AVR-LibC bug report:

http://savannah.nongnu.org/bugs/index.php?26734


[Bug c++/53415] problematic error message for ambiguity

2012-06-08 Thread manu at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53415

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

   What|Removed |Added

   Keywords||diagnostic
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2012-06-08
 CC||manu at gcc dot gnu.org
 Ever Confirmed|0   |1

--- Comment #1 from Manuel López-Ibáñez manu at gcc dot gnu.org 2012-06-08 
23:47:03 UTC ---
I think there are quite a few bugs here. Starting with the
template-parameter-1-1 output.

Clang is not very helpful in this case:

/tmp/webcompile/_14729_0.cc:23:5: error: no matching function for call to 'foo'
foo(1);
^~~
/tmp/webcompile/_14729_0.cc:19:20: note: candidate template ignored:
substitution failure [with X = int]
S0 + TX::value foo(X);
   ^
1 error generated.


[Bug target/53617] New: Suboptimal PC-relative addressing code on x86

2012-06-08 Thread bugdal at aerifal dot cx
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53617

 Bug #: 53617
   Summary: Suboptimal PC-relative addressing code on x86
Classification: Unclassified
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: bug...@aerifal.cx


Consider a function of the form:

int *foo()
{
static int x;
return x;
}

When GCC compiles this, the result is similar to the following hand-written
asm:

call 1f
1:  pop %ecx
add $_GLOBAL_OFFSET_TABLE_+[.-1b], %ecx
lea x@GOTOFF(%ecx),%eax
ret

i.e. it loads the address of the GOT in a register, then computes the
GOT-relative address of the variable. This makes sense when the GOT address
will be needed for more than one address lookup, but it's unnecessarily costly
in the case where it's only used for a single variable, in which case the
following code would be better:

call 1f
1:  pop %eax
add $[x-1b], %eax
ret

The same principle applies to a great deal more code, and of course it works
when __i686.get_pc_thunk.cx or similar is being used, too. Is there any way GCC
could be enhanced to generate this superior code when possible?


[Bug c++/53618] New: segfault on self-referential class partial specialization argument

2012-06-08 Thread potswa at mac dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53618

 Bug #: 53618
   Summary: segfault on self-referential class partial
specialization argument
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: pot...@mac.com


I was trying a new approach to SFINAE on 4.7.0 and ICEd instead. Not sure if
this is valid. The idea is to check whether the specialization is already a
complete class while forming the partial specialization arguments.
(http://stackoverflow.com/questions/10958435)

---

template int  struct ic;

template typename t, typename c = ic 0  
struct is_dereferenceable;

template typename t 
struct is_dereferenceable t, ic true? 0 : * t()   {};

template typename t 
struct is_dereferenceable t, ic sizeof (is_dereferenceable t )   {};

is_dereferenceable char *  i;


[Bug c++/53618] segfault on self-referential class partial specialization argument

2012-06-08 Thread potswa at mac dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53618

David Krauss potswa at mac dot com changed:

   What|Removed |Added

   Severity|normal  |minor

--- Comment #1 from David Krauss potswa at mac dot com 2012-06-09 05:47:53 
UTC ---
I have been alerted to the fact that the sizeof expression is invalid because
it can't be applied to an incomplete type. So this is crashes on invalid code.

And the crashing specialization is extraneous anyway, such a case should be
handled by the primary template. (Which can be said in general of such a
mechanism, should anyone want it.)