Disable new gcc 9 warning [init-list-lifetime]
All places this was raised look like safe usage to me.
Also shuffled some CMake code around so that compiler
warning settings all sit next to each other.
Fixes: b/148842417
Change-Id: I262d0fdacc7a88092cad0890504b0e475f750d47
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/40835
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 15ff72a..6e6b867 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -408,6 +408,7 @@
else()
set_cpp_flag("-fno-exceptions")
+ # Explicitly enable these warnings.
list(APPEND SWIFTSHADER_COMPILE_OPTIONS
"-Wall"
"-Wreorder"
@@ -421,6 +422,29 @@
"-Wstring-conversion"
"-Wextra-semi"
"-Wignored-qualifiers"
+ )
+ endif()
+
+ # Disable pedanitc warnings
+ if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
+ list(APPEND SWIFTSHADER_COMPILE_OPTIONS
+ "-Wno-ignored-attributes" # ignoring attributes on template argument 'X'
+ "-Wno-attributes" # 'X' attribute ignored
+ "-Wno-strict-aliasing" # dereferencing type-punned pointer will break strict-aliasing rules
+ "-Wno-comment" # multi-line comment
+ )
+ if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 9)
+ list(APPEND SWIFTSHADER_COMPILE_OPTIONS
+ "-Wno-init-list-lifetime" # assignment from temporary initializer_list does not extend the lifetime of the underlying array
+ )
+ endif()
+ elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+ list(APPEND SWIFTSHADER_COMPILE_OPTIONS
+ "-Wno-unneeded-internal-declaration" # function 'X' is not needed and will not be emitted
+ "-Wno-unused-private-field" # private field 'offset' is not used - TODO: Consider enabling this once Vulkan is further implemented.
+ "-Wno-comment" # multi-line comment
+ "-Wno-undefined-var-template" # instantiation of variable 'X' required here, but no definition is available
+
# Silence errors caused by unknown warnings when building with older
# versions of Clang. This demands checking that warnings added above
# are spelled correctly and work as intended!
@@ -485,23 +509,6 @@
list(APPEND SWIFTSHADER_COMPILE_OPTIONS "-DDCHECK_ALWAYS_ON")
endif()
- # Disable pedanitc warnings
- if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
- list(APPEND SWIFTSHADER_COMPILE_OPTIONS
- "-Wno-ignored-attributes" # ignoring attributes on template argument 'X'
- "-Wno-attributes" # 'X' attribute ignored
- "-Wno-strict-aliasing" # dereferencing type-punned pointer will break strict-aliasing rules
- "-Wno-comment" # multi-line comment
- )
- elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
- list(APPEND SWIFTSHADER_COMPILE_OPTIONS
- "-Wno-unneeded-internal-declaration" # function 'X' is not needed and will not be emitted
- "-Wno-unused-private-field" # private field 'offset' is not used - TODO: Consider enabling this once Vulkan is further implemented.
- "-Wno-comment" # multi-line comment
- "-Wno-undefined-var-template" # instantiation of variable 'X' required here, but no definition is available
- )
- endif()
-
# For distribution it is more important to be slim than super optimized
set_cpp_flag("-Os" RELEASE)
set_cpp_flag("-Os" RELWITHDEBINFO)
@@ -1496,6 +1503,11 @@
"-Wno-attributes" # declared inline but not inline
)
endif()
+ if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 9)
+ list(APPEND LLVM_COMPILE_OPTIONS
+ "-Wno-init-list-lifetime" # assignment from temporary initializer_list does not extend the lifetime of the underlying array
+ )
+ endif()
elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
list(APPEND LLVM_COMPILE_OPTIONS
"/wd4141" # 'inline': used more than once