<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hello CFE list<br>
    <br>
    I have an issue compiling a small c++ program with clang++-3.8 on
    Ubuntu trusty<br>
    <br>
    Using the joined c++ program bug.cpp, <br>
    <ul>
      <li>clang++-3.8 -std=c++11 bug.cpp compiles fine while</li>
      <li>clang++-3.8 -std=c++11 -stdlib=libc++ bug.cpp produces invalid
        compile errors.</li>
    </ul>
    <br>
    What could be the problem and how can it be solved?<br>
    <br>
    TIA<br>
    <br>
    fandre@ubuntu-trusty-64:~/clang$ uname -a<br>
    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<br>
    fandre@ubuntu-trusty-64:~/clang$ clang++-3.8 --version<br>
    clang version 3.8.0-2ubuntu3~trusty4 (tags/RELEASE_380/final)<br>
    Target: x86_64-unknown-linux-gnu<br>
    Thread model: posix<br>
    InstalledDir: /usr/bin<br>
    <br>
    Below is the console log<br>
    <br>
    fandre@ubuntu-trusty-64:~/clang$ clang++-3.8 -std=c++11 bug.cpp<br>
    fandre@ubuntu-trusty-64:~/clang$ clang++-3.8 -std=c++11
    -stdlib=libc++ bug.cpp<br>
    bug.cpp:56:88: error: 'Header' does not refer to a value<br>
     typedef
poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
    (offsetof(Header, code) == 0x01)>)> poco_...<br>
                                                                                      
    ^<br>
    bug.cpp:45:9: note: declared here<br>
     struct Header<br>
            ^<br>
    bug.cpp:56:96: error: use of undeclared identifier 'code'<br>
     typedef
poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
    (offsetof(Header, code) == 0x01)>)> poco_...<br>
                                                                                              
    ^<br>
    bug.cpp:56:111: error: type name requires a specifier or qualifier<br>
     typedef
poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
    (offsetof(Header, code) == 0x01)>)> poco_...<br>
                                                                                                             
    ^<br>
    bug.cpp:57:88: error: 'Header' does not refer to a value<br>
     typedef
poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
    (offsetof(Header, checksum) == 0x02)>)> p...<br>
                                                                                      
    ^<br>
    bug.cpp:45:9: note: declared here<br>
     struct Header<br>
            ^<br>
    bug.cpp:57:96: error: use of undeclared identifier 'checksum'<br>
     typedef
poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
    (offsetof(Header, checksum) == 0x02)>)> p...<br>
                                                                                              
    ^<br>
    bug.cpp:57:115: error: type name requires a specifier or qualifier<br>
     
...poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
    (offsetof(Header, checksum) == 0x02)>)> poco_stati...<br>
                                                                                                             
    ^<br>
    bug.cpp:58:88: error: 'Header' does not refer to a value<br>
     typedef
poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
    (offsetof(Header, id) == 0x04)>)> poco_st...<br>
                                                                                      
    ^<br>
    bug.cpp:45:9: note: declared here<br>
     struct Header<br>
            ^<br>
    bug.cpp:58:96: error: use of undeclared identifier 'id'<br>
     typedef
poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
    (offsetof(Header, id) == 0x04)>)> poco_st...<br>
                                                                                              
    ^<br>
    bug.cpp:58:109: error: type name requires a specifier or qualifier<br>
     typedef
poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
    (offsetof(Header, id) == 0x04)>)> poco_st...<br>
                                                                                                           
    ^<br>
    bug.cpp:59:88: error: 'Header' does not refer to a value<br>
     typedef
poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
    (offsetof(Header, seq) == 0x06)>)> poco_s...<br>
                                                                                      
    ^<br>
    bug.cpp:45:9: note: declared here<br>
     struct Header<br>
            ^<br>
    bug.cpp:59:96: error: use of undeclared identifier 'seq'<br>
     typedef
poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
    (offsetof(Header, seq) == 0x06)>)> poco_s...<br>
                                                                                              
    ^<br>
    bug.cpp:59:110: error: type name requires a specifier or qualifier<br>
     typedef
poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
    (offsetof(Header, seq) == 0x06)>)> poco_s...<br>
                                                                                                            
    ^<br>
    12 errors generated.<br>
    fandre@ubuntu-trusty-64:~/clang$ cp bug.cpp ../shared<br>
    fandre@ubuntu-trusty-64:~/clang$ clang++-3.8 -std=c++11 bug.cpp<br>
    fandre@ubuntu-trusty-64:~/clang$ clang++-3.8 -std=c++11
    -stdlib=libc++ bug.cpp<br>
    bug.cpp:56:88: error: 'Header' does not refer to a value<br>
     typedef
poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
    (offsetof(Header, code) == 0x01)>)> poco_...<br>
                                                                                      
    ^<br>
    bug.cpp:45:9: note: declared here<br>
     struct Header<br>
            ^<br>
    bug.cpp:56:96: error: use of undeclared identifier 'code'<br>
     typedef
poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
    (offsetof(Header, code) == 0x01)>)> poco_...<br>
                                                                                              
    ^<br>
    bug.cpp:56:111: error: type name requires a specifier or qualifier<br>
     typedef
poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
    (offsetof(Header, code) == 0x01)>)> poco_...<br>
                                                                                                             
    ^<br>
    bug.cpp:57:88: error: 'Header' does not refer to a value<br>
     typedef
poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
    (offsetof(Header, checksum) == 0x02)>)> p...<br>
                                                                                      
    ^<br>
    bug.cpp:45:9: note: declared here<br>
     struct Header<br>
            ^<br>
    bug.cpp:57:96: error: use of undeclared identifier 'checksum'<br>
     typedef
poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
    (offsetof(Header, checksum) == 0x02)>)> p...<br>
                                                                                              
    ^<br>
    bug.cpp:57:115: error: type name requires a specifier or qualifier<br>
     
...poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
    (offsetof(Header, checksum) == 0x02)>)> poco_stati...<br>
                                                                                                             
    ^<br>
    bug.cpp:58:88: error: 'Header' does not refer to a value<br>
     typedef
poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
    (offsetof(Header, id) == 0x04)>)> poco_st...<br>
                                                                                      
    ^<br>
    bug.cpp:45:9: note: declared here<br>
     struct Header<br>
            ^<br>
    bug.cpp:58:96: error: use of undeclared identifier 'id'<br>
     typedef
poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
    (offsetof(Header, id) == 0x04)>)> poco_st...<br>
                                                                                              
    ^<br>
    bug.cpp:58:109: error: type name requires a specifier or qualifier<br>
     typedef
poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
    (offsetof(Header, id) == 0x04)>)> poco_st...<br>
                                                                                                           
    ^<br>
    bug.cpp:59:88: error: 'Header' does not refer to a value<br>
     typedef
poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
    (offsetof(Header, seq) == 0x06)>)> poco_s...<br>
                                                                                      
    ^<br>
    bug.cpp:45:9: note: declared here<br>
     struct Header<br>
            ^<br>
    bug.cpp:59:96: error: use of undeclared identifier 'seq'<br>
     typedef
poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
    (offsetof(Header, seq) == 0x06)>)> poco_s...<br>
                                                                                              
    ^<br>
    bug.cpp:59:110: error: type name requires a specifier or qualifier<br>
     typedef
poco_static_assert_test<sizeof(POCO_STATIC_ASSERTION_FAILURE<(bool)
    (offsetof(Header, seq) == 0x06)>)> poco_s...<br>
                                                                                                            
    ^<br>
    12 errors generated.<br>
    fandre@ubuntu-trusty-64:~/clang$<br>
    <br>
  </body>
</html>