Hi LuckyBoy,

It looks like your compiler is crashing, which is definitely a bug in the
compiler, not in Cap'n Proto. Is this really an unmodified build of Clang
3.5? Are you targeting an unusual architecture, or is there anything else
unusual about your compiler configuration? I tested 0.6.0 using Clang 3.5
on Linux before release and it worked for me.

-Kenton

On Sat, May 27, 2017 at 8:39 AM, Lucky Boy <[email protected]> wrote:

> Hi Kenton,
>
> Thanks very much and I appreciate your comments! I tried again and again
> but unfortunately still couldn't make capnproto built by clang.3.5... the
> information is as follows:
>
>
> luckyboy@cse-322osu10:capnproto-c++-0.6.0$  *./configure CXX=clang++
> CXXFLAGS=-g*
> checking for a BSD-compatible install... /usr/bin/install -c
> checking whether build environment is sane... yes
> checking for a thread-safe mkdir -p... /bin/mkdir -p
> checking for gawk... gawk
> checking whether make sets $(MAKE)... yes
> checking whether make supports nested variables... yes
> checking whether UID '1001' is supported by ustar format... yes
> checking whether GID '1001' is supported by ustar format... yes
> checking how to create a ustar tar archive... gnutar
> checking for gcc... gcc
> checking whether the C compiler works... yes
> checking for C compiler default output file name... a.out
> checking for suffix of executables...
> checking whether we are cross compiling... no
> checking for suffix of object files... o
> checking whether we are using the GNU C compiler... yes
> checking whether gcc accepts -g... yes
> checking for gcc option to accept ISO C89... none needed
> checking whether gcc understands -c and -o together... yes
> checking for style of include used by make... GNU
> checking dependency style of gcc... gcc3
> checking whether we are using the GNU C++ compiler... yes
> checking whether clang++ accepts -g... yes
> checking dependency style of clang++... gcc3
> checking whether clang++ supports C++11 features by default... no
> checking whether clang++ supports C++11 features with -std=gnu++11... yes
> checking whether clang++ -std=gnu++11 supports C++11 library features by
> default... yes
> checking build system type... x86_64-pc-linux-gnu
> checking host system type... x86_64-pc-linux-gnu
> checking for the pthreads library -lpthreads... no
> checking whether pthreads work without any flags... no
> checking whether pthreads work with -Kthread... no
> checking whether pthreads work with -kthread... no
> checking for the pthreads library -llthread... no
> checking whether pthreads work with -pthread... yes
> checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
> checking if more special flags are required for pthreads... no
> checking whether to check for GCC pthread/shared inconsistencies... yes
> checking whether -pthread is sufficient with -shared... yes
> checking whether pthread flag is sufficient with -nostdlib... no
> checking whether adding -lpthread fixes that... yes
> checking how to print strings... printf
> checking for a sed that does not truncate output... /bin/sed
> checking for grep that handles long lines and -e... /bin/grep
> checking for egrep... /bin/grep -E
> checking for fgrep... /bin/grep -F
> checking for ld used by gcc... /usr/local/bin/ld
> checking if the linker (/usr/local/bin/ld) is GNU ld... yes
> checking for BSD- or MS-compatible name lister (nm)... /usr/local/bin/nm -B
> checking the name lister (/usr/local/bin/nm -B) interface... BSD nm
> checking whether ln -s works... yes
> checking the maximum length of command line arguments... 1572864
> checking how to convert x86_64-pc-linux-gnu file names to
> x86_64-pc-linux-gnu format... func_convert_file_noop
> checking how to convert x86_64-pc-linux-gnu file names to toolchain
> format... func_convert_file_noop
> checking for /usr/local/bin/ld option to reload object files... -r
> checking for objdump... objdump
> checking how to recognize dependent libraries... pass_all
> checking for dlltool... no
> checking how to associate runtime and link libraries... printf %s\n
> checking for ar... ar
> checking for archiver @FILE support... @
> checking for strip... strip
> checking for ranlib... ranlib
> checking command to parse /usr/local/bin/nm -B output from gcc object... ok
> checking for sysroot... no
> checking for a working dd... /bin/dd
> checking how to truncate binary pipes... /bin/dd bs=4096 count=1
> checking for mt... mt
> checking if mt is a manifest tool... no
> checking how to run the C preprocessor... gcc -E
> checking for ANSI C header files... yes
> checking for sys/types.h... yes
> checking for sys/stat.h... yes
> checking for stdlib.h... yes
> checking for string.h... yes
> checking for memory.h... yes
> checking for strings.h... yes
> checking for inttypes.h... yes
> checking for stdint.h... yes
> checking for unistd.h... yes
> checking for dlfcn.h... yes
> checking for objdir... .libs
> checking if gcc supports -fno-rtti -fno-exceptions... no
> checking for gcc option to produce PIC... -fPIC -DPIC
> checking if gcc PIC flag -fPIC -DPIC works... yes
> checking if gcc static flag -static works... yes
> checking if gcc supports -c -o file.o... yes
> checking if gcc supports -c -o file.o... (cached) yes
> checking whether the gcc linker (/usr/local/bin/ld -m elf_x86_64) supports
> shared libraries... yes
> checking whether -lc should be explicitly linked in... no
> checking dynamic linker characteristics... GNU/Linux ld.so
> checking how to hardcode library paths into programs... immediate
> checking whether stripping libraries is possible... yes
> checking if libtool supports shared libraries... yes
> checking whether to build shared libraries... yes
> checking whether to build static libraries... yes
> checking how to run the C++ preprocessor... clang++ -std=gnu++11 -E
> checking for ld used by clang++ -std=gnu++11... /usr/local/bin/ld -m
> elf_x86_64
> checking if the linker (/usr/local/bin/ld -m elf_x86_64) is GNU ld... yes
> checking whether the clang++ -std=gnu++11 linker (/usr/local/bin/ld -m
> elf_x86_64) supports shared libraries... yes
> checking for clang++ -std=gnu++11 option to produce PIC... -fPIC -DPIC
> checking if clang++ -std=gnu++11 PIC flag -fPIC -DPIC works... yes
> checking if clang++ -std=gnu++11 static flag -static works... yes
> checking if clang++ -std=gnu++11 supports -c -o file.o... yes
> checking if clang++ -std=gnu++11 supports -c -o file.o... (cached) yes
> checking whether the clang++ -std=gnu++11 linker (/usr/local/bin/ld -m
> elf_x86_64) supports shared libraries... yes
> checking dynamic linker characteristics... (cached) GNU/Linux ld.so
> checking how to hardcode library paths into programs... immediate
> checking for library containing sched_yield... none required
> checking that generated files are newer than configure... done
> configure: creating ./config.status
> config.status: creating Makefile
> config.status: creating capnp.pc
> config.status: creating capnp-rpc.pc
> config.status: creating capnp-json.pc
> config.status: creating kj.pc
> config.status: creating kj-async.pc
> config.status: creating config.h
> config.status: executing depfiles commands
> config.status: executing libtool commands
>
>
> Here is the error during compilation:
>
> luckyboy@cse-322osu10:capnproto-c++-0.6.0$ *make*
> depbase=`echo src/capnp/compiler/module-loader.o | sed
> 's|[^/]*$|.deps/&|;s|\.o$||'`;\
> clang++ -std=gnu++11 -DHAVE_CONFIG_H -I.    -I./src -I./src
> -DKJ_HEADER_WARNINGS -DCAPNP_HEADER_WARNINGS 
> -DCAPNP_INCLUDE_DIR='"/usr/local/include"'
> -pthread -g -pthread -MT src/capnp/compiler/module-loader.o -MD -MP -MF
> $depbase.Tpo -c -o src/capnp/compiler/module-loader.o
> src/capnp/compiler/module-loader.c++ &&\
> mv -f $depbase.Tpo $depbase.Po
> clang: ASTContext.cpp:3040: clang::QualType clang::ASTContext::
> getSubstTemplateTypeParmType(const clang::TemplateTypeParmType *,
> clang::QualType) const: Assertion `Replacement.isCanonical() &&
> "replacement types must always be canonical"' failed.
> 0  clang           0x000000000288d535 llvm::sys::PrintStackTrace(_IO_FILE*)
> + 37
> 1  clang           0x000000000288de33
> 2  libpthread.so.0 0x00002b7638bf3330
> 3  libc.so.6       0x00002b7639a84c37 gsignal + 55
> 4  libc.so.6       0x00002b7639a88028 abort + 328
> 5  libc.so.6       0x00002b7639a7dbf6
> 6  libc.so.6       0x00002b7639a7dca2
> 7  clang           0x000000000151ab1d
> 8  clang           0x0000000000f76ca2
> 9  clang           0x0000000000f740d4
> 10 clang           0x0000000000f8782e
> 11 clang           0x0000000000f8907c
> 12 clang           0x0000000000f8872a
> 13 clang           0x0000000000f84218
> 14 clang           0x0000000000f771d9
> 15 clang           0x0000000000f740d4
> 16 clang           0x0000000000f7a797 clang::Sema::SubstType(clang::QualType,
> clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation,
> clang::DeclarationName) + 135
> 17 clang           0x0000000000ee3583 clang::Sema::
> CheckTemplateIdType(clang::TemplateName, clang::SourceLocation, 
> clang::TemplateArgumentListInfo&)
> + 1843
> 18 clang           0x0000000000ee4f65 clang::Sema::
> ActOnTemplateIdType(clang::CXXScopeSpec&, clang::SourceLocation,
> clang::OpaquePtr<clang::TemplateName>, clang::SourceLocation,
> clang::SourceLocation, llvm::MutableArrayRef<clang::ParsedTemplateArgument>,
> clang::SourceLocation, bool) + 677
> 19 clang           0x0000000000b68fa3 clang::Parser::
> AnnotateTemplateIdTokenAsType() + 131
> 20 clang           0x0000000000af5132 clang::Parser::
> ParseDeclarationSpecifiers(clang::DeclSpec&, clang::Parser::ParsedTemplateInfo
> const&, clang::AccessSpecifier, clang::Parser::DeclSpecContext,
> clang::Parser::LateParsedAttrList*) + 2690
> 21 clang           0x0000000000aeb6d2 clang::Parser::
> ParseSpecifierQualifierList(clang::DeclSpec&, clang::AccessSpecifier,
> clang::Parser::DeclSpecContext) + 66
> 22 clang           0x0000000000aeb353 
> clang::Parser::ParseTypeName(clang::SourceRange*,
> clang::Declarator::TheContext, clang::AccessSpecifier, clang::Decl**,
> clang::ParsedAttributes*) + 307
> 23 clang           0x0000000000b0664a clang::Parser::
> ParseFunctionDeclarator(clang::Declarator&, clang::ParsedAttributes&,
> clang::BalancedDelimiterTracker&, bool, bool) + 2218
> 24 clang           0x0000000000b03d7e clang::Parser::
> ParseDirectDeclarator(clang::Declarator&) + 2686
> 25 clang           0x0000000000b02a43 clang::Parser::
> ParseDeclaratorInternal(clang::Declarator&, void
> (clang::Parser::*)(clang::Declarator&)) + 1939
> 26 clang           0x0000000000b64a3f clang::Parser::
> ParseSingleDeclarationAfterTemplate(unsigned int, 
> clang::Parser::ParsedTemplateInfo
> const&, clang::ParsingDeclRAIIObject&, clang::SourceLocation&,
> clang::AccessSpecifier, clang::AttributeList*) + 1711
> 27 clang           0x0000000000b64037 clang::Parser::
> ParseTemplateDeclarationOrSpecialization(unsigned int,
> clang::SourceLocation&, clang::AccessSpecifier, clang::AttributeList*) +
> 1015
> 28 clang           0x0000000000b63a30 clang::Parser::
> ParseDeclarationStartingWithTemplate(unsigned int,
> clang::SourceLocation&, clang::AccessSpecifier, clang::AttributeList*) + 288
> 29 clang           0x0000000000af4228 clang::Parser::
> ParseDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, unsigned int,
> clang::SourceLocation&, clang::Parser::ParsedAttributesWithRange&) + 872
> 30 clang           0x0000000000ae42db clang::Parser::
> ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&,
> clang::ParsingDeclSpec*) + 1755
> 31 clang           0x0000000000b0b149 clang::Parser::
> ParseInnerNamespace(std::vector<clang::SourceLocation,
> std::allocator<clang::SourceLocation> >&, std::vector<clang::IdentifierInfo*,
> std::allocator<clang::IdentifierInfo*> >&, std::vector<clang::SourceLocation,
> std::allocator<clang::SourceLocation> >&, unsigned int,
> clang::SourceLocation&, clang::ParsedAttributes&, 
> clang::BalancedDelimiterTracker&)
> + 313
> 32 clang           0x0000000000b0aa11 clang::Parser::ParseNamespace(unsigned
> int, clang::SourceLocation&, clang::SourceLocation) + 5921
> 33 clang           0x0000000000af4069 clang::Parser::
> ParseDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, unsigned int,
> clang::SourceLocation&, clang::Parser::ParsedAttributesWithRange&) + 425
> 34 clang           0x0000000000ae42db clang::Parser::
> ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&,
> clang::ParsingDeclSpec*) + 1755
> 35 clang           0x0000000000b0b149 clang::Parser::
> ParseInnerNamespace(std::vector<clang::SourceLocation,
> std::allocator<clang::SourceLocation> >&, std::vector<clang::IdentifierInfo*,
> std::allocator<clang::IdentifierInfo*> >&, std::vector<clang::SourceLocation,
> std::allocator<clang::SourceLocation> >&, unsigned int,
> clang::SourceLocation&, clang::ParsedAttributes&, 
> clang::BalancedDelimiterTracker&)
> + 313
> 36 clang           0x0000000000b0aa11 clang::Parser::ParseNamespace(unsigned
> int, clang::SourceLocation&, clang::SourceLocation) + 5921
> 37 clang           0x0000000000af4069 clang::Parser::
> ParseDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, unsigned int,
> clang::SourceLocation&, clang::Parser::ParsedAttributesWithRange&) + 425
> 38 clang           0x0000000000ae42db clang::Parser::
> ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&,
> clang::ParsingDeclSpec*) + 1755
> 39 clang           0x0000000000ae3b06 clang::Parser::
> ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) + 502
> 40 clang           0x0000000000adf816 clang::ParseAST(clang::Sema&, bool,
> bool) + 406
> 41 clang           0x0000000000708bde clang::FrontendAction::Execute() +
> 62
> 42 clang           0x00000000006dd513 clang::CompilerInstance::
> ExecuteAction(clang::FrontendAction&) + 851
> 43 clang           0x00000000006bfe70 
> clang::ExecuteCompilerInvocation(clang::CompilerInstance*)
> + 3104
> 44 clang           0x00000000006b7029 cc1_main(char const**, char const**,
> char const*, void*) + 665
> 45 clang           0x00000000006bdb16 main + 9158
> 46 libc.so.6       0x00002b7639a6ff45 __libc_start_main + 245
> 47 clang           0x00000000006b6cc9
> Stack dump:
> 0. Program arguments: /usr/local/bin/clang -cc1 -triple
> x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free
> -main-file-name module-loader.c++ -mrelocation-model static
> -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases
> -munwind-tables -fuse-init-array -target-cpu x86-64 -target-linker-version
> 2.24 -g -dwarf-column-info -coverage-file /home/sxl463/working/
> capnproto/capnproto-c++-0.6.0/src/capnp/compiler/module-loader.o
> -resource-dir /usr/local/bin/../lib/clang/3.5.0 -dependency-file
> src/capnp/compiler/.deps/module-loader.Tpo -sys-header-deps -MP -MT
> src/capnp/compiler/module-loader.o -D HAVE_CONFIG_H -D KJ_HEADER_WARNINGS
> -D CAPNP_HEADER_WARNINGS -D CAPNP_INCLUDE_DIR="/usr/local/include" -I .
> -I ./src -I ./src -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/
> 4.8/../../../../include/c++/4.8 -internal-isystem
> /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/x86_64-linux-gnu/c++/4.8
> -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/
> 4.8/../../../../include/x86_64-linux-gnu/c++/4.8 -internal-isystem
> /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/backward
> -internal-isystem /usr/local/include -internal-isystem
> /usr/local/bin/../lib/clang/3.5.0/include -internal-externc-isystem
> /usr/include/x86_64-linux-gnu -internal-externc-isystem /include
> -internal-externc-isystem /usr/include -std=gnu++11 -fdeprecated-macro
> -fdebug-compilation-dir /home/sxl463/working/capnproto/capnproto-c++-0.6.0
> -ferror-limit 19 -fmessage-length 134 -pthread -mstackrealign
> -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option
> -o src/capnp/compiler/module-loader.o -x c++ src/capnp/compiler/module-
> loader.c++
> 1. ./src/kj/parse/../tuple.h:271:8: at annotation token
> 2. ./src/kj/parse/../tuple.h:47:1: parsing namespace 'kj'
> 3. ./src/kj/parse/../tuple.h:48:1: parsing namespace '_'
> clang: error: unable to execute command: Aborted (core dumped)
> clang: error: clang frontend command failed due to signal (use -v to see
> invocation)
> clang version 3.5.0 (tags/RELEASE_350/final)
> Target: x86_64-unknown-linux-gnu
> Thread model: posix
> clang: note: diagnostic msg: PLEASE submit a bug report to
> http://llvm.org/bugs/ and include the crash backtrace, preprocessed
> source, and associated run script.
> clang: note: diagnostic msg:
> ********************
>
> PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
> Preprocessed source(s) and associated run script(s) are located at:
> clang: note: diagnostic msg: /tmp/module-loader-b9f855.cpp
> clang: note: diagnostic msg: /tmp/module-loader-b9f855.sh
> clang: note: diagnostic msg:
>
> ********************
> make: *** [src/capnp/compiler/module-loader.o] Error 254
>
>
> I tried this on both 0.5.3.1 and 0.6.0, neither can be compiled.
>
> Did you have similar experience before?
>
>
> Best
>
> LuckyBoy
>
>
>
>
>
>
>
>
> On Thursday, May 25, 2017 at 7:52:40 PM UTC-4, Kenton Varda wrote:
>>
>> Hi,
>>
>> Clang 3.5 should be OK.
>>
>> In the build log you gave, the "-std=gnu++1y" flag is not being passed to
>> the compiler, which explains the errors that follow.
>>
>> One reason this could happen is if you are building from source and you
>> are using an older version of libtool. libtool is known to drop flags from
>> CXXFLAGS if it doesn't recognize them, and perhaps it doesn't recognize
>> "-std=gnu++1y". Note that normally the configure script automatically
>> detects which -std= flag to use and automatically works around this bug in
>> libtool, however since you specified -std= manually in your CXXFLAGS,
>> you've disabled the auto-detection.
>>
>> I suggest starting over and letting the autodetection do its thing:
>>
>>     make distclean
>>     ./configure CXX=clang++ CXXFLAGS=-g
>>
>> Or if you really want to enable C++14 (even though Cap'n Proto doesn't
>> use it), put it in CXX to work around libtool:
>>
>>     make distclean
>>     ./configure CXX="clang++ -std=gnu++1y" CXXFLAGS=-g
>>
>> BTW, I see you are using 0.5.3.1, but note that the current version is
>> 0.6.0.
>>
>> -Kenton
>>
>> On Thu, May 25, 2017 at 12:14 PM, Lucky Boy <[email protected]> wrote:
>>
>>> Hi everyone,
>>>
>>> I am a beginner on Cap'n Proto and I would like to ask a build question.
>>> I am using Clang 3.5.0 to build Cap'n Proto but failed. What I did  for
>>> build was
>>>
>>> ./configure CXX=clang++ CXXFLAGS='-std=gnu++1y -g'
>>>
>>> make
>>>
>>> and the build error is as follows:
>>>
>>>
>>> luckyboy@cse-322osu10:capnproto-c++-0.5.3.1$ make
>>> depbase=`echo src/capnp/compiler/module-loader.o | sed
>>> 's|[^/]*$|.deps/&|;s|\.o$||'`;\
>>> clang++ -stdlib=libc++ -DHAVE_CONFIG_H -I.    -I./src -I./src
>>> -DKJ_HEADER_WARNINGS -DCAPNP_HEADER_WARNINGS 
>>> -DCAPNP_INCLUDE_DIR='"/usr/local/include"'
>>> -pthread -g -pthread -MT src/capnp/compiler/module-loader.o -MD -MP -MF
>>> $depbase.Tpo -c -o src/capnp/compiler/module-loader.o
>>> src/capnp/compiler/module-loader.c++ &&\
>>> mv -f $depbase.Tpo $depbase.Po
>>> In file included from src/capnp/compiler/module-loader.c++:22:
>>> In file included from src/capnp/compiler/module-loader.h:29:
>>> In file included from src/capnp/compiler/compiler.h:29:
>>> In file included from ./src/capnp/compiler/grammar.capnp.h:7:
>>> In file included from ./src/capnp/generated-header-support.h:31:
>>> In file included from ./src/capnp/layout.h:36:
>>> ./src/kj/common.h:35:4: error: "This code requires C++11. Either your
>>> compiler does not support it or it is not enabled."
>>>   #error "This code requires C++11. Either your compiler does not
>>> support it or it is not enabled."
>>>    ^
>>> ./src/kj/common.h:38:6: error: "Pass -std=c++11 on the compiler command
>>> line to enable C++11."
>>>     #error "Pass -std=c++11 on the compiler command line to enable
>>> C++11."
>>>      ^
>>> ./src/kj/common.h:289:39: warning: alias declarations are a C++11
>>> extension [-Wc++11-extensions]
>>> template <typename T> using NoInfer = typename NoInfer_<T>::Type;
>>>                                       ^
>>> ./src/kj/common.h:295:43: warning: alias declarations are a C++11
>>> extension [-Wc++11-extensions]
>>> template <typename T> using RemoveConst = typename RemoveConst_<T>::Type;
>>>                                           ^
>>> ./src/kj/common.h:297:56: error: unknown type name 'constexpr'
>>> template <typename> struct IsLvalueReference_ { static constexpr bool
>>> value = false; };
>>>                                                        ^
>>> ./src/kj/common.h:297:66: error: expected member name or ';' after
>>> declaration specifiers
>>> template <typename> struct IsLvalueReference_ { static constexpr bool
>>> value = false; };
>>>                                                 ~~~~~~~~~~~~~~~~ ^
>>> ./src/kj/common.h:298:62: error: unknown type name 'constexpr'
>>> template <typename T> struct IsLvalueReference_<T&> { static constexpr
>>> bool value = true; };
>>>                                                              ^
>>> ./src/kj/common.h:298:72: error: expected member name or ';' after
>>> declaration specifiers
>>> template <typename T> struct IsLvalueReference_<T&> { static constexpr
>>> bool value = true; };
>>>                                                       ~~~~~~~~~~~~~~~~ ^
>>> ./src/kj/common.h:300:8: error: unknown type name 'constexpr'
>>> inline constexpr bool isLvalueReference() { return
>>> IsLvalueReference_<T>::value; }
>>>        ^
>>> ./src/kj/common.h:300:18: error: expected unqualified-id
>>> inline constexpr bool isLvalueReference() { return
>>> IsLvalueReference_<T>::value; }
>>>                  ^
>>> ./src/kj/common.h:303:30: error: explicit specialization of non-template
>>> struct 'Decay_'
>>> template <typename T> struct Decay_<T&> { typedef typename
>>> Decay_<T>::Type Type; };
>>>                              ^     ~~~~
>>> ./src/kj/common.h:303:71: error: no type named 'Type' in 'Decay_<T>'
>>> template <typename T> struct Decay_<T&> { typedef typename
>>> Decay_<T>::Type Type; };
>>>
>>> ~~~~~~~~~~~~~~~~~~~~^~~~
>>> ./src/kj/common.h:304:38: warning: rvalue references are a C++11
>>> extension [-Wc++11-extensions]
>>> template <typename T> struct Decay_<T&&> { typedef typename
>>> Decay_<T>::Type Type; };
>>>                                      ^
>>> ./src/kj/common.h:311:37: warning: alias declarations are a C++11
>>> extension [-Wc++11-extensions]
>>> template <typename T> using Decay = typename Decay_<T>::Type;
>>>                                     ^
>>> ./src/kj/common.h:315:36: warning: alias declarations are a C++11
>>> extension [-Wc++11-extensions]
>>> template <bool b> using EnableIf = typename EnableIf_<b>::Type;
>>>                                    ^
>>> ./src/kj/common.h:322:13: error: expected ';' at end of declaration
>>> T instance() noexcept;
>>>             ^
>>>             ;
>>> ./src/kj/common.h:322:14: error: C++ requires a type specifier for all
>>> declarations
>>> T instance() noexcept;
>>>              ^~~~~~~~
>>> ./src/kj/common.h:343:25: warning: defaulted function definitions are a
>>> C++11 extension [-Wc++11-extensions]
>>>   DisallowConstCopy() = default;
>>>                         ^
>>> ./src/kj/common.h:345:38: warning: rvalue references are a C++11
>>> extension [-Wc++11-extensions]
>>>   DisallowConstCopy(DisallowConstCopy&&) = default;
>>>                                      ^
>>> ./src/kj/common.h:345:44: warning: defaulted function definitions are a
>>> C++11 extension [-Wc++11-extensions]
>>>   DisallowConstCopy(DisallowConstCopy&&) = default;
>>>                                            ^
>>> ./src/kj/common.h:347:49: warning: rvalue references are a C++11
>>> extension [-Wc++11-extensions]
>>>   DisallowConstCopy& operator=(DisallowConstCopy&&) = default;
>>>                                                 ^
>>> ./src/kj/common.h:347:55: warning: defaulted function definitions are a
>>> C++11 extension [-Wc++11-extensions]
>>>   DisallowConstCopy& operator=(DisallowConstCopy&&) = default;
>>>                                                       ^
>>> ./src/kj/common.h:351:67: warning: defaulted function definitions are a
>>> C++11 extension [-Wc++11-extensions]
>>> inline DisallowConstCopy::DisallowConstCopy(DisallowConstCopy&) =
>>> default;
>>>                                                                   ^
>>> ./src/kj/common.h:352:78: warning: defaulted function definitions are a
>>> C++11 extension [-Wc++11-extensions]
>>> inline DisallowConstCopy& DisallowConstCopy::operator=(DisallowConstCopy&)
>>> = default;
>>>
>>>      ^
>>> ./src/kj/common.h:364:48: error: unknown type name 'constexpr'
>>> template <typename T> struct IsConst_ { static constexpr bool value =
>>> false; };
>>>                                                ^
>>> ./src/kj/common.h:364:58: error: expected member name or ';' after
>>> declaration specifiers
>>> template <typename T> struct IsConst_ { static constexpr bool value =
>>> false; };
>>>                                         ~~~~~~~~~~~~~~~~ ^
>>> ./src/kj/common.h:365:57: error: unknown type name 'constexpr'
>>> template <typename T> struct IsConst_<const T> { static constexpr bool
>>> value = true; };
>>>                                                         ^
>>> ./src/kj/common.h:365:67: error: expected member name or ';' after
>>> declaration specifiers
>>> template <typename T> struct IsConst_<const T> { static constexpr bool
>>> value = true; };
>>>                                                  ~~~~~~~~~~~~~~~~ ^
>>> ./src/kj/common.h:366:23: error: unknown type name 'constexpr'
>>> template <typename T> constexpr bool isConst() { return
>>> IsConst_<T>::value; }
>>>                       ^
>>> ./src/kj/common.h:366:33: error: expected unqualified-id
>>> template <typename T> constexpr bool isConst() { return
>>> IsConst_<T>::value; }
>>>                                 ^
>>> ./src/kj/common.h:369:30: error: explicit specialization of non-template
>>> struct 'EnableIfNotConst_'
>>> template <typename T> struct EnableIfNotConst_<const T>;
>>>                              ^                ~~~~~~~~~
>>> ./src/kj/common.h:370:48: warning: alias declarations are a C++11
>>> extension [-Wc++11-extensions]
>>> template <typename T> using EnableIfNotConst = typename
>>> EnableIfNotConst_<T>::Type;
>>>                                                ^
>>> ./src/kj/common.h:374:45: warning: alias declarations are a C++11
>>> extension [-Wc++11-extensions]
>>> template <typename T> using EnableIfConst = typename
>>> EnableIfConst_<T>::Type;
>>>                                             ^
>>> ./src/kj/common.h:378:52: warning: alias declarations are a C++11
>>> extension [-Wc++11-extensions]
>>> template <typename T> using RemoveConstOrDisable = typename
>>> RemoveConstOrDisable_<T>::Type;
>>>                                                    ^
>>> fatal error: too many errors emitted, stopping now [-ferror-limit=]
>>> clang: /home/sxl463/working/softboundcets-3.5.0/softboundcets-llvm-
>>> 3.5.0/include/llvm/Support/Casting.h:95: static bool
>>> llvm::isa_impl_cl<clang::FunctionDecl, const clang::DeclContext
>>> *>::doit(const From *) [To = clang::FunctionDecl, From = const
>>> clang::DeclContext *]: Assertion `Val && "isa<> used on a null pointer"'
>>> failed.
>>> 0  clang           0x000000000288d535 llvm::sys::PrintStackTrace(_IO_FILE*)
>>> + 37
>>> 1  clang           0x000000000288de33
>>> 2  libpthread.so.0 0x00002b42dfb1c330
>>> 3  libc.so.6       0x00002b42e09adc37 gsignal + 55
>>> 4  libc.so.6       0x00002b42e09b1028 abort + 328
>>> 5  libc.so.6       0x00002b42e09a6bf6
>>> 6  libc.so.6       0x00002b42e09a6ca2
>>> 7  clang           0x0000000000c60e1b 
>>> clang::Sema::FinalizeDeclaration(clang::Decl*)
>>> + 3307
>>> 8  clang           0x0000000000b17115 clang::Parser::ParseCXXClassMe
>>> mberDeclaration(clang::AccessSpecifier, clang::AttributeList*,
>>> clang::Parser::ParsedTemplateInfo const&,
>>> clang::ParsingDeclRAIIObject*) + 6069
>>> 9  clang           0x0000000000b136eb clang::Parser::ParseCXXMemberS
>>> pecification(clang::SourceLocation, clang::SourceLocation,
>>> clang::Parser::ParsedAttributesWithRange&, unsigned int, clang::Decl*)
>>> + 2491
>>> 10 clang           0x0000000000b11f47 
>>> clang::Parser::ParseClassSpecifier(clang::tok::TokenKind,
>>> clang::SourceLocation, clang::DeclSpec&, clang::Parser::ParsedTemplateInfo
>>> const&, clang::AccessSpecifier, bool, clang::Parser::DeclSpecContext,
>>> clang::Parser::ParsedAttributesWithRange&) + 8231
>>> 11 clang           0x0000000000af51f8 
>>> clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&,
>>> clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier,
>>> clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*) +
>>> 2888
>>> 12 clang           0x0000000000b645ec 
>>> clang::Parser::ParseSingleDeclarationAfterTemplate(unsigned
>>> int, clang::Parser::ParsedTemplateInfo const&,
>>> clang::ParsingDeclRAIIObject&, clang::SourceLocation&,
>>> clang::AccessSpecifier, clang::AttributeList*) + 604
>>> 13 clang           0x0000000000b64037 clang::Parser::ParseTemplateDe
>>> clarationOrSpecialization(unsigned int, clang::SourceLocation&,
>>> clang::AccessSpecifier, clang::AttributeList*) + 1015
>>> 14 clang           0x0000000000b63a30 
>>> clang::Parser::ParseDeclarationStartingWithTemplate(unsigned
>>> int, clang::SourceLocation&, clang::AccessSpecifier, clang::AttributeList*)
>>> + 288
>>> 15 clang           0x0000000000af4228 clang::Parser::ParseDeclaratio
>>> n(llvm::SmallVector<clang::Stmt*, 32u>&, unsigned int,
>>> clang::SourceLocation&, clang::Parser::ParsedAttributesWithRange&) + 872
>>> 16 clang           0x0000000000ae42db clang::Parser::ParseExternalDe
>>> claration(clang::Parser::ParsedAttributesWithRange&,
>>> clang::ParsingDeclSpec*) + 1755
>>> 17 clang           0x0000000000b0b149 clang::Parser::ParseInnerNames
>>> pace(std::vector<clang::SourceLocation, 
>>> std::allocator<clang::SourceLocation>
>>> >&, std::vector<clang::IdentifierInfo*, 
>>> >std::allocator<clang::IdentifierInfo*>
>>> >&, std::vector<clang::SourceLocation, std::allocator<clang::SourceLocation>
>>> >&, unsigned int, clang::SourceLocation&, clang::ParsedAttributes&,
>>> clang::BalancedDelimiterTracker&) + 313
>>> 18 clang           0x0000000000b0aa11 clang::Parser::ParseNamespace(unsigned
>>> int, clang::SourceLocation&, clang::SourceLocation) + 5921
>>> 19 clang           0x0000000000af4069 clang::Parser::ParseDeclaratio
>>> n(llvm::SmallVector<clang::Stmt*, 32u>&, unsigned int,
>>> clang::SourceLocation&, clang::Parser::ParsedAttributesWithRange&) + 425
>>> 20 clang           0x0000000000ae42db clang::Parser::ParseExternalDe
>>> claration(clang::Parser::ParsedAttributesWithRange&,
>>> clang::ParsingDeclSpec*) + 1755
>>> 21 clang           0x0000000000b0b149 clang::Parser::ParseInnerNames
>>> pace(std::vector<clang::SourceLocation, 
>>> std::allocator<clang::SourceLocation>
>>> >&, std::vector<clang::IdentifierInfo*, 
>>> >std::allocator<clang::IdentifierInfo*>
>>> >&, std::vector<clang::SourceLocation, std::allocator<clang::SourceLocation>
>>> >&, unsigned int, clang::SourceLocation&, clang::ParsedAttributes&,
>>> clang::BalancedDelimiterTracker&) + 313
>>> 22 clang           0x0000000000b0aa11 clang::Parser::ParseNamespace(unsigned
>>> int, clang::SourceLocation&, clang::SourceLocation) + 5921
>>> 23 clang           0x0000000000af4069 clang::Parser::ParseDeclaratio
>>> n(llvm::SmallVector<clang::Stmt*, 32u>&, unsigned int,
>>> clang::SourceLocation&, clang::Parser::ParsedAttributesWithRange&) + 425
>>> 24 clang           0x0000000000ae42db clang::Parser::ParseExternalDe
>>> claration(clang::Parser::ParsedAttributesWithRange&,
>>> clang::ParsingDeclSpec*) + 1755
>>> 25 clang           0x0000000000ae3b06 clang::Parser::ParseTopLevelDe
>>> cl(clang::OpaquePtr<clang::DeclGroupRef>&) + 502
>>> 26 clang           0x0000000000adf816 clang::ParseAST(clang::Sema&,
>>> bool, bool) + 406
>>> 27 clang           0x0000000000708bde clang::FrontendAction::Execute()
>>> + 62
>>> 28 clang           0x00000000006dd513 clang::CompilerInstance::Execu
>>> teAction(clang::FrontendAction&) + 851
>>> 29 clang           0x00000000006bfe70 
>>> clang::ExecuteCompilerInvocation(clang::CompilerInstance*)
>>> + 3104
>>> 30 clang           0x00000000006b7029 cc1_main(char const**, char
>>> const**, char const*, void*) + 665
>>> 31 clang           0x00000000006bdb16 main + 9158
>>> 32 libc.so.6       0x00002b42e0998f45 __libc_start_main + 245
>>> 33 clang           0x00000000006b6cc9
>>> Stack dump:
>>> 0. Program arguments: /usr/local/bin/clang -cc1 -triple
>>> x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free
>>> -main-file-name module-loader.c++ -mrelocation-model static
>>> -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases
>>> -munwind-tables -fuse-init-array -target-cpu x86-64 -target-linker-version
>>> 2.24 -g -dwarf-column-info -coverage-file /home/sxl463/working/capnproto
>>> /capnproto-c++-0.5.3.1/src/capnp/compiler/module-loader.o -resource-dir
>>> /usr/local/bin/../lib/clang/3.5.0 -dependency-file
>>> src/capnp/compiler/.deps/module-loader.Tpo -sys-header-deps -MP -MT
>>> src/capnp/compiler/module-loader.o -D HAVE_CONFIG_H -D
>>> KJ_HEADER_WARNINGS -D CAPNP_HEADER_WARNINGS -D
>>> CAPNP_INCLUDE_DIR="/usr/local/include" -I . -I ./src -I ./src
>>> -internal-isystem /usr/local/bin/../include/c++/v1 -internal-isystem
>>> /usr/local/include -internal-isystem 
>>> /usr/local/bin/../lib/clang/3.5.0/include
>>> -internal-externc-isystem /usr/include/x86_64-linux-gnu
>>> -internal-externc-isystem /include -internal-externc-isystem /usr/include
>>> -fdeprecated-macro -fdebug-compilation-dir 
>>> /home/sxl463/working/capnproto/capnproto-c++-0.5.3.1
>>> -ferror-limit 19 -fmessage-length 134 -pthread -mstackrealign
>>> -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option
>>> -o src/capnp/compiler/module-loader.o -x c++
>>> src/capnp/compiler/module-loader.c++
>>> 1. ./src/capnp/generated-header-support.h:262:40: current parser token
>>> 'const'
>>> 2. ./src/capnp/generated-header-support.h:39:1: parsing namespace
>>> 'capnp'
>>> 3. ./src/capnp/generated-header-support.h:48:1: parsing namespace '_'
>>> 4. ./src/capnp/generated-header-support.h:260:1: parsing
>>> struct/union/class body 'ChooseBrand'
>>> clang: error: unable to execute command: Aborted (core dumped)
>>> clang: error: clang frontend command failed due to signal (use -v to see
>>> invocation)
>>> clang version 3.5.0 (tags/RELEASE_350/final)
>>> Target: x86_64-unknown-linux-gnu
>>> Thread model: posix
>>> clang: note: diagnostic msg: PLEASE submit a bug report to
>>> http://llvm.org/bugs/ and include the crash backtrace, preprocessed
>>> source, and associated run script.
>>> clang: note: diagnostic msg: Error generating preprocessed source(s).
>>> make: *** [src/capnp/compiler/module-loader.o] Error 254
>>>
>>>
>>> ------------------------------------------------------------
>>> --------------------------------------------------------------
>>>
>>> It seems someone had asked similar questions 3 years ago but no official
>>> solution. What I am eager to know is how should I handle this? If I want to
>>> keep using Clang 3.5, is this unavoidable?
>>>
>>> Thanks very much for any hints and help!
>>>
>>>
>>>
>>>
>>>
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Cap'n Proto" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> Visit this group at https://groups.google.com/group/capnproto.
>>>
>>
>> --
> You received this message because you are subscribed to the Google Groups
> "Cap'n Proto" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> Visit this group at https://groups.google.com/group/capnproto.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Cap'n Proto" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
Visit this group at https://groups.google.com/group/capnproto.

Reply via email to