summaryrefslogtreecommitdiff
path: root/lib/IR/Attributes.cpp
diff options
context:
space:
mode:
authorReid Kleckner <reid@kleckner.net>2013-04-29 18:23:53 +0000
committerReid Kleckner <reid@kleckner.net>2013-04-29 18:23:53 +0000
commitf2e83499fcc41484cb5dac073c4fe87525926d2b (patch)
tree2d205544b2ec8660278d784271682551ed4848ea /lib/IR/Attributes.cpp
parentd2755af8bda2e0fd80efb46556485c4cdbe8704a (diff)
downloadllvm-f2e83499fcc41484cb5dac073c4fe87525926d2b.tar.gz
llvm-f2e83499fcc41484cb5dac073c4fe87525926d2b.tar.bz2
llvm-f2e83499fcc41484cb5dac073c4fe87525926d2b.tar.xz
Revert "revert r179735, it has no testcases, and doesn't really make sense."
This un-reverts r179735 and reverts commit r180574. This fixes assertion failures for me locally and should fix the failures on Windows reported widely on llvm-dev. We should check if the bots caught this and if so why not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180722 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/IR/Attributes.cpp')
-rw-r--r--lib/IR/Attributes.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/lib/IR/Attributes.cpp b/lib/IR/Attributes.cpp
index 834784408e..80968dbd1f 100644
--- a/lib/IR/Attributes.cpp
+++ b/lib/IR/Attributes.cpp
@@ -483,13 +483,16 @@ unsigned AttributeSetNode::getStackAlignment() const {
return 0;
}
-std::string AttributeSetNode::getAsString(bool InAttrGrp) const {
+std::string AttributeSetNode::getAsString(bool TargetIndependent,
+ bool InAttrGrp) const {
std::string Str;
for (SmallVectorImpl<Attribute>::const_iterator I = AttrList.begin(),
E = AttrList.end(); I != E; ++I) {
- if (I != AttrList.begin())
- Str += ' ';
- Str += I->getAsString(InAttrGrp);
+ if (TargetIndependent || !I->isStringAttribute()) {
+ if (I != AttrList.begin())
+ Str += ' ';
+ Str += I->getAsString(InAttrGrp);
+ }
}
return Str;
}
@@ -845,10 +848,11 @@ unsigned AttributeSet::getStackAlignment(unsigned Index) const {
return ASN ? ASN->getStackAlignment() : 0;
}
-std::string AttributeSet::getAsString(unsigned Index,
+std::string AttributeSet::getAsString(unsigned Index, bool TargetIndependent,
bool InAttrGrp) const {
AttributeSetNode *ASN = getAttributes(Index);
- return ASN ? ASN->getAsString(InAttrGrp) : std::string("");
+ return ASN ? ASN->getAsString(TargetIndependent, InAttrGrp) :
+ std::string("");
}
/// \brief The attributes for the specified index are returned.