[Bug c++/101651] vector extension and element access vs C++17 constexpr functions

pinskia at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Jul 27 20:59:10 GMT 2021


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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|vector extension and        |vector extension and
                   |element write vs C++17      |element access vs C++17
                   |constexpr functions         |constexpr functions

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
So it is any vector array that matters:
#ifdef WORK
 #include <array>
 typedef std::array<char,2> vec;
#else
 typedef char vec __attribute__((vector_size(2)));
#endif
constexpr auto gen () {
    vec ret{1,2};
    vec ret1{1,2};
    for (int i = 0; i < sizeof(vec); ++i) {
        ret[i] = ret1[0];
    }
 //   ret1[0] =3;
 //   ret1[0] =ret[0];
    return ret1;
};
 auto m = gen();

Note clang rejects the above for non -DWORK case.


More information about the Gcc-bugs mailing list