[Bug c++/45606] [4.5/4.6 Regression] match a method prototyped a typedef alias with the original type (using stdlib)

2010-09-19 Thread dodji at gcc dot gnu dot org


--- Comment #4 from dodji at gcc dot gnu dot org  2010-09-19 20:33 ---
I rewrote the handling of typedef comparison to put canonical type comparison
back. I believe this approach is simpler and happens to fix this issue.

A candidate patch was sent to
http://gcc.gnu.org/ml/gcc-patches/2010-09/msg01525.html


-- 


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



[Bug c++/45606] [4.5/4.6 Regression] match a method prototyped a typedef alias with the original type (using stdlib)

2010-09-10 Thread dodji at gcc dot gnu dot org


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dodji at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2010-09-09 16:31:41 |2010-09-10 20:06:43
   date||


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



[Bug c++/45200] [4.5/4.6 Regression] ICE in template instantiation

2010-09-07 Thread dodji at gcc dot gnu dot org


--- Comment #13 from dodji at gcc dot gnu dot org  2010-09-07 07:08 ---
Fixed in 4.5.2 and trunk (4.6).


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/45293] ICE in iterative_hash_template_arg, at cp/pt.c:1589

2010-09-07 Thread dodji at gcc dot gnu dot org


--- Comment #11 from dodji at gcc dot gnu dot org  2010-09-07 07:12 ---
Fixed in 4.5.2 and trunk (4.6)


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug c++/45558] typedef of typename fails to equal its underlying type

2010-09-07 Thread dodji at gcc dot gnu dot org


--- Comment #4 from dodji at gcc dot gnu dot org  2010-09-07 07:13 ---
Fixed in 4.5.2 and trunk (4.6)


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/45558] New: typedef of typename fails to equal its underlying type

2010-09-06 Thread dodji at gcc dot gnu dot org
The code snippet below fails to compile:

=~=
template typename S, typename T
struct C
{
  template typename U
  struct B
  {
template typename W
struct E
{
  explicit E(const W x) : w(x) {}
  const W w;
};
  };
};
struct F;
template typename X
struct D
{
  D() {}
};
const DF g;
template typename S, typename T
struct A
{
  template typename U
  struct B : CS, T::template BU
  {
typedef typename CS, T::template BU V;
static const Dtypename V::template EDF   a;
  };
};
template typename S, typename T
template typename U
const Dtypename CS, T::template BU::template EDF  
AS, T::BU::a = typename CS, T::template BU::template EDF (g);
=~=

With the error message:

test-620095.cc:38:16: erreur: conflicting declaration ‘const Dtypename CS,
T::BU::EDF   AS, T::BU::a’
test-620095.cc:31:52: erreur: ‘AS, T::BU::a’ has a previous declaration as
‘const Dtypename CS, T::BU::EDF   AS, T::BU::a’
test-620095.cc:38:16: erreur: declaration of ‘const Dtypename CS,
T::BU::EDF   AS, T::BU::a’ outside of class is not definition
[-fpermissive]

Fixing PR c++/45200 should fix this bug.


-- 
   Summary: typedef of typename fails to equal its underlying type
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dodji at gcc dot gnu dot org
 BugsThisDependsOn: 45200


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



[Bug c++/45558] typedef of typename fails to equal its underlying type

2010-09-06 Thread dodji at gcc dot gnu dot org


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dodji at gcc dot gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-09-06 14:59:17
   date||


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



[Bug c++/45558] typedef of typename fails to equal its underlying type

2010-09-06 Thread dodji at gcc dot gnu dot org


--- Comment #1 from dodji at gcc dot gnu dot org  2010-09-06 15:00 ---
This was forwarded here from https://bugzilla.redhat.com/show_bug.cgi?id=620095


-- 


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



[Bug c++/45200] [4.5/4.6 Regression] ICE in template instantiation

2010-09-06 Thread dodji at gcc dot gnu dot org


--- Comment #11 from dodji at gcc dot gnu dot org  2010-09-06 18:44 ---
Subject: Bug 45200

Author: dodji
Date: Mon Sep  6 18:44:23 2010
New Revision: 163929

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=163929
Log:
Patch PR c++/45200

Fix PR c++/45200, c++/45293, c++/45558

gcc/cp/Changelog:
PR c++/45200
PR c++/45293
PR c++/45558
* tree.c (strip_typedefs): Strip typedefs from the context of
TYPENAME_TYPEs.

gcc/testsuite/ChangeLog:
PR c++/45200
PR c++/45293
PR c++/45558
* g++.dg/template/typedef34.C: New test.
* g++.dg/template/typedef35.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/template/typedef34.C
trunk/gcc/testsuite/g++.dg/template/typedef35.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/tree.c
trunk/gcc/cp/typeck.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/45558] typedef of typename fails to equal its underlying type

2010-09-06 Thread dodji at gcc dot gnu dot org


--- Comment #2 from dodji at gcc dot gnu dot org  2010-09-06 18:44 ---
Subject: Bug 45558

Author: dodji
Date: Mon Sep  6 18:44:23 2010
New Revision: 163929

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=163929
Log:
Patch PR c++/45200

Fix PR c++/45200, c++/45293, c++/45558

gcc/cp/Changelog:
PR c++/45200
PR c++/45293
PR c++/45558
* tree.c (strip_typedefs): Strip typedefs from the context of
TYPENAME_TYPEs.

gcc/testsuite/ChangeLog:
PR c++/45200
PR c++/45293
PR c++/45558
* g++.dg/template/typedef34.C: New test.
* g++.dg/template/typedef35.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/template/typedef34.C
trunk/gcc/testsuite/g++.dg/template/typedef35.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/tree.c
trunk/gcc/cp/typeck.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/45293] ICE in iterative_hash_template_arg, at cp/pt.c:1589

2010-09-06 Thread dodji at gcc dot gnu dot org


--- Comment #9 from dodji at gcc dot gnu dot org  2010-09-06 18:44 ---
Subject: Bug 45293

Author: dodji
Date: Mon Sep  6 18:44:23 2010
New Revision: 163929

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=163929
Log:
Patch PR c++/45200

Fix PR c++/45200, c++/45293, c++/45558

gcc/cp/Changelog:
PR c++/45200
PR c++/45293
PR c++/45558
* tree.c (strip_typedefs): Strip typedefs from the context of
TYPENAME_TYPEs.

gcc/testsuite/ChangeLog:
PR c++/45200
PR c++/45293
PR c++/45558
* g++.dg/template/typedef34.C: New test.
* g++.dg/template/typedef35.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/template/typedef34.C
trunk/gcc/testsuite/g++.dg/template/typedef35.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/tree.c
trunk/gcc/cp/typeck.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/45200] [4.5/4.6 Regression] ICE in template instantiation

2010-09-06 Thread dodji at gcc dot gnu dot org


--- Comment #12 from dodji at gcc dot gnu dot org  2010-09-06 18:50 ---
Subject: Bug 45200

Author: dodji
Date: Mon Sep  6 18:49:46 2010
New Revision: 163930

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=163930
Log:
Patch PR c++/45200

Fix PR c++/45200, c++/45293, c++/45558

gcc/cp/Changelog:
PR c++/45200
PR c++/45293
PR c++/45558
* tree.c (strip_typedefs): Strip typedefs from the context of
TYPENAME_TYPEs.

gcc/testsuite/ChangeLog:
PR c++/45200
PR c++/45293
PR c++/45558
* g++.dg/template/typedef34.C: New test.
* g++.dg/template/typedef35.C: New test.

Added:
branches/gcc-4_5-branch/gcc/testsuite/g++.dg/template/typedef34.C
branches/gcc-4_5-branch/gcc/testsuite/g++.dg/template/typedef35.C
Modified:
branches/gcc-4_5-branch/gcc/cp/ChangeLog
branches/gcc-4_5-branch/gcc/cp/tree.c
branches/gcc-4_5-branch/gcc/cp/typeck.c
branches/gcc-4_5-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/45293] ICE in iterative_hash_template_arg, at cp/pt.c:1589

2010-09-06 Thread dodji at gcc dot gnu dot org


--- Comment #10 from dodji at gcc dot gnu dot org  2010-09-06 18:50 ---
Subject: Bug 45293

Author: dodji
Date: Mon Sep  6 18:49:46 2010
New Revision: 163930

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=163930
Log:
Patch PR c++/45200

Fix PR c++/45200, c++/45293, c++/45558

gcc/cp/Changelog:
PR c++/45200
PR c++/45293
PR c++/45558
* tree.c (strip_typedefs): Strip typedefs from the context of
TYPENAME_TYPEs.

