aboutsummaryrefslogtreecommitdiff
path: root/lib/Sema/TargetAttributesSema.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2012-05-13 03:25:18 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2012-05-13 03:25:18 +0000
commit599f1b7100745efacb7ded6c176cb7feade114a5 (patch)
treefb547a4d9cff8db46fa19d534b09fc782860c591 /lib/Sema/TargetAttributesSema.cpp
parent420efd83934ee78f04d73880e2ed1b7fdef3328c (diff)
Refactor all the
if (Inherited) Attr->setInherited(true); To a central location. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156728 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/TargetAttributesSema.cpp')
-rw-r--r--lib/Sema/TargetAttributesSema.cpp34
1 files changed, 13 insertions, 21 deletions
diff --git a/lib/Sema/TargetAttributesSema.cpp b/lib/Sema/TargetAttributesSema.cpp
index 9ace9ad65a..893c3e4319 100644
--- a/lib/Sema/TargetAttributesSema.cpp
+++ b/lib/Sema/TargetAttributesSema.cpp
@@ -151,22 +151,16 @@ static void HandleX86ForceAlignArgPointerAttr(Decl *D,
S.Context));
}
-bool Sema::mergeDLLImportAttr(Decl *D, SourceRange Range, bool Inherited) {
+DLLImportAttr *Sema::mergeDLLImportAttr(Decl *D, SourceRange Range) {
if (D->hasAttr<DLLExportAttr>()) {
Diag(Range.getBegin(), diag::warn_attribute_ignored) << "dllimport";
- return false;
+ return NULL;
}
if (D->hasAttr<DLLImportAttr>())
- return false;
+ return NULL;
- DLLImportAttr *Attr =
- ::new (Context) DLLImportAttr(Range, Context);
- if (Inherited)
- Attr->setInherited(true);
- D->addAttr(Attr);
-
- return true;
+ return ::new (Context) DLLImportAttr(Range, Context);
}
static void HandleDLLImportAttr(Decl *D, const AttributeList &Attr, Sema &S) {
@@ -195,25 +189,21 @@ static void HandleDLLImportAttr(Decl *D, const AttributeList &Attr, Sema &S) {
return;
}
- S.mergeDLLImportAttr(D, Attr.getRange(), false);
+ DLLImportAttr *NewAttr = S.mergeDLLImportAttr(D, Attr.getRange());
+ if (NewAttr)
+ D->addAttr(NewAttr);
}
-bool Sema::mergeDLLExportAttr(Decl *D, SourceRange Range, bool Inherited) {
+DLLExportAttr *Sema::mergeDLLExportAttr(Decl *D, SourceRange Range) {
if (DLLImportAttr *Import = D->getAttr<DLLImportAttr>()) {
Diag(Import->getLocation(), diag::warn_attribute_ignored) << "dllimport";
D->dropAttr<DLLImportAttr>();
}
if (D->hasAttr<DLLExportAttr>())
- return false;
-
- DLLExportAttr *Attr =
- ::new (Context) DLLExportAttr(Range, Context);
- if (Inherited)
- Attr->setInherited(true);
- D->addAttr(Attr);
+ return NULL;
- return true;
+ return ::new (Context) DLLExportAttr(Range, Context);
}
static void HandleDLLExportAttr(Decl *D, const AttributeList &Attr, Sema &S) {
@@ -239,7 +229,9 @@ static void HandleDLLExportAttr(Decl *D, const AttributeList &Attr, Sema &S) {
return;
}
- S.mergeDLLExportAttr(D, Attr.getRange(), false);
+ DLLExportAttr *NewAttr = S.mergeDLLExportAttr(D, Attr.getRange());
+ if (NewAttr)
+ D->addAttr(NewAttr);
}
namespace {