I get annoying compiler warnings upgraded to errors when building with
clang 3.8, bison 3.0.4, flex 2.6.0:

[3/170] Building CXX object
parser/CMakeFiles/quickstep_parser_SqlLexer.dir/SqlLexer_gen.cpp.o
FAILED: parser/CMakeFiles/quickstep_parser_SqlLexer.dir/SqlLexer_gen.cpp.o
ccache /usr/bin/clang++-3.8
-DQUICKSTEP_ENABLE_VECTOR_COPY_ELISION_SELECTION
-DQUICKSTEP_ENABLE_VECTOR_PREDICATE_SHORT_CIRCUIT -DYY_NO_UNISTD_H
-D_ISOC11_SOURCE -I../ -I. -isystem ../third_party/protobuf/src -isystem
../third_party/googletest/googletest/include
-I../third_party/benchmark/include -Ithird_party/gflags/include
-I../third_party/glog/src -Ithird_party -I../third_party/re2
-I../third_party/tmb/include
-I../third_party/protobuf_cmake/../protobuf/src -std=c++14
-Wno-tautological-compare -Wall -pedantic -Werror -Wno-extended-offsetof
-march=native -Wno-return-type-c-linkage   -Wno-sign-compare -MMD -MT
parser/CMakeFiles/quickstep_parser_SqlLexer.dir/SqlLexer_gen.cpp.o -MF
parser/CMakeFiles/quickstep_parser_SqlLexer.dir/SqlLexer_gen.cpp.o.d -o
parser/CMakeFiles/quickstep_parser_SqlLexer.dir/SqlLexer_gen.cpp.o -c
parser/SqlLexer_gen.cpp
/home/marc/workspace/incubator-quickstep/build/parser/SqlLexer_gen.cpp:1370:84:
error: implicit conversion of NULL constant to 'bool'
[-Werror,-Wnull-conversion]
  if ( ! ( yyg->yy_buffer_stack ?
yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] : __null) ) {
       ~
        ^~~~~~

       false
[... condensed because there were a total of 12]

/home/marc/workspace/incubator-quickstep/build/parser/SqlLexer_gen.cpp:3494:82:
error: implicit conversion of NULL constant to 'bool'
[-Werror,-Wnull-conversion]
 while(( yyg->yy_buffer_stack ?
yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] : __null)){
 ~~~~~
      ^~~~~~

     false
12 errors generated.

The way I have been getting around this is to add set(CMAKE_CXX_FLAGS
"${CMAKE_CXX_FLAGS} -Wno-null-conversion") to the CMakeLists.txt

Anyone have a better way?

-Marc

Reply via email to