skvadrik / re2c

Lexer generator for C, C++, Go and Rust.

Home Page:https://re2c.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

make failure for re2c

ripspin5 opened this issue · comments

Make failure: (see attached for full details)

xenial64-sda1:ba/initrd/mnt/dev_save/pool/git/re2c
make
  GEN      src/msg/help.cc
  GEN      src/parse/parser.cc
Reconfigure with --enable-parsers to regenerate src/parse/parser.cc
  GEN      src/parse/lex.cc
Reconfigure with --enable-lexers to regenerate src/parse/lex.cc
  GEN      src/msg/ver_to_vernum.cc
Reconfigure with --enable-lexers to regenerate src/msg/ver_to_vernum.cc
  GEN      src/parse/lex_conf.cc
Reconfigure with --enable-lexers to regenerate src/parse/lex_conf.cc
  GEN      src/options/parse_opts.cc
Reconfigure with --enable-lexers to regenerate src/options/parse_opts.cc
make  all-recursive
make[1]: Entering directory '/initrd/mnt/dev_save/pool/git/re2c'
Making all in .
make[2]: Entering directory '/initrd/mnt/dev_save/pool/git/re2c'
  CXX      src/main.o
In file included from src/main.cc:18:0:
./src/nfa/nfa.h:36:23: warning: ‘re2c::TnfaState::status’ is too small to hold all values of ‘enum class re2c::GorPass’
     GorPass status  : 2;  // GOR1: status (values 0, 1, 2)
                       ^
In file included from ./src/parse/input.h:16:0,
                 from src/main.cc:21:
../src/parse/parser.ypp:7:2: warning: extra ‘;’ [-Wpedantic]
  CXX      src/codegen/helpers.o
  CXX      src/codegen/output.o
  CXX      src/codegen/pass1_analyze.o
  CXX      src/codegen/pass2_generate.o
  CXX      src/codegen/pass3_fixup.o
  CXX      src/codegen/pass4_render.o
  CXX      src/options/opt.o
In file included from ./src/parse/input.h:16:0,
                 from src/options/opt.cc:3:
../src/parse/parser.ypp:7:2: warning: extra ‘;’ [-Wpedantic]
  CXX      src/options/symtab.o
In file included from ./src/parse/input.h:16:0,
                 from src/options/symtab.cc:3:
../src/parse/parser.ypp:7:2: warning: extra ‘;’ [-Wpedantic]
  CXX      src/nfa/re_to_nfa.o
In file included from src/nfa/re_to_nfa.cc:6:0:
./src/nfa/nfa.h:36:23: warning: ‘re2c::TnfaState::status’ is too small to hold all values of ‘enum class re2c::GorPass’
     GorPass status  : 2;  // GOR1: status (values 0, 1, 2)
                       ^
  CXX      src/adfa/adfa.o
  CXX      src/debug/dump_adfa.o
  CXX      src/debug/dump_cfg.o
  CXX      src/debug/dump_dfa.o
  CXX      src/debug/dump_dfa_tree.o
  CXX      src/debug/dump_interf.o
  CXX      src/debug/dump_nfa.o
  CXX      src/cfg/cfg.o
  CXX      src/cfg/compact.o
  CXX      src/cfg/dce.o
  CXX      src/cfg/freeze.o
  CXX      src/cfg/interfere.o
  CXX      src/cfg/liveanal.o
  CXX      src/cfg/normalize.o
  CXX      src/cfg/optimize.o
  CXX      src/cfg/rename.o
  CXX      src/cfg/varalloc.o
  CXX      src/dfa/closure.o
In file included from ./src/dfa/determinization.h:12:0,xenial64-sda1:ba/initrd/mnt/dev_save/pool/git/re2c
make
  GEN      src/msg/help.cc
  GEN      src/parse/parser.cc
Reconfigure with --enable-parsers to regenerate src/parse/parser.cc
  GEN      src/parse/lex.cc
