summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaDeclAttr.cpp
diff options
context:
space:
mode:
authorCharles Davis <cdavis5x@gmail.com>2016-08-08 21:19:08 +0000
committerCharles Davis <cdavis5x@gmail.com>2016-08-08 21:19:08 +0000
commit0e37911334775fe64070ba38e2642b35b5c38cb6 (patch)
tree2daa4e4b6a92d5d76e7951b19a8a42c7da5a17f9 /clang/lib/Sema/SemaDeclAttr.cpp
parentef313059e528f0bdb7e42104671eaca48e3b68c9 (diff)
downloadbcm5719-llvm-0e37911334775fe64070ba38e2642b35b5c38cb6.tar.gz
bcm5719-llvm-0e37911334775fe64070ba38e2642b35b5c38cb6.zip
Revert "[Attr] Add support for the `ms_hook_prologue` attribute."
This reverts commit r278050. It depends on r278048, which will be reverted. llvm-svn: 278052
Diffstat (limited to 'clang/lib/Sema/SemaDeclAttr.cpp')
-rw-r--r--clang/lib/Sema/SemaDeclAttr.cpp19
1 files changed, 11 insertions, 8 deletions
diff --git a/clang/lib/Sema/SemaDeclAttr.cpp b/clang/lib/Sema/SemaDeclAttr.cpp
index 5dbe7aa52ea..d74cebc718c 100644
--- a/clang/lib/Sema/SemaDeclAttr.cpp
+++ b/clang/lib/Sema/SemaDeclAttr.cpp
@@ -1664,6 +1664,15 @@ static void handleCommonAttr(Sema &S, Decl *D, const AttributeList &Attr) {
D->addAttr(CA);
}
+static void handleNakedAttr(Sema &S, Decl *D, const AttributeList &Attr) {
+ if (checkAttrMutualExclusion<DisableTailCallsAttr>(S, D, Attr.getRange(),
+ Attr.getName()))
+ return;
+
+ D->addAttr(::new (S.Context) NakedAttr(Attr.getRange(), S.Context,
+ Attr.getAttributeSpellingListIndex()));
+}
+
static void handleNoReturnAttr(Sema &S, Decl *D, const AttributeList &attr) {
if (hasDeclarator(D)) return;
@@ -3664,9 +3673,7 @@ OptimizeNoneAttr *Sema::mergeOptimizeNoneAttr(Decl *D, SourceRange Range,
static void handleAlwaysInlineAttr(Sema &S, Decl *D,
const AttributeList &Attr) {
if (checkAttrMutualExclusion<NotTailCalledAttr>(S, D, Attr.getRange(),
- Attr.getName()) ||
- checkAttrMutualExclusion<MSHookPrologueAttr>(S, D, Attr.getRange(),
- Attr.getName()))
+ Attr.getName()))
return;
if (AlwaysInlineAttr *Inline = S.mergeAlwaysInlineAttr(
@@ -5545,8 +5552,7 @@ static void ProcessDeclAttribute(Sema &S, Scope *scope, Decl *D,
handleHotAttr(S, D, Attr);
break;
case AttributeList::AT_Naked:
- handleSimpleAttributeWithExclusions<NakedAttr, DisableTailCallsAttr,
- MSHookPrologueAttr>(S, D, Attr);
+ handleNakedAttr(S, D, Attr);
break;
case AttributeList::AT_NoReturn:
handleNoReturnAttr(S, D, Attr);
@@ -5774,9 +5780,6 @@ static void ProcessDeclAttribute(Sema &S, Scope *scope, Decl *D,
break;
case AttributeList::AT_LayoutVersion:
handleLayoutVersion(S, D, Attr);
- case AttributeList::AT_MSHookPrologue:
- handleSimpleAttributeWithExclusions<MSHookPrologueAttr, NakedAttr,
- AlwaysInlineAttr>(S, D, Attr);
break;
case AttributeList::AT_MSNoVTable:
handleSimpleAttribute<MSNoVTableAttr>(S, D, Attr);
OpenPOWER on IntegriCloud