https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99018

--- Comment #2 from David Stone <david at doublewise dot net> ---
Simpler test case

```
struct s {
        constexpr ~s() {
        }
};

constexpr bool f(s const (&)[1]) {
        return true;
}

static_assert(f({s()}));
```

Message

```
<source>:10:16: error: non-constant condition for static assertion
   10 | static_assert(f({s()}));
      |               ~^~~~~~~
<source>:10:22: error: '(((const s*)(&<anonymous>)) != 0)' is not a constant
expression
   10 | static_assert(f({s()}));
      |                      ^
Compiler returned: 1
```

See it live: https://godbolt.org/z/YGYjfh

You can get the same error by making the function parameter
`std::initializer_list<s>` as well. Especially interesting in this reduction is
that the code complains about a comparison, but there is no comparison anywhere
in the code.

Reply via email to