Commit dce50630 by Mark Mitchell Committed by Mark Mitchell

re PR c++/10468 (const typeof(x) is non-const, but only in templates)

	PR c++/10468
	* pt.c (tsubst): Handle qualified TYPEOF_TYPEs correctly.

	PR c++/10468
	* g++.dg/ext/typeof5.C: New test.

From-SVN: r68615
parent 7a0ec607
2003-06-27 Mark Mitchell <mark@codesourcery.com> 2003-06-27 Mark Mitchell <mark@codesourcery.com>
PR c++/10468
* pt.c (tsubst): Handle qualified TYPEOF_TYPEs correctly.
2003-06-27 Mark Mitchell <mark@codesourcery.com>
PR c++/10796 PR c++/10796
* decl.c (finish_enum): Implement DR377. * decl.c (finish_enum): Implement DR377.
......
...@@ -7062,7 +7062,10 @@ tsubst (tree t, tree args, tsubst_flags_t complain, tree in_decl) ...@@ -7062,7 +7062,10 @@ tsubst (tree t, tree args, tsubst_flags_t complain, tree in_decl)
if (e1 == error_mark_node) if (e1 == error_mark_node)
return error_mark_node; return error_mark_node;
return TREE_TYPE (e1); return cp_build_qualified_type_real (TREE_TYPE (e1),
cp_type_quals (t)
| cp_type_quals (TREE_TYPE (e1)),
complain);
} }
default: default:
......
2003-06-27 Mark Mitchell <mark@codesourcery.com> 2003-06-27 Mark Mitchell <mark@codesourcery.com>
PR c++/10468
* g++.dg/ext/typeof6.C: New test.
2003-06-27 Mark Mitchell <mark@codesourcery.com>
PR c++/10796 PR c++/10796
* g++.dg/init/enum1.C: New test. * g++.dg/init/enum1.C: New test.
......
// { dg-options "" }
template <class T>
void test1() {
int x = 0;
const typeof(x) & t1 = x+0;
}
void test2() {
int x = 0;
const typeof(x) & t1 = x+0;
}
int main() {
test1<int>();
test2 ();
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment