[Bug c++/39208] New: Incorrect mangled name for function as template argument

2009-02-16 Thread dgregor at gcc dot gnu dot org
Given the following code:

  templateint (p)(int, int) struct X { };
  int f(int, int) { }
  void g(Xf) { }

GCC produces the mangled name:

  _Z1g1XILZ1fiiEE

for the function 'g'. However, the correct mangled name is:

  _Z1g1XIL_Z1fiiEE

GCC is missing the '_' prior to the 'Z' in the mangled name of the template
argument 'f'.


-- 
   Summary: Incorrect mangled name for function as template argument
   Product: gcc
   Version: 4.3.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dgregor at gcc dot gnu dot org


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



[Bug c++/25185] deep typedef substitution in error message

2008-11-06 Thread dgregor at gcc dot gnu dot org


--- Comment #3 from dgregor at gcc dot gnu dot org  2008-11-06 20:19 ---
This bug should be really easy to fix, now that GCC has canonical types. Just
map each of the template type arguments down to its canonical type before doing
the substitution. 


-- 


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



[Bug c++/37553] [4.3/4.4 Regression] ICE in build_c_cast

2008-10-14 Thread dgregor at gcc dot gnu dot org


--- Comment #4 from dgregor at gcc dot gnu dot org  2008-10-14 15:05 ---
Subject: Bug 37553

Author: dgregor
Date: Tue Oct 14 15:03:51 2008
New Revision: 14

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=14
Log:
2008-10-14  Douglas Gregor  [EMAIL PROTECTED]

   PR c++/37553
   * tree.c (build_type_attribute_qual_variant): Hash on the
   unqualified type, and don't overwrite an existing
   (type_hash_eq): Make the TYPE_NAME of the types significant, to
   allow distinguishing between wchar_t and its underlying type. This
   also means that we'll retain a little more typedef information.

2008-10-14  Douglas Gregor  [EMAIL PROTECTED]

   PR c++/37553
   * g++.dg/ext/alias-canon2.C: New.

Added:
trunk/gcc/testsuite/g++.dg/ext/alias-canon2.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree.c


-- 


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



[Bug c++/37540] [4.4 regression] ICE on __decltype of method call in function template

2008-09-24 Thread dgregor at gcc dot gnu dot org


--- Comment #4 from dgregor at gcc dot gnu dot org  2008-09-24 13:51 ---
We need to look at CALL_EXPR_FN's type because the decltype of a call retrieves
the return type of the the function called, which may be a REFERENCE_TYPE. The
type of the expression will have stripped away that reference.


-- 


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



[Bug c++/36461] [c++0x] Exception throws don't use rvalue reference constructors

2008-09-24 Thread dgregor at gcc dot gnu dot org


--- Comment #4 from dgregor at gcc dot gnu dot org  2008-09-24 20:20 ---
GCC is doing the right thing here. In this constructor:

  Thing2(Thing2 o) : Thing(o) { }

the parameter o is treated as an lvalue, because it has a name. Using
std::move(o) to treat it as an rvalue.

Similarly, there are no automatically generated move constructors or
move-assignment operators, so if you leave Thing2() empty, you'll just get the
copy constructor and therefore do a copy.


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug c++/37342] [4.4 Regression] same canonical type node for different types void (Asm::*)(std::ostream) and void (Asm::* const)(std::ostream)

2008-09-05 Thread dgregor at gcc dot gnu dot org


--- Comment #7 from dgregor at gcc dot gnu dot org  2008-09-05 17:05 ---
Subject: Bug 37342

Author: dgregor
Date: Fri Sep  5 17:04:12 2008
New Revision: 140037

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=140037
Log:
2008-09-05  Douglas Gregor  [EMAIL PROTECTED]

   PR c++/37342
   * tree.c (cp_build_qualified_type_real): Deal with sharing of
   TYPE_LANG_SPECIFIC in the canonical types of pointer-to-method
   types.

2008-09-05  Douglas Gregor  [EMAIL PROTECTED]

   PR c++/37342
   * g++.dg/other/canon-37342.C: New.


Added:
trunk/gcc/testsuite/g++.dg/other/canon-37342.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/tree.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/37342] [4.4 Regression] same canonical type node for different types void (Asm::*)(std::ostream) and void (Asm::* const)(std::ostream)

2008-09-05 Thread dgregor at gcc dot gnu dot org


--- Comment #8 from dgregor at gcc dot gnu dot org  2008-09-05 17:06 ---
Fixed on mainline


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/37342] [4.4 Regression] same canonical type node for different types void (Asm::*)(std::ostream) and void (Asm::* const)(std::ostream)

2008-09-03 Thread dgregor at gcc dot gnu dot org


--- Comment #5 from dgregor at gcc dot gnu dot org  2008-09-04 04:35 ---
Thanks for the reduced test case. I'm on it.


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dgregor at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2008-09-03 09:04:48 |2008-09-04 04:35:09
   date||


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



[Bug c++/37342] [4.4 Regression] same canonical type node for different types void (Asm::*)(std::ostream) and void (Asm::* const)(std::ostream)

2008-09-03 Thread dgregor at gcc dot gnu dot org


--- Comment #6 from dgregor at gcc dot gnu dot org  2008-09-04 05:42 ---
Patch here: http://gcc.gnu.org/ml/gcc-patches/2008-09/msg00321.html


-- 


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



[Bug c++/37208] New: C++0x deleted functions and SFINAE

2008-08-22 Thread dgregor at gcc dot gnu dot org
Deleted functions don't cause SFINAE failures (or any kind of failure), but
they should.


-- 
   Summary: C++0x deleted functions and SFINAE
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dgregor at gcc dot gnu dot org


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



[Bug c++/37208] C++0x deleted functions and SFINAE

2008-08-22 Thread dgregor at gcc dot gnu dot org


--- Comment #1 from dgregor at gcc dot gnu dot org  2008-08-23 04:59 ---
Created an attachment (id=16133)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16133action=view)
Test case illustrating the problem


-- 


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



[Bug c++/36460] No space between 's not always handled in C++0x

2008-08-06 Thread dgregor at gcc dot gnu dot org


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dgregor at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-08-06 13:48:53
   date||


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



[Bug c++/36460] No space between 's not always handled in C++0x

2008-08-06 Thread dgregor at gcc dot gnu dot org


--- Comment #5 from dgregor at gcc dot gnu dot org  2008-08-06 14:30 ---
Patch here: http://gcc.gnu.org/ml/gcc-patches/2008-08/msg00382.html


-- 


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



[Bug c++/36460] No space between 's not always handled in C++0x

2008-08-06 Thread dgregor at gcc dot gnu dot org


--- Comment #6 from dgregor at gcc dot gnu dot org  2008-08-06 19:09 ---
Subject: Bug 36460

Author: dgregor
Date: Wed Aug  6 19:08:12 2008
New Revision: 138819

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=138819
Log:
2008-08-06  Douglas Gregor  [EMAIL PROTECTED]

   PR c++/36460
   * parser.c (cp_parser_template_argument): Don't assume that ''
   following a type-id is an error when in C++0x mode.

2008-08-06  Douglas Gregor  [EMAIL PROTECTED]

   PR c++/36460
   * g++.dg/cpp0x/bracket3.C: Add another test case for the 
   warning under -Wc++0x-compat.
   * g++.dg/cpp0x/bracket4.C: Add testcase for PR c++/36460.


Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/parser.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/cpp0x/bracket3.C
trunk/gcc/testsuite/g++.dg/cpp0x/bracket4.C


-- 


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



[Bug c++/36460] No space between 's not always handled in C++0x

2008-08-06 Thread dgregor at gcc dot gnu dot org


--- Comment #7 from dgregor at gcc dot gnu dot org  2008-08-06 19:12 ---
Fixed on the trunk.


-- 

dgregor 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=36460



[Bug c++/36408] [4.3/4.4 regression] ICE with statement expression in template

2008-08-01 Thread dgregor at gcc dot gnu dot org


--- Comment #8 from dgregor at gcc dot gnu dot org  2008-08-01 11:55 ---
Thanks Jakub, Dodji for working on this. Some comments:

Some nits:

  - the error message we give in this case is pretty poor. Here we have an
empty initializer, but the error message we get back is void value not ignored
as it ought to be, which really doesn't tell us much of anything about the
problem. The real issue here is that the statement expression has no return
value, so we should say as such. This same problem can occur with non-empty
statement expressions whose last statement does not produce a value, right? We
should test this case, too.

  - since the statement-expression is obviously empty, can we produce this
error message at template definition time, rather than waiting until
instantiation time? (If the answer isn't a quick yes, don't worry about it;
I'll eventually be going through the initialization bits to check more of them
at template definition time anyway.)

  - is_pack_expansion_node_p is a pretty general name for a function that is
specific to initializer lists (in general, a TREE_LIST with a pack expansion in
its TREE_VALUE isn't necessarily an expansion node). I suggest calling this
initializer_is_pack_expansion_p.

  - Please put some braces inside the if (init  !t) block. Omitting the
braces for then and else is okay for small one-liner bodies, but shouldn't
be done when there are if-elses nested inside.

  - parse/empty-statement.C is a strange place to put this check, which deals
with template instantiation. Perhaps call it template/empty-init-statement.C?

  - In the top of the testcase, PR c++/P36408 should be PR c++/36408


-- 


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



[Bug c++/36408] [4.3/4.4 regression] ICE with statement expression in template

2008-08-01 Thread dgregor at gcc dot gnu dot org


--- Comment #10 from dgregor at gcc dot gnu dot org  2008-08-01 14:05 
---
(In reply to comment #9)
   - the error message we give in this case is pretty poor. Here we have an
 empty initializer, but the error message we get back is void value not 
 ignored
 as it ought to be, which really doesn't tell us much of anything about the
 problem.
 
 I agree. Though I think addressing that should be best done in another bug
 that we can open straight away when we close this one, if you agree.

Agreed.

   - since the statement-expression is obviously empty, can we produce this
 error message at template definition time, rather than waiting until
 instantiation time? (If the answer isn't a quick yes, don't worry about it;
 I'll eventually be going through the initialization bits to check more of 
 them
 at template definition time anyway.)
 
 Yes, that would be handy. Though here again, I think we should be opening
 another bug to track that.

It's probably not worth opening a bug report for this, unless it's some
placeholder bug that says, we should diagnose as many errors as template
definition time as possible. Such a bug is almost impossible to close :)

Your updated patch looks good, but I can't approve it. I suggesting pinging
Jason to get approval.


-- 


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



[Bug c++/36628] [c++0x] incorrect decltype() handling of conditional operator

2008-07-07 Thread dgregor at gcc dot gnu dot org


--- Comment #3 from dgregor at gcc dot gnu dot org  2008-07-07 23:28 ---
The problem here is that fold() is simplifying the expression before we look at
its type. The simplification here turns something that's not a function call (a
conditional expression) into a function call, thereby triggering a different
branch in the decltype code (which returns the return type of a function being
called).


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dgregor at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-07-07 23:28:02
   date||


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



[Bug web/35375] A couple of typos in links on Status of Experimental C++0x Support page

2008-04-14 Thread dgregor at gcc dot gnu dot org


