summaryrefslogtreecommitdiffstats
path: root/clang/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
commite200f1cb75c10461105970f0f9c9d52f1f83e4a0 (patch)
treed22f2f4922f7b7faddf96cfc84a197c4b4dfd166 /clang/lib/Sema/TargetAttributesSema.cpp
parent9869c3a10fdb7cfa77f61e7dfcb571b137eb2569 (diff)
downloadbcm5719-llvm-e200f1cb75c10461105970f0f9c9d52f1f83e4a0.tar.gz
bcm5719-llvm-e200f1cb75c10461105970f0f9c9d52f1f83e4a0.zip
Refactor all the
if (Inherited) Attr->setInherited(true); To a central location. llvm-svn: 156728
Diffstat (limited to 'clang/lib/Sema/TargetAttributesSema.cpp')
-rw-r--r--clang/lib/Sema/TargetAttributesSema.cpp34
1 files changed, 13 insertions, 21 deletions
diff --git a/clang/lib/Sema/TargetAttributesSema.cpp b/clang/lib/Sema/TargetAttributesSema.cpp
index 9ace9ad65ac..893c3e4319d 100644
--- a/clang/lib/Sema/TargetAttributesSema.cpp
+++ b/clang/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 {
OpenPOWER on IntegriCloud