diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2012-05-13 03:25:18 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2012-05-13 03:25:18 +0000 |
commit | 599f1b7100745efacb7ded6c176cb7feade114a5 (patch) | |
tree | fb547a4d9cff8db46fa19d534b09fc782860c591 /lib/Sema/TargetAttributesSema.cpp | |
parent | 420efd83934ee78f04d73880e2ed1b7fdef3328c (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.cpp | 34 |
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 { |