--- Comment #2 from dgregor at gcc dot gnu dot org  2008-04-14 13:56 ---
The links on the  C++0x status web pages have been fixed.


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug bootstrap/35704] Bootstrap failure on i686-apple-darwin9 at revision 133519 (take 2).

2008-03-27 Thread dgregor at gcc dot gnu dot org


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dgregor at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-03-27 14:49:45
   date||
   Target Milestone|--- |4.4.0


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



[Bug bootstrap/35704] Bootstrap failure on i686-apple-darwin9 at revision 133519 (take 2).

2008-03-27 Thread dgregor at gcc dot gnu dot org


--- Comment #3 from dgregor at gcc dot gnu dot org  2008-03-27 14:54 ---
Subject: Bug 35704

Author: dgregor
Date: Thu Mar 27 14:53:57 2008
New Revision: 133643

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=133643
Log:
2008-03-27  Douglas Gregor  [EMAIL PROTECTED]

PR obj-c++/35704
* typeck.c (build_x_compound_expr): Use cp_build_compound_expr.
(build_compound_expr): New, for compatibility with C
build_compound_expr.
(cp_build_compound_expr): Renamed from build_compound_expr.
(build_c_cast): New, for compatibility with C build_c_cast.
(cp_build_c_cast): Renamed from build_c_cast.
* init.c (build_vec_delete_1): Fix calls to build_compound_expr.
* decl.c (cxx_maybe_build_cleanup): Ditto.
* cp-tree.h (build_compound_expr): Add C-compatibile prototype.
(cp_build_compound_expr): Renamed from build_compound_expr.
(build_c_cast): Add C-compatible prototype.
(cp_build_c_cast): Renamed from build_c_cast.
* typeck2.c (build_functional_cast): Use cp_build_c_cast.
* parser.c (cp_parser_cast_expression): Fix call to build_c_cast.

2008-03-27  Douglas Gregor  [EMAIL PROTECTED]

PR obj-c++/35704
* objc-act.c (objc_build_component_ref): Fix call to
finish_class_member_access_expr.
(objc_generate_cxx_ctor_or_dtor): Fix call to
build_special_member_call.


Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/decl.c
trunk/gcc/cp/init.c
trunk/gcc/cp/parser.c
trunk/gcc/cp/typeck.c
trunk/gcc/cp/typeck2.c
trunk/gcc/objc/ChangeLog
trunk/gcc/objc/objc-act.c


-- 


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



[Bug bootstrap/35704] Bootstrap failure on i686-apple-darwin9 at revision 133519 (take 2).

2008-03-27 Thread dgregor at gcc dot gnu dot org


--- Comment #4 from dgregor at gcc dot gnu dot org  2008-03-27 14:54 ---
Fixed on mainline


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/35722] New: [C++0x] Variadic templates expansion into non-variadic class template

2008-03-27 Thread dgregor at gcc dot gnu dot org
The following well-formed example produces the incorrect error:

  error: cannot expand ‘G ...’ into a fixed-length argument list

templatetypename G = void, typename H = void
struct foo
{};

templatetypename... G
struct bar : fooG...
{};

int main() {
  barint, float f;
}


-- 
   Summary: [C++0x] Variadic templates expansion into non-variadic
class template
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Keywords: rejects-valid
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dgregor at gcc dot gnu dot org


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



[Bug c++/35722] [C++0x] Variadic templates expansion into non-variadic class template

2008-03-27 Thread dgregor at gcc dot gnu dot org


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dgregor at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-03-27 17:31:52
   date||


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



[Bug c++/34022] C++0x: rvalue references and std::forward() broken with built-in types

2008-03-19 Thread dgregor at gcc dot gnu dot org


--- Comment #5 from dgregor at gcc dot gnu dot org  2008-03-19 13:12 ---
This is core issue 664:

  http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#664


-- 


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



[Bug c++/35315] [4.4 regression] ICE with attribute transparent_union

2008-03-01 Thread dgregor at gcc dot gnu dot org


--- Comment #5 from dgregor at gcc dot gnu dot org  2008-03-01 16:29 ---
Fixed on mainline and 4.3 branch.


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/35315] [4.4 regression] ICE with attribute transparent_union

2008-02-29 Thread dgregor at gcc dot gnu dot org


--- Comment #3 from dgregor at gcc dot gnu dot org  2008-02-29 21:42 ---
Subject: Bug 35315

Author: dgregor
Date: Fri Feb 29 21:41:38 2008
New Revision: 132779

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=132779
Log:
2008-02-29  Douglas Gregor  [EMAIL PROTECTED]

PR c++/35315
* tree-inline.c (build_duplicate_type): When we make a
duplicate type, make it unique in the canonical types system.

2008-02-29  Douglas Gregor  [EMAIL PROTECTED]

PR c++/35315
* g++.dg/ext/attrib32.C: Add another test case.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/ext/attrib32.C
trunk/gcc/tree-inline.c


-- 


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



[Bug c++/35315] [4.4 regression] ICE with attribute transparent_union

2008-02-29 Thread dgregor at gcc dot gnu dot org


--- Comment #4 from dgregor at gcc dot gnu dot org  2008-03-01 05:38 ---
Subject: Bug 35315

Author: dgregor
Date: Sat Mar  1 05:37:41 2008
New Revision: 132798

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=132798
Log:
2008-02-29  Douglas Gregor  [EMAIL PROTECTED]

PR c++/35315
* tree-inline.c (build_duplicate_type): When we make a
duplicate type, make it unique in the canonical types system.

2008-02-29  Douglas Gregor  [EMAIL PROTECTED]

PR c++/35315
* g++.dg/ext/attrib32.C: New.

Added:
branches/gcc-4_3-branch/gcc/testsuite/g++.dg/ext/attrib32.C
Modified:
branches/gcc-4_3-branch/gcc/ChangeLog
branches/gcc-4_3-branch/gcc/testsuite/ChangeLog
branches/gcc-4_3-branch/gcc/tree-inline.c


-- 


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



[Bug c++/35315] [4.4 regression] ICE with attribute transparent_union

2008-02-25 Thread dgregor at gcc dot gnu dot org


--- Comment #1 from dgregor at gcc dot gnu dot org  2008-02-26 07:16 ---
Patch here: http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01272.html


-- 


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



[Bug c++/35026] [4.3 regression] ICE with parameter pack in pointer type

2008-02-15 Thread dgregor at gcc dot gnu dot org


--- Comment #2 from dgregor at gcc dot gnu dot org  2008-02-15 17:33 ---
Subject: Bug 35026

Author: dgregor
Date: Fri Feb 15 17:33:02 2008
New Revision: 132348

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=132348
Log:
2008-02-15  Douglas Gregor  [EMAIL PROTECTED]

PR c++/35023
PR c++/35024
PR c++/35026
* pt.c (finish_member_template_decl): If the type in a TYPE_DECL
is error_mark_node, return an error early.
(find_parameter_packs_r): Pass the pointer set along to recursive
calls of cp_walk_subtrees; don't try to manage the pointer set
ourselves.
(uses_parameter_packs): Pass the pointer set to cp_walk_tree.
(make_pack_expansion): Ditto.
(check_for_bare_parameter_packs): Ditto. Also, don't bother taking
a second pass through the tree with find_parameter_packs_r; that
second pass no longer does anything.
(push_template_decl_real): If we have an erroneous declaration,
set its type to error_mark_node before returning an error.

2008-02-15  Douglas Gregor  [EMAIL PROTECTED]

PR c++/35023
PR c++/35024
PR c++/35026
* g++.dg/cpp0x/vt-35026.C: New.
* g++.dg/cpp0x/vt-35023.C: New.
* g++.dg/cpp0x/vt-34055.C: Tweak expected error messages.
* g++.dg/cpp0x/vt-35024.C: New.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/vt-35023.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-35024.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-35026.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/pt.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34055.C


-- 


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



[Bug c++/35023] [4.3 regression] ICE with parameter pack in variable declaration

2008-02-15 Thread dgregor at gcc dot gnu dot org


--- Comment #2 from dgregor at gcc dot gnu dot org  2008-02-15 17:33 ---
Subject: Bug 35023

Author: dgregor
Date: Fri Feb 15 17:33:02 2008
New Revision: 132348

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=132348
Log:
2008-02-15  Douglas Gregor  [EMAIL PROTECTED]

PR c++/35023
PR c++/35024
PR c++/35026
* pt.c (finish_member_template_decl): If the type in a TYPE_DECL
is error_mark_node, return an error early.
(find_parameter_packs_r): Pass the pointer set along to recursive
calls of cp_walk_subtrees; don't try to manage the pointer set
ourselves.
(uses_parameter_packs): Pass the pointer set to cp_walk_tree.
(make_pack_expansion): Ditto.
(check_for_bare_parameter_packs): Ditto. Also, don't bother taking
a second pass through the tree with find_parameter_packs_r; that
second pass no longer does anything.
(push_template_decl_real): If we have an erroneous declaration,
set its type to error_mark_node before returning an error.

2008-02-15  Douglas Gregor  [EMAIL PROTECTED]

PR c++/35023
PR c++/35024
PR c++/35026
* g++.dg/cpp0x/vt-35026.C: New.
* g++.dg/cpp0x/vt-35023.C: New.
* g++.dg/cpp0x/vt-34055.C: Tweak expected error messages.
* g++.dg/cpp0x/vt-35024.C: New.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/vt-35023.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-35024.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-35026.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/pt.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34055.C


-- 


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



[Bug c++/35024] [4.3 regression] ICE with parameter pack in nested type

2008-02-15 Thread dgregor at gcc dot gnu dot org


--- Comment #2 from dgregor at gcc dot gnu dot org  2008-02-15 17:33 ---
Subject: Bug 35024

Author: dgregor
Date: Fri Feb 15 17:33:02 2008
New Revision: 132348

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=132348
Log:
2008-02-15  Douglas Gregor  [EMAIL PROTECTED]

PR c++/35023
PR c++/35024
PR c++/35026
* pt.c (finish_member_template_decl): If the type in a TYPE_DECL
is error_mark_node, return an error early.
(find_parameter_packs_r): Pass the pointer set along to recursive
calls of cp_walk_subtrees; don't try to manage the pointer set
ourselves.
(uses_parameter_packs): Pass the pointer set to cp_walk_tree.
(make_pack_expansion): Ditto.
(check_for_bare_parameter_packs): Ditto. Also, don't bother taking
a second pass through the tree with find_parameter_packs_r; that
second pass no longer does anything.
(push_template_decl_real): If we have an erroneous declaration,
set its type to error_mark_node before returning an error.

2008-02-15  Douglas Gregor  [EMAIL PROTECTED]

PR c++/35023
PR c++/35024
PR c++/35026
* g++.dg/cpp0x/vt-35026.C: New.
* g++.dg/cpp0x/vt-35023.C: New.
* g++.dg/cpp0x/vt-34055.C: Tweak expected error messages.
* g++.dg/cpp0x/vt-35024.C: New.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/vt-35023.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-35024.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-35026.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/pt.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34055.C


-- 


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



[Bug c++/35023] [4.3 regression] ICE with parameter pack in variable declaration

2008-02-15 Thread dgregor at gcc dot gnu dot org


