Files
clang-p2996/clang/test/SemaTemplate/instantiate-default-assignment-operator.cpp
Daniel Dunbar 8fbe78f6fc Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'.
- This is designed to make it obvious that %clang_cc1 is a "test variable"
   which is substituted. It is '%clang_cc1' instead of '%clang -cc1' because it
   can be useful to redefine what gets run as 'clang -cc1' (for example, to set
   a default target).

llvm-svn: 91446
2009-12-15 20:14:24 +00:00

18 lines
596 B
C++

// RUN: %clang_cc1 -fsyntax-only -verify %s
template<typename> struct PassRefPtr { };
template<typename T> struct RefPtr {
RefPtr& operator=(const RefPtr&) { int a[sizeof(T) ? -1 : -1];} // expected-error 2 {{array size is negative}}
RefPtr& operator=(const PassRefPtr<T>&);
};
struct A { RefPtr<int> a; };
struct B : RefPtr<float> { };
void f() {
A a1, a2;
a1 = a2; // expected-note {{instantiation of member function 'RefPtr<int>::operator=' requested here}}
B b1, b2;
b1 = b2; // expected-note {{in instantiation of member function 'RefPtr<float>::operator=' requested here}}
}