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>