gcc/testsuite/ChangeLog:
PR c++/45200
PR c++/45293
PR c++/45558
* g++.dg/template/typedef34.C: New test.
* g++.dg/template/typedef35.C: New test.

Added:
branches/gcc-4_5-branch/gcc/testsuite/g++.dg/template/typedef34.C
branches/gcc-4_5-branch/gcc/testsuite/g++.dg/template/typedef35.C
Modified:
branches/gcc-4_5-branch/gcc/cp/ChangeLog
branches/gcc-4_5-branch/gcc/cp/tree.c
branches/gcc-4_5-branch/gcc/cp/typeck.c
branches/gcc-4_5-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/45558] typedef of typename fails to equal its underlying type

2010-09-06 Thread dodji at gcc dot gnu dot org


--- Comment #3 from dodji at gcc dot gnu dot org  2010-09-06 18:50 ---
Subject: Bug 45558

Author: dodji
Date: Mon Sep  6 18:49:46 2010
New Revision: 163930

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=163930
Log:
Patch PR c++/45200

Fix PR c++/45200, c++/45293, c++/45558

gcc/cp/Changelog:
PR c++/45200
PR c++/45293
PR c++/45558
* tree.c (strip_typedefs): Strip typedefs from the context of
TYPENAME_TYPEs.

gcc/testsuite/ChangeLog:
PR c++/45200
PR c++/45293
PR c++/45558
* g++.dg/template/typedef34.C: New test.
* g++.dg/template/typedef35.C: New test.

Added:
branches/gcc-4_5-branch/gcc/testsuite/g++.dg/template/typedef34.C
branches/gcc-4_5-branch/gcc/testsuite/g++.dg/template/typedef35.C
Modified:
branches/gcc-4_5-branch/gcc/cp/ChangeLog
branches/gcc-4_5-branch/gcc/cp/tree.c
branches/gcc-4_5-branch/gcc/cp/typeck.c
branches/gcc-4_5-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/45200] [4.5/4.6 Regression] ICE in template instantiation

2010-08-12 Thread dodji at gcc dot gnu dot org


--- Comment #10 from dodji at gcc dot gnu dot org  2010-08-12 13:40 ---
A better patch submitted to
http://gcc.gnu.org/ml/gcc-patches/2010-08/msg00842.html


-- 


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



[Bug c++/45200] [4.5/4.6 Regression] ICE in template instantiation

2010-08-10 Thread dodji at gcc dot gnu dot org


--- Comment #8 from dodji at gcc dot gnu dot org  2010-08-10 14:37 ---
*** Bug 44301 has been marked as a duplicate of this bug. ***


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||jewillco at osl dot iu dot
   ||edu


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



[Bug c++/44301] [4.5 Regression] g++ ICE on complicated template code

2010-08-10 Thread dodji at gcc dot gnu dot org


--- Comment #4 from dodji at gcc dot gnu dot org  2010-08-10 14:37 ---


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


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||DUPLICATE


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



[Bug c++/45200] [4.5/4.6 Regression] ICE in template instantiation

2010-08-10 Thread dodji at gcc dot gnu dot org


--- Comment #9 from dodji at gcc dot gnu dot org  2010-08-10 22:12 ---
(In reply to comment #7)
 Created an attachment (id=21443)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21443action=view) [edit]
 Candidate patch
 
 I am testing this patch atm that seems to be working for now.

It turned out the patch is not correct. I am looking at another way. 


-- 


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



[Bug c++/45200] [4.5/4.6 Regression] ICE in template instantiation

2010-08-09 Thread dodji at gcc dot gnu dot org


--- Comment #7 from dodji at gcc dot gnu dot org  2010-08-09 23:56 ---
Created an attachment (id=21443)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21443action=view)
Candidate patch

I am testing this patch atm that seems to be working for now.


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dodji at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED


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



[Bug debug/45024] wrong nesting for inner template class

2010-07-22 Thread dodji at gcc dot gnu dot org


--- Comment #3 from dodji at gcc dot gnu dot org  2010-07-22 16:25 ---
Subject: Bug 45024

Author: dodji
Date: Thu Jul 22 16:25:17 2010
New Revision: 162420

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=162420
Log:
Fix PR debug/45024

gcc/ChangeLog:
PR debug/45024
* dwarf2out.c (scope_die_for): Don't fall back to the compilation
unit DIE if we can find the scope DIE.

gcc/testsuite/ChangeLog:
PR debug/45024
* g++.dg/debug/dwarf2/nested-2.C: New test case.

Added:
trunk/gcc/testsuite/g++.dg/debug/dwarf2/nested-2.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/dwarf2out.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug debug/45024] wrong nesting for inner template class

2010-07-21 Thread dodji at gcc dot gnu dot org


--- Comment #1 from dodji at gcc dot gnu dot org  2010-07-21 21:54 ---
I am testing this patch:

diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index ce35c91..bd3a97d 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -17585,9 +17585,11 @@ scope_die_for (tree t, dw_die_ref context_die)
{
  gcc_assert (debug_info_level = DINFO_LEVEL_TERSE
  || TREE_ASM_WRITTEN (containing_scope));
-
+ scope_die = lookup_type_die (containing_scope);
+ 
  /* If none of the current dies are suitable, we get file scope.  */
- scope_die = comp_unit_die;
+ if (scope_die == NULL)
+   scope_die = comp_unit_die;
}
   else
scope_die = lookup_type_die (containing_scope);


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-07-21 21:54:05
   date||


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



[Bug debug/45024] wrong nesting for inner template class

2010-07-21 Thread dodji at gcc dot gnu dot org


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dodji at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2010-07-21 21:54:05 |2010-07-21 21:58:35
   date||


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



[Bug preprocessor/7263] __extension__ keyword doesn't suppress warning on LL or ULL constants

2010-07-02 Thread dodji at gcc dot gnu dot org


--- Comment #33 from dodji at gcc dot gnu dot org  2010-07-02 19:00 ---
I have put up a git tree for this. The branch containing my changes is
http://seketeli.net/cgit/~dodji/gcc.git/log/?h=PR7263-dodji

The current state as of commit 1d2b6207 addresses the remaining FIXMEs in the
code. It thus should properly deallocate the memory used for the macro
expansion tokens and still passes regression test for the C FE. Next stop is to
make the C++ FE work with this.


-- 


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



[Bug preprocessor/7263] __extension__ keyword doesn't suppress warning on LL or ULL constants

2010-06-14 Thread dodji at gcc dot gnu dot org


--- Comment #32 from dodji at gcc dot gnu dot org  2010-06-14 14:20 ---
Created an attachment (id=20907)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20907action=view)
Refreshed version.

- Disables the feature by default
- Adds a -ftrack-macro-expansion flag to enable the feature
  Fix a couple of bugs I noticed while trying to make the feature optional
  Updated the relevant regression tests of the macro expansion patch
- Rebased the patch on recent trunk and adapt it to the new directory layout

Next stop is the fix the two remaining FIXMEs and make the C++ FE work.


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

  Attachment #20878|0   |1
is obsolete||


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



[Bug preprocessor/7263] __extension__ keyword doesn't suppress warning on LL or ULL constants

2010-06-09 Thread dodji at gcc dot gnu dot org


--- Comment #29 from dodji at gcc dot gnu dot org  2010-06-09 17:09 ---
Created an attachment (id=20878)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20878action=view)
Refreshed version. Fully Bootstraps the C FE and passes regression tests.

This fixes a annoying bug that were making the compiler emit wrong debug info,
leading to binaries that were not really debug-able.

Next stop is to disable this feature by default, and enable it with a
-ftrack-macro-expansion flag, and update the regressions tests of the C FE.


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

  Attachment #20769|0   |1
is obsolete||
  Attachment #20770|0   |1
is obsolete||
  Attachment #20846|0   |1
is obsolete||


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



[Bug c++/44188] Fails to produce DW_AT_typedef for typedef of anonymous struct

2010-06-06 Thread dodji at gcc dot gnu dot org


--- Comment #8 from dodji at gcc dot gnu dot org  2010-06-06 18:24 ---
Subject: Bug 44188

Author: dodji
Date: Sun Jun  6 18:24:27 2010
New Revision: 160347

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=160347
Log:
Fix PR c++/44188

