[llvm] [hwasan] Update dbg.assign intrinsics in HWAsan pass (PR #78606)

via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 22 12:28:57 PST 2024


gulfemsavrun wrote:

We started seeing an assertion failure in `emitDbgValue` function `CodeGen` in our Clang Linux builders, and I bisected to this commit:
```
FAILED: libcxxabi/src/CMakeFiles/cxxabi_static_objects.dir/cxa_vector.cpp.obj 
/b/s/w/ir/x/w/llvm_build/./bin/clang++ --target=aarch64-unknown-fuchsia --sysroot=/b/s/w/ir/x/w/sdk/arch/arm64/sysroot -DHAVE___CXA_THREAD_ATEXIT_IMPL -DLIBCXX_BUILDING_LIBCXXABI -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_LIBCPP_BUILDING_LIBRARY -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS="" -D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -D_LIBCXXABI_BUILDING_LIBRARY -D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/b/s/w/ir/x/w/llvm-llvm-project/libunwind/include -I/b/s/w/ir/x/w/llvm-llvm-project/libcxxabi/../libcxx/src -I/b/s/w/ir/x/w/llvm_build/include/aarch64-unknown-fuchsia/c++/v1 -I/b/s/w/ir/x/w/llvm_build/include/c++/v1 -I/b/s/w/ir/x/w/llvm-llvm-project/libcxxabi/include --target=aarch64-unknown-fuchsia -I/b/s/w/ir/x/w/sdk/pkg/sync/include -I/b/s/w/ir/x/w/sdk/pkg/fdio/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fno-omit-frame-pointer -fsanitize=hwaddress -ffunction-sections -fdata-sections -ffile-prefix-map=/b/s/w/ir/x/w/llvm_build/runtimes/runtimes-aarch64-unknown-fuchsia+hwasan-bins=../../../llvm-llvm-project -ffile-prefix-map=/b/s/w/ir/x/w/llvm-llvm-project/= -no-canonical-prefixes  -O2 -g -DNDEBUG -std=c++2b -nostdinc++ -fstrict-aliasing -funwind-tables -D_DEBUG -UNDEBUG -Wall -Wextra -Wnewline-eof -Wshadow -Wwrite-strings -Wno-unused-parameter -Wno-long-long -Werror=return-type -Wextra-semi -Wundef -Wunused-template -Wformat-nonliteral -Wno-user-defined-literals -Wno-covered-switch-default -Wno-suggest-override -Wno-error -fvisibility=hidden -MD -MT libcxxabi/src/CMakeFiles/cxxabi_static_objects.dir/cxa_vector.cpp.obj -MF libcxxabi/src/CMakeFiles/cxxabi_static_objects.dir/cxa_vector.cpp.obj.d -o libcxxabi/src/CMakeFiles/cxxabi_static_objects.dir/cxa_vector.cpp.obj -c /b/s/w/ir/x/w/llvm-llvm-project/libcxxabi/src/cxa_vector.cpp
clang++: llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp:1506: void (anonymous namespace)::AssignmentTrackingLowering::emitDbgValue(AssignmentTrackingLowering::LocKind, const DbgVariableIntrinsic *, Instruction *): Assertion `!Expr->getFragmentInfo() && "fragment info should be stored in value-expression only"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.	Program arguments: /b/s/w/ir/x/w/llvm_build/./bin/clang++ --target=aarch64-unknown-fuchsia --sysroot=/b/s/w/ir/x/w/sdk/arch/arm64/sysroot -DHAVE___CXA_THREAD_ATEXIT_IMPL -DLIBCXX_BUILDING_LIBCXXABI -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_LIBCPP_BUILDING_LIBRARY -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS= -D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -D_LIBCXXABI_BUILDING_LIBRARY -D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/b/s/w/ir/x/w/llvm-llvm-project/libunwind/include -I/b/s/w/ir/x/w/llvm-llvm-project/libcxxabi/../libcxx/src -I/b/s/w/ir/x/w/llvm_build/include/aarch64-unknown-fuchsia/c++/v1 -I/b/s/w/ir/x/w/llvm_build/include/c++/v1 -I/b/s/w/ir/x/w/llvm-llvm-project/libcxxabi/include --target=aarch64-unknown-fuchsia -I/b/s/w/ir/x/w/sdk/pkg/sync/include -I/b/s/w/ir/x/w/sdk/pkg/fdio/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fno-omit-frame-pointer -fsanitize=hwaddress -ffunction-sections -fdata-sections -ffile-prefix-map=/b/s/w/ir/x/w/llvm_build/runtimes/runtimes-aarch64-unknown-fuchsia+hwasan-bins=../../../llvm-llvm-project -ffile-prefix-map=/b/s/w/ir/x/w/llvm-llvm-project/= -no-canonical-prefixes -O2 -g -DNDEBUG -std=c++2b -nostdinc++ -fstrict-aliasing -funwind-tables -D_DEBUG -UNDEBUG -Wall -Wextra -Wnewline-eof -Wshadow -Wwrite-strings -Wno-unused-parameter -Wno-long-long -Werror=return-type -Wextra-semi -Wundef -Wunused-template -Wformat-nonliteral -Wno-user-defined-literals -Wno-covered-switch-default -Wno-suggest-override -Wno-error -fvisibility=hidden -MD -MT libcxxabi/src/CMakeFiles/cxxabi_static_objects.dir/cxa_vector.cpp.obj -MF libcxxabi/src/CMakeFiles/cxxabi_static_objects.dir/cxa_vector.cpp.obj.d -o libcxxabi/src/CMakeFiles/cxxabi_static_objects.dir/cxa_vector.cpp.obj -c /b/s/w/ir/x/w/llvm-llvm-project/libcxxabi/src/cxa_vector.cpp
1.	<eof> parser at end of file
2.	Code generation
3.	Running pass 'Function Pass Manager' on module '/b/s/w/ir/x/w/llvm-llvm-project/libcxxabi/src/cxa_vector.cpp'.
4.	Running pass 'Assignment Tracking Analysis' on function '@__cxa_vec_new'
#0 0x000055b174015938 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/b/s/w/ir/x/w/llvm_build/./bin/clang+++0x8715938)
clang++: error: clang frontend command failed with exit code 134 (use -v to see invocation)
Fuchsia clang version 18.0.0git (https://llvm.googlesource.com/llvm-project 02f95b77515fe18ed1076b94cbb850ea0cf3c77e)
Target: aarch64-unknown-fuchsia
Thread model: posix
InstalledDir: /b/s/w/ir/x/w/llvm_build/./bin
clang++: note: diagnostic msg: 
```

https://logs.chromium.org/logs/fuchsia/buildbucket/cr-buildbucket/8758181086086431185/+/u/clang/build/stdout


https://github.com/llvm/llvm-project/pull/78606


More information about the llvm-commits mailing list