Reconfigure with --enable-lexers to regenerate src/parse/lex.cc
  GEN      src/msg/ver_to_vernum.cc
Reconfigure with --enable-lexers to regenerate src/msg/ver_to_vernum.cc
  GEN      src/parse/lex_conf.cc
Reconfigure with --enable-lexers to regenerate src/parse/lex_conf.cc
  GEN      src/options/parse_opts.cc
Reconfigure with --enable-lexers to regenerate src/options/parse_opts.cc
make  all-recursive
make[1]: Entering directory '/initrd/mnt/dev_save/pool/git/re2c'
Making all in .
make[2]: Entering directory '/initrd/mnt/dev_save/pool/git/re2c'
  CXX      src/main.o
In file included from src/main.cc:18:0:
./src/nfa/nfa.h:36:23: warning: ‘re2c::TnfaState::status’ is too small to hold all values of ‘enum class re2c::GorPass’
     GorPass status  : 2;  // GOR1: status (values 0, 1, 2)
                       ^
In file included from ./src/parse/input.h:16:0,
                 from src/main.cc:21:
../src/parse/parser.ypp:7:2: warning: extra ‘;’ [-Wpedantic]
  CXX      src/codegen/helpers.o
  CXX      src/codegen/output.o
  CXX      src/codegen/pass1_analyze.o
  CXX      src/codegen/pass2_generate.o
  CXX      src/codegen/pass3_fixup.o
  CXX      src/codegen/pass4_render.o
  CXX      src/options/opt.o
In file included from ./src/parse/input.h:16:0,
                 from src/options/opt.cc:3:
../src/parse/parser.ypp:7:2: warning: extra ‘;’ [-Wpedantic]
  CXX      src/options/symtab.o
In file included from ./src/parse/input.h:16:0,
                 from src/options/symtab.cc:3:
../src/parse/parser.ypp:7:2: warning: extra ‘;’ [-Wpedantic]
  CXX      src/nfa/re_to_nfa.o
In file included from src/nfa/re_to_nfa.cc:6:0:
./src/nfa/nfa.h:36:23: warning: ‘re2c::TnfaState::status’ is too small to hold all values of ‘enum class re2c::GorPass’
     GorPass status  : 2;  // GOR1: status (values 0, 1, 2)
                       ^
  CXX      src/adfa/adfa.o
  CXX      src/debug/dump_adfa.o
  CXX      src/debug/dump_cfg.o
  CXX      src/debug/dump_dfa.o
  CXX      src/debug/dump_dfa_tree.o
  CXX      src/debug/dump_interf.o
  CXX      src/debug/dump_nfa.o
  CXX      src/cfg/cfg.o
  CXX      src/cfg/compact.o
  CXX      src/cfg/dce.o
  CXX      src/cfg/freeze.o
  CXX      src/cfg/interfere.o
  CXX      src/cfg/liveanal.o
  CXX      src/cfg/normalize.o
  CXX      src/cfg/optimize.o
  CXX      src/cfg/rename.o
  CXX      src/cfg/varalloc.o
  CXX      src/dfa/closure.o
In file included from ./src/dfa/determinization.h:12:0,
                 from src/dfa/closure.cc:8:
./src/nfa/nfa.h:36:23: warning: ‘re2c::TnfaState::status’ is too small to hold all values of ‘enum class re2c::GorPass’
     GorPass status  : 2;  // GOR1: status (values 0, 1, 2)
                       ^
