With MSVC, file needs to be compiled with /BIGOBJ
authorAdrian McCarthy <amccarth@google.com>
Thu, 16 Jul 2020 22:15:51 +0000 (15:15 -0700)
committerAdrian McCarthy <amccarth@google.com>
Fri, 17 Jul 2020 16:43:06 +0000 (09:43 -0700)
MSVC, by default, limits the number of sections generated by a single
translation unit to 2^16.  In a debug build, each function or method
can require 4 sections, so it's not uncommon to hit it.

I saw the problem when building tests for LLDB (but, interestingly, not
for LLDB itself).

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

clang/lib/ARCMigrate/CMakeLists.txt

index 6f19bea..1d5a185 100644 (file)
@@ -2,6 +2,12 @@ set(LLVM_LINK_COMPONENTS
   Support
   )
 
+# By default MSVC has a 2^16 limit on the number of sections in an object
+# file, and Transforms.cpp needs more than that.
+if (MSVC)
+  set_source_files_properties(Transforms.cpp PROPERTIES COMPILE_FLAGS /bigobj)
+endif()
+
 add_clang_library(clangARCMigrate
   ARCMT.cpp
   ARCMTActions.cpp