On Sat, Jun 9, 2012 at 2:41 PM, Charles Davis <[email protected]>wrote:
> Hi,
>
> This is a grab bag of various fixes to the VC++ name mangler.
>
> - 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.
> - 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.
> - 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.
>
> This is a big patch, so I wanted to run it past the list before I commit.
> OK to commit?
>
@@ -1087,10 +1211,22 @@
Dimensions.push_back(CAT->getSize());
ElementTy = CAT->getElementType();
} else if (ElementTy->isVariableArrayType()) {
- llvm_unreachable("Don't know how to mangle VLAs!");
+ const VariableArrayType *VAT =
+ static_cast<const VariableArrayType *>(ElementTy.getTypePtr());
Don't do this, use ASTContext::getAsVariableArrayType(ElementTy) instead.
Can you use a SmallVector<TemplateArgumentLoc> rather than allocating
ASTTemplateArgumentListInfo objects in isTemplate?
Several of your "cannot mangle this yet" diagnostics have unwanted
fallthrough. Should these be fatal?
I would remove "Oddly enough, " throughout.
Is there a reason to create a new test file rather than adding tests to
mangle-ms.cpp?
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits