X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=mangle.c;h=f9ebe76d0217b78eb7996c92e813220187e3cbbd;hb=00546364f6dca53f2d6297026f2ba9da8b38979f;hp=c80ec3195d7a863d5e3d808964dee13ca03662bc;hpb=b7aee7a7ddee373437c04479c6ec00f14639d4da;p=cparser diff --git a/mangle.c b/mangle.c index c80ec31..f9ebe76 100644 --- a/mangle.c +++ b/mangle.c @@ -70,6 +70,12 @@ static void mangle_pointer_type(const pointer_type_t *type) mangle_type(type->points_to); } +static void mangle_reference_type(const reference_type_t *type) +{ + obstack_1grow(&obst, 'R'); + mangle_type(type->refers_to); +} + static void mangle_parameters(const function_type_t *type) { if (type->unspecified_parameters) @@ -157,8 +163,10 @@ static void mangle_imaginary_type(const imaginary_type_t *type) static void mangle_qualifiers(type_qualifiers_t qualifiers) { +#if 0 /* Do not mangle restrict qualifiers. GCC doesn't either */ if (qualifiers & TYPE_QUALIFIER_RESTRICT) obstack_1grow(&obst, 'r'); +#endif if (qualifiers & TYPE_QUALIFIER_VOLATILE) obstack_1grow(&obst, 'V'); if (qualifiers & TYPE_QUALIFIER_CONST) @@ -180,6 +188,9 @@ static void mangle_type(type_t *orig_type) case TYPE_POINTER: mangle_pointer_type(&type->pointer); return; + case TYPE_REFERENCE: + mangle_reference_type(&type->reference); + return; case TYPE_FUNCTION: mangle_function_type(&type->function); return;