[cfe-dev] Help: compiler's error using -stdlib=libc++ with clang++-3.8

zosrothko via cfe-dev cfe-dev at lists.llvm.org
Sat Jul 22 09:51:46 PDT 2017



Le 22/07/2017 à 15:07, Richard Smith a écrit :
> Based on the errors, I would guess that the offsetof macro is not 
> defined. Maybe there's something wrong with your include path?
Thanks for answering, but this code compiles fine with this command 
below, thus I do not understand your point on the include path? (there 
is no private includes in this code)

clang++-3.8 -std=c++11 bug.cpp
>
> On 22 Jul 2017 3:54 am, "zosrothko via cfe-dev" 
> <cfe-dev at lists.llvm.org <mailto:cfe-dev at lists.llvm.org>> wrote:
>
>     Hello CFE list
>
>     Sorry to post again this post, but I am really stacked on this
>     problem.
>
>     I have an issue compiling a small c++ program with clang++-3.8 on
>     Ubuntu trusty
>
>     Using the joined c++ program bug.cpp,
>
>       * clang++-3.8 -std=c++11 bug.cpp compiles fine while
>       * clang++-3.8 -std=c++11 -stdlib=libc++ bug.cpp produces invalid
>         compile errors.
>
>
>     What could be the problem and how can it be solved?
>
>     TIA
>
>     fandre at ubuntu-trusty-64:~/clang$ uname -a
>     Linux ubuntu-trusty-64 4.4.0-83-generic #106~14.04.1-Ubuntu SMP
>     Mon Jun 26 18:10:19 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
>     fandre at ubuntu-trusty-64:~/clang$ clang++-3.8 --version
>     clang version 3.8.0-2ubuntu3~trusty4 (tags/RELEASE_380/final)
>     Target: x86_64-unknown-linux-gnu
>     Thread model: posix
>     InstalledDir: /usr/bin
>
>     Below is the console log
>
>     fandre at ubuntu-trusty-64:~/clang$ clang++-3.8 -std=c++11 bug.cpp
>     fandre at ubuntu-trusty-64:~/clang$ clang++-3.8 -std=c++11
>     -stdlib=libc++ bug.cpp
>     bug.cpp:56:88: error: 'Header' does not refer to a value
>      typedef
>     poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
>     (offsetof(Header, code) == 0x01)>)> poco_...
>     ^
>     bug.cpp:45:9: note: declared here
>      struct Header
>             ^
>     bug.cpp:56:96: error: use of undeclared identifier 'code'
>      typedef
>     poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
>     (offsetof(Header, code) == 0x01)>)> poco_...
>     ^
>     bug.cpp:56:111: error: type name requires a specifier or qualifier
>      typedef
>     poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
>     (offsetof(Header, code) == 0x01)>)> poco_...
>     ^
>     bug.cpp:57:88: error: 'Header' does not refer to a value
>      typedef
>     poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
>     (offsetof(Header, checksum) == 0x02)>)> p...
>     ^
>     bug.cpp:45:9: note: declared here
>      struct Header
>             ^
>     bug.cpp:57:96: error: use of undeclared identifier 'checksum'
>      typedef
>     poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
>     (offsetof(Header, checksum) == 0x02)>)> p...
>     ^
>     bug.cpp:57:115: error: type name requires a specifier or qualifier
>     ...poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
>     (offsetof(Header, checksum) == 0x02)>)> poco_stati...
>     ^
>     bug.cpp:58:88: error: 'Header' does not refer to a value
>      typedef
>     poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
>     (offsetof(Header, id) == 0x04)>)> poco_st...
>     ^
>     bug.cpp:45:9: note: declared here
>      struct Header
>             ^
>     bug.cpp:58:96: error: use of undeclared identifier 'id'
>      typedef
>     poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
>     (offsetof(Header, id) == 0x04)>)> poco_st...
>     ^
>     bug.cpp:58:109: error: type name requires a specifier or qualifier
>      typedef
>     poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
>     (offsetof(Header, id) == 0x04)>)> poco_st...
>     ^
>     bug.cpp:59:88: error: 'Header' does not refer to a value
>      typedef
>     poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
>     (offsetof(Header, seq) == 0x06)>)> poco_s...
>     ^
>     bug.cpp:45:9: note: declared here
>      struct Header
>             ^
>     bug.cpp:59:96: error: use of undeclared identifier 'seq'
>      typedef
>     poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
>     (offsetof(Header, seq) == 0x06)>)> poco_s...
>     ^
>     bug.cpp:59:110: error: type name requires a specifier or qualifier
>      typedef
>     poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
>     (offsetof(Header, seq) == 0x06)>)> poco_s...
>     ^
>     12 errors generated.
>     fandre at ubuntu-trusty-64:~/clang$ cp bug.cpp ../shared
>     fandre at ubuntu-trusty-64:~/clang$ clang++-3.8 -std=c++11 bug.cpp
>     fandre at ubuntu-trusty-64:~/clang$ clang++-3.8 -std=c++11
>     -stdlib=libc++ bug.cpp
>     bug.cpp:56:88: error: 'Header' does not refer to a value
>      typedef
>     poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
>     (offsetof(Header, code) == 0x01)>)> poco_...
>     ^
>     bug.cpp:45:9: note: declared here
>      struct Header
>             ^
>     bug.cpp:56:96: error: use of undeclared identifier 'code'
>      typedef
>     poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
>     (offsetof(Header, code) == 0x01)>)> poco_...
>     ^
>     bug.cpp:56:111: error: type name requires a specifier or qualifier
>      typedef
>     poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
>     (offsetof(Header, code) == 0x01)>)> poco_...
>     ^
>     bug.cpp:57:88: error: 'Header' does not refer to a value
>      typedef
>     poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
>     (offsetof(Header, checksum) == 0x02)>)> p...
>     ^
>     bug.cpp:45:9: note: declared here
>      struct Header
>             ^
>     bug.cpp:57:96: error: use of undeclared identifier 'checksum'
>      typedef
>     poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
>     (offsetof(Header, checksum) == 0x02)>)> p...
>     ^
>     bug.cpp:57:115: error: type name requires a specifier or qualifier
>     ...poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
>     (offsetof(Header, checksum) == 0x02)>)> poco_stati...
>     ^
>     bug.cpp:58:88: error: 'Header' does not refer to a value
>      typedef
>     poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
>     (offsetof(Header, id) == 0x04)>)> poco_st...
>     ^
>     bug.cpp:45:9: note: declared here
>      struct Header
>             ^
>     bug.cpp:58:96: error: use of undeclared identifier 'id'
>      typedef
>     poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
>     (offsetof(Header, id) == 0x04)>)> poco_st...
>     ^
>     bug.cpp:58:109: error: type name requires a specifier or qualifier
>      typedef
>     poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
>     (offsetof(Header, id) == 0x04)>)> poco_st...
>     ^
>     bug.cpp:59:88: error: 'Header' does not refer to a value
>      typedef
>     poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
>     (offsetof(Header, seq) == 0x06)>)> poco_s...
>     ^
>     bug.cpp:45:9: note: declared here
>      struct Header
>             ^
>     bug.cpp:59:96: error: use of undeclared identifier 'seq'
>      typedef
>     poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
>     (offsetof(Header, seq) == 0x06)>)> poco_s...
>     ^
>     bug.cpp:59:110: error: type name requires a specifier or qualifier
>      typedef
>     poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
>     (offsetof(Header, seq) == 0x06)>)> poco_s...
>     ^
>     12 errors generated.
>     fandre at ubuntu-trusty-64:~/clang$
>
>
>     _______________________________________________
>     cfe-dev mailing list
>     cfe-dev at lists.llvm.org <mailto:cfe-dev at lists.llvm.org>
>     http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>     <http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20170722/8df625c6/attachment.html>


More information about the cfe-dev mailing list