[Bug c++/70178] Loop-invariant memory loads from std::string innards are not hoisted

zackw at panix dot com gcc-bugzilla@gcc.gnu.org
Mon Mar 14 17:31:00 GMT 2016


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

--- Comment #5 from Zack Weinberg <zackw at panix dot com> ---
It seems to me that a pair of extended integer types (signed and unsigned),
that are the same size as `char` but don't get the special TBAA treatment for
"character types", would be easier to implement and validate than figuring out
what "restrict" means when applied to a data member, and probably just as
effective in this context.  `std::string` doesn't expose bare writable pointers
so I *think* this has no compatibility implications.

Note that I do *not* think it would be safe for [u]int8_t to be (defined as)
those types.


More information about the Gcc-bugs mailing list