[clang] [clang] Inject tokens containing #embed back into token stream (PR #97274)

Mariya Podchishchaeva via cfe-commits cfe-commits at lists.llvm.org
Mon Jul 15 07:46:54 PDT 2024


Fznamznon wrote:

I'm looking through https://gcc.gnu.org/pipermail/gcc-patches/2024-June/655012.html
This patch fixes cases like:

```
const unsigned char w[] = {
#embed __FILE__ prefix([0] = 42, [15] =) limit(32)
};
```

And also cases like
```
void foo (int, int, int, int);
void bar (void) { foo (
#embed __FILE__ limit (4) prefix (172 + ) suffix (+ 2)
); }
```
as intended, the test case similar to latter is modified by the patch.
There are still problems with `#embed ""`  `__if_empty__ ((({{[0[0{0{0(0(0)1)1}1}]]}}))))`, has_embed, handling of prefix/suffix trying to #embed "", https://godbolt.org/z/PsoTr5f7K  and etc. These I consider out of the scope of this patch and will post more details to https://github.com/llvm/llvm-project/issues/95222 . 


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


More information about the cfe-commits mailing list