CodeGen: Emit some functions as weak_odr under -fms-compatibility
authorDavid Majnemer <david.majnemer@gmail.com>
Wed, 2 Apr 2014 23:17:29 +0000 (23:17 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Wed, 2 Apr 2014 23:17:29 +0000 (23:17 +0000)
commit54e3ba5ace52bcdc0d20d69f715c202a31d8c525
treee6bea97dce3a77aa76100538736bddb69c28f36e
parentb0abeb098418fea4b87a7bdc0f66d2942d0ca77e
CodeGen: Emit some functions as weak_odr under -fms-compatibility

Summary:
MSVC always emits inline functions marked with the extern storage class
specifier.  The result is something similar to the opposite of
__attribute__((gnu_inline)).

This extension is also available in C.

This fixes PR19264.

Reviewers: rnk, rsmith

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

llvm-svn: 205485
clang/include/clang/AST/ASTContext.h
clang/include/clang/AST/Decl.h
clang/include/clang/Basic/Linkage.h
clang/lib/AST/ASTContext.cpp
clang/lib/AST/Decl.cpp
clang/lib/CodeGen/CodeGenModule.cpp
clang/test/CodeGen/inline.c
clang/test/CodeGenCXX/inline-functions.cpp