[PATCH] D32197: [TySan] A Type Sanitizer (Runtime Library)

Jay Foad via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 23 08:08:18 PST 2017


I've also tried type sanitizer and run into the same error. Here's a
creduce-d test case:

$ cat unix.i
struct a {
  enum { b } c;
  struct {
    struct {
      long d;
      long e;
    };
  };
} f;
unsigned g(struct a h) { return f.c; }

$ ~/llvm/build/bin/clang -g -c -emit-llvm -fsanitize=type unix.i

$ ~/llvm/build/bin/llvm-dis unix.bc
Instruction does not dominate all uses!
  %7 = load i64, i64* @__tysan_app_memory_mask, !dbg !37
  %3 = and i64 %2, %7, !dbg !37
Instruction does not dominate all uses!
  %8 = load i64, i64* @__tysan_shadow_memory_address, !dbg !37
  %5 = add i64 %4, %8, !dbg !37
LLVM ERROR: Broken module found, compilation aborted!

Jay.

On 25 October 2017 at 20:00, Will Harris via Phabricator via llvm-commits <
llvm-commits at lists.llvm.org> wrote:

> wfh added a comment.
>
> FWIW - I tried this with chromium base/ and it fails on
> base/allocator/tcmalloc/internal_logging.cc
>
> FAILED: obj/base/allocator/tcmalloc/internal_logging.o
> ../../../../llvm/build/bin/clang++ -MMD -MF obj/base/allocator/tcmalloc/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-1\" -DCOMPONENT_BUILD
> -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0
> -DTCMALLOC_DONT_REPLACE_SYSTEM_ALLOC -I../../base/allocator
> -I../../third_party/tcmalloc/chromium/src/base
> -I../../third_party/tcmalloc/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/Linux_x64/Release/bin
> -pthread -fcolor-diagnostics -Xclang -mllvm -Xclang -instcombine-lower-dbg-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=../../tools/tysan/blacklist.txt -fvisibility=hidden
> -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Werror
> -Wall -Wno-unused-variable -Wno-missing-field-initializers
> -Wno-unused-parameter -Wno-c++11-narrowing -Wno-covered-switch-default
> -Wno-unneeded-internal-declaration -Wno-inconsistent-missing-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-zero-compare -Wno-null-pointer-arithmetic
> -Wno-tautological-unsigned-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/third_party/libc++/trunk/include
> -isystem../../buildtools/third_party/libc++abi/trunk/include
> --sysroot=../../build/linux/debian_jessie_amd64-sysroot -fno-exceptions
> -fvisibility-inlines-hidden -c ../../third_party/tcmalloc/
> chromium/src/internal_logging.cc -o obj/base/allocator/tcmalloc/
> internal_logging.o
>
> Instruction does not dominate all uses!
>
>   %15 = load i64, i64* @__tysan_app_memory_mask
>   %1 = and i64 %0, %15
>
> Instruction does not dominate all uses!
>
>   %16 = load i64, i64* @__tysan_shadow_memory_address
>   %3 = add i64 %2, %16
>
> Instruction does not dominate all uses!
>
>   %15 = load i64, i64* @__tysan_app_memory_mask
>   %6 = and i64 %5, %15
>
> Instruction does not dominate all uses!
>
>   %16 = load i64, i64* @__tysan_shadow_memory_address
>   %8 = add i64 %7, %16
>
> Instruction does not dominate all uses!
>
>   %15 = load i64, i64* @__tysan_app_memory_mask
>   %11 = and i64 %10, %15
>
> Instruction does not dominate all uses!
>
>   %16 = load i64, i64* @__tysan_shadow_memory_address
>   %13 = add i64 %12, %16
>
> can provide more info on request... for now I'm just disabling tcmalloc
> and seeing how much further I can get...
>
>
> https://reviews.llvm.org/D32197
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20171123/e14cfb46/attachment.html>


More information about the llvm-commits mailing list