[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