[PATCH] D149834: [clang][Interp] Fix ignoring TypeTraitExprs

Timm Bäder via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sun May 7 01:09:15 PDT 2023


tbaeder added inline comments.


================
Comment at: clang/test/AST/Interp/literals.cpp:875
     1 ? 0 : 1;
+    sizeof(A);
+    alignof(A);
----------------
aaron.ballman wrote:
> Let's make sure we still reject this:
> ```
> constexpr int oh_my() {
>   int x = 0;
>   sizeof(int[x++]); // This would usually be evaluated because VLAs are terrible
>   return x;
> }
> ```
> https://godbolt.org/z/E3jx6co46
Hm, no, doesn't get rejected:
```
array.cpp:1240:3: warning: expression result unused [-Wunused-value]
 1240 |   sizeof(int[x++]); // This would usually be evaluated because VLAs are terrible
      |   ^~~~~~~~~~~~~~~~
array.cpp:1243:15: error: static assertion failed due to requirement 'oh_my() == 1'
 1243 | static_assert(oh_my() == 1);
      |               ^~~~~~~~~~~~
array.cpp:1243:23: note: expression evaluates to '0 == 1'
 1243 | static_assert(oh_my() == 1);
      |               ~~~~~~~~^~~~
```


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D149834/new/

https://reviews.llvm.org/D149834



More information about the cfe-commits mailing list