[clang] [C] Handle comma operator for implicit int->enum conversions (PR #138752)

Mikael Holmén via cfe-commits cfe-commits at lists.llvm.org
Sun May 11 22:48:29 PDT 2025


mikaelholmen wrote:

Hi @AaronBallman

I see that if I build clang with ASAN with this patch and run the testcase
```clang/test/C/C99/n590.c```
it crashes and I see this

```
AddressSanitizer:DEADLYSIGNAL
=================================================================
==2063954==ERROR: AddressSanitizer: SEGV on unknown address 0xb5c8001f7e52 (pc 0x7fe2bd0e8baf bp 0x7fe2bd718370 sp 0x7fe2bd7181a0 T0)
==2063954==The signal is caused by a WRITE memory access.
    #0 0x7fe2bd0e8baf in raise (/lib64/libpthread.so.0+0x12baf) (BuildId: 1962602ac5dc3011b6d697b38b05ddc244197114)
    #1 0x5610e162f93e in SignalHandler(int, siginfo_t*, void*) /repo/llvm/build-all-bbisdk-asan/../lib/Support/Unix/Signals.inc
    #2 0x7fe2bd0e8d0f  (/lib64/libpthread.so.0+0x12d0f) (BuildId: 1962602ac5dc3011b6d697b38b05ddc244197114)
    #3 0x5610e888912a in AnalyzeImplicitConversions(clang::Sema&, clang::Expr*, clang::SourceLocation, bool) /repo/llvm/build-all-bbisdk-asan/../../clang/lib/Sema/SemaChecking.cpp:12638
    #4 0x5610e888a70b in CheckCommaOperand /repo/llvm/build-all-bbisdk-asan/../../clang/lib/Sema/SemaChecking.cpp:11653:3
    #5 0x5610e888a70b in AnalyzeImplicitConversions /repo/llvm/build-all-bbisdk-asan/../../clang/lib/Sema/SemaChecking.cpp:12510:7
    #6 0x5610e888a70b in AnalyzeImplicitConversions(clang::Sema&, clang::Expr*, clang::SourceLocation, bool) /repo/llvm/build-all-bbisdk-asan/../../clang/lib/Sema/SemaChecking.cpp:12642:5
    [...]
    #730 0x5610e888a70b in CheckCommaOperand /repo/llvm/build-all-bbisdk-asan/../../clang/lib/Sema/SemaChecking.cpp:11653:3
    #731 0x5610e888a70b in AnalyzeImplicitConversions /repo/llvm/build-all-bbisdk-asan/../../clang/lib/Sema/SemaChecking.cpp:12510:7
    #732 0x5610e888a70b in AnalyzeImplicitConversions(clang::Sema&, clang::Expr*, clang::SourceLocation, bool) /repo/llvm/build-all-bbisdk-asan/../../clang/lib/Sema/SemaChecking.cpp:12642:5

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV (/lib64/libpthread.so.0+0x12baf) (BuildId: 1962602ac5dc3011b6d697b38b05ddc244197114) in raise
==2063954==ABORTING
```

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


More information about the cfe-commits mailing list