diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2013-02-28 01:13:53 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2013-02-28 01:13:53 +0000 |
commit | f583a5ec59fc51b9a7e932ed3cc409d3ef814b49 (patch) | |
tree | 447631e18e2dd3a074e79a0ebccf28dc053f2c24 /test/PCH | |
parent | 717ff5416e81c78cf9c34ff74b4fb266c0a67b53 (diff) | |
download | clang-f583a5ec59fc51b9a7e932ed3cc409d3ef814b49.tar.gz clang-f583a5ec59fc51b9a7e932ed3cc409d3ef814b49.tar.bz2 clang-f583a5ec59fc51b9a7e932ed3cc409d3ef814b49.tar.xz |
Add a test case, to make sure there is no crash on IRGen when using PCH
Related to rdar://13114142
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176227 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/PCH')
-rw-r--r-- | test/PCH/irgen-rdar13114142.mm | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/test/PCH/irgen-rdar13114142.mm b/test/PCH/irgen-rdar13114142.mm new file mode 100644 index 0000000000..bd523c29cf --- /dev/null +++ b/test/PCH/irgen-rdar13114142.mm @@ -0,0 +1,39 @@ +// RUN: %clang_cc1 %s -emit-pch -o %t.pch +// RUN: %clang_cc1 %s -emit-llvm %s -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 |