From 2a52daa11b5d491941af2c0fe6f7e722aef64125 Mon Sep 17 00:00:00 2001
From: Virgile Prevosto <virgile.prevosto@m4x.org>
Date: Fri, 6 Dec 2019 15:14:37 +0100
Subject: [PATCH] [cleanup] complete cases in switch

---
 ClangVisitor.cpp | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/ClangVisitor.cpp b/ClangVisitor.cpp
index 1675c054..086d1e7c 100644
--- a/ClangVisitor.cpp
+++ b/ClangVisitor.cpp
@@ -2846,11 +2846,12 @@ exp_node FramacVisitor::makeExpression(
             type = BOBITOR; assignment = AKASSIGN; break;
           case clang::BO_Comma:
             type = BOCOMMA; assignment = AKRVALUE; break;
-          // default:
-          //   std::cerr << "Unsupported binary expression:";
-          //   expr->dump(llvm::errs(), _context->getSourceManager());
-          //   std::cerr << "\nAborting\n";
-          //   exit(2);
+          case clang::BO_Cmp: // does not seem to be fully supported by clang
+            //itself according to https://clang.llvm.org/cxx_status.html#cxx2a
+          std::cerr << "Unsupported spaceship (<=>) operator:";
+          expr->dump(llvm::errs(), _context->getSourceManager());
+          std::cerr << "\nAborting\n";
+          exit(2);
         };
         exp_node lhsPart = makeExpression(binaryOperator->getLHS(),
                                           shouldDelay,receiver);
@@ -3457,6 +3458,9 @@ compilation_constant FramacVisitor::makeConstantExpression(
       // ought to be initialized by isCXX11ConstantExpr
 #if CLANG_VERSION_MAJOR < 9
       case clang::APValue::Uninitialized: assert(false);
+#else
+      case clang::APValue::None:
+      case clang::APValue::Indeterminate: assert(false);
 #endif
       case clang::APValue::Int: {
         const llvm::APSInt& v = result.getInt();
@@ -3483,6 +3487,9 @@ compilation_constant FramacVisitor::makeConstantExpression(
       case clang::APValue::Union:
       case clang::APValue::MemberPointer:
       case clang::APValue::AddrLabelDiff:
+#if CLANG_VERSION_MAJOR >= 9
+      case clang::APValue::FixedPoint:
+#endif
         {
           std::cerr << "unsupported constant expression: ";
           expr->dump();
-- 
GitLab