Language.cpp 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. //===------ unittest/AST/Language.cpp - AST unit test support -------------===//
  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 AST unittests.
  10. //
  11. //===----------------------------------------------------------------------===//
  12. #include "Language.h"
  13. namespace clang {
  14. namespace ast_matchers {
  15. ArgVector getBasicRunOptionsForLanguage(Language Lang) {
  16. ArgVector BasicArgs;
  17. // Test with basic arguments.
  18. switch (Lang) {
  19. case Lang_C:
  20. BasicArgs = {"-x", "c", "-std=c99"};
  21. break;
  22. case Lang_C89:
  23. BasicArgs = {"-x", "c", "-std=c89"};
  24. break;
  25. case Lang_CXX:
  26. BasicArgs = {"-std=c++98", "-frtti"};
  27. break;
  28. case Lang_CXX11:
  29. BasicArgs = {"-std=c++11", "-frtti"};
  30. break;
  31. case Lang_CXX14:
  32. BasicArgs = {"-std=c++14", "-frtti"};
  33. break;
  34. case Lang_CXX2a:
  35. BasicArgs = {"-std=c++2a", "-frtti"};
  36. break;
  37. case Lang_OpenCL:
  38. case Lang_OBJCXX:
  39. llvm_unreachable("Not implemented yet!");
  40. }
  41. return BasicArgs;
  42. }
  43. } // end namespace ast_matchers
  44. } // end namespace clang