--- Comment #3 from dgregor at gcc dot gnu dot org  2008-02-15 17:34 ---
Fixed on mainline


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/35024] [4.3 regression] ICE with parameter pack in nested type

2008-02-15 Thread dgregor at gcc dot gnu dot org


--- Comment #3 from dgregor at gcc dot gnu dot org  2008-02-15 17:35 ---
Fixed on mainline


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/35026] [4.3 regression] ICE with parameter pack in pointer type

2008-02-15 Thread dgregor at gcc dot gnu dot org


--- Comment #3 from dgregor at gcc dot gnu dot org  2008-02-15 17:35 ---
Fixed for 4.3


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/35153] Taking address of result of calling function returning rvalue reference should not compile.

2008-02-15 Thread dgregor at gcc dot gnu dot org


--- Comment #1 from dgregor at gcc dot gnu dot org  2008-02-15 19:55 ---
After discussing this with Howard Hinnant, we agree that it is a bug. I'll
handle it.


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dgregor at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-02-15 19:55:06
   date||


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



[Bug c++/35147] ICE trying to expand an argument pack with zero arguments

2008-02-14 Thread dgregor at gcc dot gnu dot org


--- Comment #1 from dgregor at gcc dot gnu dot org  2008-02-14 21:38 ---
This code is actually ill-formed. The problem is here:

  bind(h, forwardArgs...(args...))

For N arguments, the second argument expands to:

  bind(h, forwardArgs1, Args2, ..., ArgsN(args1, args2, ..., argsN))

However, that's ill-formed because forward() accepts one template argument and
one function argument. We should have given a better error message when we try
to instantiate it with 0 arguments (instead, we crash).

The intent of the example is for the second argument to expand into N
different arguments:

  bind(h, forwardArgs1(args1), forwardArgs2(args2), ...,
forwardArgsN(argsN)

That can be expressed like so:

  bind(h, forwardArgs(args)...)

With that change, and replacing h (a function) with c (the Callable
function object given to this function), this program runs.

Here is a simpler test case that produces the same compile-time failure without
including any C++0x headers:

templatetypename _Tp
  inline _Tp forward(_Tp __t) { return __t; }


void f(...);

templatetypename... Args
void g(Args... args)
{
  f(forwardArgs...(args...));
}

void h()
{
  g();
}


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dgregor at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Keywords||ice-on-invalid-code
   Last reconfirmed|-00-00 00:00:00 |2008-02-14 21:38:40
   date||


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



[Bug c++/35022] [4.3 regression] ICE with parameter pack in template constant parameter

2008-02-14 Thread dgregor at gcc dot gnu dot org


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dgregor at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2008-01-30 10:09:31 |2008-02-14 21:41:02
   date||


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



[Bug c++/35026] [4.3 regression] ICE with parameter pack in pointer type

2008-02-14 Thread dgregor at gcc dot gnu dot org


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dgregor at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2008-01-30 10:05:22 |2008-02-14 21:45:58
   date||


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



[Bug c++/35024] [4.3 regression] ICE with parameter pack in nested type

2008-02-14 Thread dgregor at gcc dot gnu dot org


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dgregor at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2008-01-30 10:08:22 |2008-02-14 21:43:43
   date||


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



[Bug c++/35025] [4.3 regression] ICE with invalid specialization of variadic template

2008-02-14 Thread dgregor at gcc dot gnu dot org


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dgregor at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2008-01-30 10:07:52 |2008-02-14 21:44:56
   date||


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



[Bug c++/35023] [4.3 regression] ICE with parameter pack in variable declaration

2008-02-14 Thread dgregor at gcc dot gnu dot org


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dgregor at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2008-01-30 10:09:07 |2008-02-14 21:42:20
   date||


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



[Bug c++/34050] [4.3 regression] ICE derived classes and variadic templates

2008-02-14 Thread dgregor at gcc dot gnu dot org


--- Comment #11 from dgregor at gcc dot gnu dot org  2008-02-15 03:10 
---
Subject: Bug 34050

Author: dgregor
Date: Fri Feb 15 03:09:18 2008
New Revision: 132331

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=132331
Log:
2008-02-14  Douglas Gregor  [EMAIL PROTECTED]

PR c++/34050
* pt.c (tsubst_initializer_list): Deal with the use of
VOID_TYPE_NODE to indicate value-initialization of the bases.


2008-02-14  Douglas Gregor  [EMAIL PROTECTED]

PR c++/34050
* g++.dg/cpp0x/vt-34050.C: New.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34050.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/pt.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/34050] [4.3 regression] ICE derived classes and variadic templates

2008-02-14 Thread dgregor at gcc dot gnu dot org


--- Comment #12 from dgregor at gcc dot gnu dot org  2008-02-15 03:10 
---
Thanks, Mark! Fixed on mainline.


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/35022] [4.3 regression] ICE with parameter pack in template constant parameter

2008-02-14 Thread dgregor at gcc dot gnu dot org


--- Comment #1 from dgregor at gcc dot gnu dot org  2008-02-15 03:35 ---
This test case actually exposes two (!) related issues, one of which is a
rejects-valid:

  templatetypename... T, templateT... class X void foo(X0);

and the other, which is an ice-on-valid-code:

  templatetypename... T, templateT...p class X void foo(X0);

The issue for both the original test case and this last test case is that
coerce_template_parameter_pack doesn't expect to get a pack expansion back from
tsubst_pack_expansion, but of course this happens in nested templates like this
template template parameter.

Note to myself: the parameter pack SIZEOF_EXPR handling doesn't deal with pack
expansions coming back from tsubst_pack_expansion, either. I can probably craft
a test case to illustrate this issue.


-- 


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



[Bug c++/35023] [4.3 regression] ICE with parameter pack in variable declaration

2008-02-14 Thread dgregor at gcc dot gnu dot org


--- Comment #1 from dgregor at gcc dot gnu dot org  2008-02-15 03:51 ---
Patch here: http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00529.html


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

URL||http://gcc.gnu.org/ml/gcc-
   ||patches/2008-
   ||02/msg00529.html


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



[Bug c++/35024] [4.3 regression] ICE with parameter pack in nested type

2008-02-14 Thread dgregor at gcc dot gnu dot org


--- Comment #1 from dgregor at gcc dot gnu dot org  2008-02-15 03:51 ---
Patch here: http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00529.html


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

URL||http://gcc.gnu.org/ml/gcc-
   ||patches/2008-
   ||02/msg00529.html


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



[Bug c++/35026] [4.3 regression] ICE with parameter pack in pointer type

2008-02-14 Thread dgregor at gcc dot gnu dot org


--- Comment #1 from dgregor at gcc dot gnu dot org  2008-02-15 03:52 ---
Patch here: http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00529.html

We could tweak this ice-on-invalid-code to create some ice-on-valid-code
failures. See the e-mail with the patch.


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

URL||http://gcc.gnu.org/ml/gcc-
   ||patches/2008-
   ||02/msg00529.html


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



[Bug c++/35113] [4.3 Regression] g++.dg/ext/vector13.C doesn't work

2008-02-11 Thread dgregor at gcc dot gnu dot org


--- Comment #7 from dgregor at gcc dot gnu dot org  2008-02-11 18:59 ---
Fixed on mainline


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/35113] [4.3 Regression] g++.dg/ext/vector13.C doesn't work

2008-02-11 Thread dgregor at gcc dot gnu dot org


--- Comment #6 from dgregor at gcc dot gnu dot org  2008-02-11 18:59 ---
Subject: Bug 35113

Author: dgregor
Date: Mon Feb 11 18:58:16 2008
New Revision: 132242

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=132242
Log:
2008-02-11  Douglas Gregor  [EMAIL PROTECTED]

   PR c++/35113
   * tree.c (cp_build_qualified_type_real): When building a
   cv-qualified array type, build it as a unique type with
   build_cplus_array_type_1 and then adopt the unqualified type's
   main variant.

Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/tree.c


-- 


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



[Bug bootstrap/35115] [4.3 Regression] ../../gcc-4.3-work/gcc/objcp/objcp-decl.c:98: error: implicit declaration of function 'comptypes'

2008-02-07 Thread dgregor at gcc dot gnu dot org


--- Comment #4 from dgregor at gcc dot gnu dot org  2008-02-07 19:06 ---
Fixed. 


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug bootstrap/35115] [4.3 Regression] ../../gcc-4.3-work/gcc/objcp/objcp-decl.c:98: error: implicit declaration of function 'comptypes'

2008-02-07 Thread dgregor at gcc dot gnu dot org


--- Comment #3 from dgregor at gcc dot gnu dot org  2008-02-07 19:04 ---
Subject: Bug 35115

Author: dgregor
Date: Thu Feb  7 19:03:40 2008
New Revision: 132173

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=132173
Log:
2008-02-06  Douglas Gregor  [EMAIL PROTECTED]

* g++.dg/ext/vector13.C: Fix for compilation under -pedantic.
2008-02-07  Andreas Tobler  [EMAIL PROTECTED]
Douglas Gregor  [EMAIL PROTECTED]

PR bootstrap/35115
* objcp-decl.c (objcp_comptypes): Call cp_comptypes, not comptypes.


Modified:
trunk/gcc/objcp/ChangeLog
trunk/gcc/objcp/objcp-decl.c


-- 


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



[Bug bootstrap/35115] [4.3 Regression] ../../gcc-4.3-work/gcc/objcp/objcp-decl.c:98: error: implicit declaration of function 'comptypes'

2008-02-07 Thread dgregor at gcc dot gnu dot org


--- Comment #2 from dgregor at gcc dot gnu dot org  2008-02-07 18:59 ---
This is fallout from my comptypes patch. 


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dgregor at gcc dot gnu dot
   |dot org |org
URL||http://gcc.gnu.org/ml/gcc-
   ||patches/2008-
   ||02/msg00195.html
 Status|NEW |ASSIGNED
   Last reconfirmed|2008-02-06 23:01:33 |2008-02-07 18:59:57
   date||


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



[Bug c++/35113] [4.3 Regression] g++.dg/ext/vector13.C doesn't work

2008-02-07 Thread dgregor at gcc dot gnu dot org


--- Comment #5 from dgregor at gcc dot gnu dot org  2008-02-07 18:56 ---
This is definitely a canonical-types bug. 


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dgregor at gcc dot gnu dot
   |dot org |org
URL||http://gcc.gnu.org/ml/gcc-
   ||patches/2008-
   ||02/msg00230.html
 Status|NEW |ASSIGNED
   Last reconfirmed|2008-02-07 15:13:39 |2008-02-07 18:56:38
   date||


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



[Bug c++/35096] [4.3 regression] ICE with vector attribute

2008-02-06 Thread dgregor at gcc dot gnu dot org


--- Comment #2 from dgregor at gcc dot gnu dot org  2008-02-06 15:18 ---
This is the comptypes issue dealt with in PR 35049. I've verified that the fix
for that issue handles this test case, too.

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


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||DUPLICATE


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



[Bug c++/35049] [4.3 Regression] g++.dg/conversion/simd3.C:12: error: invalid operands to binary + (have 'float __vector__' and 'int __vector__')

2008-02-06 Thread dgregor at gcc dot gnu dot org