gcc/ChangeLog:
PR c++/44188
* c-common.c (is_typedef_decl): Move this definition ...
* tree.c (is_typedef_decl): ... here.
(typdef_variant_p): Move definition here from gcc/cp/tree.c.
* c-common.h (is_typedef_decl): Move this declaration ...
* tree.h (is_typedef_decl): ... here.
(typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
* dwarf2out.c (is_naming_typedef_decl): New function.
(gen_tagged_type_die): Split out of ...
(gen_type_die_with_usage): ... this function. When an anonymous
tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
is emitted for the typedef.
(gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
anonymous tagged types.

gcc/cp/ChangeLog:
PR c++/44188
* cp-tree.h (typedef_variant_p): Move this declaration to
gcc/tree.h.
* tree.c (typedef_variant_p): Move this definition to gcc/tree.c.
* decl.c (grokdeclarator): Do not rename debug info of an
anonymous tagged type named by a typedef.

gcc/testsuite/ChangeLog:
PR c++/44188
* g++.dg/debug/dwarf2/typedef3.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/debug/dwarf2/typedef3.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/c-family/c-common.c
trunk/gcc/c-family/c-common.h
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/decl.c
trunk/gcc/cp/tree.c
trunk/gcc/dwarf2out.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree.c
trunk/gcc/tree.h


-- 


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



[Bug c++/44188] Fails to produce DW_AT_typedef for typedef of anonymous struct

2010-06-06 Thread dodji at gcc dot gnu dot org


--- Comment #9 from dodji at gcc dot gnu dot org  2010-06-06 18:33 ---
Hopefully properly fixed in trunk (4.6) now.


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/44188] Fails to produce DW_AT_typedef for typedef of anonymous struct

2010-06-05 Thread dodji at gcc dot gnu dot org


--- Comment #7 from dodji at gcc dot gnu dot org  2010-06-05 20:03 ---
So I posted an updated patch for this to
http://gcc.gnu.org/ml/gcc-patches/2010-06/msg00437.html


-- 


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



[Bug c++/44188] Fails to produce DW_AT_typedef for typedef of anonymous struct

2010-06-05 Thread dodji at gcc dot gnu dot org


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|REOPENED|ASSIGNED
   Last reconfirmed|2010-05-18 21:50:32 |2010-06-05 20:03:35
   date||


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



[Bug preprocessor/7263] __extension__ keyword doesn't suppress warning on LL or ULL constants

2010-06-04 Thread dodji at gcc dot gnu dot org


--- Comment #25 from dodji at gcc dot gnu dot org  2010-06-04 19:36 ---
Created an attachment (id=20846)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20846action=view)
Fixes all regressions of C FE's testsuite

This update fixes all the regressions I have noticed in the test suite of the C
FE. I have done the testing and debugging with bootstrap disabled.

This patch merges Tom's initial patch and my additions and should apply to
recent trunk.

Next step is to bootstrap the C FE and see/fix the remaining bugs that I
encounter there.

Here is what the patch does at the moment:

$ cat test.c
 1  #define OPERATE(OPRD1, OPRT, OPRD2) \
 2   OPRD1 OPRT OPRD2;
 3
 4  #define SHIFTL(A,B) \
 5OPERATE (A,,B)
 6
 7  #define MULT2(A) \
 8SHIFTL (A,1)
 9
10  void
11  g ()
12  {
13MULT2 (1.0);/* 1.0  1;*/
14  }

$ ./cc1 -quiet test.c
While expanding macro OPERATE at test.c:2:8
While expanding macro SHIFTL at test.c:5:14
While expanding macro MULT2 at test.c:8:3
test.c: In function 'g':
test.c:13:3: error: invalid operands to binary  (have 'double' and 'int')


-- 


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



[Bug preprocessor/7263] __extension__ keyword doesn't suppress warning on LL or ULL constants

2010-05-28 Thread dodji at gcc dot gnu dot org


--- Comment #23 from dodji at gcc dot gnu dot org  2010-05-28 15:34 ---
Created an attachment (id=20769)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20769action=view)
Tom's Initial patch ported to 4.6

This is just the initial patch I ported to 4.6. It should apply cleanly to
recent trunk.


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

  Attachment #20163|0   |1
is obsolete||


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



[Bug preprocessor/7263] __extension__ keyword doesn't suppress warning on LL or ULL constants

2010-05-28 Thread dodji at gcc dot gnu dot org


--- Comment #24 from dodji at gcc dot gnu dot org  2010-05-28 15:42 ---
Created an attachment (id=20770)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20770action=view)
First version of an updated patch

So I thought I'd post the current state of the patch I am working on.

This patch fixes some issues I noticed about the initial patch, namely:

- The crashes I have noticed while trying to bootstrap c and c++
- Some little issues here and there. Enough to pass bootstrap for C and C++. I
haven't tried bootstrapping the other FEs yet.

There are still some caveats:

* I have added an -fdebug-cpp option that (very) verbosely clutters the output
of -E. This is useful for me, for debugging purposes. I think the final patch
should have this option removed.

* There are still some regression tests that are failing because they need
updating.

* I still need to add an option to disable the macro token location tracking.

* The patch still does not handle token pasting

It's true that is still work in progress, but I'd appreciate comments
especially if you notice that I am doing something wrong.


-- 


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



[Bug c++/44188] Fails to produce DW_AT_typedef for typedef of anonymous struct

2010-05-27 Thread dodji at gcc dot gnu dot org


--- Comment #2 from dodji at gcc dot gnu dot org  2010-05-27 19:30 ---
Subject: Bug 44188

Author: dodji
Date: Thu May 27 19:29:53 2010
New Revision: 159943

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=159943
Log:
Fix PR c++/44188

gcc/ChangeLog:
PR c++/44188
* c-common.c (is_typedef_decl): Move this definition ...
* tree.c (is_typedef_decl): ... here.
(typdef_variant_p): Move definition here from gcc/cp/tree.c.
* c-common.h (is_typedef_decl): Move this declaration ...
* tree.h (is_typedef_decl): ... here.
(typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
* dwarf2out.c (is_naming_typedef_decl): New function.
(gen_tagged_type_die): Split out of ...
(gen_type_die_with_usage): ... this function. When an anonymous
tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
is emitted for the typedef.
(gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
anonymous tagged types.

gcc/cp/ChangeLog:
PR c++/44188
* cp-tree.h (typedef_variant_p): Move this declaration to
gcc/tree.h.
* tree.c (typedef_variant_p): Move this definition to gcc/tree.c.
* decl.c (grokdeclarator): Do not rename debug info of an
anonymous tagged type named by a typedef.

gcc/testsuite/ChangeLog:
PR c++/44188
* g++.dg/debug/dwarf2/typedef3.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/debug/dwarf2/typedef3.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/c-common.c
trunk/gcc/c-common.h
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/decl.c
trunk/gcc/cp/tree.c
trunk/gcc/dwarf2out.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree.c
trunk/gcc/tree.h


-- 


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



[Bug c++/44188] Fails to produce DW_AT_typedef for typedef of anonymous struct

2010-05-27 Thread dodji at gcc dot gnu dot org


--- Comment #3 from dodji at gcc dot gnu dot org  2010-05-27 19:36 ---
Fixed in trunk (4.6).


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug c++/44188] Fails to produce DW_AT_typedef for typedef of anonymous struct

2010-05-27 Thread dodji at gcc dot gnu dot org


--- Comment #5 from dodji at gcc dot gnu dot org  2010-05-28 00:03 ---
Subject: Bug 44188

Author: dodji
Date: Fri May 28 00:03:19 2010
New Revision: 159955

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=159955
Log:
Revert Fix PR c++/44188

gcc/ChangeLog:
revert fix for PR c++/44188
* c-common.c (is_typedef_decl): Revert the moving of  this
definition ...
* tree.c (is_typedef_decl): ... here.
(typdef_variant_p): Revert the moving of this  definition
here from gcc/cp/tree.c.
* c-common.h (is_typedef_decl): Revert the moving of this
declaration ...
* tree.h (is_typedef_decl): ... here.
(typedef_variant_p): Revert the moving of this  declaration here
from gcc/cp/cp-tree.h
* dwarf2out.c (is_naming_typedef_decl): Revert this new function.
(gen_tagged_type_die): Revert the splitting out of ...
(gen_type_die_with_usage): ... this function. Revert the anonymous
tagged type handling.
(gen_typedef_die): Revert emitting DW_TAG_typedef  for
typedefs naming anonymous tagged types.

gcc/cp/ChangeLog:
Revert fix of PR c++/44188
* cp-tree.h (typedef_variant_p): Revert moving this declaration to
gcc/tree.h.
* tree.c (typedef_variant_p): Revert moving this definition to
gcc/tree.c.
* decl.c (grokdeclarator): Revert naming typedef handling.

gcc/testsuite/ChangeLog:
Revert fix for PR c++/44188
* g++.dg/debug/dwarf2/typedef3.C: Revert new test.

Removed:
trunk/gcc/testsuite/g++.dg/debug/dwarf2/typedef3.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/c-common.c
trunk/gcc/c-common.h
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/decl.c
trunk/gcc/cp/tree.c
trunk/gcc/dwarf2out.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree.c
trunk/gcc/tree.h


-- 


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



[Bug c++/44188] Fails to produce DW_AT_typedef for typedef of anonymous struct

2010-05-27 Thread dodji at gcc dot gnu dot org


--- Comment #6 from dodji at gcc dot gnu dot org  2010-05-28 00:08 ---
Re-opening as my patch broke Ada and Obj-c(++).
It looks like Ada emits TYPE_DECLs that smell like c/c++ naming typedefs but
with different semantics ...


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|FIXED   |


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



[Bug bootstrap/44302] [4.6 Regression] Failed to bootstrap

2010-05-27 Thread dodji at gcc dot gnu dot org


--- Comment #4 from dodji at gcc dot gnu dot org  2010-05-28 00:09 ---
I have reverted that commit for now. See my comments on PR44188. Sorry for the
breakage.


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug c++/44188] Fails to produce DW_AT_typedef for typedef of anonymous struct

