1//===-- flang/unittests/Common/FastIntSetTest.cpp ---------------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#include "gtest/gtest.h"
10#include "flang/Support/Fortran-features.h"
11
12namespace Fortran::common::details {
13
14std::string CamelCaseToLowerCaseHyphenated(std::string_view x);
15
16TEST(FortranFeaturesTest, CamelCaseToLowerCaseHyphenated) {
17 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
18 EnumToString(LanguageFeature::BackslashEscapes)),
19 "backslash-escapes");
20 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
21 EnumToString(LanguageFeature::OldDebugLines)),
22 "old-debug-lines");
23 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(EnumToString(
24 LanguageFeature::FixedFormContinuationWithColumn1Ampersand)),
25 "fixed-form-continuation-with-column1-ampersand");
26 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
27 EnumToString(LanguageFeature::LogicalAbbreviations)),
28 "logical-abbreviations");
29 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
30 EnumToString(LanguageFeature::XOROperator)),
31 "xor-operator");
32 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
33 EnumToString(LanguageFeature::PunctuationInNames)),
34 "punctuation-in-names");
35 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
36 EnumToString(LanguageFeature::OptionalFreeFormSpace)),
37 "optional-free-form-space");
38 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
39 EnumToString(LanguageFeature::BOZExtensions)),
40 "boz-extensions");
41 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
42 EnumToString(LanguageFeature::EmptyStatement)),
43 "empty-statement");
44 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
45 EnumToString(LanguageFeature::AlternativeNE)),
46 "alternative-ne");
47 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
48 EnumToString(LanguageFeature::ExecutionPartNamelist)),
49 "execution-part-namelist");
50 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
51 EnumToString(LanguageFeature::DECStructures)),
52 "dec-structures");
53 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
54 EnumToString(LanguageFeature::DoubleComplex)),
55 "double-complex");
56 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(EnumToString(LanguageFeature::Byte)),
57 "byte");
58 EXPECT_EQ(
59 CamelCaseToLowerCaseHyphenated(EnumToString(LanguageFeature::StarKind)),
60 "star-kind");
61 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
62 EnumToString(LanguageFeature::ExponentMatchingKindParam)),
63 "exponent-matching-kind-param");
64 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
65 EnumToString(LanguageFeature::QuadPrecision)),
66 "quad-precision");
67 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
68 EnumToString(LanguageFeature::SlashInitialization)),
69 "slash-initialization");
70 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
71 EnumToString(LanguageFeature::TripletInArrayConstructor)),
72 "triplet-in-array-constructor");
73 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
74 EnumToString(LanguageFeature::MissingColons)),
75 "missing-colons");
76 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
77 EnumToString(LanguageFeature::SignedComplexLiteral)),
78 "signed-complex-literal");
79 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
80 EnumToString(LanguageFeature::OldStyleParameter)),
81 "old-style-parameter");
82 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
83 EnumToString(LanguageFeature::ComplexConstructor)),
84 "complex-constructor");
85 EXPECT_EQ(
86 CamelCaseToLowerCaseHyphenated(EnumToString(LanguageFeature::PercentLOC)),
87 "percent-loc");
88 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
89 EnumToString(LanguageFeature::SignedMultOperand)),
90 "signed-mult-operand");
91 EXPECT_EQ(
92 CamelCaseToLowerCaseHyphenated(EnumToString(LanguageFeature::FileName)),
93 "file-name");
94 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
95 EnumToString(LanguageFeature::Carriagecontrol)),
96 "carriagecontrol");
97 EXPECT_EQ(
98 CamelCaseToLowerCaseHyphenated(EnumToString(LanguageFeature::Convert)),
99 "convert");
100 EXPECT_EQ(
101 CamelCaseToLowerCaseHyphenated(EnumToString(LanguageFeature::Dispose)),
102 "dispose");
103 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
104 EnumToString(LanguageFeature::IOListLeadingComma)),
105 "io-list-leading-comma");
106 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
107 EnumToString(LanguageFeature::AbbreviatedEditDescriptor)),
108 "abbreviated-edit-descriptor");
109 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
110 EnumToString(LanguageFeature::ProgramParentheses)),
111 "program-parentheses");
112 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
113 EnumToString(LanguageFeature::PercentRefAndVal)),
114 "percent-ref-and-val");
115 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
116 EnumToString(LanguageFeature::OmitFunctionDummies)),
117 "omit-function-dummies");
118 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
119 EnumToString(LanguageFeature::CrayPointer)),
120 "cray-pointer");
121 EXPECT_EQ(
122 CamelCaseToLowerCaseHyphenated(EnumToString(LanguageFeature::Hollerith)),
123 "hollerith");
124 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
125 EnumToString(LanguageFeature::ArithmeticIF)),
126 "arithmetic-if");
127 EXPECT_EQ(
128 CamelCaseToLowerCaseHyphenated(EnumToString(LanguageFeature::Assign)),
129 "assign");
130 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
131 EnumToString(LanguageFeature::AssignedGOTO)),
132 "assigned-goto");
133 EXPECT_EQ(
134 CamelCaseToLowerCaseHyphenated(EnumToString(LanguageFeature::Pause)),
135 "pause");
136 EXPECT_EQ(
137 CamelCaseToLowerCaseHyphenated(EnumToString(LanguageFeature::OpenACC)),
138 "open-acc");
139 EXPECT_EQ(
140 CamelCaseToLowerCaseHyphenated(EnumToString(LanguageFeature::OpenMP)),
141 "open-mp");
142 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(EnumToString(LanguageFeature::CUDA)),
143 "cuda");
144 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
145 EnumToString(LanguageFeature::CruftAfterAmpersand)),
146 "cruft-after-ampersand");
147 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
148 EnumToString(LanguageFeature::ClassicCComments)),
149 "classic-c-comments");
150 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
151 EnumToString(LanguageFeature::AdditionalFormats)),
152 "additional-formats");
153 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
154 EnumToString(LanguageFeature::BigIntLiterals)),
155 "big-int-literals");
156 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
157 EnumToString(LanguageFeature::RealDoControls)),
158 "real-do-controls");
159 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
160 EnumToString(LanguageFeature::EquivalenceNumericWithCharacter)),
161 "equivalence-numeric-with-character");
162 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
163 EnumToString(LanguageFeature::EquivalenceNonDefaultNumeric)),
164 "equivalence-non-default-numeric");
165 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
166 EnumToString(LanguageFeature::EquivalenceSameNonSequence)),
167 "equivalence-same-non-sequence");
168 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
169 EnumToString(LanguageFeature::AdditionalIntrinsics)),
170 "additional-intrinsics");
171 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
172 EnumToString(LanguageFeature::AnonymousParents)),
173 "anonymous-parents");
174 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
175 EnumToString(LanguageFeature::OldLabelDoEndStatements)),
176 "old-label-do-end-statements");
177 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
178 EnumToString(LanguageFeature::LogicalIntegerAssignment)),
179 "logical-integer-assignment");
180 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
181 EnumToString(LanguageFeature::EmptySourceFile)),
182 "empty-source-file");
183 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
184 EnumToString(LanguageFeature::ProgramReturn)),
185 "program-return");
186 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
187 EnumToString(LanguageFeature::ImplicitNoneTypeNever)),
188 "implicit-none-type-never");
189 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
190 EnumToString(LanguageFeature::ImplicitNoneTypeAlways)),
191 "implicit-none-type-always");
192 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
193 EnumToString(LanguageFeature::ImplicitNoneExternal)),
194 "implicit-none-external");
195 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
196 EnumToString(LanguageFeature::ForwardRefImplicitNone)),
197 "forward-ref-implicit-none");
198 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
199 EnumToString(LanguageFeature::OpenAccessAppend)),
200 "open-access-append");
201 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
202 EnumToString(LanguageFeature::BOZAsDefaultInteger)),
203 "boz-as-default-integer");
204 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
205 EnumToString(LanguageFeature::DistinguishableSpecifics)),
206 "distinguishable-specifics");
207 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
208 EnumToString(LanguageFeature::DefaultSave)),
209 "default-save");
210 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
211 EnumToString(LanguageFeature::PointerInSeqType)),
212 "pointer-in-seq-type");
213 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
214 EnumToString(LanguageFeature::NonCharacterFormat)),
215 "non-character-format");
216 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
217 EnumToString(LanguageFeature::SaveMainProgram)),
218 "save-main-program");
219 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
220 EnumToString(LanguageFeature::SaveBigMainProgramVariables)),
221 "save-big-main-program-variables");
222 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
223 EnumToString(LanguageFeature::DistinctArrayConstructorLengths)),
224 "distinct-array-constructor-lengths");
225 EXPECT_EQ(
226 CamelCaseToLowerCaseHyphenated(EnumToString(LanguageFeature::PPCVector)),
227 "ppc-vector");
228 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
229 EnumToString(LanguageFeature::RelaxedIntentInChecking)),
230 "relaxed-intent-in-checking");
231 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
232 EnumToString(LanguageFeature::ForwardRefImplicitNoneData)),
233 "forward-ref-implicit-none-data");
234 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
235 EnumToString(LanguageFeature::NullActualForAllocatable)),
236 "null-actual-for-allocatable");
237 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(EnumToString(
238 LanguageFeature::ActualIntegerConvertedToSmallerKind)),
239 "actual-integer-converted-to-smaller-kind");
240 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
241 EnumToString(LanguageFeature::HollerithOrCharacterAsBOZ)),
242 "hollerith-or-character-as-boz");
243 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
244 EnumToString(LanguageFeature::BindingAsProcedure)),
245 "binding-as-procedure");
246 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
247 EnumToString(LanguageFeature::StatementFunctionExtensions)),
248 "statement-function-extensions");
249 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(EnumToString(
250 LanguageFeature::UseGenericIntrinsicWhenSpecificDoesntMatch)),
251 "use-generic-intrinsic-when-specific-doesnt-match");
252 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
253 EnumToString(LanguageFeature::DataStmtExtensions)),
254 "data-stmt-extensions");
255 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
256 EnumToString(LanguageFeature::RedundantContiguous)),
257 "redundant-contiguous");
258 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
259 EnumToString(LanguageFeature::RedundantAttribute)),
260 "redundant-attribute");
261 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
262 EnumToString(LanguageFeature::InitBlankCommon)),
263 "init-blank-common");
264 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
265 EnumToString(LanguageFeature::EmptyBindCDerivedType)),
266 "empty-bind-c-derived-type");
267 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
268 EnumToString(LanguageFeature::MiscSourceExtensions)),
269 "misc-source-extensions");
270 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
271 EnumToString(LanguageFeature::AllocateToOtherLength)),
272 "allocate-to-other-length");
273 EXPECT_EQ(
274 CamelCaseToLowerCaseHyphenated(EnumToString(LanguageFeature::LongNames)),
275 "long-names");
276 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
277 EnumToString(LanguageFeature::IntrinsicAsSpecific)),
278 "intrinsic-as-specific");
279 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
280 EnumToString(LanguageFeature::BenignNameClash)),
281 "benign-name-clash");
282 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
283 EnumToString(LanguageFeature::BenignRedundancy)),
284 "benign-redundancy");
285 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(EnumToString(
286 LanguageFeature::NullMoldAllocatableComponentValue)),
287 "null-mold-allocatable-component-value");
288 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
289 EnumToString(LanguageFeature::NopassScalarBase)),
290 "nopass-scalar-base");
291 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
292 EnumToString(LanguageFeature::MiscUseExtensions)),
293 "misc-use-extensions");
294 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
295 EnumToString(LanguageFeature::ImpliedDoIndexScope)),
296 "implied-do-index-scope");
297 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
298 EnumToString(LanguageFeature::DistinctCommonSizes)),
299 "distinct-common-sizes");
300 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
301 EnumToString(LanguageFeature::OddIndexVariableRestrictions)),
302 "odd-index-variable-restrictions");
303 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
304 EnumToString(LanguageFeature::IndistinguishableSpecifics)),
305 "indistinguishable-specifics");
306 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
307 EnumToString(LanguageFeature::SubroutineAndFunctionSpecifics)),
308 "subroutine-and-function-specifics");
309 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
310 EnumToString(LanguageFeature::EmptySequenceType)),
311 "empty-sequence-type");
312 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
313 EnumToString(LanguageFeature::NonSequenceCrayPointee)),
314 "non-sequence-cray-pointee");
315 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
316 EnumToString(LanguageFeature::BranchIntoConstruct)),
317 "branch-into-construct");
318 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
319 EnumToString(LanguageFeature::BadBranchTarget)),
320 "bad-branch-target");
321 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
322 EnumToString(LanguageFeature::HollerithPolymorphic)),
323 "hollerith-polymorphic");
324 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
325 EnumToString(LanguageFeature::ListDirectedSize)),
326 "list-directed-size");
327 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
328 EnumToString(LanguageFeature::NonBindCInteroperability)),
329 "non-bind-c-interoperability");
330 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
331 EnumToString(LanguageFeature::CudaManaged)),
332 "cuda-managed");
333 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
334 EnumToString(LanguageFeature::CudaUnified)),
335 "cuda-unified");
336 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(EnumToString(LanguageFeature::
337 PolymorphicActualAllocatableOrPointerToMonomorphicDummy)),
338 "polymorphic-actual-allocatable-or-pointer-to-monomorphic-dummy");
339 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
340 EnumToString(LanguageFeature::RelaxedPureDummy)),
341 "relaxed-pure-dummy");
342 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(EnumToString(
343 LanguageFeature::UndefinableAsynchronousOrVolatileActual)),
344 "undefinable-asynchronous-or-volatile-actual");
345 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
346 EnumToString(LanguageFeature::AutomaticInMainProgram)),
347 "automatic-in-main-program");
348 EXPECT_EQ(
349 CamelCaseToLowerCaseHyphenated(EnumToString(LanguageFeature::PrintCptr)),
350 "print-cptr");
351 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
352 EnumToString(LanguageFeature::SavedLocalInSpecExpr)),
353 "saved-local-in-spec-expr");
354 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
355 EnumToString(LanguageFeature::PrintNamelist)),
356 "print-namelist");
357 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(EnumToString(
358 LanguageFeature::AssumedRankPassedToNonAssumedRank)),
359 "assumed-rank-passed-to-non-assumed-rank");
360 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
361 EnumToString(LanguageFeature::IgnoreIrrelevantAttributes)),
362 "ignore-irrelevant-attributes");
363 EXPECT_EQ(
364 CamelCaseToLowerCaseHyphenated(EnumToString(LanguageFeature::Unsigned)),
365 "unsigned");
366 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
367 EnumToString(LanguageFeature::AmbiguousStructureConstructor)),
368 "ambiguous-structure-constructor");
369 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
370 EnumToString(LanguageFeature::ContiguousOkForSeqAssociation)),
371 "contiguous-ok-for-seq-association");
372 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
373 EnumToString(LanguageFeature::ForwardRefExplicitTypeDummy)),
374 "forward-ref-explicit-type-dummy");
375 EXPECT_EQ(
376 CamelCaseToLowerCaseHyphenated(EnumToString(UsageWarning::Portability)),
377 "portability");
378 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
379 EnumToString(UsageWarning::PointerToUndefinable)),
380 "pointer-to-undefinable");
381 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
382 EnumToString(UsageWarning::NonTargetPassedToTarget)),
383 "non-target-passed-to-target");
384 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
385 EnumToString(UsageWarning::PointerToPossibleNoncontiguous)),
386 "pointer-to-possible-noncontiguous");
387 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
388 EnumToString(UsageWarning::ShortCharacterActual)),
389 "short-character-actual");
390 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
391 EnumToString(UsageWarning::ShortArrayActual)),
392 "short-array-actual");
393 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
394 EnumToString(UsageWarning::ImplicitInterfaceActual)),
395 "implicit-interface-actual");
396 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
397 EnumToString(UsageWarning::PolymorphicTransferArg)),
398 "polymorphic-transfer-arg");
399 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
400 EnumToString(UsageWarning::PointerComponentTransferArg)),
401 "pointer-component-transfer-arg");
402 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
403 EnumToString(UsageWarning::TransferSizePresence)),
404 "transfer-size-presence");
405 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
406 EnumToString(UsageWarning::F202XAllocatableBreakingChange)),
407 "f202-x-allocatable-breaking-change");
408 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
409 EnumToString(UsageWarning::OptionalMustBePresent)),
410 "optional-must-be-present");
411 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
412 EnumToString(UsageWarning::CommonBlockPadding)),
413 "common-block-padding");
414 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
415 EnumToString(UsageWarning::LogicalVsCBool)),
416 "logical-vs-c-bool");
417 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
418 EnumToString(UsageWarning::BindCCharLength)),
419 "bind-c-char-length");
420 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
421 EnumToString(UsageWarning::ProcDummyArgShapes)),
422 "proc-dummy-arg-shapes");
423 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
424 EnumToString(UsageWarning::ExternalNameConflict)),
425 "external-name-conflict");
426 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
427 EnumToString(UsageWarning::FoldingException)),
428 "folding-exception");
429 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
430 EnumToString(UsageWarning::FoldingAvoidsRuntimeCrash)),
431 "folding-avoids-runtime-crash");
432 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
433 EnumToString(UsageWarning::FoldingValueChecks)),
434 "folding-value-checks");
435 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
436 EnumToString(UsageWarning::FoldingFailure)),
437 "folding-failure");
438 EXPECT_EQ(
439 CamelCaseToLowerCaseHyphenated(EnumToString(UsageWarning::FoldingLimit)),
440 "folding-limit");
441 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
442 EnumToString(UsageWarning::Interoperability)),
443 "interoperability");
444 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
445 EnumToString(UsageWarning::CharacterInteroperability)),
446 "character-interoperability");
447 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(EnumToString(UsageWarning::Bounds)),
448 "bounds");
449 EXPECT_EQ(
450 CamelCaseToLowerCaseHyphenated(EnumToString(UsageWarning::Preprocessing)),
451 "preprocessing");
452 EXPECT_EQ(
453 CamelCaseToLowerCaseHyphenated(EnumToString(UsageWarning::Scanning)),
454 "scanning");
455 EXPECT_EQ(
456 CamelCaseToLowerCaseHyphenated(EnumToString(UsageWarning::OpenAccUsage)),
457 "open-acc-usage");
458 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
459 EnumToString(UsageWarning::ProcPointerCompatibility)),
460 "proc-pointer-compatibility");
461 EXPECT_EQ(
462 CamelCaseToLowerCaseHyphenated(EnumToString(UsageWarning::VoidMold)),
463 "void-mold");
464 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
465 EnumToString(UsageWarning::KnownBadImplicitInterface)),
466 "known-bad-implicit-interface");
467 EXPECT_EQ(
468 CamelCaseToLowerCaseHyphenated(EnumToString(UsageWarning::EmptyCase)),
469 "empty-case");
470 EXPECT_EQ(
471 CamelCaseToLowerCaseHyphenated(EnumToString(UsageWarning::CaseOverflow)),
472 "case-overflow");
473 EXPECT_EQ(
474 CamelCaseToLowerCaseHyphenated(EnumToString(UsageWarning::CUDAUsage)),
475 "cuda-usage");
476 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
477 EnumToString(UsageWarning::IgnoreTKRUsage)),
478 "ignore-tkr-usage");
479 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
480 EnumToString(UsageWarning::ExternalInterfaceMismatch)),
481 "external-interface-mismatch");
482 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
483 EnumToString(UsageWarning::DefinedOperatorArgs)),
484 "defined-operator-args");
485 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(EnumToString(UsageWarning::Final)),
486 "final");
487 EXPECT_EQ(
488 CamelCaseToLowerCaseHyphenated(EnumToString(UsageWarning::ZeroDoStep)),
489 "zero-do-step");
490 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
491 EnumToString(UsageWarning::UnusedForallIndex)),
492 "unused-forall-index");
493 EXPECT_EQ(
494 CamelCaseToLowerCaseHyphenated(EnumToString(UsageWarning::OpenMPUsage)),
495 "open-mp-usage");
496 EXPECT_EQ(
497 CamelCaseToLowerCaseHyphenated(EnumToString(UsageWarning::DataLength)),
498 "data-length");
499 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
500 EnumToString(UsageWarning::IgnoredDirective)),
501 "ignored-directive");
502 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
503 EnumToString(UsageWarning::HomonymousSpecific)),
504 "homonymous-specific");
505 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
506 EnumToString(UsageWarning::HomonymousResult)),
507 "homonymous-result");
508 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
509 EnumToString(UsageWarning::IgnoredIntrinsicFunctionType)),
510 "ignored-intrinsic-function-type");
511 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
512 EnumToString(UsageWarning::PreviousScalarUse)),
513 "previous-scalar-use");
514 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
515 EnumToString(UsageWarning::RedeclaredInaccessibleComponent)),
516 "redeclared-inaccessible-component");
517 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
518 EnumToString(UsageWarning::ImplicitShared)),
519 "implicit-shared");
520 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
521 EnumToString(UsageWarning::IndexVarRedefinition)),
522 "index-var-redefinition");
523 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
524 EnumToString(UsageWarning::IncompatibleImplicitInterfaces)),
525 "incompatible-implicit-interfaces");
526 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
527 EnumToString(UsageWarning::VectorSubscriptFinalization)),
528 "vector-subscript-finalization");
529 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
530 EnumToString(UsageWarning::UndefinedFunctionResult)),
531 "undefined-function-result");
532 EXPECT_EQ(
533 CamelCaseToLowerCaseHyphenated(EnumToString(UsageWarning::UselessIomsg)),
534 "useless-iomsg");
535 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
536 EnumToString(UsageWarning::MismatchingDummyProcedure)),
537 "mismatching-dummy-procedure");
538 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
539 EnumToString(UsageWarning::SubscriptedEmptyArray)),
540 "subscripted-empty-array");
541 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
542 EnumToString(UsageWarning::UnsignedLiteralTruncation)),
543 "unsigned-literal-truncation");
544 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(EnumToString(
545 UsageWarning::CompatibleDeclarationsFromDistinctModules)),
546 "compatible-declarations-from-distinct-modules");
547 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(EnumToString(
548 UsageWarning::NullActualForDefaultIntentAllocatable)),
549 "null-actual-for-default-intent-allocatable");
550 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(EnumToString(
551 UsageWarning::UseAssociationIntoSameNameSubprogram)),
552 "use-association-into-same-name-subprogram");
553 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
554 EnumToString(UsageWarning::HostAssociatedIntentOutInSpecExpr)),
555 "host-associated-intent-out-in-spec-expr");
556 EXPECT_EQ(CamelCaseToLowerCaseHyphenated(
557 EnumToString(UsageWarning::NonVolatilePointerToVolatile)),
558 "non-volatile-pointer-to-volatile");
559}
560
561} // namespace Fortran::common::details
562

Provided by KDAB

Privacy Policy
Improve your Profiling and Debugging skills
Find out more

source code of flang/unittests/Common/FortranFeaturesTest.cpp