// RUN: %clang_cc1 %s -std=c++11 -emit-llvm-only
-// RUN: %clang_cc1 -emit-obj -o %t -gline-tables-only -O2 -std=c++11 %s
+// RUN: %clang_cc1 -emit-obj -o %t -gline-tables-only -std=c++11 %s
// CHECK that we don't crash.
// PR11676's example is ill-formed:
}
namespace PR22096 {
-class _String_val {
- union _Bxty { int i; } _Bx;
+template <class> struct c {
+ c();
+ template <class U> __attribute__((__always_inline__)) c(c<U>) {}
};
-struct string : public _String_val {
- string(const char *_Ptr) : _String_val() {}
-};
-
-
-int ConvertIPv4NumberToIPv6Number(int);
-struct IPEndPoint {
- IPEndPoint();
- IPEndPoint(const int &address, int port);
- const int &address() const {}
-};
-
-struct SourceAddressTokenTest {
- SourceAddressTokenTest()
- : ip4_dual_(ConvertIPv4NumberToIPv6Number(ip4_.address()), 1) {}
- const string kPrimary = "<primary>";
- IPEndPoint ip4_;
- IPEndPoint ip4_dual_;
-} s;
+struct {
+ c<double> v = c<int>();
+} o;
}