* pt.c (convert_nontype_argument): Don't call build_converted_constant_expr if it could involve calling a conversion function with a instantiation-dependent constructor as its argument. * g++.dg/cpp0x/constexpr-conv3.C: New test. * g++.dg/cpp0x/constexpr-conv4.C: New test. From-SVN: r270178
26 lines
289 B
C
26 lines
289 B
C
// PR c++/87145
|
|
// { dg-do compile { target c++11 } }
|
|
|
|
struct S {
|
|
int val;
|
|
|
|
constexpr operator int() const {
|
|
return static_cast<int>(val);
|
|
}
|
|
};
|
|
|
|
template<int N>
|
|
struct F { };
|
|
|
|
template<unsigned N>
|
|
constexpr void foo() {
|
|
F<int{N}> f;
|
|
F<S{N}> f2;
|
|
}
|
|
|
|
int
|
|
main()
|
|
{
|
|
foo<2>();
|
|
}
|