1//===--- CommandLineArgs.h ------------------------------------------------===//
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// This file defines language options for Clang unittests.
10//
11//===----------------------------------------------------------------------===//
12
13#ifndef LLVM_CLANG_TESTING_COMMANDLINEARGS_H
14#define LLVM_CLANG_TESTING_COMMANDLINEARGS_H
15
16#include "clang/Basic/LLVM.h"
17#include "llvm/ADT/StringRef.h"
18#include <string>
19#include <vector>
20
21namespace clang {
22
23enum TestLanguage {
24 Lang_C89,
25 Lang_C99,
26 Lang_CXX03,
27 Lang_CXX11,
28 Lang_CXX14,
29 Lang_CXX17,
30 Lang_CXX20,
31 Lang_CXX23,
32 Lang_OpenCL,
33 Lang_OBJC,
34 Lang_OBJCXX
35};
36
37std::vector<std::string> getCommandLineArgsForTesting(TestLanguage Lang);
38std::vector<std::string> getCC1ArgsForTesting(TestLanguage Lang);
39
40StringRef getFilenameForTesting(TestLanguage Lang);
41
42/// Find a target name such that looking for it in TargetRegistry by that name
43/// returns the same target. We expect that there is at least one target
44/// configured with this property.
45std::string getAnyTargetForTesting();
46
47} // end namespace clang
48
49#endif
50

source code of clang/include/clang/Testing/CommandLineArgs.h