2013-10-11 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/31671
* pt.c (convert_nontype_argument): Set expr_type to
TREE_TYPE (probe_type).
/testsuite
2013-10-11 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/31671
* g++.dg/template/nontype26.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203444
138bc75d-0d04-0410-961f-
82ee72b054a4
+2013-10-11 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/31671
+ * pt.c (convert_nontype_argument): Set expr_type to
+ TREE_TYPE (probe_type).
+
2013-10-11 Jakub Jelinek <jakub@redhat.com>
* decl.c (duplicate_decls): Error out for redeclaration of UDRs.
TREE_TYPE (TREE_TYPE (addr)))))
{
expr = TREE_OPERAND (addr, 0);
- expr_type = TREE_TYPE (expr);
+ expr_type = TREE_TYPE (probe_type);
}
}
}
+2013-10-11 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/31671
+ * g++.dg/template/nontype26.C: New.
+
2013-10-11 Thomas Schwinge <thomas@codesourcery.com>
* c-c++-common/cpp/openmp-define-1.c: New file.
--- /dev/null
+// PR c++/31671
+
+template<int& i> void doit() {
+ i = 0;
+}
+
+template<const int& i> class X {
+public:
+ void foo() {
+ doit<i>(); // { dg-error "cv-qualification|no matching" }
+ }
+};
+
+int i = 0;
+
+X<i> x;
+
+int main() {
+ x.foo();
+}