--- Comment #9 from dgregor at gcc dot gnu dot org  2008-02-06 15:18 ---
*** Bug 35096 has been marked as a duplicate of this bug. ***


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||reichelt at gcc dot gnu dot
   ||org


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



[Bug c++/35096] [4.3 regression] ICE with vector attribute

2008-02-06 Thread dgregor at gcc dot gnu dot org


--- Comment #3 from dgregor at gcc dot gnu dot org  2008-02-06 18:49 ---
Subject: Bug 35096

Author: dgregor
Date: Wed Feb  6 18:49:03 2008
New Revision: 132152

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=132152
Log:
2008-02-06  Douglas Gregor  [EMAIL PROTECTED]

PR c++/35049
PR c++/35096
* typeck.c (structural_comptypes): Call cp_comptypes.
(comptypes): New; called from the C/C++ common bits to perform
strict checks.
(cp_comptypes): Renamed from comptypes, which is already used,
with a different signature, by the C++ front end.
(build_reinterpret_cast_1): Call cp_comptypes.
(ptr_reasonably_similar): Ditto.
* decl.c (decls_match): Ditto.
* cvt.c (convert_to_reference): Ditto.
* cp-tree.h (same_type_p): Ditto.
(same_or_base_type_p): Ditto.
(comptypes): Rename to cp_comptypes.
* pt.c (canonical_type_parameter): Call cp_comptypes.

2008-02-06  Douglas Gregor  [EMAIL PROTECTED]

PR c++/35049
PR c++/35096
* g++.dg/ext/vector13.C: New.

Added:
trunk/gcc/testsuite/g++.dg/ext/vector13.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/cvt.c
trunk/gcc/cp/decl.c
trunk/gcc/cp/pt.c
trunk/gcc/cp/typeck.c


-- 


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



[Bug c++/35049] [4.3 Regression] g++.dg/conversion/simd3.C:12: error: invalid operands to binary + (have 'float __vector__' and 'int __vector__')

2008-02-06 Thread dgregor at gcc dot gnu dot org


--- Comment #11 from dgregor at gcc dot gnu dot org  2008-02-06 18:49 
---
Subject: Bug 35049

Author: dgregor
Date: Wed Feb  6 18:49:03 2008
New Revision: 132152

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=132152
Log:
2008-02-06  Douglas Gregor  [EMAIL PROTECTED]

PR c++/35049
PR c++/35096
* typeck.c (structural_comptypes): Call cp_comptypes.
(comptypes): New; called from the C/C++ common bits to perform
strict checks.
(cp_comptypes): Renamed from comptypes, which is already used,
with a different signature, by the C++ front end.
(build_reinterpret_cast_1): Call cp_comptypes.
(ptr_reasonably_similar): Ditto.
* decl.c (decls_match): Ditto.
* cvt.c (convert_to_reference): Ditto.
* cp-tree.h (same_type_p): Ditto.
(same_or_base_type_p): Ditto.
(comptypes): Rename to cp_comptypes.
* pt.c (canonical_type_parameter): Call cp_comptypes.

2008-02-06  Douglas Gregor  [EMAIL PROTECTED]

PR c++/35049
PR c++/35096
* g++.dg/ext/vector13.C: New.

Added:
trunk/gcc/testsuite/g++.dg/ext/vector13.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/cvt.c
trunk/gcc/cp/decl.c
trunk/gcc/cp/pt.c
trunk/gcc/cp/typeck.c


-- 


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



[Bug c++/35049] [4.3 Regression] g++.dg/conversion/simd3.C:12: error: invalid operands to binary + (have 'float __vector__' and 'int __vector__')

2008-02-06 Thread dgregor at gcc dot gnu dot org


--- Comment #12 from dgregor at gcc dot gnu dot org  2008-02-06 18:50 
---
Fixed in mainline


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/35074] [4.3 regression] ICE with attribute aligned for template classes

2008-02-05 Thread dgregor at gcc dot gnu dot org


--- Comment #5 from dgregor at gcc dot gnu dot org  2008-02-05 13:30 ---
Subject: Bug 35074

Author: dgregor
Date: Tue Feb  5 13:29:43 2008
New Revision: 132120

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=132120
Log:
2008-02-05  Douglas Gregor  [EMAIL PROTECTED]

PR c++/35074
* decl2.c (save_template_attributes): When we're modifying the
TYPE_MAIN_VARIANT to add new attributes, be sure to also modify
all of the other variants to add those same attributes. Otherwise,
the main variant will be inconsistent with those other variants.

2008-02-05  Douglas Gregor  [EMAIL PROTECTED]

PR c++/35074
* g++.dg/ext/attrib30.C: New.

Added:
trunk/gcc/testsuite/g++.dg/ext/attrib30.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/decl2.c


-- 


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



[Bug c++/35074] [4.3 regression] ICE with attribute aligned for template classes

2008-02-05 Thread dgregor at gcc dot gnu dot org


--- Comment #6 from dgregor at gcc dot gnu dot org  2008-02-05 13:30 ---
Fixed on mainline


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/33620] [4.3 regression] internal compiler error: canonical types differ for identical types const QListQStringList and const QListQStringList

2008-02-05 Thread dgregor at gcc dot gnu dot org


--- Comment #11 from dgregor at gcc dot gnu dot org  2008-02-05 13:34 
---
This latest problem is identical to PR c++/35074, which has now been fixed. The
new test case in this bug is passing.


-- 


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



[Bug c++/35049] [4.3 Regression] g++.dg/conversion/simd3.C:12: error: invalid operands to binary + (have 'float __vector__' and 'int __vector__')

2008-02-05 Thread dgregor at gcc dot gnu dot org


--- Comment #7 from dgregor at gcc dot gnu dot org  2008-02-05 14:35 ---
This is a canonical types issue; I'm on it.


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dgregor at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2008-02-01 11:33:25 |2008-02-05 14:35:12
   date||


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



[Bug c++/35049] [4.3 Regression] g++.dg/conversion/simd3.C:12: error: invalid operands to binary + (have 'float __vector__' and 'int __vector__')

2008-02-05 Thread dgregor at gcc dot gnu dot org


--- Comment #8 from dgregor at gcc dot gnu dot org  2008-02-05 18:06 ---
Well, this was a fun one. Patch here:
http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00146.html


-- 


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



[Bug c++/35074] [4.3 regression] ICE with attribute aligned for template classes

2008-02-04 Thread dgregor at gcc dot gnu dot org


--- Comment #4 from dgregor at gcc dot gnu dot org  2008-02-04 23:31 ---
Looking into this a little bit, the new save_template_attributes is modifying
the type node directly (adding new attributes), but that type node can then get
out of sync with other type nodes if it was the TYPE_MAIN_VARIANT (as it is for
this case). So, we need to do the same thing that decl_attributes does to
update all of the other variants with the new attributes. Patch in progress.


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||dgregor at gcc dot gnu dot
   ||org
 AssignedTo|unassigned at gcc dot gnu   |dgregor at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2008-02-04 13:42:26 |2008-02-04 23:31:41
   date||


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



[Bug c++/34936] ICE with double and attribute may_alias

2008-01-31 Thread dgregor at gcc dot gnu dot org


--- Comment #5 from dgregor at gcc dot gnu dot org  2008-01-31 20:07 ---
Subject: Bug 34936

Author: dgregor
Date: Thu Jan 31 20:06:33 2008
New Revision: 131984

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=131984
Log:
2008-01-31  Douglas Gregor  [EMAIL PROTECTED]
   Jakub Jelinek  [EMAIL PROTECTED]

   PR c++/34935
   PR c++/34936
   * typeck.c (structural_comptypes): Handle comparisons of
   VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, FIXED_POINT_TYPE, and
   REAL_TYPE nodes.
   * mangle.c (write_builtin_type): Map down to the canonical type,
   which will be one of the predefined type nodes.

2008-01-31  Douglas Gregor  [EMAIL PROTECTED]
   Jakub Jelinek  [EMAIL PROTECTED]

   PR c++/34935
   PR c++/34936
   * g++.dg/ext/alias-canon.C: New.
   * g++.dg/ext/alias-mangle.C: New.


Added:
trunk/gcc/testsuite/g++.dg/ext/alias-canon.C
trunk/gcc/testsuite/g++.dg/ext/alias-mangle.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/mangle.c
trunk/gcc/cp/typeck.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/34935] [4.3 regression] ICE with attribute may_alias

2008-01-31 Thread dgregor at gcc dot gnu dot org


--- Comment #4 from dgregor at gcc dot gnu dot org  2008-01-31 20:07 ---
Subject: Bug 34935

Author: dgregor
Date: Thu Jan 31 20:06:33 2008
New Revision: 131984

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=131984
Log:
2008-01-31  Douglas Gregor  [EMAIL PROTECTED]
   Jakub Jelinek  [EMAIL PROTECTED]

   PR c++/34935
   PR c++/34936
   * typeck.c (structural_comptypes): Handle comparisons of
   VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, FIXED_POINT_TYPE, and
   REAL_TYPE nodes.
   * mangle.c (write_builtin_type): Map down to the canonical type,
   which will be one of the predefined type nodes.

2008-01-31  Douglas Gregor  [EMAIL PROTECTED]
   Jakub Jelinek  [EMAIL PROTECTED]

   PR c++/34935
   PR c++/34936
   * g++.dg/ext/alias-canon.C: New.
   * g++.dg/ext/alias-mangle.C: New.


Added:
trunk/gcc/testsuite/g++.dg/ext/alias-canon.C
trunk/gcc/testsuite/g++.dg/ext/alias-mangle.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/mangle.c
trunk/gcc/cp/typeck.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/34935] [4.3 regression] ICE with attribute may_alias

2008-01-31 Thread dgregor at gcc dot gnu dot org


--- Comment #5 from dgregor at gcc dot gnu dot org  2008-01-31 20:07 ---
Fixed on mainline


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/34936] ICE with double and attribute may_alias

2008-01-31 Thread dgregor at gcc dot gnu dot org


--- Comment #6 from dgregor at gcc dot gnu dot org  2008-01-31 20:08 ---
Fixed on mainline


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/34919] [4.3 Regression] ICE with invalid use of parameter pack

2008-01-29 Thread dgregor at gcc dot gnu dot org


--- Comment #5 from dgregor at gcc dot gnu dot org  2008-01-29 14:26 ---
Fixed on mainline


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/34755] [4.3 regression] ICE with invalid argument in variadic template function

2008-01-29 Thread dgregor at gcc dot gnu dot org


--- Comment #3 from dgregor at gcc dot gnu dot org  2008-01-29 14:26 ---
Fixed on mainline


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/34753] [4.3 regression] ICE with invalid template parameter in variadic template

2008-01-29 Thread dgregor at gcc dot gnu dot org


--- Comment #4 from dgregor at gcc dot gnu dot org  2008-01-29 14:25 ---
Fixed on mainline


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/34606] [4.3 regression] ICE with invalid specialization of variadic template

2008-01-29 Thread dgregor at gcc dot gnu dot org


--- Comment #6 from dgregor at gcc dot gnu dot org  2008-01-29 14:25 ---
Fixed on mainline


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/34055] [4.3 regression] ICE with invalid specialization of variadic template

2008-01-29 Thread dgregor at gcc dot gnu dot org


--- Comment #9 from dgregor at gcc dot gnu dot org  2008-01-29 14:24 ---
Fixed in mainline


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/34219] gcc doesn't accept const members of variadic templates as const (regression)

2008-01-29 Thread dgregor at gcc dot gnu dot org


--- Comment #7 from dgregor at gcc dot gnu dot org  2008-01-29 14:22 ---
Actually, I don't know whether maxT, Params... is valid or not. My
inclination is that it is invalid, because when Params is empty, it becomes an
invalid specialization maxT. (This happens, for example, if we try to compute
maxint, 17::value. However, it's not clear to me whether the wording in the
C++0x working draft supports that view or not. We say this about function
parameter pack arguments not matching to normal function parameters in partial
ordering, but we don't talk about this case at all.

I am going to submit an issue to the C++ Core Working Group to get this
clarified. Until then, I'm going to suspend this bug: then we'll either close
it (if the committee deems this code ill-formed) or re-open it to be fixed in
GCC 4.4.


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|SUSPENDED


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



[Bug c++/34753] [4.3 regression] ICE with invalid template parameter in variadic template

2008-01-29 Thread dgregor at gcc dot gnu dot org


--- Comment #3 from dgregor at gcc dot gnu dot org  2008-01-29 14:01 ---
Subject: Bug 34753

Author: dgregor
Date: Tue Jan 29 13:59:59 2008
New Revision: 131938

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=131938
Log:
2008-01-29  Douglas Gregor  [EMAIL PROTECTED]

PR c++/34055
PR c++/34103
PR c++/34219
PR c++/34606
PR c++/34753
PR c++/34754
PR c++/34755
PR c++/34919
PR c++/34961
* c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
qualifiers for an ERROR_MARK_NODE or a NULL_TREE.


2008-01-29  Douglas Gregor  [EMAIL PROTECTED]

PR c++/34055
PR c++/34103
PR c++/34219
PR c++/34606
PR c++/34753
PR c++/34754
PR c++/34755
PR c++/34919
PR c++/34961
* typeck.c (check_return_expr): Tweak call to
check_for_bare_parameter_packs.
* class.c (add_method): Be careful with error_mark_nodes.
* cp-tree.h (check_for_bare_parameter_packs): Remove * from
signature.
* pt.c (struct find_parameter_pack_data): Remove
SET_PACKS_TO_ERROR.
(find_parameter_packs_r): Don't use SET_PACKS_TO_ERROR.
(uses_parameter_packs): Don't set SET_PACKS_TO_ERROR.
(make_pack_expansion): Ditto.
(check_for_bare_parameter_packs): Parameter is now a tree, not a
tree*.
(process_template_parm): Tweak call to
check_for_bare_parameter_packs.  
(push_template_decl_real): Tweak calls to
check_for_bare_parameter_packs. If bare parameter packs are found
in the list of exceptions, clear out that list after giving an
error.
* semantics.c (finish_cond): Tweak call to
check_for_bare_parameter_packs.
(finish_expr_stmt): Ditto.
(finish_for_expr): Ditto.
(finish_switch_cond): Ditto.
(finish_mem_initializers): Ditto.
(finish_member_declaration): Ditto.
(finish_static_assert): Check for bare parameter packs in the
condition.
* decl2.c (cplus_decl_attributes): Check for bare parameter packs in
the
attributes of a declaration.
* parser.c (cp_parser_using_declaration): Tweak call to
check_for_bare_parameter_packs.
(cp_parser_base_clause): Ditto.


2008-01-29  Douglas Gregor  [EMAIL PROTECTED]

PR c++/34055
PR c++/34103
PR c++/34219
PR c++/34606
PR c++/34753
PR c++/34754
PR c++/34755
PR c++/34919
PR c++/34961
* g++.dg/cpp0x/vt-34219-2.C: New.
* g++.dg/cpp0x/pr32126.C: Tweak expected error messages.
* g++.dg/cpp0x/vt-34961.C: New.
* g++.dg/cpp0x/vt-34055.C: Tweak error messages; add new test
cases from the re-opened PR.
* g++.dg/cpp0x/vt-34753.C: New.
* g++.dg/cpp0x/vt-34919.C: New.
* g++.dg/cpp0x/vt-34754.C: New.
* g++.dg/cpp0x/vt-34606.C: New.
* g++.dg/cpp0x/vt-34219.C: New.
* g++.dg/cpp0x/pr32125.C: Tweak expected error messages.
* g++.dg/cpp0x/vt-34755.C: New.
* g++.dg/cpp0x/pr31438.C: Ditto.
* g++.dg/cpp0x/variadic81.C: Ditto.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219-2.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34606.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34753.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34754.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34755.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34919.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34961.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/c-pretty-print.c
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/class.c
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/decl.c
trunk/gcc/cp/decl2.c
trunk/gcc/cp/parser.c
trunk/gcc/cp/pt.c
trunk/gcc/cp/semantics.c
trunk/gcc/cp/typeck.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/cpp0x/pr31438.C
trunk/gcc/testsuite/g++.dg/cpp0x/pr32125.C
trunk/gcc/testsuite/g++.dg/cpp0x/pr32126.C
trunk/gcc/testsuite/g++.dg/cpp0x/variadic81.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34055.C


-- 


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



[Bug c++/34055] [4.3 regression] ICE with invalid specialization of variadic template

2008-01-29 Thread dgregor at gcc dot gnu dot org


--- Comment #8 from dgregor at gcc dot gnu dot org  2008-01-29 14:01 ---
Subject: Bug 34055

Author: dgregor
Date: Tue Jan 29 13:59:59 2008
New Revision: 131938

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=131938
Log:
2008-01-29  Douglas Gregor  [EMAIL PROTECTED]

PR c++/34055
PR c++/34103
PR c++/34219
PR c++/34606
PR c++/34753
PR c++/34754
PR c++/34755
PR c++/34919
PR c++/34961
* c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
qualifiers for an ERROR_MARK_NODE or a NULL_TREE.


2008-01-29  Douglas Gregor  [EMAIL PROTECTED]

PR c++/34055
PR c++/34103
PR c++/34219
PR c++/34606
PR c++/34753
PR c++/34754
PR c++/34755
PR c++/34919
PR c++/34961
* typeck.c (check_return_expr): Tweak call to
check_for_bare_parameter_packs.
* class.c (add_method): Be careful with error_mark_nodes.
* cp-tree.h (check_for_bare_parameter_packs): Remove * from
signature.
* pt.c (struct find_parameter_pack_data): Remove
SET_PACKS_TO_ERROR.
(find_parameter_packs_r): Don't use SET_PACKS_TO_ERROR.
(uses_parameter_packs): Don't set SET_PACKS_TO_ERROR.
(make_pack_expansion): Ditto.
(check_for_bare_parameter_packs): Parameter is now a tree, not a
tree*.
(process_template_parm): Tweak call to
check_for_bare_parameter_packs.  
(push_template_decl_real): Tweak calls to
check_for_bare_parameter_packs. If bare parameter packs are found
in the list of exceptions, clear out that list after giving an
error.
* semantics.c (finish_cond): Tweak call to
check_for_bare_parameter_packs.
(finish_expr_stmt): Ditto.
(finish_for_expr): Ditto.
(finish_switch_cond): Ditto.
(finish_mem_initializers): Ditto.
(finish_member_declaration): Ditto.
(finish_static_assert): Check for bare parameter packs in the
condition.
* decl2.c (cplus_decl_attributes): Check for bare parameter packs in
the
attributes of a declaration.
* parser.c (cp_parser_using_declaration): Tweak call to
check_for_bare_parameter_packs.
(cp_parser_base_clause): Ditto.


2008-01-29  Douglas Gregor  [EMAIL PROTECTED]

PR c++/34055
PR c++/34103
PR c++/34219
PR c++/34606
PR c++/34753
PR c++/34754
PR c++/34755
PR c++/34919
PR c++/34961
* g++.dg/cpp0x/vt-34219-2.C: New.
* g++.dg/cpp0x/pr32126.C: Tweak expected error messages.
* g++.dg/cpp0x/vt-34961.C: New.
* g++.dg/cpp0x/vt-34055.C: Tweak error messages; add new test
cases from the re-opened PR.
* g++.dg/cpp0x/vt-34753.C: New.
* g++.dg/cpp0x/vt-34919.C: New.
* g++.dg/cpp0x/vt-34754.C: New.
* g++.dg/cpp0x/vt-34606.C: New.
* g++.dg/cpp0x/vt-34219.C: New.
* g++.dg/cpp0x/pr32125.C: Tweak expected error messages.
* g++.dg/cpp0x/vt-34755.C: New.
* g++.dg/cpp0x/pr31438.C: Ditto.
* g++.dg/cpp0x/variadic81.C: Ditto.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219-2.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34606.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34753.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34754.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34755.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34919.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34961.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/c-pretty-print.c
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/class.c
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/decl.c
trunk/gcc/cp/decl2.c
trunk/gcc/cp/parser.c
trunk/gcc/cp/pt.c
trunk/gcc/cp/semantics.c
trunk/gcc/cp/typeck.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/cpp0x/pr31438.C
trunk/gcc/testsuite/g++.dg/cpp0x/pr32125.C
trunk/gcc/testsuite/g++.dg/cpp0x/pr32126.C
trunk/gcc/testsuite/g++.dg/cpp0x/variadic81.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34055.C


-- 


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



[Bug c++/34919] [4.3 Regression] ICE with invalid use of parameter pack

2008-01-29 Thread dgregor at gcc dot gnu dot org


--- Comment #4 from dgregor at gcc dot gnu dot org  2008-01-29 14:01 ---
Subject: Bug 34919

Author: dgregor
Date: Tue Jan 29 13:59:59 2008
New Revision: 131938

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=131938
Log:
2008-01-29  Douglas Gregor  [EMAIL PROTECTED]

PR c++/34055
PR c++/34103
PR c++/34219
PR c++/34606
PR c++/34753
PR c++/34754
PR c++/34755
PR c++/34919
PR c++/34961
* c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
qualifiers for an ERROR_MARK_NODE or a NULL_TREE.


2008-01-29  Douglas Gregor  [EMAIL PROTECTED]

PR c++/34055
PR c++/34103
PR c++/34219
PR c++/34606
PR c++/34753
PR c++/34754
PR c++/34755
PR c++/34919
PR c++/34961
* typeck.c (check_return_expr): Tweak call to
check_for_bare_parameter_packs.
* class.c (add_method): Be careful with error_mark_nodes.
* cp-tree.h (check_for_bare_parameter_packs): Remove * from
signature.
* pt.c (struct find_parameter_pack_data): Remove
SET_PACKS_TO_ERROR.
(find_parameter_packs_r): Don't use SET_PACKS_TO_ERROR.
(uses_parameter_packs): Don't set SET_PACKS_TO_ERROR.
(make_pack_expansion): Ditto.
(check_for_bare_parameter_packs): Parameter is now a tree, not a
tree*.
(process_template_parm): Tweak call to
check_for_bare_parameter_packs.  
(push_template_decl_real): Tweak calls to
check_for_bare_parameter_packs. If bare parameter packs are found
in the list of exceptions, clear out that list after giving an
error.
* semantics.c (finish_cond): Tweak call to
check_for_bare_parameter_packs.
(finish_expr_stmt): Ditto.
(finish_for_expr): Ditto.
(finish_switch_cond): Ditto.
(finish_mem_initializers): Ditto.
(finish_member_declaration): Ditto.
(finish_static_assert): Check for bare parameter packs in the
condition.
* decl2.c (cplus_decl_attributes): Check for bare parameter packs in
the
attributes of a declaration.
* parser.c (cp_parser_using_declaration): Tweak call to
check_for_bare_parameter_packs.
(cp_parser_base_clause): Ditto.


2008-01-29  Douglas Gregor  [EMAIL PROTECTED]

PR c++/34055
PR c++/34103
PR c++/34219
PR c++/34606
PR c++/34753
PR c++/34754
PR c++/34755
PR c++/34919
PR c++/34961
* g++.dg/cpp0x/vt-34219-2.C: New.
* g++.dg/cpp0x/pr32126.C: Tweak expected error messages.
* g++.dg/cpp0x/vt-34961.C: New.
* g++.dg/cpp0x/vt-34055.C: Tweak error messages; add new test
cases from the re-opened PR.
* g++.dg/cpp0x/vt-34753.C: New.
* g++.dg/cpp0x/vt-34919.C: New.
* g++.dg/cpp0x/vt-34754.C: New.
* g++.dg/cpp0x/vt-34606.C: New.
* g++.dg/cpp0x/vt-34219.C: New.
* g++.dg/cpp0x/pr32125.C: Tweak expected error messages.
* g++.dg/cpp0x/vt-34755.C: New.
* g++.dg/cpp0x/pr31438.C: Ditto.
* g++.dg/cpp0x/variadic81.C: Ditto.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219-2.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34606.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34753.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34754.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34755.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34919.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34961.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/c-pretty-print.c
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/class.c
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/decl.c
trunk/gcc/cp/decl2.c
trunk/gcc/cp/parser.c
trunk/gcc/cp/pt.c
trunk/gcc/cp/semantics.c
trunk/gcc/cp/typeck.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/cpp0x/pr31438.C
trunk/gcc/testsuite/g++.dg/cpp0x/pr32125.C
trunk/gcc/testsuite/g++.dg/cpp0x/pr32126.C
trunk/gcc/testsuite/g++.dg/cpp0x/variadic81.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34055.C


-- 


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



[Bug c++/34755] [4.3 regression] ICE with invalid argument in variadic template function

2008-01-29 Thread dgregor at gcc dot gnu dot org


--- Comment #2 from dgregor at gcc dot gnu dot org  2008-01-29 14:01 ---
Subject: Bug 34755

Author: dgregor
Date: Tue Jan 29 13:59:59 2008
New Revision: 131938

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=131938
Log:
2008-01-29  Douglas Gregor  [EMAIL PROTECTED]

PR c++/34055
PR c++/34103
PR c++/34219
PR c++/34606
PR c++/34753
PR c++/34754
PR c++/34755
PR c++/34919
PR c++/34961
* c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
qualifiers for an ERROR_MARK_NODE or a NULL_TREE.


2008-01-29  Douglas Gregor  [EMAIL PROTECTED]

PR c++/34055
PR c++/34103
PR c++/34219
PR c++/34606
PR c++/34753
PR c++/34754
PR c++/34755
PR c++/34919
PR c++/34961
* typeck.c (check_return_expr): Tweak call to
check_for_bare_parameter_packs.
* class.c (add_method): Be careful with error_mark_nodes.
* cp-tree.h (check_for_bare_parameter_packs): Remove * from
signature.
* pt.c (struct find_parameter_pack_data): Remove
SET_PACKS_TO_ERROR.
(find_parameter_packs_r): Don't use SET_PACKS_TO_ERROR.
(uses_parameter_packs): Don't set SET_PACKS_TO_ERROR.
(make_pack_expansion): Ditto.
(check_for_bare_parameter_packs): Parameter is now a tree, not a
tree*.
(process_template_parm): Tweak call to
check_for_bare_parameter_packs.  
(push_template_decl_real): Tweak calls to
check_for_bare_parameter_packs. If bare parameter packs are found
in the list of exceptions, clear out that list after giving an
error.
* semantics.c (finish_cond): Tweak call to
check_for_bare_parameter_packs.
(finish_expr_stmt): Ditto.
(finish_for_expr): Ditto.
(finish_switch_cond): Ditto.
(finish_mem_initializers): Ditto.
(finish_member_declaration): Ditto.
(finish_static_assert): Check for bare parameter packs in the
condition.
* decl2.c (cplus_decl_attributes): Check for bare parameter packs in
the
attributes of a declaration.
* parser.c (cp_parser_using_declaration): Tweak call to
check_for_bare_parameter_packs.
(cp_parser_base_clause): Ditto.


2008-01-29  Douglas Gregor  [EMAIL PROTECTED]

PR c++/34055
PR c++/34103
PR c++/34219
PR c++/34606
PR c++/34753
PR c++/34754
PR c++/34755
PR c++/34919
PR c++/34961
* g++.dg/cpp0x/vt-34219-2.C: New.
* g++.dg/cpp0x/pr32126.C: Tweak expected error messages.
* g++.dg/cpp0x/vt-34961.C: New.
* g++.dg/cpp0x/vt-34055.C: Tweak error messages; add new test
cases from the re-opened PR.
* g++.dg/cpp0x/vt-34753.C: New.
* g++.dg/cpp0x/vt-34919.C: New.
* g++.dg/cpp0x/vt-34754.C: New.
* g++.dg/cpp0x/vt-34606.C: New.
* g++.dg/cpp0x/vt-34219.C: New.
* g++.dg/cpp0x/pr32125.C: Tweak expected error messages.
* g++.dg/cpp0x/vt-34755.C: New.
* g++.dg/cpp0x/pr31438.C: Ditto.
* g++.dg/cpp0x/variadic81.C: Ditto.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219-2.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34606.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34753.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34754.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34755.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34919.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34961.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/c-pretty-print.c
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/class.c
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/decl.c
trunk/gcc/cp/decl2.c
trunk/gcc/cp/parser.c
trunk/gcc/cp/pt.c
trunk/gcc/cp/semantics.c
trunk/gcc/cp/typeck.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/cpp0x/pr31438.C
trunk/gcc/testsuite/g++.dg/cpp0x/pr32125.C
trunk/gcc/testsuite/g++.dg/cpp0x/pr32126.C
trunk/gcc/testsuite/g++.dg/cpp0x/variadic81.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34055.C


-- 


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



[Bug c++/34961] [4.3 Regression] ICE with invalid use of parameter pack in attribute

2008-01-29 Thread dgregor at gcc dot gnu dot org


--- Comment #2 from dgregor at gcc dot gnu dot org  2008-01-29 14:01 ---
Subject: Bug 34961

Author: dgregor
Date: Tue Jan 29 13:59:59 2008
New Revision: 131938

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=131938
Log:
2008-01-29  Douglas Gregor  [EMAIL PROTECTED]

PR c++/34055
PR c++/34103
PR c++/34219
PR c++/34606
PR c++/34753
PR c++/34754
PR c++/34755
PR c++/34919
PR c++/34961
* c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
qualifiers for an ERROR_MARK_NODE or a NULL_TREE.


2008-01-29  Douglas Gregor  [EMAIL PROTECTED]

PR c++/34055
PR c++/34103
PR c++/34219
PR c++/34606
PR c++/34753
PR c++/34754
PR c++/34755
PR c++/34919
PR c++/34961
* typeck.c (check_return_expr): Tweak call to
check_for_bare_parameter_packs.
* class.c (add_method): Be careful with error_mark_nodes.
* cp-tree.h (check_for_bare_parameter_packs): Remove * from
signature.
* pt.c (struct find_parameter_pack_data): Remove
SET_PACKS_TO_ERROR.
(find_parameter_packs_r): Don't use SET_PACKS_TO_ERROR.
(uses_parameter_packs): Don't set SET_PACKS_TO_ERROR.
(make_pack_expansion): Ditto.
(check_for_bare_parameter_packs): Parameter is now a tree, not a
tree*.
(process_template_parm): Tweak call to
check_for_bare_parameter_packs.  
(push_template_decl_real): Tweak calls to
check_for_bare_parameter_packs. If bare parameter packs are found
in the list of exceptions, clear out that list after giving an
error.
* semantics.c (finish_cond): Tweak call to
check_for_bare_parameter_packs.
(finish_expr_stmt): Ditto.
(finish_for_expr): Ditto.
(finish_switch_cond): Ditto.
(finish_mem_initializers): Ditto.
(finish_member_declaration): Ditto.
(finish_static_assert): Check for bare parameter packs in the
condition.
* decl2.c (cplus_decl_attributes): Check for bare parameter packs in
the
attributes of a declaration.
* parser.c (cp_parser_using_declaration): Tweak call to
check_for_bare_parameter_packs.
(cp_parser_base_clause): Ditto.


2008-01-29  Douglas Gregor  [EMAIL PROTECTED]

PR c++/34055
PR c++/34103
PR c++/34219
PR c++/34606
PR c++/34753
PR c++/34754
PR c++/34755
PR c++/34919
PR c++/34961
* g++.dg/cpp0x/vt-34219-2.C: New.
* g++.dg/cpp0x/pr32126.C: Tweak expected error messages.
* g++.dg/cpp0x/vt-34961.C: New.
* g++.dg/cpp0x/vt-34055.C: Tweak error messages; add new test
cases from the re-opened PR.
* g++.dg/cpp0x/vt-34753.C: New.
* g++.dg/cpp0x/vt-34919.C: New.
* g++.dg/cpp0x/vt-34754.C: New.
* g++.dg/cpp0x/vt-34606.C: New.
* g++.dg/cpp0x/vt-34219.C: New.
* g++.dg/cpp0x/pr32125.C: Tweak expected error messages.
* g++.dg/cpp0x/vt-34755.C: New.
* g++.dg/cpp0x/pr31438.C: Ditto.
* g++.dg/cpp0x/variadic81.C: Ditto.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219-2.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34606.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34753.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34754.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34755.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34919.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34961.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/c-pretty-print.c
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/class.c
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/decl.c
trunk/gcc/cp/decl2.c
trunk/gcc/cp/parser.c
trunk/gcc/cp/pt.c
trunk/gcc/cp/semantics.c
trunk/gcc/cp/typeck.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/cpp0x/pr31438.C
trunk/gcc/testsuite/g++.dg/cpp0x/pr32125.C
trunk/gcc/testsuite/g++.dg/cpp0x/pr32126.C
trunk/gcc/testsuite/g++.dg/cpp0x/variadic81.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34055.C


-- 


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



[Bug c++/34219] gcc doesn't accept const members of variadic templates as const (regression)

2008-01-29 Thread dgregor at gcc dot gnu dot org


--- Comment #8 from dgregor at gcc dot gnu dot org  2008-01-29 14:24 ---
Fixed on mainline


-- 


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



[Bug c++/34754] [4.3 regression] ICE with invalid function arguments in variadic template

2008-01-29 Thread dgregor at gcc dot gnu dot org


--- Comment #3 from dgregor at gcc dot gnu dot org  2008-01-29 14:25 ---
Fixed on mainline


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/34103] [4.3 regression] ICE with invalid variadic template functions