In file included from src/dfa/closure.cc:11:0:
./src/dfa/closure_posix.h: In function ‘void re2c::closure_posix_gor1(ctx_t&)’:
./src/dfa/closure_posix.h:68:27: error: no match for ‘operator==’ (operand types are ‘unsigned char:2’ and ‘re2c::GorPass’)
             if (q->status == GorPass::LINEAR) {
                           ^
./src/dfa/closure_posix.h: In function ‘bool re2c::relax_gor1(ctx_t&, const typename ctx_t::conf_t&)’:
./src/dfa/closure_posix.h:157:19: error: no match for ‘operator==’ (operand types are ‘unsigned char:2’ and ‘re2c::GorPass’)
     if (q->status == GorPass::TOPSORT) {
                   ^
./src/dfa/closure_posix.h:170:19: error: no match for ‘operator==’ (operand types are ‘unsigned char:2’ and ‘re2c::GorPass’)
     if (q->status == GorPass::NOPASS) {
                   ^
./src/dfa/closure_posix.h: In function ‘bool re2c::relax_gor1(ctx_t&, const typename ctx_t::conf_t&) [with ctx_t = re2c::determ_context_t<re2c::phistory_t>; typename ctx_t::conf_t = re2c::clos_t]’:
./src/dfa/closure_posix.h:178:1: error: control reaches end of non-void function [-Werror=return-type]
 }
 ^
cc1plus: some warnings being treated as errors
Makefile:2753: recipe for target 'src/dfa/closure.o' failed
make[2]: *** [src/dfa/closure.o] Error 1
make[2]: Leaving directory '/initrd/mnt/dev_save/pool/git/re2c'
Makefile:5129: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/initrd/mnt/dev_save/pool/git/re2c'
Makefile:1596: recipe for target 'all' failed
make: *** [all] Error 2
xenial64-sda1:ba/initrd/mnt/dev_save/pool/git/re2c

                 from src/dfa/closure.cc:8:
./src/nfa/nfa.h:36:23: warning: ‘re2c::TnfaState::status’ is too small to hold all values of ‘enum class re2c::GorPass’
     GorPass status  : 2;  // GOR1: status (values 0, 1, 2)
                       ^
In file included from src/dfa/closure.cc:11:0:
./src/dfa/closure_posix.h: In function ‘void re2c::closure_posix_gor1(ctx_t&)’:
./src/dfa/closure_posix.h:68:27: error: no match for ‘operator==’ (operand types are ‘unsigned char:2’ and ‘re2c::GorPass’)
             if (q->status == GorPass::LINEAR) {
                           ^
./src/dfa/closure_posix.h: In function ‘bool re2c::relax_gor1(ctx_t&, const typename ctx_t::conf_t&)’:
./src/dfa/closure_posix.h:157:19: error: no match for ‘operator==’ (operand types are ‘unsigned char:2’ and ‘re2c::GorPass’)
     if (q->status == GorPass::TOPSORT) {
                   ^
./src/dfa/closure_posix.h:170:19: error: no match for ‘operator==’ (operand types are ‘unsigned char:2’ and ‘re2c::GorPass’)
     if (q->status == GorPass::NOPASS) {
                   ^
./src/dfa/closure_posix.h: In function ‘bool re2c::relax_gor1(ctx_t&, const typename ctx_t::conf_t&) [with ctx_t = re2c::determ_context_t<re2c::phistory_t>; typename ctx_t::conf_t = re2c::clos_t]’:
./src/dfa/closure_posix.h:178:1: error: control reaches end of non-void function [-Werror=return-type]
 }
 ^
cc1plus: some warnings being treated as errors
Makefile:2753: recipe for target 'src/dfa/closure.o' failed
make[2]: *** [src/dfa/closure.o] Error 1
make[2]: Leaving directory '/initrd/mnt/dev_save/pool/git/re2c'
Makefile:5129: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/initrd/mnt/dev_save/pool/git/re2c'
Makefile:1596: recipe for target 'all' failed
make: *** [all] Error 2
xenial64-sda1:ba/initrd/mnt/dev_save/pool/git/re2c

Hi, thanks for reporting. Can you share your compiler version and compile flags?

The fix d7c6971 has been merged into master.

Closing, as the build error has been fixed.

now that its fixed does that mean I need to update gcc and it should work for me?

I think you don't need to update GCC, only to update re2c to have this commit (it's not part of the official release yet). I tested the build with gcc-4.9 (which failed with the same error previously) and it worked.