MSVC's pragma alloc_text accepts a function that was redeclared in
a non extern-C context if the previous declaration was in an extern-C
context. i.e.
extern "C" { static void f(); } static void f();
MSVC's pragma alloc_text also rejects non-functions.
Since the pragma only applies to functions, maybe we should error here if the decl is not a FunctionDecl?