2008-01-29 Thread dgregor at gcc dot gnu dot org


--- Comment #17 from dgregor at gcc dot gnu dot org  2008-01-29 14:24 
---
Fixed on mainline


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/34606] [4.3 regression] ICE with invalid specialization of variadic template

2008-01-29 Thread dgregor at gcc dot gnu dot org


--- Comment #5 from dgregor at gcc dot gnu dot org  2008-01-29 14:01 ---
Subject: Bug 34606

Author: dgregor
Date: Tue Jan 29 13:59:59 2008
New Revision: 131938

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=131938
Log:
2008-01-29  Douglas Gregor  [EMAIL PROTECTED]

PR c++/34055
PR c++/34103
PR c++/34219
PR c++/34606
PR c++/34753
PR c++/34754
PR c++/34755
PR c++/34919
PR c++/34961
* c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
qualifiers for an ERROR_MARK_NODE or a NULL_TREE.


2008-01-29  Douglas Gregor  [EMAIL PROTECTED]

PR c++/34055
PR c++/34103
PR c++/34219
PR c++/34606
PR c++/34753
PR c++/34754
PR c++/34755
PR c++/34919
PR c++/34961
* typeck.c (check_return_expr): Tweak call to
check_for_bare_parameter_packs.
* class.c (add_method): Be careful with error_mark_nodes.
* cp-tree.h (check_for_bare_parameter_packs): Remove * from
signature.
* pt.c (struct find_parameter_pack_data): Remove
SET_PACKS_TO_ERROR.
(find_parameter_packs_r): Don't use SET_PACKS_TO_ERROR.
(uses_parameter_packs): Don't set SET_PACKS_TO_ERROR.
(make_pack_expansion): Ditto.
(check_for_bare_parameter_packs): Parameter is now a tree, not a
tree*.
(process_template_parm): Tweak call to
check_for_bare_parameter_packs.  
(push_template_decl_real): Tweak calls to
check_for_bare_parameter_packs. If bare parameter packs are found
in the list of exceptions, clear out that list after giving an
error.
* semantics.c (finish_cond): Tweak call to
check_for_bare_parameter_packs.
(finish_expr_stmt): Ditto.
(finish_for_expr): Ditto.
(finish_switch_cond): Ditto.
(finish_mem_initializers): Ditto.
(finish_member_declaration): Ditto.
(finish_static_assert): Check for bare parameter packs in the
condition.
* decl2.c (cplus_decl_attributes): Check for bare parameter packs in
the
attributes of a declaration.
* parser.c (cp_parser_using_declaration): Tweak call to
check_for_bare_parameter_packs.
(cp_parser_base_clause): Ditto.


