blob: 45417401d86fd26c72c05e00be4279c5b9de682c [file] [log] [blame]
Axel Naumann39d26c32012-10-02 09:09:43 +00001// RUN: rm -rf %t
2// RUN: %clang_cc1 -x objective-c++ -fmodules -fmodule-cache-path %t -I %S/Inputs -verify %s -Wno-objc-root-class
Axel Naumann38c3bb42012-10-02 12:18:46 +00003// RUN: %clang_cc1 -x objective-c++ -fmodules -fmodule-cache-path %t -I %S/Inputs -emit-llvm %s -o - -Wno-objc-root-class | grep Emit | FileCheck %s
Andy Gibbs8e8fb3b2012-10-19 12:44:48 +00004// expected-no-diagnostics
Axel Naumann39d26c32012-10-02 09:09:43 +00005
6@__experimental_modules_import templates_left;
7@__experimental_modules_import templates_right;
8
9
10void testTemplateClasses() {
11 Vector<int> vec_int;
12 vec_int.push_back(0);
13
14 List<bool> list_bool;
15 list_bool.push_back(false);
16
17 N::Set<char> set_char;
18 set_char.insert('A');
19}
20
21void testPendingInstantiations() {
Axel Naumann38c3bb42012-10-02 12:18:46 +000022 // CHECK: call {{.*pendingInstantiationEmit}}
23 // CHECK: call {{.*pendingInstantiationEmit}}
24 // CHECK: define {{.*pendingInstantiationEmit.*[(]i}}
25 // CHECK: define {{.*pendingInstantiationEmit.*[(]double}}
Axel Naumann39d26c32012-10-02 09:09:43 +000026 triggerPendingInstantiation();
27 triggerPendingInstantiationToo();
28}
Axel Naumann38c3bb42012-10-02 12:18:46 +000029
30void testRedeclDefinition() {
31 // CHECK: define {{.*redeclDefinitionEmit}}
32 redeclDefinitionEmit();
33}
34
35// CHECK: call {{.*pendingInstantiation}}
36// CHECK: call {{.*redeclDefinitionEmit}}