diff --git a/utils/dump.c b/utils/dump.c
index 3a97835e18ec48b0f03b6d705a740dc51a6ba90e..37bbbba0cbec99a6de704e41678a3f733bff4416 100644
--- a/utils/dump.c
+++ b/utils/dump.c
@@ -708,22 +708,18 @@ dump_rel (const char *indent,
 
         const ElfW(Sym) *symbol;
 
-        switch( __ELF_NATIVE_CLASS )
-        {
-          case 32:
-            sym = ELF32_R_SYM (entry->r_info);
-            chr = ELF32_R_TYPE(entry->r_info);
-            break;
-          case 64:
-            sym = ELF64_R_SYM (entry->r_info);
-            chr = ELF64_R_TYPE(entry->r_info);
-            break;
-          default:
-            fprintf( stderr,
-                     "__ELF_NATIVE_CLASS is NOT 32 or 64:"
-                     " What the actual hell\n" );
-            exit(-1);
-        }
+#if __ELF_NATIVE_CLASS == 32
+        sym = ELF32_R_SYM (entry->r_info);
+        chr = ELF32_R_TYPE(entry->r_info);
+#elif __ELF_NATIVE_CLASS == 64
+        sym = ELF64_R_SYM (entry->r_info);
+        chr = ELF64_R_TYPE(entry->r_info);
+#else
+        fprintf( stderr,
+                 "__ELF_NATIVE_CLASS is NOT 32 or 64:"
+                 " What the actual hell\n" );
+        exit( 22 );
+#endif
 
         symbol = find_symbol( sym, symtab, strtab, &name );
         if( symbol )
@@ -764,22 +760,18 @@ dump_rela (const char *indent,
 
         const ElfW(Sym) *symbol;
 
-        switch( __ELF_NATIVE_CLASS )
-        {
-          case 32:
-            sym = ELF32_R_SYM (entry->r_info);
-            chr = ELF32_R_TYPE(entry->r_info);
-            break;
-          case 64:
-            sym = ELF64_R_SYM (entry->r_info);
-            chr = ELF64_R_TYPE(entry->r_info);
-            break;
-          default:
-            fprintf( stderr,
-                     "__ELF_NATIVE_CLASS is NOT 32 or 64:"
-                     " What the actual hell\n" );
-            exit(-1);
-        }
+#if __ELF_NATIVE_CLASS == 32
+        sym = ELF32_R_SYM (entry->r_info);
+        chr = ELF32_R_TYPE(entry->r_info);
+#elif __ELF_NATIVE_CLASS == 64
+        sym = ELF64_R_SYM (entry->r_info);
+        chr = ELF64_R_TYPE(entry->r_info);
+#else
+        fprintf( stderr,
+                 "__ELF_NATIVE_CLASS is NOT 32 or 64:"
+                 " What the actual hell\n" );
+        exit( 22 );
+#endif
 
         symbol = find_symbol( sym, symtab, strtab, &name );
         if( symbol )
diff --git a/utils/elf-dump.c b/utils/elf-dump.c
index 5591e50a579bb34f3b731007b661c0aecaee7118..4295640aea154ff2cb9f9e6e6924f146927c4e9a 100644
--- a/utils/elf-dump.c
+++ b/utils/elf-dump.c
@@ -707,22 +707,18 @@ dump_rel (const char *indent,
 
         const ElfW(Sym) *symbol;
 
-        switch( __ELF_NATIVE_CLASS )
-        {
-          case 32:
-            sym = ELF32_R_SYM (entry->r_info);
-            chr = ELF32_R_TYPE(entry->r_info);
-            break;
-          case 64:
-            sym = ELF64_R_SYM (entry->r_info);
-            chr = ELF64_R_TYPE(entry->r_info);
-            break;
-          default:
-            fprintf( stderr,
-                     "__ELF_NATIVE_CLASS is NOT 32 or 64:"
-                     " What the actual hell\n" );
-            exit(-1);
-        }
+#if __ELF_NATIVE_CLASS == 32
+        sym = ELF32_R_SYM (entry->r_info);
+        chr = ELF32_R_TYPE(entry->r_info);
+#elif __ELF_NATIVE_CLASS == 64
+        sym = ELF64_R_SYM (entry->r_info);
+        chr = ELF64_R_TYPE(entry->r_info);
+#else
+        fprintf( stderr,
+                 "__ELF_NATIVE_CLASS is NOT 32 or 64:"
+                 " What the actual hell\n" );
+        exit( 22 );
+#endif
 
         symbol = find_symbol( sym, symtab, strtab, &name );
         if( symbol )
@@ -763,22 +759,18 @@ dump_rela (const char *indent,
 
         const ElfW(Sym) *symbol;
 
-        switch( __ELF_NATIVE_CLASS )
-        {
-          case 32:
-            sym = ELF32_R_SYM (entry->r_info);
-            chr = ELF32_R_TYPE(entry->r_info);
-            break;
-          case 64:
-            sym = ELF64_R_SYM (entry->r_info);
-            chr = ELF64_R_TYPE(entry->r_info);
-            break;
-          default:
-            fprintf( stderr,
-                     "__ELF_NATIVE_CLASS is NOT 32 or 64:"
-                     " What the actual hell\n" );
-            exit(-1);
-        }
+#if __ELF_NATIVE_CLASS == 32
+        sym = ELF32_R_SYM (entry->r_info);
+        chr = ELF32_R_TYPE(entry->r_info);
+#elif __ELF_NATIVE_CLASS == 64
+        sym = ELF64_R_SYM (entry->r_info);
+        chr = ELF64_R_TYPE(entry->r_info);
+#else
+        fprintf( stderr,
+                 "__ELF_NATIVE_CLASS is NOT 32 or 64:"
+                 " What the actual hell\n" );
+        exit( 22 );
+#endif
 
         symbol = find_symbol( sym, symtab, strtab, &name );
         if( symbol )
diff --git a/utils/process-pt-dynamic.c b/utils/process-pt-dynamic.c
index 3315c18ff87503a3a2f8e5995b2d01760b206466..62131eba3c58fa31a0f01b0bbdee9b1fb87720dd 100644
--- a/utils/process-pt-dynamic.c
+++ b/utils/process-pt-dynamic.c
@@ -234,20 +234,16 @@ process_dt_rela (const void *start,
         char *name = NULL;
         const ElfW(Sym) *symbol;
 
-        switch( __ELF_NATIVE_CLASS )
-        {
-          case 32:
-            sym = ELF32_R_SYM (entry->r_info);
-            chr = ELF32_R_TYPE(entry->r_info);
-            break;
-          case 64:
-            sym = ELF64_R_SYM (entry->r_info);
-            chr = ELF64_R_TYPE(entry->r_info);
-            break;
-          default:
-            fprintf( stderr, "__ELF_NATIVE_CLASS is neither 32 nor 64" );
-            exit( 22 );
-        }
+#if __ELF_NATIVE_CLASS == 32
+        sym = ELF32_R_SYM (entry->r_info);
+        chr = ELF32_R_TYPE(entry->r_info);
+#elif __ELF_NATIVE_CLASS == 64
+        sym = ELF64_R_SYM (entry->r_info);
+        chr = ELF64_R_TYPE(entry->r_info);
+#else
+        fprintf( stderr, "__ELF_NATIVE_CLASS is neither 32 nor 64" );
+        exit( 22 );
+#endif
 
         DEBUG( DEBUG_ELF, "RELA entry at %p", entry );
 
@@ -413,20 +409,16 @@ process_dt_rel (const void *start,
 
         const ElfW(Sym) *symbol;
 
-        switch( __ELF_NATIVE_CLASS )
-        {
-          case 32:
-            sym = ELF32_R_SYM (entry->r_info);
-            chr = ELF32_R_TYPE(entry->r_info);
-            break;
-          case 64:
-            sym = ELF64_R_SYM (entry->r_info);
-            chr = ELF64_R_TYPE(entry->r_info);
-            break;
-          default:
-            fprintf( stderr, "__ELF_NATIVE_CLASS is neither 32 nor 64" );
-            exit( 22 );
-        }
+#if __ELF_NATIVE_CLASS == 32
+        sym = ELF32_R_SYM (entry->r_info);
+        chr = ELF32_R_TYPE(entry->r_info);
+#elif __ELF_NATIVE_CLASS == 64
+        sym = ELF64_R_SYM (entry->r_info);
+        chr = ELF64_R_TYPE(entry->r_info);
+#else
+        fprintf( stderr, "__ELF_NATIVE_CLASS is neither 32 nor 64" );
+        exit( 22 );
+#endif
 
         symbol = find_symbol( sym, symtab, strtab, &name );