#67792 closed defect (fixed)

re2c @3.1: requires C++11

Reported by: barracuda156 Owned by: ryandesign (Ryan Carsten Schmidt)
Priority: Normal Milestone:
Component: ports Version: 2.8.1
Keywords: Cc:
Port: re2c

Description

/usr/bin/g++-4.2 -DHAVE_CONFIG_H -I.   -I/opt/local/include -W  -Wall  -Wextra  -Weffc++  -pedantic  -Wformat=2  -Wredundant-decls  -Wconversion  -Wold-style-cast  -Werror=return-type  -O2  -DRE2C_STDLIB_DIR='"/opt/local/share/re2c/stdlib/"'  -DRE2C_LANG=Lang::GO -pipe -Os -arch ppc -MT src/codegen/re2go-helpers.o -MD -MP -MF src/codegen/.deps/re2go-helpers.Tpo -c -o src/codegen/re2go-helpers.o `test -f 'src/codegen/helpers.cc' || echo './'`src/codegen/helpers.cc
/usr/bin/g++-4.2 -DHAVE_CONFIG_H -I.   -I/opt/local/include -W  -Wall  -Wextra  -Weffc++  -pedantic  -Wformat=2  -Wredundant-decls  -Wconversion  -Wold-style-cast  -Werror=return-type  -O2  -DRE2C_STDLIB_DIR='"/opt/local/share/re2c/stdlib/"'  -DRE2C_LANG=Lang::GO -pipe -Os -arch ppc -MT src/codegen/re2go-output.o -MD -MP -MF src/codegen/.deps/re2go-output.Tpo -c -o src/codegen/re2go-output.o `test -f 'src/codegen/output.cc' || echo './'`src/codegen/output.cc
../src/msg/ver_to_vernum.re:11: warning: expected [error|warning|ignored] after ‘#pragma GCC diagnostic’
../src/msg/ver_to_vernum.re:12: warning: unknown option after ‘#pragma GCC diagnostic’ kind
../src/msg/ver_to_vernum.re: In function ‘std::string re2c::ver_to_vernum(const char*)’:
../src/msg/ver_to_vernum.re:29: error: ‘constexpr’ does not name a type
../src/msg/ver_to_vernum.re:30: error: ‘SIZE’ was not declared in this scope
../src/msg/ver_to_vernum.re:33: error: ‘PARTS’ was not declared in this scope
../src/msg/ver_to_vernum.re:34: error: ‘buffer’ was not declared in this scope
../src/msg/ver_to_vernum.re:42: error: ‘buffer’ was not declared in this scope
../src/msg/ver_to_vernum.re: At global scope:
../src/msg/ver_to_vernum.re:50: warning: expected [error|warning|ignored] after ‘#pragma GCC diagnostic’
make[2]: *** [src/msg/ver_to_vernum.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from ../src/parse/lex_conf.re:4:
./src/encoding/enc.h:29: error: expected identifier before ‘class’
./src/encoding/enc.h:29: error: expected class-name before ‘{’ token
./src/encoding/enc.h:32: error: ISO C++ forbids declaration of ‘ASCII’ with no type
./src/encoding/enc.h:33: error: ISO C++ forbids declaration of ‘EBCDIC’ with no type
./src/encoding/enc.h:34: error: ISO C++ forbids declaration of ‘UCS2’ with no type
./src/encoding/enc.h:35: error: ISO C++ forbids declaration of ‘UTF16’ with no type
./src/encoding/enc.h:36: error: ISO C++ forbids declaration of ‘UTF32’ with no type
./src/encoding/enc.h:37: error: ISO C++ forbids declaration of ‘UTF8’ with no type
./src/encoding/enc.h:38: error: expected ‘;’ before ‘}’ token
./src/encoding/enc.h:38: error: expected `;' before ‘}’ token
./src/encoding/enc.h:38: error: multiple types in one declaration
./src/encoding/enc.h:41: error: expected identifier before ‘class’
./src/encoding/enc.h:41: error: expected class-name before ‘{’ token
./src/encoding/enc.h:42: error: ISO C++ forbids declaration of ‘FAIL’ with no type
./src/encoding/enc.h:43: error: ISO C++ forbids declaration of ‘SUBSTITUTE’ with no type
./src/encoding/enc.h:44: error: ISO C++ forbids declaration of ‘IGNORE’ with no type
./src/encoding/enc.h:45: error: expected ‘;’ before ‘}’ token
./src/encoding/enc.h:45: error: expected `;' before ‘}’ token
./src/encoding/enc.h:45: error: multiple types in one declaration
./src/encoding/enc.h:48: error: ‘constexpr’ does not name a type
./src/encoding/enc.h:49: error: ‘constexpr’ does not name a type
./src/encoding/enc.h:50: error: ‘constexpr’ does not name a type
./src/encoding/enc.h: In constructor ‘re2c::Enc::Enc()’:
./src/encoding/enc.h:32: error: ‘int re2c::Enc::Type::ASCII’ is private
./src/encoding/enc.h:56: error: within this context
./src/encoding/enc.h:32: error: object missing in reference to ‘re2c::Enc::Type::ASCII’
./src/encoding/enc.h:56: error: from this location
./src/encoding/enc.h:56: error: ‘IGNORE’ is not a member of ‘re2c::Enc::Policy’
./src/encoding/enc.h: In member function ‘bool re2c::Enc::operator!=(const re2c::Enc&) const’:
./src/encoding/enc.h:57: error: no match for ‘operator!=’ in ‘((const re2c::Enc*)this)->re2c::Enc::type_ != e->re2c::Enc::type_’
./src/encoding/enc.h: In member function ‘void re2c::Enc::unset(re2c::Enc::Type)’:
./src/encoding/enc.h:59: error: no match for ‘operator==’ in ‘((re2c::Enc*)this)->re2c::Enc::type_ == t’
./src/encoding/enc.h:32: error: ‘int re2c::Enc::Type::ASCII’ is private
./src/encoding/enc.h:59: error: within this context
./src/encoding/enc.h:32: error: object missing in reference to ‘re2c::Enc::Type::ASCII’
./src/encoding/enc.h:59: error: from this location
./src/encoding/enc.h: In static member function ‘static const char* re2c::Enc::name(re2c::Enc::Type)’:
./src/encoding/enc.h:77: error: switch quantity not an integer
./src/encoding/enc.h:32: error: ‘int re2c::Enc::Type::ASCII’ is private
./src/encoding/enc.h:78: error: within this context
./src/encoding/enc.h:78: error: ‘re2c::Enc::Type::ASCII’ cannot appear in a constant-expression
./src/encoding/enc.h:33: error: ‘int re2c::Enc::Type::EBCDIC’ is private
./src/encoding/enc.h:80: error: within this context
./src/encoding/enc.h:80: error: ‘re2c::Enc::Type::EBCDIC’ cannot appear in a constant-expression
./src/encoding/enc.h:82: error: ‘UTF8’ is not a member of ‘re2c::Enc::Type’
./src/encoding/enc.h:34: error: ‘int re2c::Enc::Type::UCS2’ is private
./src/encoding/enc.h:84: error: within this context
./src/encoding/enc.h:84: error: ‘re2c::Enc::Type::UCS2’ cannot appear in a constant-expression
./src/encoding/enc.h:35: error: ‘int re2c::Enc::Type::UTF16’ is private
./src/encoding/enc.h:86: error: within this context
./src/encoding/enc.h:86: error: ‘re2c::Enc::Type::UTF16’ cannot appear in a constant-expression
./src/encoding/enc.h:36: error: ‘int re2c::Enc::Type::UTF32’ is private
./src/encoding/enc.h:88: error: within this context
./src/encoding/enc.h:88: error: ‘re2c::Enc::Type::UTF32’ cannot appear in a constant-expression
./src/encoding/enc.h: In member function ‘uint32_t re2c::Enc::cpoint_count() const’:
./src/encoding/enc.h:95: error: switch quantity not an integer
./src/encoding/enc.h:32: error: ‘int re2c::Enc::Type::ASCII’ is private
./src/encoding/enc.h:96: error: within this context
./src/encoding/enc.h:96: error: ‘re2c::Enc::Type::ASCII’ cannot appear in a constant-expression
./src/encoding/enc.h:33: error: ‘int re2c::Enc::Type::EBCDIC’ is private
./src/encoding/enc.h:97: error: within this context
./src/encoding/enc.h:97: error: ‘re2c::Enc::Type::EBCDIC’ cannot appear in a constant-expression
./src/encoding/enc.h:34: error: ‘int re2c::Enc::Type::UCS2’ is private
./src/encoding/enc.h:99: error: within this context
./src/encoding/enc.h:99: error: ‘re2c::Enc::Type::UCS2’ cannot appear in a constant-expression
./src/encoding/enc.h:35: error: ‘int re2c::Enc::Type::UTF16’ is private
./src/encoding/enc.h:101: error: within this context
./src/encoding/enc.h:101: error: ‘re2c::Enc::Type::UTF16’ cannot appear in a constant-expression
./src/encoding/enc.h:36: error: ‘int re2c::Enc::Type::UTF32’ is private
./src/encoding/enc.h:102: error: within this context
./src/encoding/enc.h:102: error: ‘re2c::Enc::Type::UTF32’ cannot appear in a constant-expression
./src/encoding/enc.h:103: error: ‘UTF8’ is not a member of ‘re2c::Enc::Type’
./src/encoding/enc.h: In member function ‘uint32_t re2c::Enc::cunit_count() const’:
./src/encoding/enc.h:110: error: switch quantity not an integer
./src/encoding/enc.h:32: error: ‘int re2c::Enc::Type::ASCII’ is private
./src/encoding/enc.h:111: error: within this context
./src/encoding/enc.h:111: error: ‘re2c::Enc::Type::ASCII’ cannot appear in a constant-expression
./src/encoding/enc.h:33: error: ‘int re2c::Enc::Type::EBCDIC’ is private
./src/encoding/enc.h:112: error: within this context
./src/encoding/enc.h:112: error: ‘re2c::Enc::Type::EBCDIC’ cannot appear in a constant-expression
./src/encoding/enc.h:113: error: ‘UTF8’ is not a member of ‘re2c::Enc::Type’
./src/encoding/enc.h:34: error: ‘int re2c::Enc::Type::UCS2’ is private
./src/encoding/enc.h:115: error: within this context
./src/encoding/enc.h:115: error: ‘re2c::Enc::Type::UCS2’ cannot appear in a constant-expression
./src/encoding/enc.h:35: error: ‘int re2c::Enc::Type::UTF16’ is private
./src/encoding/enc.h:116: error: within this context
./src/encoding/enc.h:116: error: ‘re2c::Enc::Type::UTF16’ cannot appear in a constant-expression
./src/encoding/enc.h:36: error: ‘int re2c::Enc::Type::UTF32’ is private
./src/encoding/enc.h:118: error: within this context
./src/encoding/enc.h:118: error: ‘re2c::Enc::Type::UTF32’ cannot appear in a constant-expression
./src/encoding/enc.h: In member function ‘uint32_t re2c::Enc::cunit_size() const’:
./src/encoding/enc.h:125: error: switch quantity not an integer
./src/encoding/enc.h:32: error: ‘int re2c::Enc::Type::ASCII’ is private
./src/encoding/enc.h:126: error: within this context
./src/encoding/enc.h:126: error: ‘re2c::Enc::Type::ASCII’ cannot appear in a constant-expression
./src/encoding/enc.h:33: error: ‘int re2c::Enc::Type::EBCDIC’ is private
./src/encoding/enc.h:127: error: within this context
In file included from ./src/dfa/dfa.h:9,
                 from ../src/options/parse_opts.re:6:
./src/constants.h:9: error: expected identifier before ‘class’
./src/constants.h:9: error: expected class-name before ‘{’ token
./src/constants.h:10: error: ISO C++ forbids declaration of ‘CODE’ with no type
./src/constants.h:11: error: ISO C++ forbids declaration of ‘DOT’ with no type
./src/constants.h:12: error: ISO C++ forbids declaration of ‘SKELETON’ with no type
./src/constants.h:13: error: expected ‘;’ before ‘}’ token
./src/constants.h:13: error: expected `;' before ‘}’ token
./src/constants.h:13: error: multiple types in one declaration
./src/constants.h:15: error: expected identifier before ‘class’
./src/constants.h:15: error: expected class-name before ‘{’ token
./src/constants.h:16: error: ISO C++ forbids declaration of ‘C’ with no type
./src/constants.h:17: error: ISO C++ forbids declaration of ‘GO’ with no type
./src/constants.h:18: error: ISO C++ forbids declaration of ‘RUST’ with no type
./src/constants.h:19: error: expected ‘;’ before ‘}’ token
./src/constants.h:19: error: expected `;' before ‘}’ token
./src/constants.h:19: error: multiple types in one declaration
./src/constants.h:21: error: expected identifier before ‘class’
./src/constants.h:21: error: expected class-name before ‘{’ token
./src/constants.h:22: error: ISO C++ forbids declaration of ‘DEFAULT’ with no type
./src/constants.h:23: error: ISO C++ forbids declaration of ‘CUSTOM’ with no type
./src/constants.h:24: error: expected ‘;’ before ‘}’ token
./src/constants.h:24: error: expected `;' before ‘}’ token
./src/constants.h:24: error: multiple types in one declaration
./src/constants.h:26: error: expected identifier before ‘class’
./src/constants.h:26: error: expected class-name before ‘{’ token
./src/constants.h:27: error: ISO C++ forbids declaration of ‘FUNCTIONS’ with no type
./src/constants.h:28: error: ISO C++ forbids declaration of ‘FREEFORM’ with no type
./src/constants.h:29: error: expected ‘;’ before ‘}’ token
./src/constants.h:29: error: expected `;' before ‘}’ token
./src/constants.h:29: error: multiple types in one declaration
./src/constants.h:31: error: expected identifier before ‘class’
./src/constants.h:31: error: expected class-name before ‘{’ token
./src/constants.h:32: error: ISO C++ forbids declaration of ‘NONE’ with no type
./src/constants.h:33: error: ISO C++ forbids declaration of ‘TOPLEVEL’ with no type
./src/constants.h:34: error: ISO C++ forbids declaration of ‘ALL’ with no type
./src/constants.h:35: error: expected ‘;’ before ‘}’ token
./src/constants.h:35: error: expected `;' before ‘}’ token
./src/constants.h:35: error: multiple types in one declaration
./src/constants.h:37: error: expected identifier before ‘class’
./src/constants.h:37: error: expected class-name before ‘{’ token
./src/constants.h:38: error: ISO C++ forbids declaration of ‘END’ with no type
./src/constants.h:39: error: ISO C++ forbids declaration of ‘GLOBAL’ with no type
./src/constants.h:40: error: ISO C++ forbids declaration of ‘LOCAL’ with no type
./src/constants.h:41: error: ISO C++ forbids declaration of ‘USE’ with no type
./src/constants.h:42: error: ISO C++ forbids declaration of ‘RULES’ with no type
./src/constants.h:43: error: expected ‘;’ before ‘}’ token
./src/constants.h:43: error: expected `;' before ‘}’ token
./src/constants.h:43: error: multiple types in one declaration
./src/constants.h:45: error: expected identifier before ‘class’
./src/constants.h:45: error: expected class-name before ‘{’ token
./src/constants.h:46: error: ISO C++ forbids declaration of ‘MATCH_EMPTY’ with no type
./src/constants.h:47: error: ISO C++ forbids declaration of ‘MATCH_NONE’ with no type
./src/constants.h:48: error: ISO C++ forbids declaration of ‘ERROR’ with no type
./src/constants.h:49: error: expected ‘;’ before ‘}’ token
./src/constants.h:49: error: expected `;' before ‘}’ token
./src/constants.h:49: error: multiple types in one declaration
./src/constants.h:51: error: expected identifier before ‘class’
./src/constants.h:51: error: expected class-name before ‘{’ token
./src/constants.h:52: error: ISO C++ forbids declaration of ‘TABLE’ with no type
./src/constants.h:53: error: ISO C++ forbids declaration of ‘MOORE’ with no type
./src/constants.h:54: error: expected ‘;’ before ‘}’ token
./src/constants.h:54: error: expected `;' before ‘}’ token
./src/constants.h:54: error: multiple types in one declaration
./src/constants.h:58: error: use of enum ‘CaptureMode’ without previous declaration
./src/constants.h:58: error: expected unqualified-id before ‘:’ token
./src/constants.h:67: error: expected identifier before ‘class’
./src/constants.h:67: error: expected class-name before ‘{’ token
./src/constants.h:68: error: ISO C++ forbids declaration of ‘NAIVE’ with no type
./src/constants.h:69: error: ISO C++ forbids declaration of ‘COMPLEX’ with no type
./src/constants.h:70: error: expected ‘;’ before ‘}’ token
./src/constants.h:70: error: expected `;' before ‘}’ token
./src/constants.h:70: error: multiple types in one declaration
./src/constants.h:73: error: expected identifier before ‘class’
./src/constants.h:73: error: expected class-name before ‘{’ token
./src/constants.h:74: error: ISO C++ forbids declaration of ‘EMPTY’ with no type
./src/constants.h:75: error: ISO C++ forbids declaration of ‘IF_THEN_ELSE’ with no type
./src/constants.h:76: error: ISO C++ forbids declaration of ‘SWITCH’ with no type
. . .

re2c 3.0 has built fine, apparently.

Change History (2)

comment:1 in reply to:  description Changed 16 months ago by ryandesign (Ryan Carsten Schmidt)

Keywords: powerpc leopard snowleopard removed
Status: assignedaccepted
Summary: re2c @3.1 is now badly broken on older systemsre2c @3.1: requires C++11

Replying to barracuda156:

../src/msg/ver_to_vernum.re:29: error: ‘constexpr’ does not name a type

re2c has moved to C++11 with version 3.1. constexpr is a C++11 thing. The port needs compiler.cxx_standard 2011 added.

comment:2 Changed 16 months ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: acceptedclosed

In 3bb9d59c54d0ea112d23b955fd0cea1b4b7e18ea/macports-ports (master):

re2c: Require C++11 and python3

Closes: #67779
Closes: #67792

Note: See TracTickets for help on using tickets.