https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70296
Bug ID: 70296 Summary: Incorrect handling of vector X; if X is function-like macro Product: gcc Version: 6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: jakub at gcc dot gnu.org Target Milestone: --- #define c(x) x #define f(x) #define i int #define k typedef int vector; vector int a; vector b; vector c(int) d; vector c(e); vector c; vector f(int) int g; vector f(int) h; vector i j; vector k int l; vector k m; void foo () { vector int *p; p = &a; p = &d; p = &g; p = &j; p = &l; int *q; q = &b; q = &e; q = &c; q = &h; q = &m; } fails to compile on powerpc* with -maltivec -std=gnu11 (or any other options where altivec and the vector built-in macro handling are not disabled). The bug is in calling cpp_get_node, even when we aren't sure the function-like macro has any arguments, so the token gets dropped on the floor.