]> granicus.if.org Git - clang/commit
[-cxx-abi microsoft] Mangle __uuidof correctly into template parameters
authorDavid Majnemer <david.majnemer@gmail.com>
Tue, 13 Aug 2013 06:32:20 +0000 (06:32 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Tue, 13 Aug 2013 06:32:20 +0000 (06:32 +0000)
commitc80eb46a0f37bee9597f1b466013a0f6271f9318
tree0f98a6b635cbd7a393e46a0d29143862f1383cac
parent00383088ac262a998b83892056090622275d1992
[-cxx-abi microsoft] Mangle __uuidof correctly into template parameters

Summary:
It seems that __uuidof introduces a global extern "C" declaration of
type __s_GUID.  However, our implementation of __uuidof does not provide
such a declaration and thus must open-code the mangling for __uuidof in
template parameters.

This allows us to codegen scoped COM pointers and other such things.

This fixes PR16836.
Depends on D1356.

Reviewers: rnk, cdavis5x, rsmith

Reviewed By: rnk

CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1357

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188252 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/AST/ExprCXX.h
lib/AST/ExprCXX.cpp
lib/AST/MicrosoftMangle.cpp
lib/CodeGen/CodeGenModule.cpp
test/CodeGenCXX/mangle-ms-templates.cpp