[MS ABI] Replace dead code with an assertion
authorDavid Majnemer <david.majnemer@gmail.com>
Thu, 31 Dec 2015 05:36:50 +0000 (05:36 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Thu, 31 Dec 2015 05:36:50 +0000 (05:36 +0000)
As per C++ [dcl.ref]p1, cv-qualified references are not valid. As such,
change the mangler to assert that this event does not happen.

llvm-svn: 256662

clang/lib/AST/MicrosoftMangle.cpp

index 2f9ab71652c64c251b365e1bdc4b6a2e0a30e7cc..79f41bfb47d31b919f6a7e116d1c9fb601adeb9b 100644 (file)
@@ -2215,7 +2215,8 @@ void MicrosoftCXXNameMangler::mangleType(const ObjCObjectPointerType *T,
 void MicrosoftCXXNameMangler::mangleType(const LValueReferenceType *T,
                                          Qualifiers Quals, SourceRange Range) {
   QualType PointeeType = T->getPointeeType();
-  Out << (Quals.hasVolatile() ? 'B' : 'A');
+  assert(!Quals.hasConst() && !Quals.hasVolatile() && "unexpected qualifier!");
+  Out << 'A';
   manglePointerExtQualifiers(Quals, PointeeType);
   mangleType(PointeeType, Range);
 }
@@ -2226,7 +2227,8 @@ void MicrosoftCXXNameMangler::mangleType(const LValueReferenceType *T,
 void MicrosoftCXXNameMangler::mangleType(const RValueReferenceType *T,
                                          Qualifiers Quals, SourceRange Range) {
   QualType PointeeType = T->getPointeeType();
-  Out << (Quals.hasVolatile() ? "$$R" : "$$Q");
+  assert(!Quals.hasConst() && !Quals.hasVolatile() && "unexpected qualifier!");
+  Out << "$$Q";
   manglePointerExtQualifiers(Quals, PointeeType);
   mangleType(PointeeType, Range);
 }