[PATCH] c++: Treat OPAQUE_TYPE types as an aggregate type [PR97947]
Nathan Sidwell
nathan@acm.org
Wed Dec 2 20:40:52 GMT 2020
On 12/2/20 3:37 PM, Jason Merrill wrote:
> 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.
Well, they ain't gonna serialize though modules :)
nathan
--
Nathan Sidwell
More information about the Gcc-patches
mailing list