usi-verification-and-security / opensmt

The opensmt solver
Other
75 stars 18 forks source link

Cannot compile on OSX 10.14 - clang 11 #391

Closed guillep closed 2 years ago

guillep commented 2 years ago
$ cmake -S opensmt -B build
$ cmake --build build

Error

I have many ISO C++17 does not allow 'register' storage class specifier errors in target smtsolvers

[ 53%] Built target smtsolvers
[ 54%] Building CXX object src/parsers/smt2new/CMakeFiles/parsers.dir/smt2newcontext.cc.o
[ 54%] Building CXX object src/parsers/smt2new/CMakeFiles/parsers.dir/smt2newparser.cc.o
[ 55%] Building CXX object src/parsers/smt2new/CMakeFiles/parsers.dir/smt2newlexer.cc.o
/Users/guille/Projects/smts/opensmt-tests/build/src/parsers/smt2new/smt2newlexer.cc:1081:2: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
        register yy_state_type yy_current_state;
        ^~~~~~~~~

My setup

OSX 10.14

clang:

$ clang --version
Apple clang version 11.0.0 (clang-1100.0.33.17)
Target: x86_64-apple-darwin18.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
aehyvari commented 2 years ago

Hi Guille, you need to upgrade your flex and bison to a more recent version most likely.

On Sat, 22 Jan 2022, 10:49 Guille Polito, @.***> wrote:

$ cmake -S opensmt -B build $ cmake --build build

Error

I have many ISO C++17 does not allow 'register' storage class specifier errors in target smtsolvers

[ 53%] Built target smtsolvers [ 54%] Building CXX object src/parsers/smt2new/CMakeFiles/parsers.dir/smt2newcontext.cc.o [ 54%] Building CXX object src/parsers/smt2new/CMakeFiles/parsers.dir/smt2newparser.cc.o [ 55%] Building CXX object src/parsers/smt2new/CMakeFiles/parsers.dir/smt2newlexer.cc.o /Users/guille/Projects/smts/opensmt-tests/build/src/parsers/smt2new/smt2newlexer.cc:1081:2: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister] register yy_state_type yy_current_state; ^~~~~

My setup

OSX 10.14

clang:

$ clang --version Apple clang version 11.0.0 (clang-1100.0.33.17) Target: x86_64-apple-darwin18.7.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

— Reply to this email directly, view it on GitHub https://github.com/usi-verification-and-security/opensmt/issues/391, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB74VMQDFXL27SNY4GHDFVDUXJ4S3ANCNFSM5MRW7ACA . You are receiving this because you are subscribed to this thread.Message ID: @.***>

guillep commented 2 years ago

Thanks! I already updated bison (because CMake complained about it), but it did not complain about my flex version. I'll check and come back! Thanks!

guillep commented 2 years ago

I confirm I got past that error updating Flex to 2.6.x.

Would a check like the following in src/parsers/smt2new/CMakeLists.txt file be welcome as a PR?

add_library(parsers OBJECT "")

find_package(BISON 3.0 REQUIRED)
- find_package(FLEX REQUIRED)
+ find_package(FLEX 2.6 REQUIRED)

EDIT: and compilation finished successfully! EDIT2: And I confirm all tests pass on OSX with Flex 2.6.4

100% tests passed, 0 tests failed out of 258

Total Test time (real) =   2.14 sec
aehyvari commented 2 years ago

Great to hear! Yes, thanks!

On Sat, 22 Jan 2022, 11:29 Guille Polito, @.***> wrote:

I confirm I got past that error updating Flex to 2.6.x.

Would a check like the following in src/parsers/smt2new/CMakeLists.txt file be welcome as a PR?

add_library(parsers OBJECT "")

find_package(BISON 3.0 REQUIRED)- find_package(FLEX REQUIRED)+ find_package(FLEX 2.6 REQUIRED)

— Reply to this email directly, view it on GitHub https://github.com/usi-verification-and-security/opensmt/issues/391#issuecomment-1019166216, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB74VMVQ6F6BOJK3QW2IVTDUXKBKLANCNFSM5MRW7ACA . You are receiving this because you commented.Message ID: @.***>

blishko commented 2 years ago

@guillep , do you want to create the PR or should we do it? Since we switched to C++17, we need to require Flex 2.6 now.

guillep commented 2 years ago

I'd gladly do it ;)

https://github.com/usi-verification-and-security/opensmt/pull/392

blishko commented 2 years ago

Fixed in #392.