remove some completely wrong code. 1 is never < 16. It turns out that GCC appears to put strings of any length into the ELF cstring equivalent, so just rip out the code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77429 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/TargetLoweringObjectFile.cpp b/lib/Target/TargetLoweringObjectFile.cpp
index 7bd6788..379099b 100644
--- a/lib/Target/TargetLoweringObjectFile.cpp
+++ b/lib/Target/TargetLoweringObjectFile.cpp
@@ -412,28 +412,18 @@
if (Kind.isText()) return TextSection;
if (Kind.isMergeableCString()) {
- //Constant *C = cast<GlobalVariable>(GV)->getInitializer();
+ assert(CStringSection_ && "Should have string section prefix");
- // FIXME: This is completely wrong. Why is it comparing the size of the
- // character type to 1?
- /// cast<ArrayType>(C->getType())->getNumElements();
- uint64_t Size = 1;
- if (Size <= 16) {
- assert(CStringSection_ && "Should have string section prefix");
-
- // We also need alignment here.
- // FIXME: this is getting the alignment of the character, not the
- // alignment of the global!
- unsigned Align =
- TM.getTargetData()->getPreferredAlignment(cast<GlobalVariable>(GV));
-
- std::string Name = CStringSection_->getName() + utostr(Size) + '.' +
- utostr(Align);
- return getOrCreateSection(Name.c_str(), false,
- SectionKind::MergeableCString);
- }
+ // We also need alignment here.
+ // FIXME: this is getting the alignment of the character, not the
+ // alignment of the global!
+ unsigned Align =
+ TM.getTargetData()->getPreferredAlignment(cast<GlobalVariable>(GV));
- return ReadOnlySection;
+ std::string Name = CStringSection_->getName() + utostr(Size) + '.' +
+ utostr(Align);
+ return getOrCreateSection(Name.c_str(), false,
+ SectionKind::MergeableCString);
}
if (Kind.isMergeableConst()) {