https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80509
--- Comment #11 from Steve Kargl <sgk at troutmask dot apl.washington.edu> --- On Tue, Apr 25, 2017 at 10:08:30AM +0000, rguenth at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80509 > > --- Comment #10 from Richard Biener <rguenth at gcc dot gnu.org> --- > Author: rguenth > Date: Tue Apr 25 10:07:58 2017 > New Revision: 247171 > > URL: https://gcc.gnu.org/viewcvs?rev=247171&root=gcc&view=rev > Log: > 2017-04-25 Richard Biener <rguent...@suse.de> > > PR middle-end/80509 > * passes.c (pass_manager::pass_manager): Initialize > m_name_to_pass_map. > I cannot test your patch. It seems that creating a new has given everyone license to break bootstrap on non-linux systems. This is with an entirely clean trunk. The initial c++ compiler during bootstrap is clang 4.0. % gmake bootstrap ... c++ -std=gnu++98 -c -g -DIN_GCC -fno-strict-aliasing -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-format -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common -DHAVE_CONFIG_H -DGENERATOR_FILE -fno-PIE -I. -Ibuild -I/home/sgk/gcc/gccx/gcc -I/home/sgk/gcc/gccx/gcc/build -I/home/sgk/gcc/gccx/gcc/../include -I/home/sgk/gcc/gccx/gcc/../libcpp/include \ -o build/genpreds.o /home/sgk/gcc/gccx/gcc/genpreds.c c++: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated In file included from /home/sgk/gcc/gccx/gcc/genpreds.c:25: /home/sgk/gcc/gccx/gcc/coretypes.h:62:1: warning: class 'rtx_def' was previously declared as a struct [-Wmismatched-tags] class rtx_def; ^ /home/sgk/gcc/gccx/gcc/coretypes.h:55:8: note: previous use is here struct rtx_def; ^ In file included from /home/sgk/gcc/gccx/gcc/genpreds.c:26: In file included from ./tm.h:19: ./options.h:5994:3: error: redefinition of enumerator 'OPT_C' OPT_C = 119, /* -C */ ^ ./options.h:5991:3: note: previous definition is here OPT_C = 116, /* -C */ ^ ./options.h:6000:3: error: redefinition of enumerator 'OPT_d' OPT_d = 125, /* -d */ ^ ./options.h:5998:3: note: previous definition is here OPT_d = 123, /* -d */ ^ ./options.h:6003:3: error: redefinition of enumerator 'OPT_d' OPT_d = 128, /* -d */ ^ ./options.h:5998:3: note: previous definition is here OPT_d = 123, /* -d */ ^ ./options.h:6004:3: error: redefinition of enumerator 'OPT_D' OPT_D = 129, /* -D */ ^ ./options.h:5999:3: note: previous definition is here OPT_D = 124, /* -D */ ^ ./options.h:6013:3: error: redefinition of enumerator 'OPT_E' OPT_E = 138, /* -E */ ^ ./options.h:6011:3: note: previous definition is here OPT_E = 136, /* -E */ ^ ./options.h:6693:3: error: redefinition of enumerator 'OPT_H' OPT_H = 818, /* -H */ ^ ./options.h:6691:3: note: previous definition is here OPT_H = 816, /* -H */ ^ ./options.h:6696:3: error: redefinition of enumerator 'OPT_I' OPT_I = 821, /* -I */ ^ ./options.h:6694:3: note: previous definition is here OPT_I = 819, /* -I */ ^ ./options.h:6713:3: error: redefinition of enumerator 'OPT_L' OPT_L = 838, /* -L */ ^ ./options.h:6711:3: note: previous definition is here OPT_L = 836, /* -L */ ^ ./options.h:6772:3: error: redefinition of enumerator 'OPT_MF' OPT_MF = 897, /* -MF */ ^ ./options.h:6770:3: note: previous definition is here OPT_MF = 895, /* -MF */ ^ ./options.h:6776:3: error: redefinition of enumerator 'OPT_M' OPT_M = 901, /* -M */ ^ ./options.h:6756:3: note: previous definition is here OPT_M = 881, /* -M */ ^ ./options.h:6784:3: error: redefinition of enumerator 'OPT_MG' OPT_MG = 909, /* -MG */ ^ ./options.h:6782:3: note: previous definition is here OPT_MG = 907, /* -MG */ ^ ./options.h:6803:3: error: redefinition of enumerator 'OPT_MM' OPT_MM = 928, /* -MM */ ^ ./options.h:6799:3: note: previous definition is here OPT_MM = 924, /* -MM */ ^ ./options.h:6824:3: error: redefinition of enumerator 'OPT_MP' OPT_MP = 949, /* -MP */ ^ ./options.h:6818:3: note: previous definition is here OPT_MP = 943, /* -MP */ ^ ./options.h:6893:3: error: redefinition of enumerator 'OPT_o' OPT_o = 1018, /* -o */ ^ ./options.h:6890:3: note: previous definition is here OPT_o = 1015, /* -o */ ^ ./options.h:6895:3: error: redefinition of enumerator 'OPT_o' OPT_o = 1020, /* -o */ ^ ./options.h:6890:3: note: previous definition is here OPT_o = 1015, /* -o */ ^ ./options.h:6902:3: error: redefinition of enumerator 'OPT_P' OPT_P = 1027, /* -P */ ^ ./options.h:6898:3: note: previous definition is here OPT_P = 1023, /* -P */ ^ ./options.h:7008:3: error: redefinition of enumerator 'OPT_U' OPT_U = 1133, /* -U */ ^ ./options.h:7006:3: note: previous definition is here OPT_U = 1131, /* -U */ ^ ./options.h:7012:3: error: redefinition of enumerator 'OPT_v' OPT_v = 1137, /* -v */ ^ ./options.h:7010:3: note: previous definition is here OPT_v = 1135, /* -v */ ^ ./options.h:7060:3: error: redefinition of enumerator 'OPT_w' OPT_w = 1185, /* -w */ ^ ./options.h:7041:3: note: previous definition is here OPT_w = 1166, /* -w */ ^ In file included from /home/sgk/gcc/gccx/gcc/genpreds.c:27: In file included from /home/sgk/gcc/gccx/gcc/rtl.h:35: In file included from /home/sgk/gcc/gccx/gcc/hash-table.h:235: /home/sgk/gcc/gccx/gcc/ggc.h:277:15: warning: struct 'rtx_def' was previously declared as a class [-Wmismatched-tags] static inline struct rtx_def * ^ /home/sgk/gcc/gccx/gcc/coretypes.h:62:7: note: previous use is here class rtx_def; ^ In file included from /home/sgk/gcc/gccx/gcc/genpreds.c:27: In file included from /home/sgk/gcc/gccx/gcc/rtl.h:35: In file included from /home/sgk/gcc/gccx/gcc/hash-table.h:235: /home/sgk/gcc/gccx/gcc/ggc.h:280:11: warning: struct 'rtx_def' was previously declared as a class [-Wmismatched-tags] return (struct rtx_def *) ggc_internal_alloc (s PASS_MEM_STAT); ^ /home/sgk/gcc/gccx/gcc/coretypes.h:62:7: note: previous use is here class rtx_def; ^ In file included from /home/sgk/gcc/gccx/gcc/genpreds.c:27: In file included from /home/sgk/gcc/gccx/gcc/rtl.h:35: In file included from /home/sgk/gcc/gccx/gcc/hash-table.h:561: /home/sgk/gcc/gccx/gcc/mem-stats.h:126:1: warning: 'mem_usage' defined as a struct here but previously declared as a class [-Wmismatched-tags] struct mem_usage ^ /home/sgk/gcc/gccx/gcc/hash-table.h:341:1: note: did you mean struct here? class mem_usage; ^~~~~ struct In file included from /home/sgk/gcc/gccx/gcc/genpreds.c:27: /home/sgk/gcc/gccx/gcc/rtl.h:302:1: warning: 'rtx_def' defined as a struct here but previously declared as a class [-Wmismatched-tags] struct GTY((desc("0"), tag("0"), ^ /home/sgk/gcc/gccx/gcc/coretypes.h:62:1: note: did you mean struct here? class rtx_def; ^~~~~ struct In file included from /home/sgk/gcc/gccx/gcc/genpreds.c:27: In file included from /home/sgk/gcc/gccx/gcc/rtl.h:34: /home/sgk/gcc/gccx/gcc/vec.h:1058:10: warning: offset of on non-POD type 'vec_embedded' (aka 'vec<std::__1::pair<unsigned int, const char *>, va_heap, vl_embed>') [-Winvalid-offsetof] return offsetof (vec_embedded, m_vecdata) + alloc * sizeof (T); ^ ~~~~~~~~~ /usr/include/stddef.h:73:32: note: expanded from macro 'offsetof' #define offsetof(type, member) __offsetof(type, member) ^ ~~~~~~ /usr/include/sys/cdefs.h:483:34: note: expanded from macro '__offsetof' #define __offsetof(type, field) __builtin_offsetof(type, field) ^ ~~~~~ /home/sgk/gcc/gccx/gcc/vec.h:286:44: note: in instantiation of member function 'vec<std::__1::pair<unsigned int, const char *>, va_heap, vl_embed>::embedded_size' requested here size_t size = vec<T, va_heap, vl_embed>::embedded_size (alloc); ^ /home/sgk/gcc/gccx/gcc/vec.h:1445:12: note: in instantiation of function template specialization 'va_heap::reserve<std::__1::pair<unsigned int, const char *> >' requested here va_heap::reserve (m_vec, nelems, exact PASS_MEM_STAT); ^ /home/sgk/gcc/gccx/gcc/vec.h:1554:3: note: in instantiation of member function 'vec<std::__1::pair<unsigned int, const char *>, va_heap, vl_ptr>::reserve' requested here reserve (1, false PASS_MEM_STAT); ^ /home/sgk/gcc/gccx/gcc/genpreds.c:1526:9: note: in instantiation of member function 'vec<std::__1::pair<unsigned int, const char *>, va_heap, vl_ptr>::safe_push' requested here values.safe_push (std::make_pair (const_int_start, "CT_CONST_INT")); ^ 6 warnings and 19 errors generated. gmake[3]: *** [Makefile:2594: build/genpreds.o] Error 1 gmake[3]: Leaving directory '/mnt/sgk/objx/gcc' gmake[2]: *** [Makefile:4543: all-stage1-gcc] Error 2 gmake[2]: Leaving directory '/mnt/sgk/objx' gmake[1]: *** [Makefile:22758: stage1-bubble] Error 2 gmake[1]: Leaving directory '/mnt/sgk/objx' gmake: *** [Makefile:23095: bootstrap] Error 2