150
|
1 // RUN: %clang_cc1 %s -triple %itanium_abi_triple -emit-pch -o %t.pch
|
|
2 // RUN: %clang_cc1 %s -triple %itanium_abi_triple -emit-llvm -include-pch %t.pch -o - | FileCheck %s
|
|
3
|
|
4 #ifndef HEADER
|
|
5 #define HEADER
|
|
6
|
|
7 class OOArray{
|
|
8 public:
|
|
9 ~OOArray();
|
|
10 };
|
|
11
|
|
12 class OOString {
|
|
13 public:
|
|
14 OOString();
|
|
15 OOString(char *);
|
|
16 };
|
|
17
|
|
18 class OOPattern {
|
|
19 public:
|
|
20 OOArray matchAll(const OOString &)const {
|
|
21 __attribute__((__blocks__(byref))) OOArray out;
|
|
22 }
|
|
23 };
|
|
24
|
|
25 OOArray operator & (const OOPattern & pattern) {
|
|
26 pattern.matchAll(0);
|
|
27 }
|
|
28 OOArray operator & (OOString, OOString);
|
|
29
|
|
30 #else
|
|
31
|
|
32 // We just make sure there is no crash on IRGen (rdar://13114142)
|
|
33 // CHECK: _Z3foov()
|
|
34 void foo() {
|
|
35 OOString str;
|
|
36 str & "o";
|
|
37 }
|
|
38
|
|
39 #endif
|