]> granicus.if.org Git - clang/commitdiff
Make previous fix handle a few more edge cases.
authorEli Friedman <eli.friedman@gmail.com>
Tue, 23 Feb 2010 18:25:09 +0000 (18:25 +0000)
committerEli Friedman <eli.friedman@gmail.com>
Tue, 23 Feb 2010 18:25:09 +0000 (18:25 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96962 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/Mangle.cpp

index 123ce6133878504088bfc74587a8c61978209f53..22dbd91259c05f04e7a854b8a8a4143b25fa6efe 100644 (file)
@@ -1648,13 +1648,13 @@ bool CXXNameMangler::mangleStandardSubstitution(const NamedDecl *ND) {
 
   if (const ClassTemplateSpecializationDecl *SD =
         dyn_cast<ClassTemplateSpecializationDecl>(ND)) {
+    if (!isStdNamespace(SD->getDeclContext()))
+      return false;
+
     //    <substitution> ::= Ss # ::std::basic_string<char,
     //                            ::std::char_traits<char>,
     //                            ::std::allocator<char> >
     if (SD->getIdentifier()->isStr("basic_string")) {
-      if (!isStdNamespace(SD->getDeclContext()))
-        return false;
-
       const TemplateArgumentList &TemplateArgs = SD->getTemplateArgs();
 
       if (TemplateArgs.size() != 3)