Commit e2498d54 by Jason Merrill Committed by Jason Merrill

re PR c++/61556 ([c++11][4.9/4.10 Regression] ‘*(const ValueType*)this’ is not a…

re PR c++/61556 ([c++11][4.9/4.10 Regression] ‘*(const ValueType*)this’ is not a constant expression with valid code)

	PR c++/61556
	* call.c (build_over_call): Call build_this in template path.

From-SVN: r211853
parent 73b3e61b
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
......
......@@ -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;
......
// 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;
}
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