xref: /llvm-project/clang/test/PCH/objc_container.m (revision 7793e676514bc102e97a993e90257e8628069a8b)
1// UNSUPPORTED: target={{.*}}-zos{{.*}}, target={{.*}}-aix{{.*}}
2// Test this without pch.
3// RUN: %clang_cc1 -include %S/objc_container.h -fsyntax-only -verify %s
4
5// Test with pch.
6// RUN: %clang_cc1 -x objective-c -emit-pch -o %t %S/objc_container.h
7// RUN: %clang_cc1 -include-pch %t -fsyntax-only -verify %s
8// RUN: %clang_cc1 -include-pch %t -ast-print %s | FileCheck -check-prefix=CHECK-PRINT %s
9// RUN: %clang_cc1 -include-pch %t -emit-llvm -o - %s | FileCheck -check-prefix=CHECK-IR %s
10
11// expected-no-diagnostics
12
13// CHECK-PRINT: id oldObject = array[10];
14// CHECK-PRINT: array[10] = oldObject;
15// CHECK-PRINT: oldObject = dictionary[key];
16// CHECK-PRINT: dictionary[key] = newObject;
17
18// CHECK-IR: define {{.*}}void @all() #0
19// CHECK-IR: {{call.*objc_msgSend}}
20// CHECK-IR: {{call.*objc_msgSend}}
21// CHECK-IR: {{call.*objc_msgSend}}
22// CHECK-IR: {{call.*objc_msgSend}}
23// CHECK-IR: ret void
24
25// CHECK-IR: attributes #0 = { noinline nounwind {{.*}} }
26// CHECK-IR: attributes #1 = { nonlazybind }
27