// RUN: %clang_cc1 %s -triple %itanium_abi_triple -emit-pch -o %t.pch | |
// RUN: %clang_cc1 %s -triple %itanium_abi_triple -emit-llvm -include-pch %t.pch -o - | FileCheck %s | |
#ifndef HEADER | |
#define HEADER | |
class OOArray{ | |
public: | |
~OOArray(); | |
}; | |
class OOString { | |
public: | |
OOString(); | |
OOString(char *); | |
}; | |
class OOPattern { | |
public: | |
OOArray matchAll(const OOString &)const { | |
__attribute__((__blocks__(byref))) OOArray out; | |
} | |
}; | |
OOArray operator & (const OOPattern & pattern) { | |
pattern.matchAll(0); | |
} | |
OOArray operator & (OOString, OOString); | |
#else | |
// We just make sure there is no crash on IRGen (rdar://13114142) | |
// CHECK: _Z3foov() | |
void foo() { | |
OOString str; | |
str & "o"; | |
} | |
#endif |