diff -urp global-6.5.1/libparser/C.c global-6.5-1/libparser/C.c --- global-6.5.1/libparser/C.c 2015-09-15 12:48:18 +1000 +++ global-6.5-1/libparser/C.c 2015-12-04 15:34:57 +1000 @@ -299,6 +299,8 @@ C_family(const struct parser_param *para case C_UNION: while ((c = nexttoken(interested, c_reserved_word)) == C___ATTRIBUTE__) process_attribute(param); + while (c == '\n') + c = nexttoken(interested, c_reserved_word); if (c == SYMBOL) { if (peekc(0) == '{') /* } */ { PUT(PARSER_DEF, token, lineno, sp); @@ -358,6 +360,8 @@ C_family(const struct parser_param *para while ((c = nexttoken(interest_enum, c_reserved_word)) == C___ATTRIBUTE__) process_attribute(param); + while (c == '\n') + c = nexttoken(interest_enum, c_reserved_word); /* read tag name if exist */ if (c == SYMBOL) { if (peekc(0) == '{') /* } */ { diff -urp global-6.5.1/libparser/Cpp.c global-6.5-1/libparser/Cpp.c --- global-6.5.1/libparser/Cpp.c 2015-09-15 12:48:18 +1000 +++ global-6.5-1/libparser/Cpp.c 2015-12-04 15:36:42 +1000 @@ -367,6 +367,8 @@ Cpp(const struct parser_param *param) case CPP_UNION: while ((c = nexttoken(interested, cpp_reserved_word)) == CPP___ATTRIBUTE__) process_attribute(param); + while (c == '\n') + c = nexttoken(interested, cpp_reserved_word); if (c == SYMBOL) { if (peekc(0) == '{') /* } */ { PUT(PARSER_DEF, token, lineno, sp); @@ -464,6 +466,8 @@ Cpp(const struct parser_param *param) while ((c = nexttoken(interest_enum, cpp_reserved_word)) == CPP___ATTRIBUTE__) process_attribute(param); + while (c == '\n') + c = nexttoken(interest_enum, cpp_reserved_word); /* read tag name if exist */ if (c == SYMBOL) { if (peekc(0) == '{') /* } */ {