The file in question here is gcc-4.1.1/gcc/tree-vectorizer.h, though I notice there are many more instances of this issue in the GCC tree:
find gcc-4.1.1 -name '*.[ch]' -exec pcregrep '^\s+#\s*(define|undef|if|endif)' {} \; | wc -l 326 (same command, but with "pcregrep -l") 62 I know that the topic of whitespace before the "#" has been discussed here before, that the applicable standards allow it and compilers that don't are broken, etc. ... but I do believe the bootstrapping process, by its nature, has to accomodate quirks such as these. ----(begin build log excerpt)---- make[2]: Entering directory `/usr/home/cport/tmp/gcc--4.1.1.build/gcc' cc -c -g -DENABLE_CHECKING -DENABLE_ASSERT_CHECKING -DIN_GCC -DHAVE_CONFIG_H -I. -I. -I/tg/freeport/src/gcc/gcc--4.1.1/gcc -I/tg/freeport/src/gcc/gcc--4.1.1/gcc/. -I/tg/freeport/src/gcc/gcc--4.1.1/gcc/../include -I/tg/freeport/src/gcc/gcc--4.1.1/gcc/../libcpp/include /tg/freeport/src/gcc/gcc--4.1.1/gcc/tree-vectorizer.c -o tree-vectorizer.o cc: Warning: /tg/freeport/src/gcc/gcc--4.1.1/gcc/tree-vectorizer.h, line 33: # not in column 1 is ignored, skipping to end of line. (ignoretokens) #define UNKNOWN_LOC NULL --^ cc: Warning: /tg/freeport/src/gcc/gcc--4.1.1/gcc/tree-vectorizer.h, line 34: # not in column 1 is ignored, skipping to end of line. (ignoretokens) #define EXPR_LOC(e) EXPR_LOCUS(e) --^ cc: Warning: /tg/freeport/src/gcc/gcc--4.1.1/gcc/tree-vectorizer.h, line 35: # not in column 1 is ignored, skipping to end of line. (ignoretokens) #define LOC_FILE(l) (l)->file --^ cc: Warning: /tg/freeport/src/gcc/gcc--4.1.1/gcc/tree-vectorizer.h, line 36: # not in column 1 is ignored, skipping to end of line. (ignoretokens) #define LOC_LINE(l) (l)->line --^ cc: Error: /tg/freeport/src/gcc/gcc--4.1.1/gcc/tree-vectorizer.c, line 813: In this statement, "UNKNOWN_LOC" is not declared. (undeclared) if (loop_loc != UNKNOWN_LOC) ----------------------^ cc: Error: /tg/freeport/src/gcc/gcc--4.1.1/gcc/tree-vectorizer.c, line 1112: In this statement, "UNKNOWN_LOC" is not declared. (undeclared) if (loop_loc != UNKNOWN_LOC) --------------------------^ cc: Error: /tg/freeport/src/gcc/gcc--4.1.1/gcc/tree-vectorizer.c, line 1236: In this statement, "UNKNOWN_LOC" is not declared. (undeclared) return UNKNOWN_LOC; -----------^ cc: Warning: /tg/freeport/src/gcc/gcc--4.1.1/gcc/tree-vectorizer.c, line 1242: In this statement, "EXPR_LOC(...)" of type "int", is being converted to "pointer to struct location_s". (cvtdiftypes) return EXPR_LOC (node); -----------^ cc: Warning: /tg/freeport/src/gcc/gcc--4.1.1/gcc/tree-vectorizer.c, line 1256: In this statement, "EXPR_LOC(...)" of type "int", is being converted to "pointer to struct location_s". (cvtdiftypes) return EXPR_LOC (node); ---------------^ cc: Error: /tg/freeport/src/gcc/gcc--4.1.1/gcc/tree-vectorizer.c, line 1330: In this statement, "UNKNOWN_LOC" is not declared. (undeclared) if (vect_loop_location == UNKNOWN_LOC) ----------------------------^ make[2]: *** [tree-vectorizer.o] Error 1 make[2]: Leaving directory `/usr/home/cport/tmp/gcc--4.1.1.build/gcc' make[1]: *** [stage1_build] Error 2 make[1]: Leaving directory `/usr/home/cport/tmp/gcc--4.1.1.build/gcc' make: *** [bootstrap-lean] Error 2 ----(end build log excerpt)---- -- Summary: Bogus whitespace in preprocessor directives breaks bootstrap Product: gcc Version: 4.1.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: bootstrap AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: skunk at iskunk dot org GCC build triplet: alphaev56-dec-osf4.0g GCC host triplet: alphaev56-dec-osf4.0g GCC target triplet: alphaev56-dec-osf4.0g http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28499