2010-05-20 Thread dodji at gcc dot gnu dot org


--- Comment #1 from dodji at gcc dot gnu dot org  2010-05-20 11:06 ---
A patch has been proposed to
http://gcc.gnu.org/ml/gcc-patches/2010-05/msg01476.html


-- 


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



[Bug c++/44188] Fails to produce DW_AT_typedef for typedef of anonymous struct

2010-05-18 Thread dodji at gcc dot gnu dot org


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dodji at gcc dot gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-05-18 21:50:32
   date||


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



[Bug c++/44108] [4.6 Regression] -Wunused-but-set-variable does not consider array sizing use of a const variable

2010-05-17 Thread dodji at gcc dot gnu dot org


--- Comment #3 from dodji at gcc dot gnu dot org  2010-05-17 12:30 ---
Created an attachment (id=20678)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20678action=view)
Candidate patch

On Fri, May 14, 2010 at 07:25:18AM -, jakub at gcc dot gnu dot org wrote:
 That said, it would be good to find out why we don't warn in that
 case; for [M_CONST + 6] we do warn.

I think we don't warn in that case because M_CONST in the expression
M_CONST + 6, M_CONST is an rvalue use and we recognize it as such via
default_conversion that should be called on the arguments of the + expression.

We fail to recognize the use of [M_CONST], because M_CONST gets folded
into it's value without us marking that folding as an rvalue use. I
am thus testing the attached patch. The reason why the patch seems
convoluted is that I don't want to mark a dependant value as a rvalue
use. I believe only full instantiations should be marked.


-- 


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



[Bug c++/44108] [4.6 Regression] -Wunused-but-set-variable does not consider array sizing use of a const variable

2010-05-17 Thread dodji at gcc dot gnu dot org


--- Comment #4 from dodji at gcc dot gnu dot org  2010-05-17 13:54 ---
Created an attachment (id=20681)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20681action=view)
Don't warn for integral constants

Jakub, this one line patch implements the first idea which is to not warn for
integral constants, as far as Wunused_but_set_variable is concerned.

I have tested it only for the reported error case. I haven't regtested it yet.


-- 


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



[Bug c++/44108] [4.6 Regression] -Wunused-but-set-variable does not consider array sizing use of a const variable

2010-05-17 Thread dodji at gcc dot gnu dot org


--- Comment #6 from dodji at gcc dot gnu dot org  2010-05-17 19:45 ---
This should be fixed in trunk (4.6)


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/44108] [4.6 Regression] -Wunused-but-set-variable does not consider array sizing use of a const variable

2010-05-14 Thread dodji at gcc dot gnu dot org


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dodji at gcc dot gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-05-14 06:42:26
   date||


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



[Bug c/18624] GCC does not detect local variable set but never used

2010-05-06 Thread dodji at gcc dot gnu dot org


--- Comment #26 from dodji at gcc dot gnu dot org  2010-05-06 06:52 ---
Subject: Bug 18624

Author: dodji
Date: Thu May  6 06:52:30 2010
New Revision: 159096

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=159096
Log:
C++ support for -Wunused-but-set-variable

gcc/cp/ChangeLog:
PR 18624
* cp-tree.h (mark_exp_read, mark_rvalue_use, mark_lvalue_use,
mark_type_use): Declare ...
* expr.c (mark_exp_read, mark_rvalue_use, mark_lvalue_use,
mark_type_use): ... new fns.
* typeck.c (cxx_sizeof_expr, cxx_alignof_expr): Call mark_type_use.
(perform_integral_promotions): Call mark_rvalue_use.
(cp_build_unary_op): Call mark_lvalue_use.
(decay_conversion): Update comment. Call mark_lvalue.
* decl.c (unused_but_set_errorcount): New variable.
(poplevel): Issue -Wunused-but-set-variable diagnostics.
(duplicate_decls): Merge DECL_READ_P flags.
(start_cleanup_fn): Set DECL_READ_P flag.
(finish_function): Issue -Wunused-but-set-parameter diagnostics.
* tree.c (rvalue): Call mark_rvalue_use.
* pt.c (convert_nontype_argument): Likewise.
* semantics.c (finish_typeof, finish_decltype_type): Call
mark_type_use.
(finish_asm_stmt): Call mark_lvalue_use.
(finish_expr_stmt): Call mark_exp_read.
* call.c (convert_like_real) ck_identity, ck_user: Call
mark_rvalue_use.
(build_x_va_arg): Call mark_lvalue_use.
(build_over_call): Call mark_type_use.
* init.c (build_new, build_delete): Call mark_value_use.
* rtti.c (build_typeid): Call mark_lvalue_use or mark_type_use.
(build_dynamic_cast_1): call mark_lvalue_use or mark_rvalue_use.

gcc/testsuite/ChangeLog:
PR 18624
* g++.dg/warn/Wunused-7.C: Add dg-warning.
* g++.dg/template/sfinae16.C: Likewise.
* gcc.dg/Wunused-var-1.c: Moved to...
* c-c++-common/Wunused-var-1.c: ...here. New test.
* gcc.dg/Wunused-var-2.c: Moved to...
* c-c++-common/Wunused-var-2.c: ...here. New test.
* gcc.dg/Wunused-var-3.c: Moved to...
* c-c++-common/Wunused-var-3.c: ...here. New test.
* gcc.dg/Wunused-var-4.c: Moved to...
* gcc.dg/Wunused-var-1.c: ... here.
* gcc.dg/Wunused-var-5.c: Moved to...
* c-c++-common/Wunused-var-4.c: ...here. New test.
* gcc.dg/Wunused-var-7.c: Moved to...
* c-c++-common/Wunused-var-5.c: ...here. New test.
* gcc.dg/Wunused-var-6.c: Moved to...
* gcc.dg/Wunused-var-2.c: ... here.
* c-c++-common/Wunused-var-1.c: New test.
* c-c++-common/Wunused-var-2.c: New test.
* c-c++-common/Wunused-var-3.c: New test.
* c-c++-common/Wunused-var-4.c: New test.
* c-c++-common/Wunused-var-5.c: New test.
* g++.dg/warn/Wunused-var-1.C: New test.
* g++.dg/warn/Wunused-var-2.C: New test.
* g++.dg/warn/Wunused-var-3.C: New test.
* g++.dg/warn/Wunused-var-4.C: New test.
* g++.dg/warn/Wunused-var-5.C: New test.
* g++.dg/warn/Wunused-var-6.C: New test.
* g++.dg/warn/Wunused-var-7.C: New test.
* g++.dg/warn/Wunused-var-8.C: New test.
* g++.dg/warn/Wunused-parm-1.C: New test.
* g++.dg/warn/Wunused-parm-2.C: New test.
* g++.dg/warn/Wunused-parm-3.C: New test.

Added:
trunk/gcc/testsuite/c-c++-common/Wunused-var-1.c
  - copied, changed from r159095,
trunk/gcc/testsuite/gcc.dg/Wunused-var-1.c
trunk/gcc/testsuite/c-c++-common/Wunused-var-2.c
  - copied, changed from r159095,
trunk/gcc/testsuite/gcc.dg/Wunused-var-2.c
trunk/gcc/testsuite/c-c++-common/Wunused-var-3.c
  - copied, changed from r159095,
