FreeBSD head on powerpc64, LLVM 10.0.0. The following problem happens when compiling astro/swe port. Reduced test case: struct a { int b }; struct c { double d; struct a e[] }; __thread struct c f; g; h() { struct a i = f.e[g]; if (i.b) j(); } Compiling flags: /usr/bin/cc -cc1 -triple powerpc64-unknown-freebsd13.0 -emit-obj -mrelocation-model static -O1 -x c sweph-e7e60d.c When -mrelocation-model static and -O1 or higher are passed, assertion failure happens. Without -mrelocation-model static, -O2 and -O3 may be set. With -mrelocation-model static, only -O0 works.
This compiles on LLVM 9.0.1, so it's a LLVM 10 regression that is also seen on trunk@3e315697ac7
Despite being a regression between 9 and 10, marking the release-10.0.1 blocker for you to decide. Thanks!
Should be fixed with https://reviews.llvm.org/rGa56d057dfe3127c111c3470606c04e96d35b1fa3
Thanks! Could you backport it to 10.0.1?
(Reopening to handle 10.0.1 nomination.)
Hal, what do you think about backporting this? https://reviews.llvm.org/rGa56d057dfe3127c111c3470606c04e96d35b1fa3
(In reply to Tom Stellard from comment #6) > Hal, what do you think about backporting this? > > https://reviews.llvm.org/rGa56d057dfe3127c111c3470606c04e96d35b1fa3 LGTM.
Merged: 1f3be0e9b7b