[Bug c++/101239] "Internal compiler error: Error reporting routines re-entered." in size_in_bytes_loc

arthur.j.odwyer at gmail dot com gcc-bugzilla@gcc.gnu.org
Mon Dec 13 19:32:20 GMT 2021


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

Arthur O'Dwyer <arthur.j.odwyer at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |arthur.j.odwyer at gmail dot com

--- Comment #4 from Arthur O'Dwyer <arthur.j.odwyer at gmail dot com> ---
I believe I just hit this as well. Here's a C++20 reproducer:

    auto f(auto a) -> decltype(a+1) { return a+1; }
    struct Incomplete *p;
    auto b = f(p);

The problem seems to be something about over-eager hard-erroring on pointer
arithmetic with incomplete types, because GCC also rejects this valid code:

    auto f(auto a) requires requires { a+1; } { return a+1; }
    auto f(auto a) { return a; }
    struct Incomplete *p;
    auto b = f(p);

(Should call the unconstrained overload; but GCC hard-errors instead.)


More information about the Gcc-bugs mailing list