I have a macro which works well only on static local variables (since it uses inline assembly notation to extract data about the variable). I need a way to enforce that the input to the macro is indeed a static local variable:

correct:

```
func f()
{
    static int x;
    my_macro(x);
}

```

not correct:

```
func f()
{
    int x;
    my_macro(x);
}

```

I work with GCC for C (no C++).