diff options
author | Chris Lattner <sabre@nondot.org> | 2009-07-29 04:54:38 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-07-29 04:54:38 +0000 |
commit | 067fe1ae5488764afb8d8fdafba65899dc221887 (patch) | |
tree | e741fe98184af9f319689694d930abc141a0abff | |
parent | 95db93caa1130725123eb50479d0c51c09e8a2f4 (diff) | |
download | external_llvm-067fe1ae5488764afb8d8fdafba65899dc221887.zip external_llvm-067fe1ae5488764afb8d8fdafba65899dc221887.tar.gz external_llvm-067fe1ae5488764afb8d8fdafba65899dc221887.tar.bz2 |
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
-rw-r--r-- | lib/Target/TargetLoweringObjectFile.cpp | 30 |
1 files changed, 10 insertions, 20 deletions
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 @@ SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind, 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()) { |