Address of register variable

C99 forbids taking address of register variable. However,

struct entry { int value; };
void add_one(int *p) { (*p)++; }

void test() {
  register struct entry *p;

This code isn't doing that. p is register variable, but p->value
isn't. But current clang gives:

test.c:6:11: error: address of register variable requested

Such code is present in GNU Make 3.81.

Yep, you're right. Fixed, thanks!