<div dir="ltr"><div>When I use clang on Windows to compile a program using regular expressions to intermediate code, then run the result through llvm-link and finally try to generate an executable, I get an error.</div><div><br></div><div>All of these ingredients are necessary; it works if the program doesn't use regular expressions, and it works if I compile it directly instead of going via intermediate code. </div><div><br></div><div>The use of the exact llvm-link binary, however, is not a necessary ingredient; I get the same result with a linking program of my own that uses the same libraries as llvm-link.</div><div><br></div><div>Minimal test case:</div><div><br></div><div><div>C:\test>type test.cpp</div><div>#include <regex></div><div><br></div><div>int main() {</div><div>  std::cmatch m;</div><div>  regex_match("a", m, std::regex("a"));</div><div>  return 0;</div><div>}</div><div><br></div><div>C:\test>clang-cl -Xclang -emit-llvm -c -fms-compatibility-version=19 test.cpp</div><div><br></div><div>C:\test>move test.obj test.ll</div><div>Overwrite C:\test\test.ll? (Yes/No/All): y</div><div>        1 file(s) moved.</div><div><br></div><div>C:\test>llvm-link test.ll -o=a.ll</div><div><br></div><div>C:\test>clang-cl -Wno-override-module a.ll</div><div>a-e22d14.obj : fatal error LNK1243: invalid or corrupt file: COMDAT section 0x373 associated with following section 0x389</div><div>clang-cl.exe: error: linker command failed with exit code 1243 (use -v to see invocation)</div><div><br></div><div>C:\test>llvm-link -version</div><div>LLVM (<a href="http://llvm.org/">http://llvm.org/</a>):</div><div>  LLVM version 3.7.0</div><div>  DEBUG build.</div><div>  Default target: x86_64-pc-windows-msvc</div><div>  Host CPU: sandybridge</div></div><div><br></div></div>