1 1.1 joerg //===--- CommandLineArgs.cpp ----------------------------------------------===// 2 1.1 joerg // 3 1.1 joerg // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 1.1 joerg // See https://llvm.org/LICENSE.txt for license information. 5 1.1 joerg // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 1.1 joerg // 7 1.1 joerg //===----------------------------------------------------------------------===// 8 1.1 joerg 9 1.1 joerg #include "clang/Testing/CommandLineArgs.h" 10 1.1 joerg #include "llvm/Support/ErrorHandling.h" 11 1.1 joerg 12 1.1 joerg namespace clang { 13 1.1 joerg 14 1.1 joerg std::vector<std::string> getCommandLineArgsForTesting(TestLanguage Lang) { 15 1.1 joerg std::vector<std::string> Args; 16 1.1 joerg // Test with basic arguments. 17 1.1 joerg switch (Lang) { 18 1.1 joerg case Lang_C89: 19 1.1 joerg Args = {"-x", "c", "-std=c89"}; 20 1.1 joerg break; 21 1.1 joerg case Lang_C99: 22 1.1 joerg Args = {"-x", "c", "-std=c99"}; 23 1.1 joerg break; 24 1.1 joerg case Lang_CXX03: 25 1.1 joerg Args = {"-std=c++03", "-frtti"}; 26 1.1 joerg break; 27 1.1 joerg case Lang_CXX11: 28 1.1 joerg Args = {"-std=c++11", "-frtti"}; 29 1.1 joerg break; 30 1.1 joerg case Lang_CXX14: 31 1.1 joerg Args = {"-std=c++14", "-frtti"}; 32 1.1 joerg break; 33 1.1 joerg case Lang_CXX17: 34 1.1 joerg Args = {"-std=c++17", "-frtti"}; 35 1.1 joerg break; 36 1.1 joerg case Lang_CXX20: 37 1.1 joerg Args = {"-std=c++20", "-frtti"}; 38 1.1 joerg break; 39 1.1 joerg case Lang_OBJCXX: 40 1.1 joerg Args = {"-x", "objective-c++", "-frtti"}; 41 1.1 joerg break; 42 1.1 joerg case Lang_OpenCL: 43 1.1 joerg llvm_unreachable("Not implemented yet!"); 44 1.1 joerg } 45 1.1 joerg return Args; 46 1.1 joerg } 47 1.1 joerg 48 1.1 joerg StringRef getFilenameForTesting(TestLanguage Lang) { 49 1.1 joerg switch (Lang) { 50 1.1 joerg case Lang_C89: 51 1.1 joerg case Lang_C99: 52 1.1 joerg return "input.c"; 53 1.1 joerg 54 1.1 joerg case Lang_CXX03: 55 1.1 joerg case Lang_CXX11: 56 1.1 joerg case Lang_CXX14: 57 1.1 joerg case Lang_CXX17: 58 1.1 joerg case Lang_CXX20: 59 1.1 joerg return "input.cc"; 60 1.1 joerg 61 1.1 joerg case Lang_OpenCL: 62 1.1 joerg return "input.cl"; 63 1.1 joerg 64 1.1 joerg case Lang_OBJCXX: 65 1.1 joerg return "input.mm"; 66 1.1 joerg } 67 1.1 joerg llvm_unreachable("Unhandled TestLanguage enum"); 68 1.1 joerg } 69 1.1 joerg 70 1.1 joerg } // end namespace clang 71