Tidy use_complex_relocs_for
authorAlan Modra <amodra@gmail.com>
Mon, 6 May 2019 11:53:45 +0000 (21:23 +0930)
committerAlan Modra <amodra@gmail.com>
Tue, 7 May 2019 06:05:53 +0000 (15:35 +0930)
Since I was looking at this I decided to fix the formatting, and
used an old C switch statements trick to factor out common code.

* symbols.c (use_complex_relocs_for): Formatting.  Factor out
X_add_symbol tests.

gas/ChangeLog
gas/symbols.c

index e83a893..fc8ea0b 100644 (file)
@@ -1,3 +1,8 @@
+2019-05-07  Alan Modra  <amodra@gmail.com>
+
+       * symbols.c (use_complex_relocs_for): Formatting.  Factor out
+       X_add_symbol tests.
+
 2019-05-06  Andrew Bennett  <andrew.bennett@imgtec.com>
            Faraz Shahbazker  <fshahbazker@wavecomp.com>
 
index 10d7b1c..918028f 100644 (file)
@@ -1097,19 +1097,6 @@ use_complex_relocs_for (symbolS * symp)
     case O_constant:
       return 0;
 
-    case O_symbol:
-    case O_symbol_rva:
-    case O_uminus:
-    case O_bit_not:
-    case O_logical_not:
-      if (  (S_IS_COMMON (symp->sy_value.X_add_symbol)
-          || S_IS_LOCAL (symp->sy_value.X_add_symbol))
-         &&
-             (S_IS_DEFINED (symp->sy_value.X_add_symbol)
-          && S_GET_SEGMENT (symp->sy_value.X_add_symbol) != expr_section))
-       return 0;
-      break;
-
     case O_multiply:
     case O_divide:
     case O_modulus:
@@ -1129,18 +1116,22 @@ use_complex_relocs_for (symbolS * symp)
     case O_gt:
     case O_logical_and:
     case O_logical_or:
-
-      if (  (S_IS_COMMON (symp->sy_value.X_add_symbol)
-          || S_IS_LOCAL (symp->sy_value.X_add_symbol))
-         &&
-           (S_IS_COMMON (symp->sy_value.X_op_symbol)
+      if ((S_IS_COMMON (symp->sy_value.X_op_symbol)
           || S_IS_LOCAL (symp->sy_value.X_op_symbol))
-
-         && S_IS_DEFINED (symp->sy_value.X_add_symbol)
          && S_IS_DEFINED (symp->sy_value.X_op_symbol)
-         && S_GET_SEGMENT (symp->sy_value.X_add_symbol) != expr_section
          && S_GET_SEGMENT (symp->sy_value.X_op_symbol) != expr_section)
-       return 0;
+       {
+       case O_symbol:
+       case O_symbol_rva:
+       case O_uminus:
+       case O_bit_not:
+       case O_logical_not:
+         if ((S_IS_COMMON (symp->sy_value.X_add_symbol)
+              || S_IS_LOCAL (symp->sy_value.X_add_symbol))
+             && S_IS_DEFINED (symp->sy_value.X_add_symbol)
+             && S_GET_SEGMENT (symp->sy_value.X_add_symbol) != expr_section)
+           return 0;
+       }
       break;
 
     default: