Home | History | Annotate | Line # | Download | only in Testing
      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