@@ -3065,7 +3065,10 @@ unary_identifier_declarator:
3065
3065
{
3066
3066
// the type_qualifier_list is for the pointer,
3067
3067
// and not the identifier_declarator
3068
- stack_type ($1 )=pointer_type(typet(ID_abstract));
3068
+ // The below is deliberately not using pointer_type();
3069
+ // the width is added during conversion.
3070
+ stack_type ($1 ).id(ID_pointer);
3071
+ stack_type ($1 ).subtype()=typet(ID_abstract);
3069
3072
$2 =merge($2 , $1 ); // dest=$2
3070
3073
make_subtype ($3 , $2 ); // dest=$3
3071
3074
$$ =$3 ;
@@ -3249,13 +3252,19 @@ unary_abstract_declarator:
3249
3252
' *'
3250
3253
{
3251
3254
$$ =$1 ;
3252
- stack_type ($$)=pointer_type(typet(ID_abstract));
3255
+ // The below is deliberately not using pointer_type();
3256
+ // the width is added during conversion.
3257
+ stack_type ($$).id(ID_pointer);
3258
+ stack_type ($$).subtype()=typet(ID_abstract);
3253
3259
}
3254
3260
| ' *' attribute_type_qualifier_list
3255
3261
{
3256
3262
// The type_qualifier_list belongs to the pointer,
3257
3263
// not to the (missing) abstract declarator.
3258
- stack_type ($1 )=pointer_type(typet(ID_abstract));
3264
+ // The below is deliberately not using pointer_type();
3265
+ // the width is added during conversion.
3266
+ stack_type ($1 ).id(ID_pointer);
3267
+ stack_type ($1 ).subtype()=typet(ID_abstract);
3259
3268
$$ =merge($2 , $1 );
3260
3269
}
3261
3270
| ' *' abstract_declarator
@@ -3267,7 +3276,10 @@ unary_abstract_declarator:
3267
3276
{
3268
3277
// The type_qualifier_list belongs to the pointer,
3269
3278
// not to the abstract declarator.
3270
- stack_type ($1 )=pointer_type(typet(ID_abstract));
3279
+ // The below is deliberately not using pointer_type();
3280
+ // the width is added during conversion.
3281
+ stack_type ($1 ).id(ID_pointer);
3282
+ stack_type ($1 ).subtype()=typet(ID_abstract);
3271
3283
$2 =merge($2 , $1 ); // dest=$2
3272
3284
make_subtype ($3 , $2 ); // dest=$3
3273
3285
$$ =$3 ;
@@ -3286,13 +3298,19 @@ parameter_unary_abstract_declarator:
3286
3298
' *'
3287
3299
{
3288
3300
$$ =$1 ;
3289
- stack_type ($$)=pointer_type(typet(ID_abstract));
3301
+ // The below is deliberately not using pointer_type();
3302
+ // the width is added during conversion.
3303
+ stack_type ($$).id(ID_pointer);
3304
+ stack_type ($$).subtype()=typet(ID_abstract);
3290
3305
}
3291
3306
| ' *' attribute_type_qualifier_list
3292
3307
{
3293
3308
// The type_qualifier_list belongs to the pointer,
3294
3309
// not to the (missing) abstract declarator.
3295
- stack_type ($1 )=pointer_type(typet(ID_abstract));
3310
+ // The below is deliberately not using pointer_type();
3311
+ // the width is added during conversion.
3312
+ stack_type ($1 ).id(ID_pointer);
3313
+ stack_type ($1 ).subtype()=typet(ID_abstract);
3296
3314
$$ =merge($2 , $1 );
3297
3315
}
3298
3316
| ' *' parameter_abstract_declarator
@@ -3304,7 +3322,10 @@ parameter_unary_abstract_declarator:
3304
3322
{
3305
3323
// The type_qualifier_list belongs to the pointer,
3306
3324
// not to the (missing) abstract declarator.
3307
- stack_type ($1 )=pointer_type(typet(ID_abstract));
3325
+ // The below is deliberately not using pointer_type();
3326
+ // the width is added during conversion.
3327
+ stack_type ($1 ).id(ID_pointer);
3328
+ stack_type ($1 ).subtype()=typet(ID_abstract);
3308
3329
$2 =merge($2 , $1 ); // dest=$2
3309
3330
make_subtype ($3 , $2 ); // dest=$3
3310
3331
$$ =$3 ;
0 commit comments