2008-01-29  Douglas Gregor  [EMAIL PROTECTED]

PR c++/34055
PR c++/34103
PR c++/34219
PR c++/34606
PR c++/34753
PR c++/34754
PR c++/34755
PR c++/34919
PR c++/34961
* g++.dg/cpp0x/vt-34219-2.C: New.
* g++.dg/cpp0x/pr32126.C: Tweak expected error messages.
* g++.dg/cpp0x/vt-34961.C: New.
* g++.dg/cpp0x/vt-34055.C: Tweak error messages; add new test
cases from the re-opened PR.
* g++.dg/cpp0x/vt-34753.C: New.
* g++.dg/cpp0x/vt-34919.C: New.
* g++.dg/cpp0x/vt-34754.C: New.
* g++.dg/cpp0x/vt-34606.C: New.
* g++.dg/cpp0x/vt-34219.C: New.
* g++.dg/cpp0x/pr32125.C: Tweak expected error messages.
* g++.dg/cpp0x/vt-34755.C: New.
* g++.dg/cpp0x/pr31438.C: Ditto.
* g++.dg/cpp0x/variadic81.C: Ditto.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219-2.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34606.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34753.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34754.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34755.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34919.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34961.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/c-pretty-print.c
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/class.c
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/decl.c
trunk/gcc/cp/decl2.c
trunk/gcc/cp/parser.c
trunk/gcc/cp/pt.c
trunk/gcc/cp/semantics.c
trunk/gcc/cp/typeck.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/cpp0x/pr31438.C
trunk/gcc/testsuite/g++.dg/cpp0x/pr32125.C
trunk/gcc/testsuite/g++.dg/cpp0x/pr32126.C
trunk/gcc/testsuite/g++.dg/cpp0x/variadic81.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34055.C


-- 


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



[Bug c++/34103] [4.3 regression] ICE with invalid variadic template functions

2008-01-29 Thread dgregor at gcc dot gnu dot org


--- Comment #16 from dgregor at gcc dot gnu dot org  2008-01-29 14:01 
---
Subject: Bug 34103

Author: dgregor
Date: Tue Jan 29 13:59:59 2008
New Revision: 131938

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=131938
Log:
2008-01-29  Douglas Gregor  [EMAIL PROTECTED]

PR c++/34055
PR c++/34103
PR c++/34219
PR c++/34606
PR c++/34753
PR c++/34754
PR c++/34755
PR c++/34919
PR c++/34961
* c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
qualifiers for an ERROR_MARK_NODE or a NULL_TREE.


2008-01-29  Douglas Gregor  [EMAIL PROTECTED]

PR c++/34055
PR c++/34103
PR c++/34219
PR c++/34606
PR c++/34753
PR c++/34754
PR c++/34755
PR c++/34919
PR c++/34961
* typeck.c (check_return_expr): Tweak call to
check_for_bare_parameter_packs.
* class.c (add_method): Be careful with error_mark_nodes.
* cp-tree.h (check_for_bare_parameter_packs): Remove * from
signature.
* pt.c (struct find_parameter_pack_data): Remove
SET_PACKS_TO_ERROR.
(find_parameter_packs_r): Don't use SET_PACKS_TO_ERROR.
(uses_parameter_packs): Don't set SET_PACKS_TO_ERROR.
(make_pack_expansion): Ditto.
(check_for_bare_parameter_packs): Parameter is now a tree, not a
tree*.
(process_template_parm): Tweak call to
check_for_bare_parameter_packs.  
(push_template_decl_real): Tweak calls to
check_for_bare_parameter_packs. If bare parameter packs are found
in the list of exceptions, clear out that list after giving an
error.
* semantics.c (finish_cond): Tweak call to
check_for_bare_parameter_packs.
(finish_expr_stmt): Ditto.
(finish_for_expr): Ditto.
(finish_switch_cond): Ditto.
(finish_mem_initializers): Ditto.
(finish_member_declaration): Ditto.
(finish_static_assert): Check for bare parameter packs in the
condition.
* decl2.c (cplus_decl_attributes): Check for bare parameter packs in
the
attributes of a declaration.
* parser.c (cp_parser_using_declaration): Tweak call to
check_for_bare_parameter_packs.
(cp_parser_base_clause): Ditto.


2008-01-29  Douglas Gregor  [EMAIL PROTECTED]

PR c++/34055
PR c++/34103
PR c++/34219
PR c++/34606
PR c++/34753
PR c++/34754
PR c++/34755
PR c++/34919
PR c++/34961
* g++.dg/cpp0x/vt-34219-2.C: New.
* g++.dg/cpp0x/pr32126.C: Tweak expected error messages.
* g++.dg/cpp0x/vt-34961.C: New.
* g++.dg/cpp0x/vt-34055.C: Tweak error messages; add new test
cases from the re-opened PR.
* g++.dg/cpp0x/vt-34753.C: New.
* g++.dg/cpp0x/vt-34919.C: New.
* g++.dg/cpp0x/vt-34754.C: New.
* g++.dg/cpp0x/vt-34606.C: New.
* g++.dg/cpp0x/vt-34219.C: New.
* g++.dg/cpp0x/pr32125.C: Tweak expected error messages.
* g++.dg/cpp0x/vt-34755.C: New.
* g++.dg/cpp0x/pr31438.C: Ditto.
* g++.dg/cpp0x/variadic81.C: Ditto.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219-2.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34606.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34753.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34754.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34755.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34919.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34961.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/c-pretty-print.c
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/class.c
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/decl.c
trunk/gcc/cp/decl2.c
trunk/gcc/cp/parser.c
trunk/gcc/cp/pt.c
trunk/gcc/cp/semantics.c
trunk/gcc/cp/typeck.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/cpp0x/pr31438.C
trunk/gcc/testsuite/g++.dg/cpp0x/pr32125.C
trunk/gcc/testsuite/g++.dg/cpp0x/pr32126.C
trunk/gcc/testsuite/g++.dg/cpp0x/variadic81.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34055.C


-- 


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



[Bug c++/34219] gcc doesn't accept const members of variadic templates as const (regression)

2008-01-29 Thread dgregor at gcc dot gnu dot org


--- Comment #6 from dgregor at gcc dot gnu dot org  2008-01-29 14:01 ---
Subject: Bug 34219

Author: dgregor
Date: Tue Jan 29 13:59:59 2008
New Revision: 131938

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=131938
Log:
2008-01-29  Douglas Gregor  [EMAIL PROTECTED]

PR c++/34055
PR c++/34103
PR c++/34219
PR c++/34606
PR c++/34753
PR c++/34754
PR c++/34755
PR c++/34919
PR c++/34961
* c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
qualifiers for an ERROR_MARK_NODE or a NULL_TREE.


2008-01-29  Douglas Gregor  [EMAIL PROTECTED]

PR c++/34055
PR c++/34103
PR c++/34219
PR c++/34606
PR c++/34753
PR c++/34754
PR c++/34755
PR c++/34919
PR c++/34961
* typeck.c (check_return_expr): Tweak call to
check_for_bare_parameter_packs.
* class.c (add_method): Be careful with error_mark_nodes.
* cp-tree.h (check_for_bare_parameter_packs): Remove * from
signature.
* pt.c (struct find_parameter_pack_data): Remove
SET_PACKS_TO_ERROR.
(find_parameter_packs_r): Don't use SET_PACKS_TO_ERROR.
(uses_parameter_packs): Don't set SET_PACKS_TO_ERROR.
(make_pack_expansion): Ditto.
(check_for_bare_parameter_packs): Parameter is now a tree, not a
tree*.
(process_template_parm): Tweak call to
check_for_bare_parameter_packs.  
(push_template_decl_real): Tweak calls to
check_for_bare_parameter_packs. If bare parameter packs are found
in the list of exceptions, clear out that list after giving an
error.
* semantics.c (finish_cond): Tweak call to
check_for_bare_parameter_packs.
(finish_expr_stmt): Ditto.
(finish_for_expr): Ditto.
(finish_switch_cond): Ditto.
(finish_mem_initializers): Ditto.
(finish_member_declaration): Ditto.
(finish_static_assert): Check for bare parameter packs in the
condition.
* decl2.c (cplus_decl_attributes): Check for bare parameter packs in
the
attributes of a declaration.
* parser.c (cp_parser_using_declaration): Tweak call to
check_for_bare_parameter_packs.
(cp_parser_base_clause): Ditto.


2008-01-29  Douglas Gregor  [EMAIL PROTECTED]

