- duplicate type entry for parameters with the range attribute.
This fixes the problem that Eric Kohl detected.
This has already been sent to wine.

svn path=/trunk/; revision=53480
This commit is contained in:
Jérôme Gardou 2011-08-28 15:32:08 +00:00
parent b011354030
commit 2edefc21c4
2 changed files with 9 additions and 0 deletions

View file

@ -5965,6 +5965,10 @@ static var_t *declare_var(attr_list_t *attrs, decl_spec_t *decl_spec, const decl
array_dims_t *arr = decl ? decl->array : NULL;
type_t *func_type = decl ? decl->func_type : NULL;
type_t *type = decl_spec->type;
/* In case of a ranged type, duplicate it */
if(is_attr(attrs, ATTR_RANGE))
type = duptype(type, 1);
if (is_attr(type->attrs, ATTR_INLINE))
{

View file

@ -1417,6 +1417,11 @@ static var_t *declare_var(attr_list_t *attrs, decl_spec_t *decl_spec, const decl
array_dims_t *arr = decl ? decl->array : NULL;
type_t *func_type = decl ? decl->func_type : NULL;
type_t *type = decl_spec->type;
/* In case of a range attribute, duplicate the type to keep track of
* the min/max values in the type format string */
if(is_attr(attrs, ATTR_RANGE))
type = duptype(type, 1);
if (is_attr(type->attrs, ATTR_INLINE))
{