llvm / llvm/llvm-project

Clang crash on Vulkan-Layers 1.4.250: <eof> parser at end of file

Open
#204,543 0 comments 0 reactions 0 assignees View on GitHub
clang needs-reduction
Dominant language
LLVM
Stars
40.5k
Forks
18.7k
PR merge metrics
PR metrics pending

Description

Clang told me to open a ticket, so here it is:

```
root in /home/maru
❯ emerge -av1u media-libs/vulkan-layers

These are the packages that would be merged, in order:

Calculating dependencies... done!
Dependency resolution took 8.83 s (backtrack: 0/20).

[ebuild U ] media-libs/vulkan-layers-1.4.350.0::gentoo [1.4.341.0::gentoo] USE="X test wayland" ABI_X86="32 (64) (-x32)" 0 KiB

Total: 1 package (1 upgrade), Size of downloads: 0 KiB

... (it starts doing its thing until the error) ...

[136/543] /usr/lib/llvm/22/bin/clang++ -m32 -mfpmath=sse -DUSE_CUSTOM_HASH_MAP -DVK_ENABLE_BETA_EXTENSIONS -DVK_USE_PLATFORM_WAYLAND_KHR -DVK_USE_PLATFORM_XCB_KHR -DVK_USE_PLATFORM_XLIB_KHR -DVK_USE_PLATFORM_XLIB_XRANDR_EXT -Dvvl_EXPORTS -I/var/tmp/portage/media-libs/vulkan-layers-1.4.350.0/work/Vulkan-ValidationLayers-vulkan-sdk-1.4.350.0/layers/. -I/var/tmp/portage/media-libs/vulkan-layers-1.4.350.0/work/Vulkan-ValidationLayers-vulkan-sdk-1.4.350.0/layers/vulkan -isystem /var/tmp/portage/media-libs/vulkan-layers-1.4.350.0/work/Vulkan-ValidationLayers-vulkan-sdk-1.4.350.0/layers/external -march=native -O2 -pipe -flto -DNDEBUG -std=c++17 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wextra -Wpointer-arith -Wconversion -Wimplicit-fallthrough -Wstring-conversion -Wno-unused-parameter -Wno-sign-conversion -Wno-implicit-int-conversion -MD -MT layers/CMakeFiles/vvl.dir/gpuav/validation_cmd/gpuav_ray_tracing.cpp.o -MF layers/CMakeFiles/vvl.dir/gpuav/validation_cmd/gpuav_ray_tracing.cpp.o.d -o layers/CMakeFiles/vvl.dir/gpuav/validation_cmd/gpuav_ray_tracing.cpp.o -c /var/tmp/portage/media-libs/vulkan-layers-1.4.350.0/work/Vulkan-ValidationLayers-vulkan-sdk-1.4.350.0/layers/gpuav/validation_cmd/gpuav_ray_tracing.cpp
FAILED: [code=1] layers/CMakeFiles/vvl.dir/gpuav/validation_cmd/gpuav_ray_tracing.cpp.o
/usr/lib/llvm/22/bin/clang++ -m32 -mfpmath=sse -DUSE_CUSTOM_HASH_MAP -DVK_ENABLE_BETA_EXTENSIONS -DVK_USE_PLATFORM_WAYLAND_KHR -DVK_USE_PLATFORM_XCB_KHR -DVK_USE_PLATFORM_XLIB_KHR -DVK_USE_PLATFORM_XLIB_XRANDR_EXT -Dvvl_EXPORTS -I/var/tmp/portage/media-libs/vulkan-layers-1.4.350.0/work/Vulkan-ValidationLayers-vulkan-sdk-1.4.350.0/layers/. -I/var/tmp/portage/media-libs/vulkan-layers-1.4.350.0/work/Vulkan-ValidationLayers-vulkan-sdk-1.4.350.0/layers/vulkan -isystem /var/tmp/portage/media-libs/vulkan-layers-1.4.350.0/work/Vulkan-ValidationLayers-vulkan-sdk-1.4.350.0/layers/external -march=native -O2 -pipe -flto -DNDEBUG -std=c++17 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wextra -Wpointer-arith -Wconversion -Wimplicit-fallthrough -Wstring-conversion -Wno-unused-parameter -Wno-sign-conversion -Wno-implicit-int-conversion -MD -MT layers/CMakeFiles/vvl.dir/gpuav/validation_cmd/gpuav_ray_tracing.cpp.o -MF layers/CMakeFiles/vvl.dir/gpuav/validation_cmd/gpuav_ray_tracing.cpp.o.d -o layers/CMakeFiles/vvl.dir/gpuav/validation_cmd/gpuav_ray_tracing.cpp.o -c /var/tmp/portage/media-libs/vulkan-layers-1.4.350.0/work/Vulkan-ValidationLayers-vulkan-sdk-1.4.350.0/layers/gpuav/validation_cmd/gpuav_ray_tracing.cpp
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: /usr/lib/llvm/22/bin/clang++ -m32 -mfpmath=sse -DUSE_CUSTOM_HASH_MAP -DVK_ENABLE_BETA_EXTENSIONS -DVK_USE_PLATFORM_WAYLAND_KHR -DVK_USE_PLATFORM_XCB_KHR -DVK_USE_PLATFORM_XLIB_KHR -DVK_USE_PLATFORM_XLIB_XRANDR_EXT -Dvvl_EXPORTS -I/var/tmp/portage/media-libs/vulkan-layers-1.4.350.0/work/Vulkan-ValidationLayers-vulkan-sdk-1.4.350.0/layers/. -I/var/tmp/portage/media-libs/vulkan-layers-1.4.350.0/work/Vulkan-ValidationLayers-vulkan-sdk-1.4.350.0/layers/vulkan -isystem /var/tmp/portage/media-libs/vulkan-layers-1.4.350.0/work/Vulkan-ValidationLayers-vulkan-sdk-1.4.350.0/layers/external -march=native -O2 -pipe -flto -DNDEBUG -std=c++17 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wextra -Wpointer-arith -Wconversion -Wimplicit-fallthrough -Wstring-conversion -Wno-unused-parameter -Wno-sign-conversion -Wno-implicit-int-conversion -MD -MT layers/CMakeFiles/vvl.dir/gpuav/validation_cmd/gpuav_ray_tracing.cpp.o -MF layers/CMakeFiles/vvl.dir/gpuav/validation_cmd/gpuav_ray_tracing.cpp.o.d -o layers/CMakeFiles/vvl.dir/gpuav/validation_cmd/gpuav_ray_tracing.cpp.o -c /var/tmp/portage/media-libs/vulkan-layers-1.4.350.0/work/Vulkan-ValidationLayers-vulkan-sdk-1.4.350.0/layers/gpuav/validation_cmd/gpuav_ray_tracing.cpp
1. parser at end of file
2. /var/tmp/portage/media-libs/vulkan-layers-1.4.350.0/work/Vulkan-ValidationLayers-vulkan-sdk-1.4.350.0/layers/./utils/cast_utils.h:67:24: instantiating function definition 'CastToUint64'
3. /var/tmp/portage/media-libs/vulkan-layers-1.4.350.0/work/Vulkan-ValidationLayers-vulkan-sdk-1.4.350.0/layers/./utils/cast_utils.h:34:20: instantiating function definition 'CastToUint'
#0 0x00007f63b0e0ae8a llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm/22/bin/../lib64/libLLVM.so.22.1+0x480ae8a)
#1 0x00007f63b0e09b7b llvm::sys::RunSignalHandlers() (/usr/lib/llvm/22/bin/../lib64/libLLVM.so.22.1+0x4809b7b)
#2 0x00007f63b0d0bc84 (/usr/lib/llvm/22/bin/../lib64/libLLVM.so.22.1+0x470bc84)
#3 0x00007f63ac0588b0 (/usr/lib64/libc.so.6+0x418b0)
#4 0x00007f63b74df939 clang::Expr::IgnoreParenNoopCasts(clang::ASTContext const&) (/usr/lib/llvm/22/bin/../lib64/libclang-cpp.so.22.1+0x18df939)
#5 0xfe3f70f0701dfcdd
clang++: error: clang frontend command failed with exit code 139 (use -v to see invocation)
clang version 22.1.8
Target: i386-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/lib/llvm/22/bin
Configuration file: /etc/clang/22/i386-pc-linux-gnu-clang++.cfg
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/tmp/portage/media-libs/vulkan-layers-1.4.350.0/temp/gpuav_ray_tracing-3e0781.cpp
clang++: note: diagnostic msg: /var/tmp/portage/media-libs/vulkan-layers-1.4.350.0/temp/gpuav_ray_tracing-3e0781.sh
clang++: note: diagnostic msg:

********************
ninja: build stopped: subcommand failed.
* ERROR: media-libs/vulkan-layers-1.4.350.0::gentoo failed (compile phase):
* ninja -v -l16 -j8 failed
*
* Call stack:
* ebuild.sh, line 143: Called src_compile
* environment, line 3548: Called cmake-multilib_src_compile
* environment, line 1389: Called multilib-minimal_src_compile
* environment, line 2465: Called multilib_foreach_abi 'multilib-minimal_abi_src_compile'
* environment, line 2737: Called multibuild_foreach_variant '_multilib_multibuild_wrapper' 'multilib-minimal_abi_src_compile'
* environment, line 2425: Called _multibuild_run '_multilib_multibuild_wrapper' 'multilib-minimal_abi_src_compile'
* environment, line 2423: Called _multilib_multibuild_wrapper 'multilib-minimal_abi_src_compile'
* environment, line 600: Called multilib-minimal_abi_src_compile
* environment, line 2459: Called multilib_src_compile
* environment, line 2958: Called cmake_src_compile
* environment, line 1520: Called cmake_build
* environment, line 1430: Called eninja
* environment, line 1779: Called die
* The specific snippet of code:
* "$@" || die -n "${*} failed"
*
* If you need support, post the output of `emerge --info '=media-libs/vulkan-layers-1.4.350.0::gentoo'`,
* the complete build log and the output of `emerge -pqv '=media-libs/vulkan-layers-1.4.350.0::gentoo'`.
* The complete build log is located at '/var/tmp/portage/media-libs/vulkan-layers-1.4.350.0/temp/build.log'.
* The ebuild environment file is located at '/var/tmp/portage/media-libs/vulkan-layers-1.4.350.0/temp/environment'.
* Working directory: '/var/tmp/portage/media-libs/vulkan-layers-1.4.350.0/work/Vulkan-ValidationLayers-vulkan-sdk-1.4.350.0_build-abi_x86_32.x86'
* S: '/var/tmp/portage/media-libs/vulkan-layers-1.4.350.0/work/Vulkan-ValidationLayers-vulkan-sdk-1.4.350.0'

>>> Failed to emerge media-libs/vulkan-layers-1.4.350.0, Log file:

>>> '/var/tmp/portage/media-libs/vulkan-layers-1.4.350.0/temp/build.log'

* Messages for package media-libs/vulkan-layers-1.4.350.0:

* ERROR: media-libs/vulkan-layers-1.4.350.0::gentoo failed (compile phase):
* ninja -v -l16 -j8 failed
* Call stack:
* ebuild.sh, line 143: Called src_compile
* environment, line 3548: Called cmake-multilib_src_compile
* environment, line 1389: Called multilib-minimal_src_compile
* environment, line 2465: Called multilib_foreach_abi 'multilib-minimal_abi_src_compile'
* environment, line 2737: Called multibuild_foreach_variant '_multilib_multibuild_wrapper' 'multilib-minimal_abi_src_compile'
* environment, line 2425: Called _multibuild_run '_multilib_multibuild_wrapper' 'multilib-minimal_abi_src_compile'
* environment, line 2423: Called _multilib_multibuild_wrapper 'multilib-minimal_abi_src_compile'
* environment, line 600: Called multilib-minimal_abi_src_compile
* environment, line 2459: Called multilib_src_compile
* environment, line 2958: Called cmake_src_compile
* environment, line 1520: Called cmake_build
* environment, line 1430: Called eninja
* environment, line 1779: Called die
* The specific snippet of code:
* "$@" || die -n "${*} failed"
* If you need support, post the output of `emerge --info '=media-libs/vulkan-layers-1.4.350.0::gentoo'`,
* the complete build log and the output of `emerge -pqv '=media-libs/vulkan-layers-1.4.350.0::gentoo'`.
* The complete build log is located at '/var/tmp/portage/media-libs/vulkan-layers-1.4.350.0/temp/build.log'.
* The ebuild environment file is located at '/var/tmp/portage/media-libs/vulkan-layers-1.4.350.0/temp/environment'.
* Working directory: '/var/tmp/portage/media-libs/vulkan-layers-1.4.350.0/work/Vulkan-ValidationLayers-vulkan-sdk-1.4.350.0_build-abi_x86_32.x86'
* S: '/var/tmp/portage/media-libs/vulkan-layers-1.4.350.0/work/Vulkan-ValidationLayers-vulkan-sdk-1.4.350.0'
```

## Attached Files

- gpuav_ray_tracing-3e0781.cpp is nearly 30MB big, so [I uploaded it as a gist](https://gist.github.com/minecrawler/c7c20609cd32a0f7140a47a93c4902ff)
- [gpuav_ray_tracing-3e0781.sh](https://github.com/user-attachments/files/29088335/gpuav_ray_tracing-3e0781.sh)

Contributor guide

Open the contributing guide

Research direction

Start by running gpuav_ray_tracing-3e0781.sh with the supplied preprocessed source from the gist to reproduce the crash. Then inspect the stack locations in utils/cast_utils.h, especially lines 34 and 67, and confirm completion when Clang no longer exits with code 139 on this reproducer.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
compilers
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.