[clang] [clang] Language to String function (PR #69487)

Aaron Ballman via cfe-commits cfe-commits at lists.llvm.org
Thu Oct 26 06:22:17 PDT 2023


================
@@ -10,9 +10,49 @@
 #include "clang/Config/config.h"
 #include "llvm/ADT/StringSwitch.h"
 #include "llvm/Support/ErrorHandling.h"
+#include "llvm/Support/FormatVariadic.h"
 #include "llvm/TargetParser/Triple.h"
 using namespace clang;
 
+const char *clang::languageToString(Language L) {
+  // I would like to make this function and the definition of Language
+  // in the .h file simply expand the contents of a .def file.
+  // However, in the .h the members of the enum have doxygen annotations
+  // and/or comments which would be lost.
+  switch (L) {
+  case Language::Unknown:
+    return "Unknown";
+  case Language::Asm:
+    return "Asm";
+  case Language::LLVM_IR:
+    return "LLVM_IR";
+  case Language::C:
+    return "C";
+  case Language::CXX:
+    return "CXX";
----------------
AaronBallman wrote:

I wonder how often people are going to call this expecting to get back `C++` instead of `CXX` (similar question for others)...

https://github.com/llvm/llvm-project/pull/69487


More information about the cfe-commits mailing list