Skip to content

Commit ea34799

Browse files
author
Enrico Steffinlongo
authored
Merge pull request #7989 from esteffin/esteffin/cpp-17
Change C++ version to C++17
2 parents e0fa9e3 + 032f68c commit ea34799

10 files changed

+24
-19
lines changed

.clang-format

+1-1
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ SpacesInCStyleCastParentheses: 'false'
7171
SpacesInContainerLiterals: 'false'
7272
SpacesInParentheses: 'false'
7373
SpacesInSquareBrackets: 'false'
74-
Standard: c++11
74+
Standard: c++17
7575
TabWidth: '2'
7676
UseTab: Never
7777
---

CMakeLists.txt

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
cmake_minimum_required(VERSION 3.8)
22

3+
set(CMAKE_CXX_STANDARD 17)
4+
set(CMAKE_CXX_STANDARD_REQUIRED true)
5+
set(CMAKE_CXX_EXTENSIONS OFF)
6+
37
# Compile with /usr/bin/clang on MacOS
48
# See https://github.com/diffblue/cbmc/issues/4956
59
#
@@ -186,8 +190,9 @@ if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR
186190
endif()
187191

188192
function(cprover_default_properties)
189-
set(CBMC_CXX_STANDARD 11)
190-
set(CBMC_CXX_STANDARD_REQUIRED true)
193+
set(CBMC_CXX_STANDARD ${CMAKE_CXX_STANDARD})
194+
set(CBMC_CXX_STANDARD_REQUIRED ${CMAKE_CXX_STANDARD_REQUIRED})
195+
set(CBMC_CXX_EXTENSIONS ${CMAKE_CXX_EXTENSIONS})
191196
set(CBMC_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY
192197
"Developer ID Application: Daniel Kroening")
193198

COMPILING.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# What architecture?
22

3-
CPROVER now needs a C++11 compliant compiler and is known to work in the
3+
CPROVER now needs a C++17 compliant compiler and is known to work in the
44
following environments:
55

