https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106977

--- Comment #22 from ibuclaw at gcc dot gnu.org ---
(In reply to ibuclaw from comment #21)
> There is something about the Darwin ABI I'm just not getting from looking at
> the front-end alone though:
Taken from a test Iain had sent me, and I've subsequently modified.
```
struct Visibility
{
    enum Kind
    {
        undefined, none, private_,
        package_, protected_,
        public_, export_
    };
    Kind kind;
    void *pkg;
};

class Bar
{
public:
    int x;
    virtual Visibility vis ();
};

Visibility Bar::vis () { return Visibility (); }

class Foo  : public Bar
{
public:
    Visibility v;
    int y;
    Visibility vis () override final;
};

Visibility Foo::vis () { return v; }

int test (Bar *foo)
{
    Visibility vis;
    vis = foo->vis ();
    return vis.kind;
}
```

Reply via email to