@@ -3065,7 +3065,10 @@ unary_identifier_declarator:
30653065 {
30663066 // the type_qualifier_list is for the pointer,
30673067 // 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_frontend_pointer);
3071+ stack_type ($1 ).subtype()=typet(ID_abstract);
30693072 $2 =merge($2 , $1 ); // dest=$2
30703073 make_subtype ($3 , $2 ); // dest=$3
30713074 $$ =$3 ;
@@ -3249,13 +3252,19 @@ unary_abstract_declarator:
32493252 ' *'
32503253 {
32513254 $$ =$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_frontend_pointer);
3258+ stack_type ($$).subtype()=typet(ID_abstract);
32533259 }
32543260 | ' *' attribute_type_qualifier_list
32553261 {
32563262 // The type_qualifier_list belongs to the pointer,
32573263 // 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_frontend_pointer);
3267+ stack_type ($1 ).subtype()=typet(ID_abstract);
32593268 $$ =merge($2 , $1 );
32603269 }
32613270 | ' *' abstract_declarator
@@ -3267,7 +3276,10 @@ unary_abstract_declarator:
32673276 {
32683277 // The type_qualifier_list belongs to the pointer,
32693278 // 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_frontend_pointer);
3282+ stack_type ($1 ).subtype()=typet(ID_abstract);
32713283 $2 =merge($2 , $1 ); // dest=$2
32723284 make_subtype ($3 , $2 ); // dest=$3
32733285 $$ =$3 ;
@@ -3286,13 +3298,19 @@ parameter_unary_abstract_declarator:
32863298 ' *'
32873299 {
32883300 $$ =$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_frontend_pointer);
3304+ stack_type ($$).subtype()=typet(ID_abstract);
32903305 }
32913306 | ' *' attribute_type_qualifier_list
32923307 {
32933308 // The type_qualifier_list belongs to the pointer,
32943309 // 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_frontend_pointer);
3313+ stack_type ($1 ).subtype()=typet(ID_abstract);
32963314 $$ =merge($2 , $1 );
32973315 }
32983316 | ' *' parameter_abstract_declarator
@@ -3304,7 +3322,10 @@ parameter_unary_abstract_declarator:
33043322 {
33053323 // The type_qualifier_list belongs to the pointer,
33063324 // 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_frontend_pointer);
3328+ stack_type ($1 ).subtype()=typet(ID_abstract);
33083329 $2 =merge($2 , $1 ); // dest=$2
33093330 make_subtype ($3 , $2 ); // dest=$3
33103331 $$ =$3 ;
0 commit comments