On 3/16/20 4:41 PM, Martin Sebor wrote:
The recent fix to avoid modifying in place the type argument in
handle_access_attribute (PR 92721) was incomplete and didn't fully
resolve the problem (an ICE in the C++ front-end). The attached
patch removes the remaining modification that causes the ICE. In
addition, the change adjusts checking calls to functions declared
with the attribute to scan all its instances.
The attached patch was tested on x86_64-linux.
attrs = remove_attribute (IDENTIFIER_POINTER (name), attrs);
This unchanged line can still modify existing types; I think if attrs
already has a matching attribute you need to work harder to replace it.