[Flang][OpenMP] Use internal linkage for OpenMP code-gen'ed helper functions (#117911)
[llvm-project.git] / clang / test / Driver / autocomplete.c
blob8cc604dbff8758cbebc5581f47179b2b6acb8ea7
1 // Test for the --autocompletion flag, which is an API used for shell
2 // autocompletion. You may have to update tests in this file when you
3 // add/modify flags, change HelpTexts or the values of some flags.
5 // Some corner cases.
6 // Just test that this doesn't crash:
7 // RUN: %clang --autocomplete=
8 // RUN: %clang --autocomplete=,
9 // RUN: %clang --autocomplete==
10 // RUN: %clang --autocomplete=,,
11 // RUN: %clang --autocomplete=-
13 // RUN: %clang --autocomplete=-fsyn | FileCheck %s -check-prefix=FSYN
14 // FSYN: -fsyntax-only
15 // RUN: %clang --autocomplete=-std | FileCheck %s -check-prefix=STD
16 // STD: -std= Language standard to compile for
17 // RUN: %clang --autocomplete=foo | FileCheck %s -check-prefix=FOO
18 // FOO-NOT: foo
19 // RUN: %clang --autocomplete=-stdlib=,l | FileCheck %s -check-prefix=STDLIB
20 // STDLIB: libc++
21 // STDLIB-NEXT: libstdc++
22 // RUN: %clang --autocomplete=-stdlib= | FileCheck %s -check-prefix=STDLIBALL
23 // STDLIBALL: libc++
24 // STDLIBALL-NEXT: libstdc++
25 // STDLIBALL-NEXT: platform
26 // RUN: %clang --autocomplete=-meabi,d | FileCheck %s -check-prefix=MEABI
27 // MEABI: default
28 // RUN: %clang --autocomplete=-meabi, | FileCheck %s -check-prefix=MEABIALL
29 // RUN: %clang --autocomplete=-meabi | FileCheck %s -check-prefix=MEABIALL
30 // MEABIALL: 4
31 // MEABIALL-NEXT: 5
32 // MEABIALL-NEXT: default
33 // MEABIALL-NEXT: gnu
34 // RUN: %clang --autocomplete=-cl-std=,CL2 | FileCheck %s -check-prefix=CLSTD
35 // CLSTD: CL2.0
36 // RUN: %clang --autocomplete=-cl-std= | FileCheck %s -check-prefix=CLSTDALL
38 // CLSTDALL: cl
39 // CLSTDALL-NEXT: CL
40 // CLSTDALL-NEXT: cl1.0
41 // CLSTDALL-NEXT: CL1.0
42 // CLSTDALL-NEXT: cl1.1
43 // CLSTDALL-NEXT: CL1.1
44 // CLSTDALL-NEXT: cl1.2
45 // CLSTDALL-NEXT: CL1.2
46 // CLSTDALL-NEXT: cl2.0
47 // CLSTDALL-NEXT: CL2.0
48 // CLSTDALL-NEXT: cl3.0
49 // CLSTDALL-NEXT: CL3.0
50 // CLSTDALL-NEXT: clc++
51 // CLSTDALL-NEXT: CLC++
52 // CLSTDALL-NEXT: clc++1.0
53 // CLSTDALL-NEXT: CLC++1.0
54 // CLSTDALL-NEXT: clc++2021
55 // CLSTDALL-NEXT: CLC++2021
56 // RUN: %clang --autocomplete=-fno-sanitize-coverage=,f | FileCheck %s -check-prefix=FNOSANICOVER
57 // FNOSANICOVER: func
58 // RUN: %clang --autocomplete=-fno-sanitize-coverage= | FileCheck %s -check-prefix=FNOSANICOVERALL
59 // FNOSANICOVERALL: 8bit-counters
60 // FNOSANICOVERALL-NEXT: bb
61 // FNOSANICOVERALL-NEXT: edge
62 // FNOSANICOVERALL-NEXT: func
63 // FNOSANICOVERALL-NEXT: indirect-calls
64 // FNOSANICOVERALL-NEXT: inline-8bit-counters
65 // FNOSANICOVERALL-NEXT: inline-bool-flag
66 // FNOSANICOVERALL-NEXT: no-prune
67 // FNOSANICOVERALL-NEXT: trace-bb
68 // FNOSANICOVERALL-NEXT: trace-cmp
69 // FNOSANICOVERALL-NEXT: trace-div
70 // FNOSANICOVERALL-NEXT: trace-gep
71 // FNOSANICOVERALL-NEXT: trace-pc
72 // FNOSANICOVERALL-NEXT: trace-pc-guard
73 // RUN: %clang --autocomplete=-ffp-contract= | FileCheck %s -check-prefix=FFPALL
74 // FFPALL: fast
75 // FFPALL-NEXT: fast-honor-pragmas
76 // FFPALL-NEXT: off
77 // FFPALL-NEXT: on
78 // RUN: %clang --autocomplete=-flto= | FileCheck %s -check-prefix=FLTOALL
79 // FLTOALL: full
80 // FLTOALL-NEXT: thin
81 // RUN: %clang --autocomplete=-fveclib= | FileCheck %s -check-prefix=FVECLIBALL
82 // FVECLIBALL: Accelerate
83 // FVECLIBALL-NEXT: AMDLIBM
84 // FVECLIBALL-NEXT: ArmPL
85 // FVECLIBALL-NEXT: Darwin_libsystem_m
86 // FVECLIBALL-NEXT: libmvec
87 // FVECLIBALL-NEXT: MASSV
88 // FVECLIBALL-NEXT: none
89 // FVECLIBALL-NEXT: SLEEF
90 // FVECLIBALL-NEXT: SVML
91 // RUN: %clang --autocomplete=-fshow-overloads= | FileCheck %s -check-prefix=FSOVERALL
92 // FSOVERALL: all
93 // FSOVERALL-NEXT: best
94 // RUN: %clang --autocomplete=-fvisibility= | FileCheck %s -check-prefix=FVISIBILITYALL
95 // FVISIBILITYALL: default
96 // FVISIBILITYALL-NEXT: hidden
97 // RUN: %clang --autocomplete=-mfloat-abi= | FileCheck %s -check-prefix=MFLOATABIALL
98 // MFLOATABIALL: hard
99 // MFLOATABIALL-NEXT: soft
100 // MFLOATABIALL-NEXT: softfp
101 // RUN: %clang --autocomplete=-mthread-model | FileCheck %s -check-prefix=MTHREADMODELALL
102 // MTHREADMODELALL: posix
103 // MTHREADMODELALL-NEXT: single
104 // RUN: %clang --autocomplete=-mrelocation-model | FileCheck %s -check-prefix=MRELOCMODELALL
105 // MRELOCMODELALL: dynamic-no-pic
106 // MRELOCMODELALL-NEXT: pic
107 // MRELOCMODELALL-NEXT: ropi
108 // MRELOCMODELALL-NEXT: ropi-rwpi
109 // MRELOCMODELALL-NEXT: rwpi
110 // MRELOCMODELALL-NEXT: static
111 // RUN: %clang --autocomplete=-Wma | FileCheck %s -check-prefix=WARNING
112 // WARNING: -Wmacro-redefined
113 // WARNING-NEXT: -Wmain
114 // WARNING-NEXT: -Wmain-return-type
115 // WARNING-NEXT: -Wmalformed-warning-check
116 // WARNING-NEXT: -Wmany-braces-around-scalar-init
117 // WARNING-NEXT: -Wmath-errno-enabled-with-veclib
118 // WARNING-NEXT: -Wmathematical-notation-identifier-extension
119 // WARNING-NEXT: -Wmax-tokens
120 // WARNING-NEXT: -Wmax-unsigned-zero
121 // RUN: %clang --autocomplete=-Wno-invalid-pp- | FileCheck %s -check-prefix=NOWARNING
122 // NOWARNING: -Wno-invalid-pp-token
123 // RUN: %clang --autocomplete=-analyzer-checker | FileCheck %s -check-prefix=ANALYZER
124 // ANALYZER: unix.Malloc
125 // RUN: %clang --autocomplete=-std= | FileCheck %s -check-prefix=STDVAL
126 // STDVAL: c99
128 // Clang shouldn't autocomplete CC1 options unless -cc1 or -Xclang were provided
129 // RUN: %clang --autocomplete=-mrelocation-mode | FileCheck %s -check-prefix=MRELOCMODEL_CLANG
130 // MRELOCMODEL_CLANG-NOT: -mrelocation-model
131 // RUN: %clang --autocomplete=-Xclang,-mrelocation-mode | FileCheck %s -check-prefix=MRELOCMODEL_CC1
132 // RUN: %clang --autocomplete=-cc1,-mrelocation-mode | FileCheck %s -check-prefix=MRELOCMODEL_CC1
133 // MRELOCMODEL_CC1: -mrelocation-model
134 // Make sure it ignores passed flags unlesss they are -Xclang or -cc1
135 // RUN: %clang --autocomplete=foo,bar,,-fsyn | FileCheck %s -check-prefix=FSYN-CORON
136 // FSYN-CORON: -fsyntax-only
137 // Check if they can autocomplete values with coron
138 // RUN: %clang --autocomplete=foo,bar,,,-fno-sanitize-coverage=,f | FileCheck %s -check-prefix=FNOSANICOVER-CORON
139 // FNOSANICOVER-CORON: func
141 // Clang should return empty string when no value completion was found, which will fall back to file autocompletion
142 // RUN: %clang --autocomplete=-fmodule-file= | FileCheck %s -check-prefix=MODULE_FILE_EQUAL
143 // MODULE_FILE_EQUAL-NOT: -fmodule-file=
144 // RUN: %clang --autocomplete=-fmodule-file | FileCheck %s -check-prefix=MODULE_FILE
145 // MODULE_FILE: -fmodule-file=
147 // RUN: %clang --autocomplete=-Qunused-arguments, | FileCheck %s -check-prefix=QUNUSED_COMMA
148 // QUNUSED_COMMA-NOT: -Qunused-arguments
149 // RUN: %clang --autocomplete=-Qunused-arguments | FileCheck %s -check-prefix=QUNUSED
150 // QUNUSED: -Qunused-arguments