trunk/gcc/testsuite/gcc.dg/Wunused-var-3.c
trunk/gcc/testsuite/c-c++-common/Wunused-var-4.c
  - copied, changed from r159095,
trunk/gcc/testsuite/gcc.dg/Wunused-var-7.c
trunk/gcc/testsuite/c-c++-common/Wunused-var-5.c
  - copied, changed from r159095,
trunk/gcc/testsuite/gcc.dg/Wunused-var-5.c
trunk/gcc/testsuite/g++.dg/warn/Wunused-parm-1.C
trunk/gcc/testsuite/g++.dg/warn/Wunused-parm-2.C
trunk/gcc/testsuite/g++.dg/warn/Wunused-parm-3.C
trunk/gcc/testsuite/g++.dg/warn/Wunused-var-1.C
trunk/gcc/testsuite/g++.dg/warn/Wunused-var-2.C
trunk/gcc/testsuite/g++.dg/warn/Wunused-var-3.C
trunk/gcc/testsuite/g++.dg/warn/Wunused-var-4.C
trunk/gcc/testsuite/g++.dg/warn/Wunused-var-5.C
  - copied, changed from r159095,
trunk/gcc/testsuite/gcc.dg/Wunused-var-1.c
trunk/gcc/testsuite/g++.dg/warn/Wunused-var-6.C
  - copied, changed from r159095,
trunk/gcc/testsuite/gcc.dg/Wunused-var-2.c
trunk/gcc/testsuite/g++.dg/warn/Wunused-var-7.C
  - copied, changed from r159095,
trunk/gcc/testsuite/gcc.dg/Wunused-var-3.c
trunk/gcc/testsuite/g++.dg/warn/Wunused-var-8.C
  - copied, changed from r159095,
trunk/gcc/testsuite/gcc.dg/Wunused-var-5.c
Removed:
trunk/gcc

[Bug c++/43953] [4.5/4.6 regression] ICE: dependent_type_p, at cp/pt.c:17404

2010-05-04 Thread dodji at gcc dot gnu dot org


--- Comment #4 from dodji at gcc dot gnu dot org  2010-05-04 09:50 ---
Subject: Bug 43953

Author: dodji
Date: Tue May  4 09:49:45 2010
New Revision: 159019

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=159019
Log:
Fix PR c++/43953

gcc/cp/ChangeLog:
PR c++/43953
* pt.c (most_specialized_class): Pretend we are processing
a template decl during the call to coerce_template_parms.

gcc/testsuite/ChangeLog:
PR c++/43953
* g++.dg/other/crash-12.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/other/crash-12.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/pt.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/43953] [4.5/4.6 regression] ICE: dependent_type_p, at cp/pt.c:17404

2010-05-04 Thread dodji at gcc dot gnu dot org


--- Comment #5 from dodji at gcc dot gnu dot org  2010-05-04 09:58 ---
Subject: Bug 43953

Author: dodji
Date: Tue May  4 09:58:03 2010
New Revision: 159021

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=159021
Log:
Fix PR c++/43953

gcc/cp/ChangeLog:
PR c++/43953
* pt.c (most_specialized_class): Pretend we are processing
a template decl during the call to coerce_template_parms.

gcc/testsuite/ChangeLog:
PR c++/43953
* g++.dg/other/crash-12.C: New test.

Added:
branches/gcc-4_5-branch/gcc/testsuite/g++.dg/other/crash-12.C
Modified:
branches/gcc-4_5-branch/gcc/cp/ChangeLog
branches/gcc-4_5-branch/gcc/cp/pt.c
branches/gcc-4_5-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/43953] [4.5/4.6 regression] ICE: dependent_type_p, at cp/pt.c:17404

2010-05-04 Thread dodji at gcc dot gnu dot org


--- Comment #6 from dodji at gcc dot gnu dot org  2010-05-04 10:01 ---
Fixed in 4.6 (trunk) and 4.5.1.


-- 


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



[Bug c++/43953] [4.5/4.6 regression] ICE: dependent_type_p, at cp/pt.c:17404

2010-05-04 Thread dodji at gcc dot gnu dot org


--- Comment #7 from dodji at gcc dot gnu dot org  2010-05-04 10:31 ---
Close this now.


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/43953] ICE: dependent_type_p, at cp/pt.c:17404

2010-05-03 Thread dodji at gcc dot gnu dot org


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dodji at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2010-05-01 13:58:34 |2010-05-03 17:54:28
   date||


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



[Bug c++/43800] [4.6 regression] FAIL: libgomp.c++/for-4.C

2010-04-20 Thread dodji at gcc dot gnu dot org


--- Comment #2 from dodji at gcc dot gnu dot org  2010-04-20 13:58 ---
... patch posted to http://gcc.gnu.org/ml/gcc-patches/2010-04/msg01241.html


-- 


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



[Bug c++/43800] [4.6 regression] FAIL: libgomp.c++/for-4.C

2010-04-20 Thread dodji at gcc dot gnu dot org


--- Comment #3 from dodji at gcc dot gnu dot org  2010-04-20 19:24 ---
Subject: Bug 43800

Author: dodji
Date: Tue Apr 20 19:23:45 2010
New Revision: 158571

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=158571
Log:
Fix PR c++/43800

gcc/cp/ChangeLog:
PR c++/43800
PR c++/43704
* typeck.c (incompatible_dependent_types_p): If one of the
compared types if not a typedef then honour their main variant
equivalence.

gcc/testsuite/ChangeLog:
PR c++/43800
PR c++/43704
* g++.dg/template/typedef32.C: Adjust.
* g++.dg/template/typedef33.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/template/typedef33.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/typeck.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/template/typedef32.C


-- 


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



[Bug c++/43704] [4.5 Regression] ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:10074

2010-04-20 Thread dodji at gcc dot gnu dot org


--- Comment #10 from dodji at gcc dot gnu dot org  2010-04-20 19:24 ---
Subject: Bug 43704

Author: dodji
Date: Tue Apr 20 19:23:45 2010
New Revision: 158571

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=158571
Log:
Fix PR c++/43800

gcc/cp/ChangeLog:
PR c++/43800
PR c++/43704
* typeck.c (incompatible_dependent_types_p): If one of the
compared types if not a typedef then honour their main variant
equivalence.

gcc/testsuite/ChangeLog:
PR c++/43800
PR c++/43704
* g++.dg/template/typedef32.C: Adjust.
* g++.dg/template/typedef33.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/template/typedef33.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/typeck.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/template/typedef32.C


-- 


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



[Bug c++/43704] [4.5 Regression] ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:10074

2010-04-20 Thread dodji at gcc dot gnu dot org


--- Comment #11 from dodji at gcc dot gnu dot org  2010-04-20 19:40 ---
Fixed in trunk (4.6) and 4.5.1.


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/43704] [4.5 Regression] ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:10074

2010-04-20 Thread dodji at gcc dot gnu dot org


--- Comment #11 from dodji at gcc dot gnu dot org  2010-04-20 19:40 ---
Fixed in trunk (4.6) and 4.5.1.


--- Comment #12 from dodji at gcc dot gnu dot org  2010-04-20 19:40 ---
Subject: Bug 43704

Author: dodji
Date: Tue Apr 20 19:40:11 2010
New Revision: 158572

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=158572
Log:
Fix PR c++/43704

gcc/cp/ChangeLog:
PR c++/43704
* typeck.c (structural_comptypes): Test dependent typedefs
incompatibility before testing for their main variant based
equivalence.
(incompatible_dependent_types_p): If one of the
compared types if not a typedef then honour their main variant
equivalence.

gcc/testsuite/ChangeLog:
PR c++/43704
* g++.dg/template/typedef32.C: New test.
* g++.dg/template/typedef33.C: New test.


gcc/testsuite/ChangeLog:

Added:
branches/gcc-4_5-branch/gcc/testsuite/g++.dg/template/typedef32.C
branches/gcc-4_5-branch/gcc/testsuite/g++.dg/template/typedef33.C
Modified:
branches/gcc-4_5-branch/gcc/cp/ChangeLog
branches/gcc-4_5-branch/gcc/cp/typeck.c
branches/gcc-4_5-branch/gcc/testsuite/ChangeLog


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/43800] [4.6 regression] FAIL: libgomp.c++/for-4.C

2010-04-20 Thread dodji at gcc dot gnu dot org


--- Comment #4 from dodji at gcc dot gnu dot org  2010-04-20 19:40 ---
Fixed in trunk (4.6)


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/43704] [4.5/4.6 Regression] ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:10074

2010-04-19 Thread dodji at gcc dot gnu dot org


