]> gcc.gnu.org Git - gcc.git/commitdiff
re PR c++/61556 ([c++11][4.9/4.10 Regression] ‘*(const ValueType*)this’ is not a...
authorJason Merrill <jason@redhat.com>
Fri, 20 Jun 2014 18:31:53 +0000 (14:31 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Fri, 20 Jun 2014 18:31:53 +0000 (14:31 -0400)
PR c++/61556
* call.c (build_over_call): Call build_this in template path.

From-SVN: r211853

gcc/cp/ChangeLog
gcc/cp/call.c
gcc/testsuite/g++.dg/cpp0x/constexpr-template7.C [new file with mode: 0644]

index a992c87de85851da1a68ddac70657cde09c415fc..b4379542510f373d1e7371bcff1167afc56b6c7d 100644 (file)
@@ -1,3 +1,8 @@
+2014-06-20  Jason Merrill  <jason@redhat.com>
+
+       PR c++/61556
+       * call.c (build_over_call): Call build_this in template path.
+
 2014-06-19  Jason Merrill  <jason@redhat.com>
 
        PR c++/59296
index e147abdd083100b7a6b41b1a40f761db6e768507..da9143300496bfd7f184c2fe55b4925494f07196 100644 (file)
@@ -6896,7 +6896,7 @@ build_over_call (struct z_candidate *cand, int flags, tsubst_flags_t complain)
 
          ++nargs;
          alcarray = XALLOCAVEC (tree, nargs);
-         alcarray[0] = first_arg;
+         alcarray[0] = build_this (first_arg);
          FOR_EACH_VEC_SAFE_ELT (args, ix, arg)
            alcarray[ix + 1] = arg;
          argarray = alcarray;
diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-template7.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-template7.C
new file mode 100644 (file)
index 0000000..e835dbf
--- /dev/null
@@ -0,0 +1,32 @@
+// PR c++/61556
+// { dg-do compile { target c++11 } }
+
+class ValueType {
+public:
+    constexpr operator int() const {return m_ID;};
+    constexpr ValueType(const int v)
+        : m_ID(v) {}
+private:
+    int m_ID;
+};
+
+class ValueTypeEnum {
+public:
+    static constexpr ValueType doubleval = ValueType(1);
+};
+
+template <int format>
+class ValueTypeInfo {
+};
+
+template <typename Format>
+class FillFunctor {
+public:
+    FillFunctor() {
+        ValueTypeInfo<ValueTypeEnum::doubleval> v;
+    }
+};
+
+int main() {
+    ValueTypeInfo<ValueTypeEnum::doubleval> v;
+}
This page took 0.079175 seconds and 5 git commands to generate.