[clang] [clang-tools-extra] Remove `StringLiteral` in favor of `StringRef` (PR #122366)

Sergei Barannikov via cfe-commits cfe-commits at lists.llvm.org
Thu Jan 9 13:17:54 PST 2025


s-barannikov wrote:

> @s-barannikov
> 
> > > * the `strlen` is NOT constant-evaluated on MSVC, even the latest version.
> > 
> > 
> > The godbolt link shows otherwise?
> 
> This is what I see in godbolt - to me this loop looks like strlen:
> 
> ![{FBB342A5-7B03-4AD6-AB88-01686E1D9B69}](https://private-user-images.githubusercontent.com/79535/401697316-8798ffee-b792-436f-b944-377a25fd8b2e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzY0NTc0NjcsIm5iZiI6MTczNjQ1NzE2NywicGF0aCI6Ii83OTUzNS80MDE2OTczMTYtODc5OGZmZWUtYjc5Mi00MzZmLWI5NDQtMzc3YTI1ZmQ4YjJlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAxMDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMTA5VDIxMTI0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTUyODcyZDE1M2M3NTE1YTQ1ZjAyNzg5ODczNjY1NmVkMTNjNDFhZWViMTkzODIwNTFiMmZjMjI4MTYxYWM2NDQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.lDS3zgqDmtxZ5Ef9_smcZbVAlDI9tTfNFa-6bJ_k-lk)

It is the body of the constructor. `xyz` function is below
```
StringRef xyz(void) PROC                     ; xyz, COMDAT
        lea     rax, OFFSET FLAT:`string'
        mov     DWORD PTR [rcx+8], 26
        mov     QWORD PTR [rcx], rax
        mov     rax, rcx
        ret     0
StringRef xyz(void) ENDP                     ; xyz
```


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


More information about the cfe-commits mailing list