https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91490
programmer at posteo dot de changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |programmer at posteo dot de
--- Comment #6 from programmer at posteo dot de ---
The same bogus warning ist produced by "g++ -Wall" with the C++ code below.
Note that flexible array members are not involved there.
GCC 9.2 is affected: https://godbolt.org/z/j9m4XS
GCC 10 seems fixed: https://godbolt.org/z/DPrR1Z
//////////////////////////////////////////////////////////////////////////////
struct two_chars_t {// std::array<char, 2>
char data_[2];
constexpr const char* data() const { return data_; }
};
constexpr two_chars_t global_x0 = two_chars_t{'x', '\0'};
int main() {
constexpr const char* pointer = global_x0.data();
static_assert(pointer[0] == 'x');
static_assert(pointer[1] == '\0');
return __builtin_strlen(pointer);
}
//////////////////////////////////////////////////////////////////////////////