Skip to content

[Bug]: clang crashes when enabling hwasan for rv64 #2173

@DanAlbert

Description

@DanAlbert

Description

This is not a supported configuration, but clang should be emitting a "not supported" error message rather than crashing.

test-case.zip

  PLEASE submit a bug report to https://github.com/android-ndk/ndk/issues and include the crash backtrace, preprocessed source, and associated run script.
  Stack dump:
  0.    Program arguments: /Users/danalbert/Library/Android/sdk/ndk/29.0.13846066/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=riscv64-none-linux-android35 --sysroot=/Users/danalbert/Library/Android/sdk/ndk/29.0.13846066/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -Dsanitizers_EXPORTS -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC -fsanitize=hwaddress -fno-omit-frame-pointer -MD -MT CMakeFiles/sanitizers.dir/native-lib.cpp.o -MF CMakeFiles/sanitizers.dir/native-lib.cpp.o.d -o CMakeFiles/sanitizers.dir/native-lib.cpp.o -c /Volumes/src/ndk-samples/sanitizers/app/src/main/cpp/native-lib.cpp
  1.    <eof> parser at end of file
  2.    Code generation
  3.    Running pass 'Function Pass Manager' on module '/Volumes/src/ndk-samples/sanitizers/app/src/main/cpp/native-lib.cpp'.
  4.    Running pass 'RISC-V DAG->DAG Pattern Instruction Selection' on function '@Java_com_example_sanitizers_MainActivity_stringFromJNI'
   #0 0x00000001040282b8 (/Users/danalbert/Library/Android/sdk/ndk/29.0.13846066/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang-21+0x10155c2b8)
   #1 0x0000000104026a4c (/Users/danalbert/Library/Android/sdk/ndk/29.0.13846066/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang-21+0x10155aa4c)
   #2 0x0000000103fb3f00 (/Users/danalbert/Library/Android/sdk/ndk/29.0.13846066/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang-21+0x1014e7f00)
   #3 0x0000000103fb4080 (/Users/danalbert/Library/Android/sdk/ndk/29.0.13846066/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang-21+0x1014e8080)
   #4 0x00000001994816a4 (/usr/lib/system/libsystem_platform.dylib+0x1804ad6a4)
   #5 0x0000000104c65d60 (/Users/danalbert/Library/Android/sdk/ndk/29.0.13846066/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang-21+0x102199d60)
   #6 0x0000000104c65d60 (/Users/danalbert/Library/Android/sdk/ndk/29.0.13846066/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang-21+0x102199d60)
   #7 0x0000000104cbaffc (/Users/danalbert/Library/Android/sdk/ndk/29.0.13846066/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang-21+0x1021eeffc)
   #8 0x0000000104cba684 (/Users/danalbert/Library/Android/sdk/ndk/29.0.13846066/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang-21+0x1021ee684)
   #9 0x0000000104cb9398 (/Users/danalbert/Library/Android/sdk/ndk/29.0.13846066/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang-21+0x1021ed398)
  #10 0x0000000103614f6c (/Users/danalbert/Library/Android/sdk/ndk/29.0.13846066/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang-21+0x100b48f6c)
  #11 0x0000000103994ee4 (/Users/danalbert/Library/Android/sdk/ndk/29.0.13846066/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang-21+0x100ec8ee4)
  #12 0x000000010399a224 (/Users/danalbert/Library/Android/sdk/ndk/29.0.13846066/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang-21+0x100ece224)
  #13 0x0000000103995894 (/Users/danalbert/Library/Android/sdk/ndk/29.0.13846066/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang-21+0x100ec9894)
  #14 0x0000000104394eb4 (/Users/danalbert/Library/Android/sdk/ndk/29.0.13846066/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang-21+0x1018c8eb4)
  #15 0x0000000104628f1c (/Users/danalbert/Library/Android/sdk/ndk/29.0.13846066/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang-21+0x101b5cf1c)
  #16 0x00000001052cf894 (/Users/danalbert/Library/Android/sdk/ndk/29.0.13846066/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang-21+0x102803894)
  #17 0x00000001048a8190 (/Users/danalbert/Library/Android/sdk/ndk/29.0.13846066/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang-21+0x101ddc190)
  #18 0x0000000104842cc4 (/Users/danalbert/Library/Android/sdk/ndk/29.0.13846066/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang-21+0x101d76cc4)
  #19 0x00000001048ff2a8 (/Users/danalbert/Library/Android/sdk/ndk/29.0.13846066/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang-21+0x101e332a8)
  #20 0x0000000102ad3868 (/Users/danalbert/Library/Android/sdk/ndk/29.0.13846066/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang-21+0x100007868)
  #21 0x0000000102ad1a30 (/Users/danalbert/Library/Android/sdk/ndk/29.0.13846066/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang-21+0x100005a30)
  #22 0x0000000104735114 (/Users/danalbert/Library/Android/sdk/ndk/29.0.13846066/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang-21+0x101c69114)
  #23 0x0000000103fb3e90 (/Users/danalbert/Library/Android/sdk/ndk/29.0.13846066/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang-21+0x1014e7e90)
  #24 0x0000000104734568 (/Users/danalbert/Library/Android/sdk/ndk/29.0.13846066/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang-21+0x101c68568)
  #25 0x000000010470d7ac (/Users/danalbert/Library/Android/sdk/ndk/29.0.13846066/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang-21+0x101c417ac)
  #26 0x000000010470da90 (/Users/danalbert/Library/Android/sdk/ndk/29.0.13846066/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang-21+0x101c41a90)
  #27 0x000000010471ed3c (/Users/danalbert/Library/Android/sdk/ndk/29.0.13846066/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang-21+0x101c52d3c)
  #28 0x0000000102ad0b0c (/Users/danalbert/Library/Android/sdk/ndk/29.0.13846066/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang-21+0x100004b0c)
  #29 0x0000000102adc2e4 (/Users/danalbert/Library/Android/sdk/ndk/29.0.13846066/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang-21+0x1000102e4)
  #30 0x00000001990a6b98 
  clang++: error: clang frontend command failed with exit code 139 (use -v to see invocation)
  Android (13818152, +pgo, -bolt, +lto, -mlgo, based on r563880b) clang version 21.0.0 (https://android.googlesource.com/toolchain/llvm-project 5e96669f06077099aa41290cdb4c5e6fa0f59349)
  Target: riscv64-none-linux-android35
  Thread model: posix
  InstalledDir: /Users/danalbert/Library/Android/sdk/ndk/29.0.13846066/toolchains/llvm/prebuilt/darwin-x86_64/bin
  clang++: note: diagnostic msg: 
  ********************
  
  PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
  Preprocessed source(s) and associated run script(s) are located at:
  clang++: note: diagnostic msg: /var/folders/d0/q0qt7md5545gf_cvh7x5r178007f45/T/native-lib-6c0234.cpp
  clang++: note: diagnostic msg: /var/folders/d0/q0qt7md5545gf_cvh7x5r178007f45/T/native-lib-6c0234.sh
  clang++: note: diagnostic msg: Crash backtrace is located in
  clang++: note: diagnostic msg: /Users/danalbert/Library/Logs/DiagnosticReports/clang++_<YYYY-MM-DD-HHMMSS>_<hostname>.crash
  clang++: note: diagnostic msg: (choose the .crash file that corresponds to your crash)
  clang++: note: diagnostic msg: 
  
  ********************
  ninja: build stopped: subcommand failed.

Upstream bug

No response

Commit to cherry-pick

No response

I am using a supported NDK

  • I have checked and the NDK I'm using is currently supported

Affected versions

r29, r28, r27

Host OS

Tested Mac, probably all

Host OS version

15.6

Affected ABIs

riscv64

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions