Increase the macro id cache to look up several recent entries, not just the last one. This is important in insane cases like the one dannyb sent me recently:

#define F0(a) void a(){}

#define F1(a) F0(a`0) F0(a`1) F0(a`2) F0(a`3) F0(a`4) F0(a`5) F0(a`6) F0(a`7)

#define F2(a) F1(a`0) F1(a`1) F1(a`2) F1(a`3) F1(a`4) F1(a`5) F1(a`6) F1(a`7)

#define F3(a) F2(a`0) F2(a`1) F2(a`2) F2(a`3) F2(a`4) F2(a`5) F2(a`6) F2(a`7)

#define F4(a) F3(a`0) F3(a`1) F3(a`2) F3(a`3) F3(a`4) F3(a`5) F3(a`6) F3(a`7)

#define F5(a) F4(a`0) F4(a`1) F4(a`2) F4(a`3) F4(a`4) F4(a`5) F4(a`6) F4(a`7)

#define F6(a) F5(a`0) F5(a`1) F5(a`2) F5(a`3) F5(a`4) F5(a`5) F5(a`6) F5(a`7)

F6(f)

cpp is great. :)

llvm-svn: 40715