[mlir] Emit errors if global constructors are found within lib/
authorRiver Riddle <riddleriver@gmail.com>
Fri, 10 Apr 2020 19:57:18 +0000 (12:57 -0700)
committerRiver Riddle <riddleriver@gmail.com>
Fri, 10 Apr 2020 20:04:32 +0000 (13:04 -0700)
Summary: This avoids adding any additional global constructors, like cl::opt. There is a temporary exception on IR/, which has a few cl::opts that require a bit of plumbing to remove.

Differential Revision: https://reviews.llvm.org/D77824

mlir/lib/CMakeLists.txt
mlir/lib/IR/CMakeLists.txt

index c51e780..c139231 100644 (file)
@@ -1,3 +1,6 @@
+# Enable errors for any global constructors.
+add_flag_if_supported("-Werror=global-constructors" WERROR_GLOBAL_CONSTRUCTOR)
+
 add_subdirectory(Analysis)
 add_subdirectory(Conversion)
 add_subdirectory(Dialect)
index 64998e4..c5dc2d2 100644 (file)
@@ -1,3 +1,6 @@
+# TODO: Remove the need for global constructors within IR/
+add_flag_if_supported("-Wno-global-constructors" WNO_GLOBAL_CONSTRUCTOR_MLIR_IR)
+
 file(GLOB globbed *.c *.cpp)
 add_mlir_library(MLIRIR
   ${globbed}