> While we can change it, it is certainly valid as is, #pragma GCC visibility
> can happen in lots of places and just marks where the default visibility
> is adjusted. If clang errors on this, it is broken.
Sorry, one more case that gcc accepts where it is not clear what the
result should be:
-----------------------------
#pragma GCC visibility push(protected)
int x;
class __attribute__((visibility("hidden"))) foo {
static int a;
#pragma GCC visibility pop
static int b;
};
int y;
int foo::a;
int foo::b;
-----------------------------
Should this be reject (as happens with namespaces)? If not what is the
expected result? Currently we get
x -> protected
y -> default
a -> hidden
b -> hidden
> Jakub
Cheers,
Rafael