Issue 95367
Summary Specifying -ftrapv or -fsanitize=undefined at the same time as -fsanitize=memory does not detect some uninitialized variable references
Labels new issue
Assignees
Reporter yamam
    
`test.c`
```c
int main(void)
{
 int a;
    int c = a + 0;
    if(c)
    {
        c++;
 }
    return 0;
}
```
It is expected that a memory access violation will be detected as follows.
```
$ clang -fsanitize=memory -fPIE -pie test.c
$ ./a.out
==1747352==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x5652f3f13413 in main (/tmp/a.out+0xca413) (BuildId: 86494c3488075ddb4a2e0750989d5039f1525021)
 #1 0x7f2f0b8471c9 in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
    #2 0x7f2f0b84728a in __libc_start_main csu/../csu/libc-start.c:360:3
    #3 0x5652f3e7b2f4 in _start (/tmp/a.out+0x322f4) (BuildId: 86494c3488075ddb4a2e0750989d5039f1525021)

SUMMARY: MemorySanitizer: use-of-uninitialized-value (/tmp/a.out+0xca413) (BuildId: 86494c3488075ddb4a2e0750989d5039f1525021) in main
Exiting
```

However, when I add the -ftrapv or -fsanitize=undefined options, the uninitialized variable access violation is not detected.
```
$ clang -fsanitize=memory -ftrapv -fPIE -pie test.c
$ ./a.out
$ clang -fsanitize=memory -fsanitize=undefined -fPIE -pie test.c
$ ./a.out
```

**Environment Information**
```
$ clang --version
Ubuntu clang version 18.1.3 (1)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
$ uname -r
6.8.0-35-generic
$ head -1 /etc/os-release
PRETTY_NAME="Ubuntu 24.04 LTS"
```
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to