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 | e200f1cb75c10461105970f0f9c9d52f1f83e4a0 (patch) | |
tree | d22f2f4922f7b7faddf96cfc84a197c4b4dfd166 /clang/lib/Sema/TargetAttributesSema.cpp | |
parent | 9869c3a10fdb7cfa77f61e7dfcb571b137eb2569 (diff) | |
download | bcm5719-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.cpp | 34 |
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 { |