clang crashed when parsing source with source errors: /usr/src/sys/netinet/if_ether.c:1181:16: error: use of undeclared identifier 'ifa'; did you mean 'ifp'? TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { ^~~ ifp /usr/src/sys/sys/queue.h:617:8: note: expanded from macro 'TAILQ_FOREACH' for ((var) = TAILQ_FIRST((head)); \ ^ /usr/src/sys/netinet/if_ether.c:1172:48: note: 'ifp' declared here arp_iflladdr(void *arg __unused, struct ifnet *ifp) ^ /usr/src/sys/netinet/if_ether.c:1181:2: error: incompatible pointer types assigning to 'struct ifnet *' from 'struct ifaddr *' [-Werror,-Wincompatible-pointer-types] TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/src/sys/sys/queue.h:617:13: note: expanded from macro 'TAILQ_FOREACH' for ((var) = TAILQ_FIRST((head)); \ ^ ~~~~~~~~~~~~~~~~~~~ /usr/src/sys/netinet/if_ether.c:1181:16: error: use of undeclared identifier 'ifa'; did you mean 'ifp'? TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { ^~~ ifp /usr/src/sys/sys/queue.h:618:7: note: expanded from macro 'TAILQ_FOREACH' (var); \ ^ /usr/src/sys/netinet/if_ether.c:1172:48: note: 'ifp' declared here arp_iflladdr(void *arg __unused, struct ifnet *ifp) ^ /usr/src/sys/netinet/if_ether.c:1181:16: error: use of undeclared identifier 'ifa'; did you mean 'ifp'? TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { ^~~ ifp /usr/src/sys/sys/queue.h:619:7: note: expanded from macro 'TAILQ_FOREACH' (var) = TAILQ_NEXT((var), field)) ^ /usr/src/sys/netinet/if_ether.c:1172:48: note: 'ifp' declared here arp_iflladdr(void *arg __unused, struct ifnet *ifp) ^ /usr/src/sys/netinet/if_ether.c:1181:16: error: use of undeclared identifier 'ifa'; did you mean 'ifp'? TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { ^~~ ifp /usr/src/sys/sys/queue.h:619:26: note: expanded from macro 'TAILQ_FOREACH' (var) = TAILQ_NEXT((var), field)) ^ /usr/src/sys/sys/queue.h:713:34: note: expanded from macro 'TAILQ_NEXT' #define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next) ^ /usr/src/sys/netinet/if_ether.c:1172:48: note: 'ifp' declared here arp_iflladdr(void *arg __unused, struct ifnet *ifp) ^ can't implicitly cast lvalue to rvalue with this cast kind UNREACHABLE executed at /usr/src/lib/clang/libclangsema/../../../contrib/llvm/tools/clang/lib/Sema/Sema.cpp:323! Stack dump: 0. Program arguments: /usr/obj/usr/src/tmp/usr/bin/cc -cc1 -triple x86_64-unknown-freebsd11.0 -emit-obj -disable-free -main-file-name if_ether.c -mrelocation-model static -mthread-model posix -mdisable-fp-elim -relaxed-aliasing -masm-verbose -mconstructor-aliases -mcode-model kernel -target-cpu x86-64 -target-feature -mmx -target-feature -sse -target-feature -aes -target-feature -avx -disable-red-zone -no-implicit-float -gdwarf-2 -dwarf-column-info -coverage-file /usr/obj/usr/src/sys/DEVEL/if_ether.c -nostdsysteminc -nobuiltininc -resource-dir /usr/obj/usr/src/tmp/usr/bin/../lib/clang/3.6.1 -include opt_global.h -D _KERNEL -D HAVE_KERNEL_OPTION_HEADERS -D __printf__=__freebsd_kprintf__ -I . -I /usr/src/sys -I /usr/src/sys/contrib/libfdt -isysroot /usr/obj/usr/src/tmp -O2 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -Wmissing-include-dirs -Wno-unknown-pragmas -Wno-error-tautological-compare -Wno-error-empty-body -Wno-error-parentheses-equality -Wno-error-unused-function -Wno-error-pointer-sign -Werror -std=iso9899:1999 -fdebug-compilation-dir /usr/obj/usr/src/sys/DEVEL -ferror-limit 19 -fmessage-length 0 -ffreestanding -fwrapv -stack-protector 1 -mstackrealign -fobjc-runtime=gnustep -fdiagnostics-show-option -vectorize-loops -vectorize-slp -o if_ether.o -x c /usr/src/sys/netinet/if_ether.c 1. /usr/src/sys/netinet/if_ether.c:1181:2 <Spelling=/usr/src/sys/sys/queue.h:619:38>: current parser token ')' 2. /usr/src/sys/netinet/if_ether.c:1173:1: parsing function body 'arp_iflladdr' 3. /usr/src/sys/netinet/if_ether.c:1173:1: in compound statement ('{}') cc: error: unable to execute command: Abort trap (core dumped) cc: error: clang frontend command failed due to signal (use -v to see invocation) FreeBSD clang version 3.6.1 (tags/RELEASE_361/final 237755) 20150525 Target: x86_64-unknown-freebsd11.0 Thread model: posix cc: note: diagnostic msg: PLEASE submit a bug report to https://bugs.freebsd.org/submit/ and include the crash backtrace, preprocessed source, and associated run script. PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT: Preprocessed source(s) and associated run script(s) are located at: cc: note: diagnostic msg: /tmp/if_ether-15e403.c cc: note: diagnostic msg: /tmp/if_ether-15e403.sh cc: note: diagnostic msg:
Created attachment 162144 [details] clang-generated source
Created attachment 162145 [details] clang-generated run script
This crash was fixed somewhere between clang 3.6 and 3.7, and is no longer reproducible.