turnip: Fix GCC compiles.
authorBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Tue, 12 Mar 2019 23:07:02 +0000 (00:07 +0100)
committerBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Sat, 16 Mar 2019 14:38:51 +0000 (14:38 +0000)
Apparently GCC does not consider static const variables to be
integer constants, and hence the array size and the static assert
result in compile failures.

Fixes: 4b9f967cd1a "turnip: add a more complete format table"
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Kristian H. Kristensen <hoegsberg@chromium.org>
src/freedreno/vulkan/tu_formats.c

index 8df568b476cce30efdf2a1a5d7fa03102a1e08cd..537b59d25e1732ab237bcf08cb25131ab8324c3e 100644 (file)
@@ -45,9 +45,7 @@
 #define TU_FORMAT_TABLE(var)                                                 \
    static const VkFormat var##_first = TU_FORMAT_TABLE_FIRST;                \
    static const VkFormat var##_last = TU_FORMAT_TABLE_LAST;                  \
-   static const size_t var##_count =                                         \
-      TU_FORMAT_TABLE_LAST - TU_FORMAT_TABLE_FIRST + 1;                      \
-   static const struct tu_native_format var[var##_count]
+   static const struct tu_native_format var[TU_FORMAT_TABLE_LAST - TU_FORMAT_TABLE_FIRST + 1]
 #undef TU_FORMAT_TABLE_FIRST
 #undef TU_FORMAT_TABLE_LAST
 
@@ -321,9 +319,8 @@ tu6_get_native_format(VkFormat format)
 {
    const struct tu_native_format *fmt = NULL;
 
-   static_assert(tu6_format_table0_first == 0, "");
-   if (format <= tu6_format_table0_last)
-      fmt = &tu6_format_table0[format];
+   if (format >= tu6_format_table0_first && format <= tu6_format_table0_last)
+      fmt = &tu6_format_table0[format - tu6_format_table0_first];
 
    return (fmt && fmt->present) ? fmt : NULL;
 }