<div class="gmail_quote">On Sat, Jun 9, 2012 at 2:41 PM, Charles Davis <span dir="ltr"><<a href="mailto:cdavis@mymail.mines.edu" target="_blank">cdavis@mymail.mines.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,<br>
<br>
This is a grab bag of various fixes to the VC++ name mangler.<br>
<br>
- The mangler is now capable of mangling the names of virtual function tables--but not virtual base tables. That needs a serious refactoring of the ManglerContext's interface.<br>
- Local names are now mangled correctly--complete with anonymous numbered scopes. I needed this to make the virtual table test case--which I copied from the Itanium ABI test cases--work.<br>
- Instead of throwing an llvm_unreachable(), unimplemented cases now raise a compiler error. (This was the hardest part, since I needed source locations to give to the DiagnosticsEngine.<br>
<br>
This is a big patch, so I wanted to run it past the list before I commit. OK to commit?<br></blockquote><div><br></div><div>@@ -1087,10 +1211,22 @@</div><div><div>       Dimensions.push_back(CAT->getSize());</div><div>
       ElementTy = CAT->getElementType();</div><div>     } else if (ElementTy->isVariableArrayType()) {</div><div>-      llvm_unreachable("Don't know how to mangle VLAs!");</div><div>+      const VariableArrayType *VAT =</div>
<div>+        static_cast<const VariableArrayType *>(ElementTy.getTypePtr());</div></div><div><br></div><div>Don't do this, use ASTContext::getAsVariableArrayType(ElementTy) instead.</div><div><br></div><div>Can you use a SmallVector<TemplateArgumentLoc> rather than allocating ASTTemplateArgumentListInfo objects in isTemplate?</div>
<div><br></div><div>Several of your "cannot mangle this yet" diagnostics have unwanted fallthrough. Should these be fatal?</div><div><br></div><div>I would remove "Oddly enough, " throughout.</div><div>
<br></div><div>Is there a reason to create a new test file rather than adding tests to mangle-ms.cpp?</div></div>