PR c++/34055
PR c++/34103
PR c++/34219
PR c++/34606
PR c++/34753
PR c++/34754
PR c++/34755
PR c++/34919
PR c++/34961
* g++.dg/cpp0x/vt-34219-2.C: New.
* g++.dg/cpp0x/pr32126.C: Tweak expected error messages.
* g++.dg/cpp0x/vt-34961.C: New.
* g++.dg/cpp0x/vt-34055.C: Tweak error messages; add new test
cases from the re-opened PR.
* g++.dg/cpp0x/vt-34753.C: New.
* g++.dg/cpp0x/vt-34919.C: New.
* g++.dg/cpp0x/vt-34754.C: New.
* g++.dg/cpp0x/vt-34606.C: New.
* g++.dg/cpp0x/vt-34219.C: New.
* g++.dg/cpp0x/pr32125.C: Tweak expected error messages.
* g++.dg/cpp0x/vt-34755.C: New.
* g++.dg/cpp0x/pr31438.C: Ditto.
* g++.dg/cpp0x/variadic81.C: Ditto.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219-2.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34606.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34753.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34754.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34755.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34919.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34961.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/c-pretty-print.c
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/class.c
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/decl.c
trunk/gcc/cp/decl2.c
trunk/gcc/cp/parser.c
trunk/gcc/cp/pt.c
trunk/gcc/cp/semantics.c
trunk/gcc/cp/typeck.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/cpp0x/pr31438.C
trunk/gcc/testsuite/g++.dg/cpp0x/pr32125.C
trunk/gcc/testsuite/g++.dg/cpp0x/pr32126.C
trunk/gcc/testsuite/g++.dg/cpp0x/variadic81.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34055.C


-- 


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



[Bug c++/34754] [4.3 regression] ICE with invalid function arguments in variadic template

2008-01-29 Thread dgregor at gcc dot gnu dot org


--- Comment #2 from dgregor at gcc dot gnu dot org  2008-01-29 14:01 ---
Subject: Bug 34754

Author: dgregor
Date: Tue Jan 29 13:59:59 2008
New Revision: 131938

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=131938
Log:
2008-01-29  Douglas Gregor  [EMAIL PROTECTED]

PR c++/34055
PR c++/34103
PR c++/34219
PR c++/34606
PR c++/34753
PR c++/34754
PR c++/34755
PR c++/34919
PR c++/34961
* c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
qualifiers for an ERROR_MARK_NODE or a NULL_TREE.


2008-01-29  Douglas Gregor  [EMAIL PROTECTED]

PR c++/34055
PR c++/34103
PR c++/34219
PR c++/34606
PR c++/34753
PR c++/34754
PR c++/34755
PR c++/34919
PR c++/34961
* typeck.c (check_return_expr): Tweak call to
check_for_bare_parameter_packs.
* class.c (add_method): Be careful with error_mark_nodes.
* cp-tree.h (check_for_bare_parameter_packs): Remove * from
signature.
* pt.c (struct find_parameter_pack_data): Remove
SET_PACKS_TO_ERROR.
(find_parameter_packs_r): Don't use SET_PACKS_TO_ERROR.
(uses_parameter_packs): Don't set SET_PACKS_TO_ERROR.
(make_pack_expansion): Ditto.
(check_for_bare_parameter_packs): Parameter is now a tree, not a
tree*.
(process_template_parm): Tweak call to
check_for_bare_parameter_packs.  
(push_template_decl_real): Tweak calls to
check_for_bare_parameter_packs. If bare parameter packs are found
in the list of exceptions, clear out that list after giving an
error.
* semantics.c (finish_cond): Tweak call to
check_for_bare_parameter_packs.
(finish_expr_stmt): Ditto.
(finish_for_expr): Ditto.
(finish_switch_cond): Ditto.
(finish_mem_initializers): Ditto.
(finish_member_declaration): Ditto.
(finish_static_assert): Check for bare parameter packs in the
condition.
* decl2.c (cplus_decl_attributes): Check for bare parameter packs in
the
attributes of a declaration.
* parser.c (cp_parser_using_declaration): Tweak call to
check_for_bare_parameter_packs.
(cp_parser_base_clause): Ditto.


2008-01-29  Douglas Gregor  [EMAIL PROTECTED]

PR c++/34055
PR c++/34103
PR c++/34219
PR c++/34606
PR c++/34753
PR c++/34754
PR c++/34755
PR c++/34919
PR c++/34961
* g++.dg/cpp0x/vt-34219-2.C: New.
* g++.dg/cpp0x/pr32126.C: Tweak expected error messages.
* g++.dg/cpp0x/vt-34961.C: New.
* g++.dg/cpp0x/vt-34055.C: Tweak error messages; add new test
cases from the re-opened PR.
* g++.dg/cpp0x/vt-34753.C: New.
* g++.dg/cpp0x/vt-34919.C: New.
* g++.dg/cpp0x/vt-34754.C: New.
* g++.dg/cpp0x/vt-34606.C: New.
* g++.dg/cpp0x/vt-34219.C: New.
* g++.dg/cpp0x/pr32125.C: Tweak expected error messages.
* g++.dg/cpp0x/vt-34755.C: New.
* g++.dg/cpp0x/pr31438.C: Ditto.
* g++.dg/cpp0x/variadic81.C: Ditto.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219-2.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34606.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34753.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34754.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34755.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34919.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34961.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/c-pretty-print.c
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/class.c
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/decl.c
trunk/gcc/cp/decl2.c
trunk/gcc/cp/parser.c
trunk/gcc/cp/pt.c
trunk/gcc/cp/semantics.c
trunk/gcc/cp/typeck.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/cpp0x/pr31438.C
trunk/gcc/testsuite/g++.dg/cpp0x/pr32125.C
trunk/gcc/testsuite/g++.dg/cpp0x/pr32126.C
trunk/gcc/testsuite/g++.dg/cpp0x/variadic81.C
trunk/gcc/testsuite/g++.dg/cpp0x/vt-34055.C


-- 


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



[Bug c++/34961] [4.3 Regression] ICE with invalid use of parameter pack in attribute

2008-01-29 Thread dgregor at gcc dot gnu dot org


--- Comment #3 from dgregor at gcc dot gnu dot org  2008-01-29 14:27 ---
Fixed on mainline


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/34103] [4.3 regression] ICE with invalid variadic template functions

2008-01-28 Thread dgregor at gcc dot gnu dot org


--- Comment #15 from dgregor at gcc dot gnu dot org  2008-01-28 21:35 
---
Thanks everyone; I can reproduce this on i686-pc-linux-gnu. Patch in the works.


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Last reconfirmed|2008-01-16 13:40:59 |2008-01-28 21:35:20
   date||


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



[Bug c++/34913] [4.1/4.2 Regression] ICE vector in template

2008-01-28 Thread dgregor at gcc dot gnu dot org


--- Comment #8 from dgregor at gcc dot gnu dot org  2008-01-28 21:52 ---
This is fixed on the trunk. Marking it as such...


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/34055] [4.3 regression] ICE with invalid specialization of variadic template

2008-01-28 Thread dgregor at gcc dot gnu dot org


--- Comment #7 from dgregor at gcc dot gnu dot org  2008-01-28 22:05 ---
Darn! Mine again.


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|REOPENED|ASSIGNED
   Last reconfirmed|2007-12-20 21:02:29 |2008-01-28 22:05:37
   date||


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



[Bug c++/34961] [4.3 Regression] ICE with invalid use of parameter pack in attribute

2008-01-28 Thread dgregor at gcc dot gnu dot org


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dgregor at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2008-01-25 09:53:35 |2008-01-28 21:40:03
   date||


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



[Bug c++/34919] [4.3 Regression] ICE with invalid use of parameter pack

2008-01-28 Thread dgregor at gcc dot gnu dot org


--- Comment #3 from dgregor at gcc dot gnu dot org  2008-01-28 21:58 ---
Yep, we should be diagnosing but this error but we aren't. I'm on it.


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dgregor at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2008-01-22 10:56:51 |2008-01-28 21:58:41
   date||


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



[Bug c++/34892] [4.3 regression] ICE with ellipsis in default template argument

2008-01-28 Thread dgregor at gcc dot gnu dot org


--- Comment #1 from dgregor at gcc dot gnu dot org  2008-01-28 21:59 ---
Confirmed. This is mine.


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dgregor at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2008-01-21 10:10:51 |2008-01-28 21:59:57
   date||


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



[Bug c++/34606] [4.3 regression] ICE with invalid specialization of variadic template

2008-01-28 Thread dgregor at gcc dot gnu dot org


--- Comment #4 from dgregor at gcc dot gnu dot org  2008-01-28 22:08 ---
This one's mine.


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dgregor at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2008-01-16 21:50:58 |2008-01-28 22:08:02
   date||


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



[Bug c++/34219] gcc doesn't accept const members of variadic templates as const (regression)

2008-01-28 Thread dgregor at gcc dot gnu dot org


--- Comment #4 from dgregor at gcc dot gnu dot org  2008-01-28 23:40 ---
There are some problems with the example code. For example, the expression
maxT, Params does not expand the parameter pack Params. The compiler should
have warned you about this, both in this case and in the static_assert case.


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

   Keywords|rejects-valid   |error-recovery, ice-on-
   ||invalid-code
Summary|gcc doesn't accept const|gcc doesn't accept const
   |members of variadic |members of variadic
   |templates as const  |templates as const
   ||(regression)


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



[Bug c++/34935] [4.3 regression] ICE with attribute may_alias

2008-01-25 Thread dgregor at gcc dot gnu dot org


--- Comment #3 from dgregor at gcc dot gnu dot org  2008-01-25 21:15 ---
It turns out that the canonical types system is doing the right thing, and that
the older type-comparison mechanisms are getting the wrong answer. This is
still my bug, and it is a regression. Patch here:

  http://gcc.gnu.org/ml/gcc-patches/2008-01/msg01161.html


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dgregor at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2008-01-23 10:46:20 |2008-01-25 21:15:54
   date||


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



[Bug c++/34936] ICE with double and attribute may_alias

2008-01-25 Thread dgregor at gcc dot gnu dot org


--- Comment #4 from dgregor at gcc dot gnu dot org  2008-01-25 21:16 ---
I don't know if this is a regression or not, but it's roughly the same issue as
PR 34395 and is fixed by the same patch:

  http://gcc.gnu.org/ml/gcc-patches/2008-01/msg01161.html


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dgregor at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2008-01-23 10:50:51 |2008-01-25 21:16:52
   date||


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



[Bug libstdc++/34480] Argument packs treat __null oddly

2008-01-18 Thread dgregor at gcc dot gnu dot org


--- Comment #5 from dgregor at gcc dot gnu dot org  2008-01-18 16:33 ---
Suspended for now. We'll pick up the library work again once the C++ committee
has resolved this issue. 


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |SUSPENDED
  Component|c++ |libstdc++


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



[Bug c++/34480] Argument packs treat __null oddly

2008-01-18 Thread dgregor at gcc dot gnu dot org


--- Comment #4 from dgregor at gcc dot gnu dot org  2008-01-18 16:32 ---
Confirmed. This is the right behavior according to the C++0x specification, but
the backward-compatibility issue with push_back is a problem. The C++ committee
is aware is the issue.


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-01-18 16:32:16
   date||


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



  1   2   3   4   >