<div dir="ltr">I've also tried type sanitizer and run into the same error. Here's a creduce-d test case:<div><br></div><div><div>$ cat unix.i</div><div>struct a {</div><div>  enum { b } c;</div><div>  struct {</div><div>    struct {</div><div>      long d;</div><div>      long e;</div><div>    };</div><div>  };</div><div>} f;</div><div>unsigned g(struct a h) { return f.c; }</div><div><br></div><div>$ ~/llvm/build/bin/clang -g -c -emit-llvm -fsanitize=type unix.i</div><div><br></div><div>$ ~/llvm/build/bin/llvm-dis unix.bc</div><div>Instruction does not dominate all uses!</div><div>  %7 = load i64, i64* @__tysan_app_memory_mask, !dbg !37</div><div>  %3 = and i64 %2, %7, !dbg !37</div><div>Instruction does not dominate all uses!</div><div>  %8 = load i64, i64* @__tysan_shadow_memory_address, !dbg !37</div><div>  %5 = add i64 %4, %8, !dbg !37</div><div>LLVM ERROR: Broken module found, compilation aborted!</div></div><div><br></div><div>Jay.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On 25 October 2017 at 20:00, Will Harris via Phabricator via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">wfh added a comment.<br>
<br>
FWIW - I tried this with chromium base/ and it fails on base/allocator/tcmalloc/<wbr>internal_logging.cc<br>
<br>
FAILED: obj/base/allocator/tcmalloc/<wbr>internal_logging.o<br>
../../../../llvm/build/bin/<wbr>clang++ -MMD -MF obj/base/allocator/tcmalloc/<wbr>internal_logging.o.d -DNO_HEAP_CHECK -DV8_DEPRECATION_WARNINGS -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DCR_CLANG_REVISION=\"315613-<wbr>1\" -DCOMPONENT_BUILD -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=<wbr>0 -DTCMALLOC_DONT_REPLACE_<wbr>SYSTEM_ALLOC -I../../base/allocator -I../../third_party/tcmalloc/<wbr>chromium/src/base -I../../third_party/tcmalloc/<wbr>chromium/src -I../.. -Igen -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pipe -B../../third_party/binutils/<wbr>Linux_x64/Release/bin -pthread -fcolor-diagnostics -Xclang -mllvm -Xclang -instcombine-lower-dbg-<wbr>declare=0 -no-canonical-prefixes -m64 -march=x86-64 -fno-omit-frame-pointer -g1 -gline-tables-only -gcolumn-info -fno-omit-frame-pointer -fsanitize=type -fsanitize-blacklist=../../<wbr>tools/tysan/blacklist.txt -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Werror -Wall -Wno-unused-variable -Wno-missing-field-<wbr>initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-covered-switch-default -Wno-unneeded-internal-<wbr>declaration -Wno-inconsistent-missing-<wbr>override -Wno-undefined-var-template -Wno-nonportable-include-path -Wno-address-of-packed-member -Wno-unused-lambda-capture -Wno-user-defined-warnings -Wno-enum-compare-switch -Wno-tautological-unsigned-<wbr>zero-compare -Wno-null-pointer-arithmetic -Wno-tautological-unsigned-<wbr>enum-zero-compare -Wno-reorder -Wno-unused-function -Wno-unused-local-typedefs -Wno-unused-private-field -Wno-sign-compare -Wno-unused-result -O2 -fno-ident -fdata-sections -ffunction-sections -std=gnu++14 -fno-rtti -nostdinc++ -isystem../../buildtools/<wbr>third_party/libc++/trunk/<wbr>include -isystem../../buildtools/<wbr>third_party/libc++abi/trunk/<wbr>include --sysroot=../../build/linux/<wbr>debian_jessie_amd64-sysroot -fno-exceptions -fvisibility-inlines-hidden -c ../../third_party/tcmalloc/<wbr>chromium/src/internal_logging.<wbr>cc -o obj/base/allocator/tcmalloc/<wbr>internal_logging.o<br>
<br>
Instruction does not dominate all uses!<br>
<br>
  %15 = load i64, i64* @__tysan_app_memory_mask<br>
  %1 = and i64 %0, %15<br>
<br>
Instruction does not dominate all uses!<br>
<br>
  %16 = load i64, i64* @__tysan_shadow_memory_address<br>
  %3 = add i64 %2, %16<br>
<br>
Instruction does not dominate all uses!<br>
<br>
  %15 = load i64, i64* @__tysan_app_memory_mask<br>
  %6 = and i64 %5, %15<br>
<br>
Instruction does not dominate all uses!<br>
<br>
  %16 = load i64, i64* @__tysan_shadow_memory_address<br>
  %8 = add i64 %7, %16<br>
<br>
Instruction does not dominate all uses!<br>
<br>
  %15 = load i64, i64* @__tysan_app_memory_mask<br>
  %11 = and i64 %10, %15<br>
<br>
Instruction does not dominate all uses!<br>
<br>
  %16 = load i64, i64* @__tysan_shadow_memory_address<br>
  %13 = add i64 %12, %16<br>
<br>
can provide more info on request... for now I'm just disabling tcmalloc and seeing how much further I can get...<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
<a href="https://reviews.llvm.org/D32197" rel="noreferrer" target="_blank">https://reviews.llvm.org/<wbr>D32197</a><br>
<br>
<br>
<br>
______________________________<wbr>_________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br>
</div></div></blockquote></div><br></div>