Hi, Recently my libcxx enabled llvm/clang builds has started to fail in stage2. I must admit I am stomped because I cannot make sense of the error: [ 723s] FAILED: /home/abuild/rpmbuild/BUILD/llvm/stage1/bin/clang++ -DLLVMSupport_EXPORTS -DNDEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -stdlib=libc++ -fPIC -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter -Wwrite-strings -Wmissing-field-initializers -pedantic -Wno-long-long -Wcovered-switch-default -Wnon-virtual-dtor -std=c++11 -fcolor-diagnostics -ffunction-sections -fdata-sections -O2 -g -DNDEBUG -fPIC -Ilib/Support -I../lib/Support -Iinclude -I../include -fno-exceptions -MMD -MT lib/Support/CMakeFiles/LLVMSupport.dir/Allocator.cpp.o -MF lib/Support/CMakeFiles/LLVMSupport.dir/Allocator.cpp.o.d -o lib/Support/CMakeFiles/LLVMSupport.dir/Allocator.cpp.o -c ../lib/Support/Allocator.cpp [ 723s] In file included from ../lib/Support/Allocator.cpp:14: [ 723s] ../include/llvm/Support/Allocator.h:421:65: error: 'S' does not refer to a value [ 723s] Size, std::min((size_t)llvm::NextPowerOf2(Size), offsetof(S, x))); [ 723s] ^ [ 723s] ../include/llvm/Support/Allocator.h:411:10: note: declared here [ 723s] struct S { [ 723s] ^ [ 723s] 1 error generated. clang r207403 is OK but trunk fails. Any ideas for debugging this would be appreciated. Thanks! -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140509/3dfce98c/attachment.html>
I did a diff -u broken.ii working.ii and the difference explains the problem: @@ -36617,7 +36628,7 @@ } x; }; return Allocator.Allocate( - Size, std::min((size_t)llvm::NextPowerOf2(Size), offsetof(S, x))); + Size, std::min((size_t)llvm::NextPowerOf2(Size), __builtin_offsetof(S, x))); } Looks like non-working clang is using offsetof where-as the working one uses __builtin_offsetof On Fri, May 9, 2014 at 11:38 AM, İsmail Dönmez <ismail at donmez.ws> wrote:> Hi, > > Recently my libcxx enabled llvm/clang builds has started to fail in > stage2. I must admit I am stomped because I cannot make sense of the error: > > [ 723s] FAILED: /home/abuild/rpmbuild/BUILD/llvm/stage1/bin/clang++ > -DLLVMSupport_EXPORTS -DNDEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS > -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -stdlib=libc++ -fPIC > -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter -Wwrite-strings > -Wmissing-field-initializers -pedantic -Wno-long-long > -Wcovered-switch-default -Wnon-virtual-dtor -std=c++11 -fcolor-diagnostics > -ffunction-sections -fdata-sections -O2 -g -DNDEBUG -fPIC -Ilib/Support > -I../lib/Support -Iinclude -I../include -fno-exceptions -MMD -MT > lib/Support/CMakeFiles/LLVMSupport.dir/Allocator.cpp.o -MF > lib/Support/CMakeFiles/LLVMSupport.dir/Allocator.cpp.o.d -o > lib/Support/CMakeFiles/LLVMSupport.dir/Allocator.cpp.o -c > ../lib/Support/Allocator.cpp > [ 723s] In file included from ../lib/Support/Allocator.cpp:14: > [ 723s] ../include/llvm/Support/Allocator.h:421:65: error: 'S' does not > refer to a value > [ 723s] Size, std::min((size_t)llvm::NextPowerOf2(Size), > offsetof(S, x))); > [ 723s] ^ > [ 723s] ../include/llvm/Support/Allocator.h:411:10: note: declared here > [ 723s] struct S { > [ 723s] ^ > [ 723s] 1 error generated. > > clang r207403 is OK but trunk fails. Any ideas for debugging this would be > appreciated. > > Thanks! > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140511/ed45f1f1/attachment.html>
Ok looks like r207606 regressed this. CC'ing Niko. Niko, please see the messages below. This is on openSUSE 13.1 both on i586 and x86-64. Reverting r207606 fixes the second stage bootstrap. On Sun, May 11, 2014 at 10:19 PM, İsmail Dönmez <ismail at donmez.ws> wrote:> I did a diff -u broken.ii working.ii and the difference explains the > problem: > > @@ -36617,7 +36628,7 @@ > } x; > }; > return Allocator.Allocate( > - Size, std::min((size_t)llvm::NextPowerOf2(Size), offsetof(S, x))); > + Size, std::min((size_t)llvm::NextPowerOf2(Size), > __builtin_offsetof(S, x))); > } > > > Looks like non-working clang is using offsetof where-as the working one > uses __builtin_offsetof > > > > On Fri, May 9, 2014 at 11:38 AM, İsmail Dönmez <ismail at donmez.ws> wrote: > >> Hi, >> >> Recently my libcxx enabled llvm/clang builds has started to fail in >> stage2. I must admit I am stomped because I cannot make sense of the error: >> >> [ 723s] FAILED: /home/abuild/rpmbuild/BUILD/llvm/stage1/bin/clang++ >> -DLLVMSupport_EXPORTS -DNDEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS >> -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -stdlib=libc++ -fPIC >> -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter -Wwrite-strings >> -Wmissing-field-initializers -pedantic -Wno-long-long >> -Wcovered-switch-default -Wnon-virtual-dtor -std=c++11 -fcolor-diagnostics >> -ffunction-sections -fdata-sections -O2 -g -DNDEBUG -fPIC -Ilib/Support >> -I../lib/Support -Iinclude -I../include -fno-exceptions -MMD -MT >> lib/Support/CMakeFiles/LLVMSupport.dir/Allocator.cpp.o -MF >> lib/Support/CMakeFiles/LLVMSupport.dir/Allocator.cpp.o.d -o >> lib/Support/CMakeFiles/LLVMSupport.dir/Allocator.cpp.o -c >> ../lib/Support/Allocator.cpp >> [ 723s] In file included from ../lib/Support/Allocator.cpp:14: >> [ 723s] ../include/llvm/Support/Allocator.h:421:65: error: 'S' does not >> refer to a value >> [ 723s] Size, std::min((size_t)llvm::NextPowerOf2(Size), >> offsetof(S, x))); >> [ 723s] ^ >> [ 723s] ../include/llvm/Support/Allocator.h:411:10: note: declared here >> [ 723s] struct S { >> [ 723s] ^ >> [ 723s] 1 error generated. >> >> clang r207403 is OK but trunk fails. Any ideas for debugging this would >> be appreciated. >> >> Thanks! >> >> >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140512/32c6f860/attachment.html>