On Wed, 28 Oct 2015, Mike Stump wrote:
> On Oct 28, 2015, at 3:04 PM, Eric Botcazou <[email protected]> wrote:
> >> Why is -fsso-struct= listed only for C and C++, not ObjC and ObjC++?
> >
> > Because it was not tested with the latter 2 languages at all and may
> > require
> > specific adjustments in the respective front-ends to work.
>
> It won’t. Fixing the language line for the options and a make to ensure
> it still builds for you is enough testing.
There *can* be cases where one knows that updates would be needed to
support a new feature for ObjC and ObjC++. But those are the exception
rather than the rule and should have a specific comment explaining what
the issue is and what would need to be done to enable the feature for
them. I don't see why that would apply in this case, so I think just
adding the languages in c.opt should be enough. (Cf. for C11 _Atomic:
case RID_ATOMIC:
/* C parser handling of Objective-C constructs needs
checking for correct lvalue-to-rvalue conversions, and
the code in build_modify_expr handling various
Objective-C cases, and that in build_unary_op handling
Objective-C cases for increment / decrement, also needs
updating; uses of TYPE_MAIN_VARIANT in objc_compare_types
and objc_types_are_equivalent may also need updates. */
if (c_dialect_objc ())
sorry ("%<_Atomic%> in Objective-C");
but no other C11 feature needed any such disabling for ObjC. [_Atomic has
similar disabling for OpenMP, again because of parser constructs involving
lvalue-to-rvalue conversions that would need updating to generate proper
atomic loads via convert_lvalue_to_rvalue or otherwise.])
--
Joseph S. Myers
[email protected]