diff --git a/lib/Target/ELFTargetAsmInfo.cpp b/lib/Target/ELFTargetAsmInfo.cpp
index 8ace00a..5deabee 100644
--- a/lib/Target/ELFTargetAsmInfo.cpp
+++ b/lib/Target/ELFTargetAsmInfo.cpp
@@ -61,10 +61,8 @@
     
     // By default - all relocations in PIC mode would force symbol to be
     // placed in r/w section.
-    unsigned Reloc = (TM.getRelocationModel() != Reloc::Static ?
-                      Reloc::LocalOrGlobal : Reloc::None);
-    
-    if (Reloc != Reloc::None && C->ContainsRelocations(Reloc))
+    if (TM.getRelocationModel() != Reloc::Static &&
+        C->ContainsRelocations(Reloc::LocalOrGlobal))
       return (C->ContainsRelocations(Reloc::Global) ?
               (isConstant ?
                SectionKind::DataRelRO : SectionKind::DataRel) :
diff --git a/lib/Target/TargetAsmInfo.cpp b/lib/Target/TargetAsmInfo.cpp
index e60855d..580c3fe 100644
--- a/lib/Target/TargetAsmInfo.cpp
+++ b/lib/Target/TargetAsmInfo.cpp
@@ -209,20 +209,11 @@
     // note, there is no thread-local r/o section.
     Constant *C = GVar->getInitializer();
     if (C->ContainsRelocations(Reloc::LocalOrGlobal)) {
-      // Decide, whether it is still possible to put symbol into r/o section.
-      unsigned Reloc = (TM.getRelocationModel() != Reloc::Static ?
-                        Reloc::LocalOrGlobal : Reloc::None);
-
-      // We already did a query for 'all' relocs, thus - early exits.
-      if (Reloc == Reloc::LocalOrGlobal)
+      // Decide whether it is still possible to put symbol into r/o section.
+      if (TM.getRelocationModel() != Reloc::Static)
         return SectionKind::Data;
-      else if (Reloc == Reloc::None)
+      else
         return SectionKind::ROData;
-      else {
-        // Ok, target wants something funny. Honour it.
-        return (C->ContainsRelocations(Reloc) ?
-                SectionKind::Data : SectionKind::ROData);
-      }
     } else {
       // Check, if initializer is a null-terminated string
       if (isConstantString(C))