--- Comment #7 from dodji at gcc dot gnu dot org  2010-04-19 09:32 ---
Subject: Bug 43704

Author: dodji
Date: Mon Apr 19 09:32:16 2010
New Revision: 158508

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=158508
Log:
Fix PR c++/43704

gcc/cp/ChangeLog:
PR c++/43704
* typeck.c (structural_comptypes): Test dependent typedefs
incompatibility before testing for their main variant based
equivalence.

gcc/testsuite/ChangeLog:
PR c++/43704
* g++.dg/template/typedef32.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/template/typedef32.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/typeck.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/43800] [4.6 regression] FAIL: libgomp.c++/for-4.C

2010-04-19 Thread dodji at gcc dot gnu dot org


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dodji at gcc dot gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-04-19 20:26:50
   date||


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



[Bug c++/43800] [4.6 regression] FAIL: libgomp.c++/for-4.C

2010-04-19 Thread dodji at gcc dot gnu dot org


--- Comment #1 from dodji at gcc dot gnu dot org  2010-04-19 20:57 ---
I am testing a patch ...


-- 


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



[Bug c++/43704] [4.5/4.6 Regression] ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:10074

2010-04-15 Thread dodji at gcc dot gnu dot org


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dodji at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2010-04-09 19:44:08 |2010-04-15 19:08:18
   date||


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



[Bug c++/43704] [4.5/4.6 Regression] ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:10074

2010-04-15 Thread dodji at gcc dot gnu dot org


--- Comment #6 from dodji at gcc dot gnu dot org  2010-04-15 21:13 ---
A patch was posted to http://gcc.gnu.org/ml/gcc-patches/2010-04/msg00928.html


-- 


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



[Bug debug/43628] [4.5/4.6 Regression] in-class func-ptr type parameter has unspecified DW_AT_type

2010-04-07 Thread dodji at gcc dot gnu dot org


--- Comment #3 from dodji at gcc dot gnu dot org  2010-04-07 09:59 ---
Subject: Bug 43628

Author: dodji
Date: Wed Apr  7 09:59:04 2010
New Revision: 158044

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=158044
Log:
Fix PR debug/43628

gcc/ChangeLog:
PR debug/43628
* dwarf2out.c (modified_type_die): Ignore artificial typedefs.

gcc/testsuite/ChangeLog:
PR debug/43628
* g++.dg/debug/dwarf2/typedef2.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/debug/dwarf2/typedef2.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/dwarf2out.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug debug/43628] [4.5/4.6 Regression] in-class func-ptr type parameter has unspecified DW_AT_type

2010-04-07 Thread dodji at gcc dot gnu dot org


--- Comment #4 from dodji at gcc dot gnu dot org  2010-04-07 10:38 ---
Fixed in 4.6 (trunk)


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug c++/40239] Aggregate initialization requires copy constructor

2010-04-07 Thread dodji at gcc dot gnu dot org


--- Comment #8 from dodji at gcc dot gnu dot org  2010-04-07 15:12 ---
Subject: Bug 40239

Author: dodji
Date: Wed Apr  7 15:11:42 2010
New Revision: 158066

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=158066
Log:
Fix PR c++/40239

gcc/cp/ChangeLog:
PR c++/40239
* typeck2.c (process_init_constructor_record):
value-initialize members that are are not explicitely
initialized.

gcc/testsuite/ChangeLog:
PR c++/40239
* g++.dg/init/aggr5.C: New test.
* g++.dg/init/aggr5.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/init/aggr5.C
trunk/gcc/testsuite/g++.dg/init/aggr6.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/typeck2.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/40239] Aggregate initialization requires copy constructor

2010-04-07 Thread dodji at gcc dot gnu dot org


--- Comment #9 from dodji at gcc dot gnu dot org  2010-04-07 15:12 ---
Fixed in 4.6 (trunk).


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug c++/42697] ice-on-legal-code: template class template function local objects

2010-04-07 Thread dodji at gcc dot gnu dot org


--- Comment #14 from dodji at gcc dot gnu dot org  2010-04-07 15:16 ---
Subject: Bug 42697

Author: dodji
Date: Wed Apr  7 15:16:12 2010
New Revision: 158068

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=158068
Log:
Fix PR c++/42697

gcc/cp/ChangeLog:
PR c++/42697
*pt.c (tsubst_decl): Get the arguments of a specialization from
the specialization template, not from the most general template.

gcc/testsuite/ChangeLog:
PR c++/42697
* g++.dg/template/crash94.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/template/crash94.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/pt.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/42697] ice-on-legal-code: template class template function local objects

2010-04-07 Thread dodji at gcc dot gnu dot org


--- Comment #15 from dodji at gcc dot gnu dot org  2010-04-07 15:18 ---
Fixed in 4.6 (trunk)


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug debug/43628] [4.5 Regression] in-class func-ptr type parameter has unspecified DW_AT_type

2010-04-02 Thread dodji at gcc dot gnu dot org


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dodji at gcc dot gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-04-02 16:57:42
   date||


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



[Bug debug/43628] [4.5 Regression] in-class func-ptr type parameter has unspecified DW_AT_type

2010-04-02 Thread dodji at gcc dot gnu dot org


--- Comment #1 from dodji at gcc dot gnu dot org  2010-04-02 19:09 ---
Patch posted to http://gcc.gnu.org/ml/gcc-patches/2010-04/msg00100.html


-- 


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



[Bug debug/43325] [4.5 Regression] C++ external inner reference does not override outer scope

2010-04-01 Thread dodji at gcc dot gnu dot org


--- Comment #2 from dodji at gcc dot gnu dot org  2010-04-01 18:54 ---
Subject: Bug 43325

Author: dodji
Date: Thu Apr  1 18:54:30 2010
New Revision: 157928

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=157928
Log:
Fix for PR debug/43325

gcc/ChangeLog:
PR debug/43325
* dwarf2out.c (gen_variable_die): Allow debug info for variable
re-declaration when it happens in a function.

gcc/testsuite/ChangeLog:
PR debug/43325
* c-c++-common/dwarf2/redeclaration-1.C: New test.

Added:
trunk/gcc/testsuite/c-c++-common/dwarf2/redeclaration-1.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/dwarf2out.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug debug/43325] [4.5 Regression] C++ external inner reference does not override outer scope

2010-04-01 Thread dodji at gcc dot gnu dot org


--- Comment #3 from dodji at gcc dot gnu dot org  2010-04-01 18:55 ---
Fixed in 4.5 (trunk).


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/43558] [4.5 Regression] Rejects specialization

2010-03-31 Thread dodji at gcc dot gnu dot org


--- Comment #3 from dodji at gcc dot gnu dot org  2010-03-31 09:21 ---
Subject: Bug 43558

Author: dodji
Date: Wed Mar 31 09:21:02 2010
New Revision: 157857

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=157857
Log:
Fix PR c++/43558

gcc/cp/ChangeLog:
PR c++/43558
* cp-tree.h (TEMPLATE_TYPE_PARM_SIBLING_PARMS): New accessor macro.
* pt.c (end_template_parm_list): Store sibling template parms of
each TEMPLATE_TYPE_PARMs into its TEMPLATE_TYPE_PARM_SIBLING_PARMS.
(push_template_decl_real): Don't store the containing template decl
into the DECL_CONTEXT of TEMPLATE_TYPE_PARMs anymore.
* typeck.c (get_template_parms_of_dependent_type): Get sibling parms
of a TEMPLATE_TYPE_PARM from TEMPLATE_TYPE_PARM_SIBLING_PARMS.
Simplify the logic.

gcc/testsuite/ChangeLog:
PR c++/43558
* g++.dg/template/typedef31.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/template/typedef31.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/pt.c
trunk/gcc/cp/typeck.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/43558] [4.5 Regression] Rejects specialization

2010-03-31 Thread dodji at gcc dot gnu dot org


--- Comment #4 from dodji at gcc dot gnu dot org  2010-03-31 09:33 ---
Fixed in 4.5 (trunk).


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug debug/43325] [4.5 Regression] C++ external inner reference does not override outer scope

2010-03-31 Thread dodji at gcc dot gnu dot org


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dodji at gcc dot gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-03-31 09:35:28
   date||
Summary|C++ external inner reference|[4.5 Regression] C++
   |does not override outer |external inner reference
   |scope   |does not override outer
   ||scope


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



[Bug debug/43325] [4.5 Regression] C++ external inner reference does not override outer scope

2010-03-31 Thread dodji at gcc dot gnu dot org


