40 lines
656 B
Text
40 lines
656 B
Text
|
// RUN: %clang_cc1 %s -emit-pch -o %t.pch
|
||
|
// RUN: %clang_cc1 %s -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
|