widl: Don't allow floating point parameters for interpreted functions.
This commit is contained in:
parent
36ee028f49
commit
3147545541
@ -1230,14 +1230,26 @@ int is_interpreted_func( const type_t *iface, const var_t *func )
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* unions passed by value are not supported in Oi mode */
|
|
||||||
if (get_stub_mode() != MODE_Oif && args)
|
if (get_stub_mode() != MODE_Oif && args)
|
||||||
|
{
|
||||||
LIST_FOR_EACH_ENTRY( var, args, const var_t, entry )
|
LIST_FOR_EACH_ENTRY( var, args, const var_t, entry )
|
||||||
{
|
switch (type_get_type( var->type ))
|
||||||
if (type_get_type( var->type ) == TYPE_UNION ||
|
{
|
||||||
type_get_type( var->type ) == TYPE_ENCAPSULATED_UNION)
|
case TYPE_BASIC:
|
||||||
return 0;
|
switch (type_basic_get_type( var->type ))
|
||||||
}
|
{
|
||||||
|
/* floating point arguments are not supported in Oi mode */
|
||||||
|
case TYPE_BASIC_FLOAT: return 0;
|
||||||
|
case TYPE_BASIC_DOUBLE: return 0;
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
/* unions passed by value are not supported in Oi mode */
|
||||||
|
case TYPE_UNION: return 0;
|
||||||
|
case TYPE_ENCAPSULATED_UNION: return 0;
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ((str = get_attrp( func->attrs, ATTR_OPTIMIZE ))) return !strcmp( str, "i" );
|
if ((str = get_attrp( func->attrs, ATTR_OPTIMIZE ))) return !strcmp( str, "i" );
|
||||||
if ((str = get_attrp( iface->attrs, ATTR_OPTIMIZE ))) return !strcmp( str, "i" );
|
if ((str = get_attrp( iface->attrs, ATTR_OPTIMIZE ))) return !strcmp( str, "i" );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user