--- Comment #1 from dodji at gcc dot gnu dot org  2010-03-31 10:08 ---
A patch was proposed at http://gcc.gnu.org/ml/gcc-patches/2010-03/msg01473.html


-- 


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



[Bug preprocessor/7263] __extension__ keyword doesn't suppress warning on LL or ULL constants

2010-03-30 Thread dodji at gcc dot gnu dot org


--- Comment #22 from dodji at gcc dot gnu dot org  2010-03-30 14:06 ---
I'll be looking into this.


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dodji at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2005-12-28 06:30:47 |2010-03-30 14:06:11
   date||


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



[Bug c++/43327] ICE in unifiy.c

2010-03-26 Thread dodji at gcc dot gnu dot org


--- Comment #4 from dodji at gcc dot gnu dot org  2010-03-26 09:21 ---
Subject: Bug 43327

Author: dodji
Date: Fri Mar 26 09:20:58 2010
New Revision: 157745

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=157745
Log:
Fix for PR c++/43327

gcc/cp/ChangeLog:
PR c++/43327
* pt.c (add_to_template_args): Support NULL ARGS;
(most_specialized_class): call coerce_template_parms on
template arguments passed to get_class_bindings. Use
add_to_template_args.
(unify): Handle VAR_DECLs.

gcc/testsuite/ChangeLog:
PR c++/43327
* g++.dg/other/crash-10.C: New test.
* g++.dg/other/crash-11.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/other/crash-10.C
trunk/gcc/testsuite/g++.dg/other/crash-11.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/pt.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/43206] [4.5 Regression] Revision 145440 caused ICE at cp/pt.c:9249

2010-03-26 Thread dodji at gcc dot gnu dot org


--- Comment #6 from dodji at gcc dot gnu dot org  2010-03-26 09:30 ---
Fixed in 4.5
The bootstrap failure should be fixed by
http://gcc.gnu.org/viewcvs?view=revisionrevision=157743


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/43087] [4.5 Regression] ICE in tsubst, at cp/pt.c:9923

2010-03-26 Thread dodji at gcc dot gnu dot org


--- Comment #20 from dodji at gcc dot gnu dot org  2010-03-26 09:31 ---
Should be fixed in 4.5 by the commit for PR c++/43206.


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/43327] [4.4/4.5 regression] ICE in unifiy.c

2010-03-26 Thread dodji at gcc dot gnu dot org


--- Comment #5 from dodji at gcc dot gnu dot org  2010-03-26 09:33 ---
Fixed in 4.5.


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED
Summary|ICE in unifiy.c |[4.4/4.5 regression] ICE in
   ||unifiy.c


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



[Bug c++/43487] method locations are incorrect

2010-03-25 Thread dodji at gcc dot gnu dot org


--- Comment #6 from dodji at gcc dot gnu dot org  2010-03-25 18:21 ---
I guess this would be useful for diagnostic too.


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||dodji at gcc dot gnu dot org
   Keywords||diagnostic


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



[Bug c++/43206] [4.5 Regression] Revision 145440 caused ICE at cp/pt.c:9249

2010-03-25 Thread dodji at gcc dot gnu dot org


--- Comment #4 from dodji at gcc dot gnu dot org  2010-03-25 22:08 ---
Subject: Bug 43206

Author: dodji
Date: Thu Mar 25 22:08:33 2010
New Revision: 157730

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=157730
Log:
Fix candidate for PR c++/43206

gcc/cp/ChangeLog:
PR c++/43206
* cp-tree.h (get_template_parms_at_level): Declare ...
* pt.c (get_template_parms_at_level): ... new function.
* typeck.c (get_template_parms_of_dependent_type): If a template
type parm's DECL_CONTEXT isn't yet set, get its siblings from
current_template_parms. Use get_template_parms_at_level. Remove
useless test.
(incompatible_dependent_types_p): If we get empty parms from just one
of the template type parms we are comparing then the template parms are
incompatible.

gcc/testsuite/ChangeLog:
PR c++/43206
* g++.dg/template/typedef30.C: New test case.

Added:
trunk/gcc/testsuite/g++.dg/template/typedef30.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/pt.c
trunk/gcc/cp/typeck.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug debug/42959] g++ does not emit DW_AT_default_value

2010-03-23 Thread dodji at gcc dot gnu dot org


--- Comment #6 from dodji at gcc dot gnu dot org  2010-03-23 09:33 ---
Created an attachment (id=20167)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20167action=view)
Draft patch

This draft patch emits a DW_AT_GNU_default_value_unrepresentable attribute flag
when the default argument value cannot be represented because e.g. it involves
temporaries.

Tom, if the patch does what you want, I can propose it for discussion/inclusion
for GCC 4.6?


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

  Attachment #20107|0   |1
is obsolete||


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



[Bug debug/41130] GCC should emit an index of publicly named entities

2010-03-23 Thread dodji at gcc dot gnu dot org


--- Comment #14 from dodji at gcc dot gnu dot org  2010-03-23 09:54 ---
Not working on this atm.


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|dodji at gcc dot gnu dot org|unassigned at gcc dot gnu
   ||dot org
 Status|ASSIGNED|NEW


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



[Bug debug/39524] Duplicate C++ DW_TAG_variable breaking its DW_AT_location resolution

2010-03-22 Thread dodji at gcc dot gnu dot org


--- Comment #7 from dodji at gcc dot gnu dot org  2010-03-22 16:11 ---
This got fixed in 4.4 but the PR never got closed. Closing now.


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug c++/43375] [4.5 Regression] ICE during compiling SSE code

2010-03-20 Thread dodji at gcc dot gnu dot org


--- Comment #6 from dodji at gcc dot gnu dot org  2010-03-20 08:55 ---
Subject: Bug 43375

Author: dodji
Date: Sat Mar 20 08:55:32 2010
New Revision: 157590

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=157590
Log:
Fix for PR c++/43375

gcc/cp/ChangeLog:
PR c++/43375
* method.c (make_alias_for): Avoid crashing when DECL_LANG_SPECIFIC
is NULL.
* decl2.c (vague_linkage_p): Likewise.

gcc/testsuite/g++.dg/ChangeLog:
PR c++/43375
* g++.dg/abi/mangle42.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/abi/mangle42.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/decl2.c
trunk/gcc/cp/method.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/43375] [4.5 Regression] ICE during compiling SSE code

2010-03-20 Thread dodji at gcc dot gnu dot org


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dodji at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2010-03-15 11:00:04 |2010-03-20 08:56:16
   date||


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



[Bug c++/43375] [4.5 Regression] ICE during compiling SSE code

2010-03-20 Thread dodji at gcc dot gnu dot org


--- Comment #7 from dodji at gcc dot gnu dot org  2010-03-20 08:56 ---
Fixed in 4.5


-- 


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



[Bug debug/7580] incorrect/unfortunate DWARF-2 info for static const int class members

2010-03-18 Thread dodji at gcc dot gnu dot org


--- Comment #7 from dodji at gcc dot gnu dot org  2010-03-18 12:50 ---
Things have changed quite a bit in GCC 4.5  (trunk).

Now for the code:

class C
{
  static const int foo;
};

int
main()
{
  return 0;
}

GCC 4.5 will not generate any debug info for the class C at all, because it's
not used. The compiler does that to minimize the size of debug info.

Now if we write:

class C
{
static const int foo;
};

int 
main()
{
  C c;
  return 0;
}

GCC generates debug info for C, and properly generates a DW_TAG_member for foo.
Note how we instantiate C in main, but don't reference C::foo in any way.

Here is a relevant DWARF portion of the assembly we get for this:

.uleb128 0x2# (DIE (0x2d) DW_TAG_class_type)
.ascii C\0# DW_AT_name
.byte   0x1 # DW_AT_byte_size
.byte   0x1 # DW_AT_decl_file (../../prtests/test.cc)
.byte   0x2 # DW_AT_decl_line
.long   0x49# DW_AT_sibling
.uleb128 0x3# (DIE (0x37) DW_TAG_member)
.ascii foo\0  # DW_AT_name
.byte   0x1 # DW_AT_decl_file (../../prtests/test.cc)
.byte   0x4 # DW_AT_decl_line
.long   .LASF3  # DW_AT_MIPS_linkage_name: _ZN1C3fooE
.long   0x49# DW_AT_type
.byte   0x1 # DW_AT_external
.byte   0x1 # DW_AT_declaration
.byte   0x0 # end of children of DIE 0x2d


So I think we can close this bug now.


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dodji at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2003-06-09 15:32:16 |2010-03-18 12:50:30
   date||


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



