| // 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 |