66
- Linux
@@ -152,7 +152,7 @@ We assume that you have a Debian/Ubuntu or Red Hat-like distribution.
152152
```
153153
dnf install gcc gcc-c++ flex bison curl patch
154154
```
155-
Note that you need g++ version 5.0 or newer.
155+
Note that you need g++ version 7.0 or newer.
156156
157157
On Amazon Linux and similar distributions, do as root:
158158
```

scripts/bash-autocomplete/extract_switches.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ set -e
66
cd `dirname $0`
77

88
echo "Compiling the helper file to extract the raw list of parameters from cbmc"
9-
g++ -E -dM -std=c++11 -I../../src ../../src/cbmc/cbmc_parse_options.cpp -o macros.c
9+
g++ -E -dM -std=c++17 -I../../src ../../src/cbmc/cbmc_parse_options.cpp -o macros.c
1010
echo CBMC_OPTIONS >> macros.c
1111

1212
echo "Converting the raw parameter list to the format required by autocomplete scripts"

scripts/cadical_CMakeLists.txt

+2-1
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,9 @@ target_compile_options(cadical PUBLIC -DNBUILD)
1414
set_target_properties(
1515
cadical
1616
PROPERTIES
17-
CXX_STANDARD 11
17+
CXX_STANDARD 17
1818
CXX_STANDARD_REQUIRED true
19+
CXX_EXTENSIONS OFF
1920
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Developer ID Application: Daniel Kroening"
2021
)
2122

scripts/check_help.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ for t in \
3333
tool_name=$(basename $t)
3434
opt_name=$(echo $tool_name | tr 'a-z-' 'A-Z_')
3535
echo "Extracting the raw list of parameters from $tool_name"
36-
g++ -E -dM -std=c++11 -I../src -I../jbmc/src $t/*_parse_options.cpp -o macros.c
36+
g++ -E -dM -std=c++17 -I../src -I../jbmc/src $t/*_parse_options.cpp -o macros.c
3737
# goto-analyzer partly uses the spelling "analyser" within the code base
3838
echo ${opt_name}_OPTIONS | sed 's/GOTO_ANALYZER/GOTO_ANALYSER/' >> macros.c
3939
rawstring="`gcc -E -P -w macros.c` \"?h(help)\""

scripts/glucose_CMakeLists.txt

+2-1
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,9 @@ add_library(glucose-condensed
99
set_target_properties(
1010
glucose-condensed
1111
PROPERTIES
12-
CXX_STANDARD 11
12+
CXX_STANDARD 17
1313
CXX_STANDARD_REQUIRED true
14+
CXX_EXTENSIONS OFF
1415
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Developer ID Application: Daniel Kroening"
1516
)
1617

scripts/minisat2_CMakeLists.txt

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@ add_library(minisat2-condensed
1010
set_target_properties(
1111
minisat2-condensed
1212
PROPERTIES
13-
CXX_STANDARD 11
13+
CXX_STANDARD 17
1414
CXX_STANDARD_REQUIRED true
15+
CXX_EXTENSIONS OFF
1516
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Developer ID Application: Daniel Kroening"
1617
)
1718

src/common

+6-6
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,12 @@ endif
3434
CP_CFLAGS = -MMD -MP
3535
CXXFLAGS ?= -Wall -O2
3636
ifeq ($(filter-out OSX OSX_Universal,$(BUILD_ENV_)),)
37-
CP_CXXFLAGS += -MMD -MP -mmacosx-version-min=10.15 -std=c++11 -stdlib=libc++
37+
CP_CXXFLAGS += -MMD -MP -mmacosx-version-min=10.15 -std=c++17 -stdlib=libc++
3838
CP_CFLAGS += -mmacosx-version-min=10.15
3939
LINKFLAGS += -mmacosx-version-min=10.15 -stdlib=libc++
4040
LINKNATIVE += -mmacosx-version-min=10.15 -stdlib=libc++
4141
else
42-
CP_CXXFLAGS += -MMD -MP -std=c++11
42+
CP_CXXFLAGS += -MMD -MP -std=c++17
4343
endif
4444
ifeq ($(filter -O%,$(CXXFLAGS)),)
4545
CP_CXXFLAGS += -O2
@@ -105,13 +105,13 @@ else ifeq ($(BUILD_ENV_),Cygwin)
105105
CFLAGS ?= -Wall -O2
106106
CXXFLAGS ?= -Wall -O2
107107
CP_CFLAGS = -MMD -MP
108-
CP_CXXFLAGS += -MMD -MP -std=c++11 -U__STRICT_ANSI__
108+
CP_CXXFLAGS += -MMD -MP -std=c++17 -U__STRICT_ANSI__
109109
# Cygwin-g++ has problems with statically linking exception code.
110110
# If linking fails, remove -static.
111-
LINKFLAGS = -static -std=c++11
111+
LINKFLAGS = -static -std=c++17
112112
LINKLIB = ar rcT $@ $^
113113
LINKBIN = $(CXX) $(LINKFLAGS) -o $@ -Wl,--start-group $^ -Wl,--end-group $(LIBS)
114-
LINKNATIVE = $(HOSTCXX) $(HOSTLINKFLAGS) -std=c++11 -o $@ $^ -static
114+
LINKNATIVE = $(HOSTCXX) $(HOSTLINKFLAGS) -std=c++17 -o $@ $^ -static
115115
ifeq ($(origin CC),default)
116116
#CC = gcc
117117
CC = x86_64-w64-mingw32-gcc
@@ -136,7 +136,7 @@ else ifeq ($(BUILD_ENV_),MSVC)
136136
DEPEXT = .dep
137137
EXEEXT = .exe
138138
CFLAGS ?= /W3 /O2 /GF
139-
CXXFLAGS ?= /W3 /D_CRT_SECURE_NO_WARNINGS /O2 /GF
139+
CXXFLAGS ?= /W3 /D_CRT_SECURE_NO_WARNINGS /O2 /GF /std:c++17
140140
CP_CFLAGS =
141141
CP_CXXFLAGS +=
142142
LINKLIB = lib /NOLOGO /OUT:$@ $^

src/solvers/CMakeLists.txt

-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
set(CMAKE_CXX_STANDARD 11)
2-
set(CMAKE_CXX_STANDARD_REQUIRED true)
3-
41
# We may use one of several different solver libraries.
52
# The following files wrap the chosen solver library.
63
# We remove them all from the solver-library sources list, and then add the

0 commit comments

Comments
 (0)