projects
/
oota-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
PR8053: Fix encoding of S bit in some ARM instructions.
[oota-llvm.git]
/
lib
/
Target
/
TargetLoweringObjectFile.cpp
diff --git
a/lib/Target/TargetLoweringObjectFile.cpp
b/lib/Target/TargetLoweringObjectFile.cpp
index b9372d04bb176a35396a6285d8819fcc9a1be1fd..5d34c7d7fa3da734eb3fcb357e21c20827ec727f 100644
(file)
--- a/
lib/Target/TargetLoweringObjectFile.cpp
+++ b/
lib/Target/TargetLoweringObjectFile.cpp
@@
-43,8
+43,8
@@
TargetLoweringObjectFile::TargetLoweringObjectFile() : Ctx(0) {
StaticCtorSection = 0;
StaticDtorSection = 0;
LSDASection = 0;
StaticCtorSection = 0;
StaticDtorSection = 0;
LSDASection = 0;
- EHFrameSection = 0;
+ CommDirectiveSupportsAlignment = true;
DwarfAbbrevSection = 0;
DwarfInfoSection = 0;
DwarfLineSection = 0;
DwarfAbbrevSection = 0;
DwarfInfoSection = 0;
DwarfLineSection = 0;
@@
-101,7
+101,7
@@
static bool IsNullTerminatedString(const Constant *C) {
ConstantInt *Null =
dyn_cast<ConstantInt>(CVA->getOperand(ATy->getNumElements()-1));
ConstantInt *Null =
dyn_cast<ConstantInt>(CVA->getOperand(ATy->getNumElements()-1));
- if (Null == 0 ||
Null->getZExtValue() != 0
)
+ if (Null == 0 ||
!Null->isZero()
)
return false; // Not null terminated.
// Verify that the null doesn't occur anywhere else in the string.
return false; // Not null terminated.
// Verify that the null doesn't occur anywhere else in the string.
@@
-168,6
+168,12
@@
SectionKind TargetLoweringObjectFile::getKindForGlobal(const GlobalValue *GV,
switch (C->getRelocationInfo()) {
default: assert(0 && "unknown relocation info kind");
case Constant::NoRelocation:
switch (C->getRelocationInfo()) {
default: assert(0 && "unknown relocation info kind");
case Constant::NoRelocation:
+ // If the global is required to have a unique address, it can't be put
+ // into a mergable section: just drop it into the general read-only
+ // section instead.
+ if (!GVar->hasUnnamedAddr())
+ return SectionKind::getReadOnly();
+
// If initializer is a null-terminated string, put it in a "cstring"
// section of the right width.
if (const ArrayType *ATy = dyn_cast<ArrayType>(C->getType())) {
// If initializer is a null-terminated string, put it in a "cstring"
// section of the right width.
if (const ArrayType *ATy = dyn_cast<ArrayType>(C->getType())) {