<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/128987>128987</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Buffer overflow with excess array initializers in #embed
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            c23,
            clang:codegen
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          efriedma-quic
      </td>
    </tr>
</table>

<pre>
    Testcase:

```
void f(int x) {
  int p[8] = {x, x, x, x, x, x, x,
#embed __FILE__ limit(3)
};
}
```

This stores to `p[8]` and `p[9]`, which are past the end of the array.

Related assertion:
```
void f(int x) {
  int p[8] = {x, x, x, x, x, x, x,
#embed __FILE__ limit(10)
};
}
```
```
llvm/include/llvm/Support/Casting.h:109: static bool llvm::isa_impl_cl<clang::ImplicitValueInitExpr, const clang::Expr *>::doit(const From *) [To = clang::ImplicitValueInitExpr, From = const clang::Expr *]: Assertion `Val && "isa<> used on a null pointer"' failed.
```

CC @Fznamznon 
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzEU02PozgQ_TXFpTSRUw4BDhxI0kgt7Wm3NdfImCJ4ZWzWNt09_etXkLRmVqv9uI1kodKrolzv1bOK0dwccw35CfJLppY0-lDzEAz3k_ryx2J01vn-W_3CMWkVGWQDYjtH8TiiefWmxwGoNC7hO1CFUJxANIgrMEN-KiG_IMjLmngHOuO_ftb2JHnquMfrtX3-5el6RWsmk4BKCVStBcUF5OkR_HUcEM3LaCLG5ANHTB7hKD6ngKNA5fpPqLpD681vo9EjqsA4q5gwjYzsevTDFqoQ1LfdvfuvbFXiHlWMHJLx7qHKz5JkL_5bkx9ia18noNY4bZeegdoH8Nsyzz4koPasYjLuthtBNntRgWwwJpWMxs57i1u9bEA2JqqrmWZ71RbkWVvlbvfE8zRbo036quzCz86kp_c5rGS0dzHhD5VrAoEakE93oPcbqXthG_y0ZVcF89OL3yT7Pxfd_1yL__HG_LIyaz63uHriq7IIdAQ6IhCZqECeQT7hErlH71ChW6zF2RuXOAARUIGDMpb73d9teD4jHET74dT04bzDrK9lX8lKZVzvi4M4ksz3MhtrIUt5KIRgpYuOq6Lc51VXdnlfVoehZJWZmgTlgqgQJPe53BXdQHrohSJ91HTo4CB4Usbu1uXsfLhlJsaF6z2VVVlkVnVs4_bOiTTJbfLzGj900b7nG7sVzy9ZqNc2X7rlFuEgrIkpfm-cTLJcn5Zh4ID-lcNg_Ru-mTQiv2uO8f5Y0DiTjLLmg0NE4_DTwNkSbD2mNMd1H9QCtTeTxqXbaT99t-M2wRz876xXT250IlD7YPRa058BAAD__4GfZE4">