diff options
author | yronglin <yronglin777@gmail.com> | 2025-06-25 00:56:01 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-06-25 00:56:01 +0800 |
commit | 8b0d112478cec296517660c1c741b8e97aeaf684 (patch) | |
tree | 73485dd7875f5db02976698a93187697daad6c31 /llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp | |
parent | 353f75410a19328c57a2c91969e239a1f3c33a02 (diff) | |
download | llvm-8b0d112478cec296517660c1c741b8e97aeaf684.zip llvm-8b0d112478cec296517660c1c741b8e97aeaf684.tar.gz llvm-8b0d112478cec296517660c1c741b8e97aeaf684.tar.bz2 |
[Clang][Preprocessor] Expand UCNs in macro concatenation (#145351)
Fixs https://github.com/llvm/llvm-project/issues/145240.
The UCN in preprocessor pasted identifier not resolved to unicode, it
may cause the following issue:
```c
#define CAT(a,b) a##b
char foo\u00b5;
char*p = &CAT(foo, \u00b5); // error: use of undeclared identifier 'foo\u00b5'
```
The real identifier after paste is `fooµ`. This PR fix this issue in
`TokenLexer::pasteTokens`, if there has any UCN in pasting tokens, the
final pasted token should have a Token::HasUCN flag. Then
`Preprocessor::LookUpIdentifierInfo` will expand UCNs in this token.
Signed-off-by: yronglin <yronglin777@gmail.com>
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp')
0 files changed, 0 insertions, 0 deletions