blob: 5f527fa1223223c72c2aecdc1444e56d9ed3a5a6 [file] [log] [blame]
Joel E. Denny9eaf0d12021-06-25 12:40:04 -04001RUN: rm -rf %t && mkdir %t
2
Henrik G. Olssone6eda66c2023-11-13 14:45:27 +01003# Check --check-globals all in normal mode and in --include-generated-funcs mode.
Joel E. Denny9eaf0d12021-06-25 12:40:04 -04004
5RUN: cp %S/Inputs/check-globals.c %t/norm.c
Henrik G. Olssone6eda66c2023-11-13 14:45:27 +01006RUN: %update_cc_test_checks %t/norm.c --check-globals all
Joel E. Denny9eaf0d12021-06-25 12:40:04 -04007RUN: FileCheck %s --input-file=%t/norm.c --match-full-lines -strict-whitespace \
8RUN: -check-prefixes=BOTH,NRM
9
10RUN: cp %S/Inputs/check-globals.c %t/igf.c
Henrik G. Olssone6eda66c2023-11-13 14:45:27 +010011RUN: %update_cc_test_checks %t/igf.c --check-globals all --include-generated-funcs
Joel E. Denny9eaf0d12021-06-25 12:40:04 -040012RUN: FileCheck %s --input-file=%t/igf.c --match-full-lines -strict-whitespace \
13RUN: -check-prefixes=BOTH,IGF
14
15# Check that repeating doesn't change it, such as duplicating '//.' occurrences.
16
17RUN: cp %t/norm.c %t/norm-again.c
Henrik G. Olssone6eda66c2023-11-13 14:45:27 +010018RUN: %update_cc_test_checks %t/norm-again.c --check-globals all
Joel E. Denny9eaf0d12021-06-25 12:40:04 -040019RUN: diff -u %t/norm.c %t/norm-again.c
20RUN: rm %t/norm-again.c
21
22RUN: cp %t/igf.c %t/igf-again.c
Henrik G. Olssone6eda66c2023-11-13 14:45:27 +010023RUN: %update_cc_test_checks %t/igf-again.c --check-globals all \
Joel E. Denny9eaf0d12021-06-25 12:40:04 -040024RUN: --include-generated-funcs
25RUN: diff -u %t/igf.c %t/igf-again.c
26RUN: rm %t/igf-again.c
27
28# Check that the generated directives actually work correctly. For example,
29# they're not in the wrong order.
30
31RUN: cp %S/Inputs/lit.cfg.example %t/lit.cfg
32# Show lit failures while avoiding confusing FileCheck input dump nesting.
33RUN: %lit %t
Joel E. Dennycc60fa22021-06-25 14:06:52 -040034# Lit was successful. Sanity-check the results with deterministic test order.
35RUN: rm %t/.lit_test_times.txt
Joel E. Denny9eaf0d12021-06-25 12:40:04 -040036RUN: %lit %t 2>&1 | FileCheck -check-prefix=LIT-RUN %s
37
38END.
39
40 BOTH-NOT:{{.}}
41 NRM:// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --check-globals
42 IGF:// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --check-globals --include-generated-funcs
43 BOTH-NEXT:// {{.*}}
44 BOTH-NEXT:// RUN: true
45 BOTH-NEXT:// RUN: %clang_cc1 -triple x86_64-pc-linux-gnu -emit-llvm -o - %s | FileCheck %s
46BOTH-EMPTY:
Aaron Ballman0dd49a52022-02-12 07:23:43 -050047 IGF-NEXT:void foo(void) {
Joel E. Denny9eaf0d12021-06-25 12:40:04 -040048 IGF-NEXT: static int i, j;
49 IGF-NEXT:}
Aaron Ballman0dd49a52022-02-12 07:23:43 -050050 IGF-NEXT:void bar(void) {
Joel E. Denny9eaf0d12021-06-25 12:40:04 -040051 IGF-NEXT: static int i, j;
52 IGF-NEXT:}
53 BOTH-NEXT://.
54 BOTH-NEXT:// CHECK: @foo.i = internal global i32 0, align 4
55 BOTH-NEXT:// CHECK: @foo.j = internal global i32 0, align 4
56 BOTH-NEXT:// CHECK: @bar.i = internal global i32 0, align 4
57 BOTH-NEXT:// CHECK: @bar.j = internal global i32 0, align 4
58 BOTH-NEXT://.
Nikita Popov697bfa42022-12-13 09:13:39 +010059 BOTH-NEXT:// CHECK-LABEL: @foo(
Joel E. Denny9eaf0d12021-06-25 12:40:04 -040060 BOTH-NEXT:// CHECK-NEXT: entry:
61 BOTH-NEXT:// CHECK-NEXT: ret void
62 BOTH-NEXT://
Aaron Ballman0dd49a52022-02-12 07:23:43 -050063 NRM-NEXT:void foo(void) {
Joel E. Denny9eaf0d12021-06-25 12:40:04 -040064 NRM-NEXT: static int i, j;
65 NRM-NEXT:}
66 IGF-NEXT://
Nikita Popov697bfa42022-12-13 09:13:39 +010067 BOTH-NEXT:// CHECK-LABEL: @bar(
Joel E. Denny9eaf0d12021-06-25 12:40:04 -040068 BOTH-NEXT:// CHECK-NEXT: entry:
69 BOTH-NEXT:// CHECK-NEXT: ret void
70 BOTH-NEXT://
Aaron Ballman0dd49a52022-02-12 07:23:43 -050071 NRM-NEXT:void bar(void) {
Joel E. Denny9eaf0d12021-06-25 12:40:04 -040072 NRM-NEXT: static int i, j;
73 NRM-NEXT:}
74 BOTH-NEXT://.
75 BOTH-NEXT:// CHECK: attributes {{.*}}
76 BOTH-NEXT://.
Henrik G. Olssone6eda66c2023-11-13 14:45:27 +010077 BOTH-NEXT:// CHECK: {{\[\[META0:!\[0-9\]\+\]\]}} = {{.*}}
78 BOTH-NEXT:// CHECK: {{\[\[META1:!\[0-9\]\+\]\]}} = {{.*}}
Joel E. Denny9eaf0d12021-06-25 12:40:04 -040079 BOTH-NEXT://.
80 BOTH-NOT:{{.}}
81
82LIT-RUN: Testing: 2 tests
83LIT-RUN: PASS: {{.*}} igf.c
84LIT-RUN: PASS: {{.*}} norm.c