Skip to content

Wrong rewriting of extern function pointer with itype #583

Open
@mattmccutchen-cci

Description

@mattmccutchen-cci

On the following input:

extern _Ptr<char *(void) : itype(_Ptr<char>)> fp1;
_Ptr<char *(void) : itype(_Ptr<char>)> fp2;

3c with no options gives this syntactically invalid output:

extern _Ptr<char *(void)> fp1<char *(void) : itype(_Ptr<char>)> fp1;
_Ptr<char *(void) : itype(_Ptr<char>)> fp2;

So the extern variable was changed and the non-extern variable wasn't. That's the opposite of what I might expect.

I discovered this bug in the process of reducing a test case for a different bug that appeared on Windows. AFAIK this bug itself is not yet affecting the regression tests on either Linux or Windows.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions