On 12/2/20 3:36 PM, Jakub Jelinek wrote:
On Wed, Dec 02, 2020 at 02:20:17PM -0600, Peter Bergner via Gcc-patches wrote:
My apologies for sending this a second time. I forgot to add the
mailing list to the CC list. :-(
c++: Treat OPAQUE_TYPE types as an aggregate type
MODE_OPAQUE and the associated OPAQUE_TYPE were added to stop the optimizers
from knowing how the bits in a variable with an opaque type are laid out.
This makes them a kind of pseudo aggregate type and we need to treat them
as such when we process the INIT initializer for variables with an
opaque type.
Just a random question, do you have some testsuite coverage for constant
expression evaluation (primarily C++) with the opaque types, do you verify
any object with that type is treated as something that may not appear in
constant expression and does constexpr.c properly punt on it rather than
ICE?
Yes, I'm sure many more changes are necessary for significant C++
support. But this patch is OK.
Jason