[cfe-dev] [libc++] incomplete type 'std::__1::ios_base'

Ryuta Suzuki ryuuta at gmail.com
Fri Sep 9 22:24:21 PDT 2011


Hi,

I've got the following compilation error while attempting to build
boost-1.47.0 with 'clang++ -stdlib=libc++':

...
common.mkdir ../bin.v2/libs/wave
common.mkdir ../bin.v2/libs/wave/build
common.mkdir ../bin.v2/libs/wave/build/clang-linux-3.0
common.mkdir ../bin.v2/libs/wave/build/clang-linux-3.0/release
common.mkdir ../bin.v2/libs/wave/build/clang-linux-3.0/release/link-static
common.mkdir
../bin.v2/libs/wave/build/clang-linux-3.0/release/link-static/threading-multi
common.mkdir
../bin.v2/libs/wave/build/clang-linux-3.0/release/link-static/threading-multi/wavetool-on
compile.c++.without-pth
../bin.v2/libs/wave/build/clang-linux-3.0/release/link-static/threading-multi/wavetool-on/instantiate_cpp_exprgrammar.o
In file included from ../libs/wave/src/instantiate_cpp_exprgrammar.cpp:14:
In file included from ../boost/wave/wave_config.hpp:229:
../boost/wave/util/flex_string.hpp:2573:34: error: incomplete type
'std::__1::ios_base' named in nested name specifier
                is.setstate(std::ios_base::eofbit);
                            ~~~~~^~~~~~~~~~
/usr/include/c++/v1/iosfwd:95:7: note: forward declaration of
'std::__1::ios_base'
class ios_base;
      ^
In file included from ../libs/wave/src/instantiate_cpp_exprgrammar.cpp:14:
In file included from ../boost/wave/wave_config.hpp:229:
../boost/wave/util/flex_string.hpp:2589:26: error: incomplete type
'std::__1::ios_base' named in nested name specifier
        is.setstate(std::ios_base::failbit);
                    ~~~~~^~~~~~~~~~
/usr/include/c++/v1/iosfwd:95:7: note: forward declaration of
'std::__1::ios_base'
class ios_base;
      ^
2 errors generated.

  "clang++" -c -x c++ -stdlib=libc++ -march=native -O3 -finline-functions
-Wno-inline -Wall -pthread  -DBOOST_ALL_NO_LIB=1 -DBOOST_THREAD_USE_LIB=1
-DBOOST_WAVE_SUPPORT_THREADING=0 -DNDEBUG -I".." -o
"../bin.v2/libs/wave/build/clang-linux-3.0/release/link-static/threading-multi/wavetool-on/instantiate_cpp_exprgrammar.o"
"../libs/wave/src/instantiate_cpp_exprgrammar.cpp"

...failed compile.c++.without-pth
../bin.v2/libs/wave/build/clang-linux-3.0/release/link-static/threading-multi/wavetool-on/instantiate_cpp_exprgrammar.o...
compile.c++.without-pth
../bin.v2/libs/wave/build/clang-linux-3.0/release/link-static/threading-multi/wavetool-on/instantiate_cpp_grammar.o
In file included from ../libs/wave/src/instantiate_cpp_grammar.cpp:14:
In file included from ../boost/wave/wave_config.hpp:229:
../boost/wave/util/flex_string.hpp:2573:34: error: incomplete type
'std::__1::ios_base' named in nested name specifier
                is.setstate(std::ios_base::eofbit);
                            ~~~~~^~~~~~~~~~
/usr/include/c++/v1/iosfwd:95:7: note: forward declaration of
'std::__1::ios_base'
class ios_base;
      ^
In file included from ../libs/wave/src/instantiate_cpp_grammar.cpp:14:
In file included from ../boost/wave/wave_config.hpp:229:
../boost/wave/util/flex_string.hpp:2589:26: error: incomplete type
'std::__1::ios_base' named in nested name specifier
        is.setstate(std::ios_base::failbit);
                    ~~~~~^~~~~~~~~~
/usr/include/c++/v1/iosfwd:95:7: note: forward declaration of
'std::__1::ios_base'
class ios_base;
      ^
2 errors generated.

  "clang++" -c -x c++ -stdlib=libc++ -march=native -O3 -finline-functions
-Wno-inline -Wall -pthread  -DBOOST_ALL_NO_LIB=1 -DBOOST_THREAD_USE_LIB=1
-DBOOST_WAVE_SUPPORT_THREADING=0 -DNDEBUG -I".." -o
"../bin.v2/libs/wave/build/clang-linux-3.0/release/link-static/threading-multi/wavetool-on/instantiate_cpp_grammar.o"
"../libs/wave/src/instantiate_cpp_grammar.cpp"

...failed compile.c++.without-pth
../bin.v2/libs/wave/build/clang-linux-3.0/release/link-static/threading-multi/wavetool-on/instantiate_cpp_grammar.o...
compile.c++.without-pth
../bin.v2/libs/wave/build/clang-linux-3.0/release/link-static/threading-multi/wavetool-on/instantiate_cpp_literalgrs.o
In file included from ../libs/wave/src/instantiate_cpp_literalgrs.cpp:14:
In file included from ../boost/wave/wave_config.hpp:229:
../boost/wave/util/flex_string.hpp:2573:34: error: incomplete type
'std::__1::ios_base' named in nested name specifier
                is.setstate(std::ios_base::eofbit);
                            ~~~~~^~~~~~~~~~
/usr/include/c++/v1/iosfwd:95:7: note: forward declaration of
'std::__1::ios_base'
class ios_base;
      ^
In file included from ../libs/wave/src/instantiate_cpp_literalgrs.cpp:14:
In file included from ../boost/wave/wave_config.hpp:229:
../boost/wave/util/flex_string.hpp:2589:26: error: incomplete type
'std::__1::ios_base' named in nested name specifier
        is.setstate(std::ios_base::failbit);
                    ~~~~~^~~~~~~~~~
/usr/include/c++/v1/iosfwd:95:7: note: forward declaration of
'std::__1::ios_base'
class ios_base;
      ^
2 errors generated.

and on and on...

Is this a bug in libc++ or something wrong with boost itself?
Any comments will be greatly appreciated.

Thanks!

Ryuta
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20110910/b2772585/attachment.html>


More information about the cfe-dev mailing list