diff options
author | Zancanaro; Carlo <czan8762@plang3.cs.usyd.edu.au> | 2012-09-24 09:58:17 +1000 |
---|---|---|
committer | Zancanaro; Carlo <czan8762@plang3.cs.usyd.edu.au> | 2012-09-24 09:58:17 +1000 |
commit | 222e2a7620e6520ffaf4fc4e69d79c18da31542e (patch) | |
tree | 7bfbc05bfa3b41c8f9d2e56d53a0bc3e310df239 /clang/test/SemaTemplate/instantiate-objc-1.mm | |
parent | 3d206f03985b50beacae843d880bccdc91a9f424 (diff) |
Add the clang library to the repo (with some of my changes, too).
Diffstat (limited to 'clang/test/SemaTemplate/instantiate-objc-1.mm')
-rw-r--r-- | clang/test/SemaTemplate/instantiate-objc-1.mm | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/clang/test/SemaTemplate/instantiate-objc-1.mm b/clang/test/SemaTemplate/instantiate-objc-1.mm new file mode 100644 index 0000000..2780f8e --- /dev/null +++ b/clang/test/SemaTemplate/instantiate-objc-1.mm @@ -0,0 +1,48 @@ +// RUN: %clang_cc1 -fsyntax-only -verify %s + +// Obj-C string literal expressions +template <typename T> struct StringTest { + void f() { + (void)@"Hello"; + } +}; + +template struct StringTest<int>; +template struct StringTest<double>; + +// @selector expressions +template <typename T> struct SelectorTest { + SEL f() { + return @selector(multiple:arguments:); + } + SEL f2() { + return @selector(multiple:arguments:); + } +}; + +template struct SelectorTest<int>; +template struct SelectorTest<double>; + +// @protocol expressions +@protocol P +@end + +template <typename T> struct ProtocolTest { + void f() { + (void)@protocol(P); + } +}; + +template struct ProtocolTest<int>; +template struct ProtocolTest<double>; + +// @encode expressions +template <typename T> struct EncodeTest { + static const char *encode(T t) { + return @encode(T); + } +}; + +template struct EncodeTest<int>; +template struct EncodeTest<double>; +template struct EncodeTest<wchar_t>; |