|
| 1 | +// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 5 |
| 2 | + |
| 3 | +// RUN: %clang_cc1 -O2 -triple arm64-apple-ios -emit-llvm -fbounds-safety -o - %s | FileCheck %s |
| 4 | + |
| 5 | +void foo(char tag[3]); |
| 6 | + |
| 7 | +// CHECK-LABEL: define void @bar( |
| 8 | +// CHECK-SAME: ) local_unnamed_addr #[[ATTR0:[0-9]+]] { |
| 9 | +// CHECK-NEXT: [[ENTRY:.*:]] |
| 10 | +// CHECK-NEXT: [[DOTCOMPOUNDLITERAL:%.*]] = alloca [3 x i8], align 1 |
| 11 | +// CHECK-NEXT: store i8 65, ptr [[DOTCOMPOUNDLITERAL]], align 1, !tbaa [[TBAA2:![0-9]+]] |
| 12 | +// CHECK-NEXT: [[ARRAYINIT_ELEMENT:%.*]] = getelementptr inbounds nuw i8, ptr [[DOTCOMPOUNDLITERAL]], i64 1 |
| 13 | +// CHECK-NEXT: store i8 66, ptr [[ARRAYINIT_ELEMENT]], align 1, !tbaa [[TBAA2]] |
| 14 | +// CHECK-NEXT: [[ARRAYINIT_ELEMENT1:%.*]] = getelementptr inbounds nuw i8, ptr [[DOTCOMPOUNDLITERAL]], i64 2 |
| 15 | +// CHECK-NEXT: store i8 67, ptr [[ARRAYINIT_ELEMENT1]], align 1, !tbaa [[TBAA2]] |
| 16 | +// CHECK-NEXT: call void @foo(ptr noundef nonnull [[DOTCOMPOUNDLITERAL]]) #[[ATTR2:[0-9]+]] |
| 17 | +// CHECK-NEXT: ret void |
| 18 | +// |
| 19 | +void bar(void) { |
| 20 | + foo((char[3]){'A', 'B', 'C'}); |
| 21 | +} |
| 22 | +//. |
| 23 | +// CHECK: [[TBAA2]] = !{[[META3:![0-9]+]], [[META3]], i64 0} |
| 24 | +// CHECK: [[META3]] = !{!"omnipotent char", [[META4:![0-9]+]], i64 0} |
| 25 | +// CHECK: [[META4]] = !{!"Simple C/C++ TBAA"} |
| 26 | +//. |
0 commit comments