[Bug debug/7580] incorrect/unfortunate DWARF-2 info for static const int class members

2010-03-18 Thread dodji at gcc dot gnu dot org


--- Comment #8 from dodji at gcc dot gnu dot org  2010-03-18 12:52 ---
Bug no more present in GCC 4.5


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug debug/37982] Extraneous DW_TAG_variable tag

2010-03-18 Thread dodji at gcc dot gnu dot org


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dodji at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2008-11-01 11:03:52 |2010-03-18 12:52:49
   date||
   Target Milestone|--- |4.5.0


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



[Bug debug/37982] Extraneous DW_TAG_variable tag

2010-03-18 Thread dodji at gcc dot gnu dot org


--- Comment #10 from dodji at gcc dot gnu dot org  2010-03-18 12:53 ---
Bug no more present in 4.5


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug debug/42959] g++ does not emit DW_AT_default_value

2010-03-18 Thread dodji at gcc dot gnu dot org


--- Comment #5 from dodji at gcc dot gnu dot org  2010-03-18 14:38 ---
(In reply to comment #4)

As we discussed on IRC, it seems we'd need a way to express that we'd want the
debugger to create a temporary, initialize it and later destroy it. DWARF can't
express as of now. So we'll probably need some kind of extension. I am not sure
exactly what extension yet though. I need to think about this.


-- 


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



[Bug c++/43327] ICE in unifiy.c

2010-03-17 Thread dodji at gcc dot gnu dot org


--- Comment #3 from dodji at gcc dot gnu dot org  2010-03-17 14:55 ---
A patch was proposed at http://gcc.gnu.org/ml/gcc-patches/2010-03/msg00662.html


-- 


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



[Bug debug/37982] Extraneous DW_TAG_variable tag

2010-03-17 Thread dodji at gcc dot gnu dot org


--- Comment #9 from dodji at gcc dot gnu dot org  2010-03-17 21:15 ---
The situation has change quite a lot since gcc 4.3.0.
Now a DW_TAG_member is emitted for the static member variable, and only one
DW_TAG_variable is emitted to represent the variable definition.

So I guess the bug can be closed now?

With 4.5 I get this:

0b: Abbrev Number: 1 (DW_TAG_compile_unit)
 c   DW_AT_producer: (indirect string, offset: 0x62): GNU C++ 4.5.0
20100301 (experimental)
10   DW_AT_language: 4(C++)
11   DW_AT_name: (indirect string, offset: 0x0): class.c
15   DW_AT_comp_dir: (indirect string, offset: 0x19):
/home/dodji/devel/git/gcc-branches.git/gcc-PR37982.git/prtests
19   DW_AT_low_pc  : 0x4004b4
21   DW_AT_high_pc : 0x4004c0
29   DW_AT_stmt_list   : 0x0
 12d: Abbrev Number: 2 (DW_TAG_structure_type)
2e   DW_AT_name: A
30   DW_AT_byte_size   : 1
31   DW_AT_decl_file   : 2
32   DW_AT_decl_line   : 2
33   DW_AT_sibling : 0x49
 237: Abbrev Number: 3 (DW_TAG_member)
38   DW_AT_name: (indirect string, offset: 0x58): elsewhere
3c   DW_AT_decl_file   : 2
3d   DW_AT_decl_line   : 3
3e   DW_AT_MIPS_linkage_name: (indirect string, offset: 0x8):
_ZN1A9elsewhereE
42   DW_AT_type: 0x49
46   DW_AT_external: 1
47   DW_AT_declaration : 1

[...]

0a0: Abbrev Number: 1 (DW_TAG_compile_unit)
a1   DW_AT_producer: (indirect string, offset: 0x62): GNU C++ 4.5.0
20100301 (experimental)
a5   DW_AT_language: 4(C++)
a6   DW_AT_name: (indirect string, offset: 0x8d): class2.c
aa   DW_AT_comp_dir: (indirect string, offset: 0x19):
/home/dodji/devel/git/gcc-branches.git/gcc-PR37982.git/prtests
ae   DW_AT_low_pc  : 0x4004c0
b6   DW_AT_high_pc : 0x4004c0
be   DW_AT_stmt_list   : 0x46
 1c2: Abbrev Number: 2 (DW_TAG_structure_type)
c3   DW_AT_name: A
c5   DW_AT_byte_size   : 1
c6   DW_AT_decl_file   : 1
c7   DW_AT_decl_line   : 2
c8   DW_AT_sibling : 0xde
 2cc: Abbrev Number: 3 (DW_TAG_member)
cd   DW_AT_name: (indirect string, offset: 0x58): elsewhere
d1   DW_AT_decl_file   : 1
d2   DW_AT_decl_line   : 3
d3   DW_AT_MIPS_linkage_name: (indirect string, offset: 0x8):
_ZN1A9elsewhereE
d7   DW_AT_type: 0xde
db   DW_AT_external: 1
dc   DW_AT_declaration : 1

[...]

1ea: Abbrev Number: 6 (DW_TAG_variable)
eb   DW_AT_specification: 0xcc
ef   DW_AT_decl_file   : 2
f0   DW_AT_decl_line   : 2
f1   DW_AT_location: 9 byte block: 3 ac 5 40 0 0 0 0 0   
(DW_OP_addr: 4005ac)


-- 


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



[Bug c++/43327] ICE in unifiy.c

2010-03-16 Thread dodji at gcc dot gnu dot org


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dodji at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2010-03-13 00:59:53 |2010-03-16 09:14:54
   date||


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



[Bug c++/43087] [4.5 Regression] ICE in tsubst, at cp/pt.c:9923

2010-03-16 Thread dodji at gcc dot gnu dot org


--- Comment #19 from dodji at gcc dot gnu dot org  2010-03-16 10:55 ---
FWIW, I have tested the patch posted for PR c++/43206 and it fixes this one
too.


-- 


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



[Bug debug/42959] g++ does not emit DW_AT_default_value

2010-03-15 Thread dodji at gcc dot gnu dot org


--- Comment #3 from dodji at gcc dot gnu dot org  2010-03-15 10:45 ---
Created an attachment (id=20107)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20107action=view)
Draf patch

Thanks Jakub for the review. This updated patch should address your comments.


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

  Attachment #20085|0   |1
is obsolete||


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



[Bug debug/42959] g++ does not emit DW_AT_default_value

2010-03-11 Thread dodji at gcc dot gnu dot org


--- Comment #1 from dodji at gcc dot gnu dot org  2010-03-11 16:17 ---
Created an attachment (id=20085)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20085action=view)
Draft patch

Please find below a copy/paste of the introductory comment of the attached
patch.

Basically the value of DW_AT_default_value -- as explained by the DWARF4
draft specification -- is either a constant if the default argument of
the function is a constant, or a reference to a DIE if the value of the
default argument is a language construct like a variable.

I believe there are cases however where it's hard (impossible yet?) to
represent the value of DW_AT_default_value. For instance, when the
default argument of a function F is an arbitrary expression that
yields temporaries.  In that case, the default argument expression
must be evaluated in the context of the caller of F. Just taking in
account the default argument expression in the context of the F
declaration is not enough.
I am not sure we can represent that in DWARF today, can we?

So this patch is limited to the simple cases were the default argument
is either a constant or a variable that does not involve any temporary.
When a default argument expression involves some temporaries, no debug
info is generated for it.

For a class, it appears that we were calling finish_struct right before
parsing default arguments of the member functions.
finish_struct does the layout of the class. So we do the layout of the
class before parsing the defaut arguments because they can refer to
parts of the struct that need to be constructed before. The problem is
finish_struct also generates debug info for the class. That means, when
we generate debug info for the struct, we don't have any information
ready about the default arguments.

The patch allows finish_struct to not emit debug info systematically. We
can then keep calling finish_struct early and emit debug info only after
we parsed the default arguments.
We do something similar at class template instantiation time. We emit debug
info only after the template arguments are substituted into the default
arguments expressions.


-- 


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



[Bug debug/42959] g++ does not emit DW_AT_default_value

2010-03-09 Thread dodji at gcc dot gnu dot org


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dodji at gcc dot gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-03-09 14:07:28
   date||


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



[Bug c++/43206] [4.5 Regression] Revision 145440 caused ICE at cp/pt.c:9249

2010-03-05 Thread dodji at gcc dot gnu dot org


--- Comment #3 from dodji at gcc dot gnu dot org  2010-03-05 20:40 ---
A patch was proposed at http://gcc.gnu.org/ml/gcc-patches/2010-03/msg00226.html


-- 


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



  1   2   3   4   5   6   >