From ac0e380b2d0328a3ab12ab82e5b7656b01992d5a Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Sat, 9 May 2026 08:19:18 -0500 Subject: [PATCH] Sync from hash. --- .cirrus.yml | 40 +-- azure-pipelines.yml | 461 +++++++------------------ doc/history.adoc | 4 + include/boost/predef/detail/test_def.h | 4 +- include/boost/predef/version.h | 2 +- include/boost/predef/version_number.h | 14 +- test/make.cpp | 4 +- test/tested_at.cpp | 10 +- test/version.cpp | 4 +- test/workaround.cpp | 4 +- tools/check/predef_check.h | 6 +- 11 files changed, 181 insertions(+), 372 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index fdc4079..1fa25e3 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -7,27 +7,25 @@ freebsd_task: # All the GCC's and Clang's currently supported by FreeBSD ports. matrix: - - { name: 'FreeBSD, GCC 14', env: { CXX: 'g++14', PACKAGE: 'lang/gcc14', TOOLSET: gcc }, freebsd_instance: { image_family: 'freebsd-14-1' } } - - { name: 'FreeBSD, GCC 13', env: { CXX: 'g++13', PACKAGE: 'gcc13', TOOLSET: gcc }, freebsd_instance: { image_family: 'freebsd-14-1' } } - - { name: 'FreeBSD, GCC 12', env: { CXX: 'g++12', PACKAGE: 'gcc12', TOOLSET: gcc }, freebsd_instance: { image_family: 'freebsd-14-1' } } - - { name: 'FreeBSD, GCC 11', env: { CXX: 'g++11', PACKAGE: 'gcc11', TOOLSET: gcc }, freebsd_instance: { image_family: 'freebsd-14-1' } } - - { name: 'FreeBSD, GCC 10', env: { CXX: 'g++10', PACKAGE: 'gcc10', TOOLSET: gcc }, freebsd_instance: { image_family: 'freebsd-14-1' } } - # - { name: 'FreeBSD, GCC 9', env: { CXX: 'g++9', PACKAGE: 'gcc9', TOOLSET: gcc }, freebsd_instance: { image_family: 'freebsd-14-1' } } - # - { name: 'FreeBSD, GCC 8', env: { CXX: 'g++8', PACKAGE: 'gcc8', TOOLSET: gcc }, freebsd_instance: { image_family: 'freebsd-14-1' } } - # - { name: 'FreeBSD, GCC 7', env: { CXX: 'g++7', PACKAGE: 'gcc7', TOOLSET: gcc }, freebsd_instance: { image_family: 'freebsd-12-2' } } - - { name: 'FreeBSD, Clang 19', env: { CXX: 'clang++19', PACKAGE: 'devel/llvm19', TOOLSET: clang }, freebsd_instance: { image_family: 'freebsd-14-1' } } - - { name: 'FreeBSD, Clang 18', env: { CXX: 'clang++18', PACKAGE: 'devel/llvm18', TOOLSET: clang }, freebsd_instance: { image_family: 'freebsd-14-1' } } - - { name: 'FreeBSD, Clang 17', env: { CXX: 'clang++17', PACKAGE: 'devel/llvm17', TOOLSET: clang }, freebsd_instance: { image_family: 'freebsd-14-1' } } - - { name: 'FreeBSD, Clang 16', env: { CXX: 'clang++16', PACKAGE: 'devel/llvm16', TOOLSET: clang }, freebsd_instance: { image_family: 'freebsd-14-1' } } - - { name: 'FreeBSD, Clang 15', env: { CXX: 'clang++15', PACKAGE: 'devel/llvm15', TOOLSET: clang }, freebsd_instance: { image_family: 'freebsd-14-1' } } - - { name: 'FreeBSD, Clang 14', env: { CXX: 'clang++14', PACKAGE: 'devel/llvm14', TOOLSET: clang }, freebsd_instance: { image_family: 'freebsd-14-1' } } - - { name: 'FreeBSD, Clang 13', env: { CXX: 'clang++13', PACKAGE: 'devel/llvm13', TOOLSET: clang }, freebsd_instance: { image_family: 'freebsd-14-1' } } - - { name: 'FreeBSD, Clang 12', env: { CXX: 'clang++12', PACKAGE: 'devel/llvm12', TOOLSET: clang }, freebsd_instance: { image_family: 'freebsd-14-1' } } - - { name: 'FreeBSD, Clang 11', env: { CXX: 'clang++11', PACKAGE: 'devel/llvm11', TOOLSET: clang }, freebsd_instance: { image_family: 'freebsd-14-1' } } - # - { name: 'FreeBSD, Clang 10', env: { CXX: 'clang++10', PACKAGE: 'devel/llvm10', TOOLSET: clang }, freebsd_instance: { image_family: 'freebsd-14-1' } } - # - { name: 'FreeBSD, Clang 9', env: { CXX: 'clang++90', PACKAGE: 'devel/llvm90', TOOLSET: clang }, freebsd_instance: { image_family: 'freebsd-14-1' } } - # - { name: 'FreeBSD, Clang 8', env: { CXX: 'clang++80', PACKAGE: 'devel/llvm80' , TOOLSET: clang}, freebsd_instance: { image_family: 'freebsd-14-1' } } - # - { name: 'FreeBSD, Clang 7', env: { CXX: 'clang++70', PACKAGE: 'devel/llvm70', TOOLSET: clang }, freebsd_instance: { image_family: 'freebsd-14-1' } } + - { name: 'FreeBSD, GCC 15', env: { TOOLSET: gcc, TEST_TOOLSET: gcc, CXX: 'g++15', PACKAGE: 'lang/gcc15' }, freebsd_instance: { image_family: 'freebsd-14-3' } } + - { name: 'FreeBSD, GCC 14', env: { TOOLSET: gcc, TEST_TOOLSET: gcc, CXX: 'g++14', PACKAGE: 'lang/gcc14' }, freebsd_instance: { image_family: 'freebsd-14-3' } } + - { name: 'FreeBSD, GCC 13', env: { TOOLSET: gcc, TEST_TOOLSET: gcc, CXX: 'g++13', PACKAGE: 'gcc13' }, freebsd_instance: { image_family: 'freebsd-14-3' } } + - { name: 'FreeBSD, GCC 12', env: { TOOLSET: gcc, TEST_TOOLSET: gcc, CXX: 'g++12', PACKAGE: 'gcc12' }, freebsd_instance: { image_family: 'freebsd-14-3' } } + # - { name: 'FreeBSD, GCC 11', env: { TOOLSET: gcc, TEST_TOOLSET: gcc, CXX: 'g++11', PACKAGE: 'gcc11' }, freebsd_instance: { image_family: 'freebsd-14-3' } } + # - { name: 'FreeBSD, GCC 10', env: { TOOLSET: gcc, TEST_TOOLSET: gcc, CXX: 'g++10', PACKAGE: 'gcc10' }, freebsd_instance: { image_family: 'freebsd-14-3' } } + # - { name: 'FreeBSD, GCC 9', env: { TOOLSET: gcc, TEST_TOOLSET: gcc, CXX: 'g++9', PACKAGE: 'gcc9' }, freebsd_instance: { image_family: 'freebsd-14-3' } } + - { name: 'FreeBSD, Clang 21', env: { TOOLSET: clang, TEST_TOOLSET: clang, CXX: 'clang++21', PACKAGE: 'devel/llvm21' }, freebsd_instance: { image_family: 'freebsd-14-3' } } + - { name: 'FreeBSD, Clang 20', env: { TOOLSET: clang, TEST_TOOLSET: clang, CXX: 'clang++20', PACKAGE: 'devel/llvm20' }, freebsd_instance: { image_family: 'freebsd-14-3' } } + - { name: 'FreeBSD, Clang 19', env: { TOOLSET: clang, TEST_TOOLSET: clang, CXX: 'clang++19', PACKAGE: 'devel/llvm19' }, freebsd_instance: { image_family: 'freebsd-14-3' } } + - { name: 'FreeBSD, Clang 18', env: { TOOLSET: clang, TEST_TOOLSET: clang, CXX: 'clang++18', PACKAGE: 'devel/llvm18' }, freebsd_instance: { image_family: 'freebsd-14-3' } } + - { name: 'FreeBSD, Clang 17', env: { TOOLSET: clang, TEST_TOOLSET: clang, CXX: 'clang++17', PACKAGE: 'devel/llvm17' }, freebsd_instance: { image_family: 'freebsd-14-3' } } + - { name: 'FreeBSD, Clang 16', env: { TOOLSET: clang, TEST_TOOLSET: clang, CXX: 'clang++16', PACKAGE: 'devel/llvm16' }, freebsd_instance: { image_family: 'freebsd-14-3' } } + - { name: 'FreeBSD, Clang 15', env: { TOOLSET: clang, TEST_TOOLSET: clang, CXX: 'clang++15', PACKAGE: 'devel/llvm15' }, freebsd_instance: { image_family: 'freebsd-14-3' } } + - { name: 'FreeBSD, Clang 14', env: { TOOLSET: clang, TEST_TOOLSET: clang, CXX: 'clang++14', PACKAGE: 'devel/llvm14' }, freebsd_instance: { image_family: 'freebsd-14-3' } } + - { name: 'FreeBSD, Clang 13', env: { TOOLSET: clang, TEST_TOOLSET: clang, CXX: 'clang++13', PACKAGE: 'devel/llvm13' }, freebsd_instance: { image_family: 'freebsd-14-3' } } + - { name: 'FreeBSD, Clang 12', env: { TOOLSET: clang, TEST_TOOLSET: clang, CXX: 'clang++12', PACKAGE: 'devel/llvm12' }, freebsd_instance: { image_family: 'freebsd-14-3' } } + # - { name: 'FreeBSD, Clang 11', env: { TOOLSET: clang, TEST_TOOLSET: clang, CXX: 'clang++11', PACKAGE: 'devel/llvm11' }, freebsd_instance: { image_family: 'freebsd-14-3' } } + # - { name: 'FreeBSD, Clang 10', env: { TOOLSET: clang, TEST_TOOLSET: clang, CXX: 'clang++10', PACKAGE: 'devel/llvm10' }, freebsd_instance: { image_family: 'freebsd-14-3' } } # To install with ports we need to initialize the package manager. To avoid # confirmation prompts we need to set an env var. install_script: [ diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 94b0964..a24dfc1 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -7,340 +7,147 @@ trigger: branches: include: - - develop - - master - - feature/* + - develop + - master + - feature/* paths: exclude: - - .circleci/* - - .cirrus.yml - - .drone.star - - .github/workflows/* - - .semaphore/* - - .travis.yml - - appveyor.yml + - .circleci/* + - .cirrus.yml + - .drone.star + - .github/workflows/* + - .semaphore/* + - .travis.yml + - appveyor.yml + - README.* pr: branches: include: - - develop - -resources: - containers: - - { container: ubuntu_2404, image: 'ubuntu:24.04', options: '--name container -v /usr/bin/docker:/tmp/docker:ro' } - - { container: ubuntu_2204, image: 'ubuntu:22.04', options: '--name container -v /usr/bin/docker:/tmp/docker:ro' } - # - { container: ubuntu_2004, image: 'ubuntu:20.04', options: '--name container -v /usr/bin/docker:/tmp/docker:ro' } - - { container: ubuntu_1804, image: 'ubuntu:18.04', options: '--name container -v /usr/bin/docker:/tmp/docker:ro' } - - { container: ubuntu_1604, image: 'ubuntu:16.04', options: '--name container -v /usr/bin/docker:/tmp/docker:ro' } + - develop stages: + - template: "tools/ci/azp.yml" + parameters: + name: Core + toolsets: + - "gcc-16" + b2_tests: + - name: "GNU (info)" + dir: test + args: "--verbose-test -a predef-info cxxstd=03,11,14,17,20,23 + cxxstd-dialect=gnu" + - name: "GNU (test)" + dir: test + args: "--debug-configuration -a predef predef-headers cxxstd=03,11,14,17,20,23 + cxxstd-dialect=gnu" + - name: "ISO (info)" + dir: test + args: "--verbose-test -a predef-info cxxstd=03,11,14,17,20,23 + cxxstd-dialect=iso" + - name: "ISO (test)" + dir: test + args: "--debug-configuration -a predef predef-headers cxxstd=03,11,14,17,20,23 + cxxstd-dialect=iso" + - name: "ISO (warnings)" + dir: test + args: "--debug-configuration -a predef predef-headers cxxstd=03,11,14,17,20,23 + cxxstd-dialect=iso warnings=pedantic warnings-as-errors=on + cxxflags=-Woverloaded-virtual cxxflags=-Wshadow + cxxflags=-Wnon-virtual-dtor cxxflags=-Wzero-as-null-pointer-constant + cxxflags=-Wsign-promo cxxflags=-Wsign-compare + cxxflags=-Wsign-conversion cxxflags=-Wundef" -- stage: Test - jobs: + - template: "tools/ci/azp.yml" + parameters: + name: Compilers + depends_on: [ "Core" ] + b2_tests: + - name: "Info" + dir: test + args: "--verbose-test -a predef-info" + - name: "Test" + dir: test + args: "--debug-configuration -a predef predef-headers" - - job: 'Linux' - strategy: - matrix: - GCC 14 (GNU): { CXX: g++-14, PACKAGES: g++-14, VM_IMAGE: 'ubuntu-24.04', TOOLSET: gcc, B2_ARGS: 'cxxstd=03,11,14,17,20 cxxstd-dialect=gnu' } - GCC 14 (ISO): { CXX: g++-14, PACKAGES: g++-14, VM_IMAGE: 'ubuntu-24.04', TOOLSET: gcc, B2_ARGS: 'cxxstd=03,11,14,17,20 cxxstd-dialect=iso' } - GCC 13: { CXX: g++-13, PACKAGES: g++-13, VM_IMAGE: 'ubuntu-24.04', TOOLSET: gcc } - GCC 12: { CXX: g++-12, PACKAGES: g++-12, VM_IMAGE: 'ubuntu-24.04', TOOLSET: gcc } - GCC 11: { CXX: g++-11, PACKAGES: g++-11, VM_IMAGE: 'ubuntu-24.04', TOOLSET: gcc } - GCC 10: { CXX: g++-10, PACKAGES: g++-10, VM_IMAGE: 'ubuntu-24.04', TOOLSET: gcc } - GCC 9: { CXX: g++-9, PACKAGES: g++-9, VM_IMAGE: 'ubuntu-24.04', TOOLSET: gcc } - Clang 18: { CXX: clang++-18, PACKAGES: clang-18, LLVM_OS: noble, LLVM_VER: 18, VM_IMAGE: 'ubuntu-24.04', TOOLSET: clang } - Clang 17: { CXX: clang++-17, PACKAGES: clang-17, LLVM_OS: noble, LLVM_VER: 17, VM_IMAGE: 'ubuntu-24.04', TOOLSET: clang } - pool: - vmImage: $(VM_IMAGE) - steps: - - bash: | - set -e - uname -a - ./tools/ci/linux-cxx-install.sh - displayName: 'Install CXX' - - bash: | - set -e - pushd ${HOME} - wget -nv https://github.com/bfgroup/b2/archive/release.tar.gz - tar -zxf release.tar.gz - cd b2-release - CXX= ./bootstrap.sh - sudo ./b2 install - popd - displayName: 'Install B2' - - bash: | - set -e - CXX_PATH=`which ${CXX}` - echo "using ${TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam - pushd test - b2 --verbose-test -a toolset=${TOOLSET} ${B2_ARGS} predef-info - b2 --debug-configuration -a toolset=${TOOLSET} ${B2_ARGS} predef predef-headers - popd - displayName: Test + - template: "tools/ci/azp.yml" + parameters: + name: "Windows_UWP" + toolsets: + - "msvc-14.5" + depends_on: [ "Core" ] + b2_tests: + - name: "UWP DESKTOP" + dir: test + args: "--verbose-test -a address-model=64 define=_WIN32_WINNT=0x0A00 + define=WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP" + - name: "UWP PHONE" + dir: test + args: "--verbose-test -a address-model=64 define=_WIN32_WINNT=0x0A00 + define=WINAPI_FAMILY=WINAPI_FAMILY_PHONE_APP" + - name: "UWP STORE" + dir: test + args: "--verbose-test -a address-model=64 define=_WIN32_WINNT=0x0A00 + define=WINAPI_FAMILY=WINAPI_FAMILY_PC_APP" + - name: "UWP SERVER" + dir: test + args: "--verbose-test -a address-model=64 define=_WIN32_WINNT=0x0A00 + define=WINAPI_FAMILY=WINAPI_FAMILY_SERVER" + - name: "UWP SYSTEM" + dir: test + args: "--verbose-test -a address-model=64 define=_WIN32_WINNT=0x0A00 + define=WINAPI_FAMILY=WINAPI_FAMILY_SYSTEM" - - job: 'macOS' - strategy: - matrix: - Xcode 16.0: {TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_16.0.app, VM_IMAGE: 'macOS-15'} - Xcode 15.4: {TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_15.4.app, VM_IMAGE: 'macOS-14'} - Xcode 14.3.1: {TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_14.3.1.app, VM_IMAGE: 'macOS-13'} - Xcode 14.2: {TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_14.2.app, VM_IMAGE: 'macOS-13'} - Xcode 14.1: {TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_14.1.app, VM_IMAGE: 'macOS-13'} - pool: - vmImage: $(VM_IMAGE) - steps: - - bash: | - set -e - uname -a - sudo xcode-select -switch ${XCODE_APP} - which clang++ - clang++ --version - displayName: 'Install CXX' - - bash: | - set -e - pushd ${HOME} - wget -nv https://github.com/bfgroup/b2/archive/release.tar.gz - tar -zxf release.tar.gz - cd b2-release - CXX= ./bootstrap.sh - sudo ./b2 install - popd - displayName: 'Install B2' - - bash: | - set -e - CXX_PATH=`which ${CXX}` - echo "using ${TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam - pushd test - b2 --verbose-test -a toolset=${TOOLSET} ${B2_ARGS} predef-info - b2 --debug-configuration -a toolset=${TOOLSET} ${B2_ARGS} predef predef-headers - popd - displayName: Test - - - job: 'Windows' - strategy: - matrix: - VS 2019: - TOOLSET: msvc - TOOLSET_VERSION: 14.2 - B2_ARGS: address-model=32,64 cxxstd=14,latest - VM_IMAGE: 'windows-2019' - VS 2019 (UWP DESKTOP): - TOOLSET: msvc - TOOLSET_VERSION: 14.2 - B2_ARGS: address-model=64 define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP - VM_IMAGE: 'windows-2019' - VS 2019 (UWP PHONE): - TOOLSET: msvc - TOOLSET_VERSION: 14.2 - B2_ARGS: address-model=64 define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_PHONE_APP - VM_IMAGE: 'windows-2019' - VS 2019 (UWP STORE): - TOOLSET: msvc - TOOLSET_VERSION: 14.2 - B2_ARGS: address-model=64 define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_PC_APP - VM_IMAGE: 'windows-2019' - VS 2019 (UWP SERVER): - TOOLSET: msvc - TOOLSET_VERSION: 14.2 - B2_ARGS: address-model=64 define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_SERVER - VM_IMAGE: 'windows-2019' - VS 2019 (UWP SYSTEM): - TOOLSET: msvc - TOOLSET_VERSION: 14.2 - B2_ARGS: address-model=64 define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_SYSTEM - VM_IMAGE: 'windows-2019' - VS 2022: - TOOLSET: msvc - TOOLSET_VERSION: 14.3 - VM_IMAGE: 'windows-2022' - MinGW 8.1.0: - TOOLSET: gcc - VM_IMAGE: 'windows-2019' - MinGW 8.1.0 (UWP DESKTOP): - TOOLSET: gcc - B2_ARGS: define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP - VM_IMAGE: 'windows-2019' - MinGW 8.1.0 (UWP STORE): - TOOLSET: gcc - B2_ARGS: define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_PC_APP - VM_IMAGE: 'windows-2019' - pool: - vmImage: $(VM_IMAGE) - steps: - - script: | - cd %BUILD_SOURCESDIRECTORY%/.. - curl "https://github.com/bfgroup/b2/archive/release.zip" -L -o b2.zip - displayName: Download B2 - - task: ExtractFiles@1 - inputs: - archiveFilePatterns: $(Build.SourcesDirectory)/../b2.zip - destinationFolder: $(Build.SourcesDirectory)/.. - cleanDestinationFolder: false - displayName: Extract B2 - - script: | - echo using %TOOLSET% ^: %TOOLSET_VERSION% ^; > %HOMEDRIVE%%HOMEPATH%/user-config.jam - cd %BUILD_SOURCESDIRECTORY%/../b2-release - cmd.exe /c bootstrap.bat - displayName: Install B2 - - script: | - set BOOST_BUILD_PATH=%BUILD_SOURCESDIRECTORY%/../b2-release - cd %BUILD_SOURCESDIRECTORY%/test - %BUILD_SOURCESDIRECTORY%/../b2-release/b2.exe --verbose-test -a toolset=%TOOLSET% %B2_ARGS% predef-info - %BUILD_SOURCESDIRECTORY%/../b2-release/b2.exe --debug-configuration -a toolset=%TOOLSET% %B2_ARGS% predef predef-headers - displayName: Test - - - job: 'Co_Linux' - strategy: - matrix: - GCC 8: {CXX: g++-8, TOOLSET: gcc, PACKAGES: g++-8, CONTAINER: "ubuntu_1804"} - GCC 7: {CXX: g++-7, TOOLSET: gcc, PACKAGES: g++-7, CONTAINER: "ubuntu_1804"} - GCC 6: {CXX: g++-6, TOOLSET: gcc, PACKAGES: g++-6, CONTAINER: "ubuntu_1804"} - GCC 5: {CXX: g++-5, TOOLSET: gcc, PACKAGES: g++-5, CONTAINER: "ubuntu_1804"} - GCC 4.9: {CXX: g++-4.9, TOOLSET: gcc, PACKAGES: g++-4.9, CONTAINER: "ubuntu_1604"} - GCC 4.8: {CXX: g++-4.8, TOOLSET: gcc, PACKAGES: g++-4.8, CONTAINER: "ubuntu_1804"} - Clang 16: {CXX: clang++-16, TOOLSET: clang, PACKAGES: clang-16, LLVM_VER: 16, LLVM_OS: 'focal', CONTAINER: "ubuntu_2204"} - Clang 15: {CXX: clang++-15, TOOLSET: clang, PACKAGES: clang-15, LLVM_VER: 15, LLVM_OS: 'focal', CONTAINER: "ubuntu_2204"} - Clang 14: {CXX: clang++-14, TOOLSET: clang, PACKAGES: clang-14, LLVM_VER: 14, LLVM_OS: 'focal', CONTAINER: "ubuntu_2204"} - Clang 13: {CXX: clang++-13, TOOLSET: clang, PACKAGES: clang-13, LLVM_VER: 13, LLVM_OS: 'focal', CONTAINER: "ubuntu_2204"} - Clang 12: {CXX: clang++-12, TOOLSET: clang, PACKAGES: clang-12, LLVM_VER: 12, LLVM_OS: 'focal', CONTAINER: "ubuntu_2204"} - Clang 11: {CXX: clang++-11, TOOLSET: clang, PACKAGES: clang-11, LLVM_VER: 11, LLVM_OS: 'focal', CONTAINER: "ubuntu_2204"} - Clang 10: {CXX: clang++-10, TOOLSET: clang, PACKAGES: clang-10, CONTAINER: "ubuntu_1804"} - Clang 9: {CXX: clang++-9, TOOLSET: clang, PACKAGES: clang-9, CONTAINER: "ubuntu_1804"} - Clang 8: {CXX: clang++-8, TOOLSET: clang, PACKAGES: clang-8, CONTAINER: "ubuntu_1804"} - Clang 7: {CXX: clang++-7, TOOLSET: clang, PACKAGES: clang-7, CONTAINER: "ubuntu_1804"} - Clang 6: {CXX: clang++-6.0, TOOLSET: clang, PACKAGES: clang-6.0, CONTAINER: "ubuntu_1804"} - Clang 5: {CXX: clang++-5.0, TOOLSET: clang, PACKAGES: clang-5.0, LLVM_VER: 5.0, LLVM_OS: 'bionic', CONTAINER: "ubuntu_1804"} - Clang 4: {CXX: clang++-4.0, TOOLSET: clang, PACKAGES: clang-4.0, LLVM_VER: 4.0, LLVM_OS: 'xenial', CONTAINER: "ubuntu_1604"} - Clang 3.9: {CXX: clang++-3.9, TOOLSET: clang, PACKAGES: clang-3.9, LLVM_VER: 3.9, LLVM_OS: 'xenial', CONTAINER: "ubuntu_1604"} - Clang 3.8: {CXX: clang++-3.8, TOOLSET: clang, PACKAGES: clang-3.8, LLVM_VER: 3.8, LLVM_OS: 'xenial', CONTAINER: "ubuntu_1604"} - Clang 3.7: {CXX: clang++-3.7, TOOLSET: clang, PACKAGES: clang-3.7, CONTAINER: "ubuntu_1604"} - Clang 3.6: {CXX: clang++-3.6, TOOLSET: clang, PACKAGES: clang-3.6, CONTAINER: "ubuntu_1604"} - pool: - vmImage: 'ubuntu-20.04' - container: $[ variables['CONTAINER'] ] - steps: - - script: | - which docker - /tmp/docker exec -t -u root container mv /etc/sudoers /etc/sudoers.bak - /tmp/docker exec -t -u root container apt-get -qq update - /tmp/docker exec -t -u root container apt-get -qq install sudo - /tmp/docker exec -t -u root container mv /etc/sudoers.bak /etc/sudoers - displayName: Sudorize - - bash: | - set -e - uname -a - ./tools/ci/linux-cxx-install.sh - displayName: 'Install CXX' - - bash: | - set -e - pushd ${HOME} - wget -nv https://github.com/bfgroup/b2/archive/release.tar.gz - tar -zxf release.tar.gz - cd b2-release - ./bootstrap.sh --cxx=${CXX} ${TOOLSET} - CXX_PATH=`which ${CXX}` - echo "using ${TOOLSET} : : ${CXX_PATH} ;" > "${HOME}/user-config.jam" - sudo ./b2 --debug-configuration "--user-config=${HOME}/user-config.jam" install toolset=${TOOLSET} - popd - displayName: 'Install B2' - - bash: | - set -e - pushd test - b2 --verbose-test "--user-config=${HOME}/user-config.jam" -a toolset=${TOOLSET} ${B2_ARGS} predef-info - b2 --debug-configuration "--user-config=${HOME}/user-config.jam" -a toolset=${TOOLSET} ${B2_ARGS} predef predef-headers - popd - displayName: Test - -- stage: Extra - dependsOn: [Test] - jobs: - - - job: 'Linux' - strategy: - matrix: - TinyCC: { - EXE: tcc, PACKAGES: tcc, VM_IMAGE: 'ubuntu-latest', - TOOLSET: cc, VERSION: "tcc~0.9.27", - B2_CONFIG: '"-std=c11" <-soname>-soname', - B2_ARGS: 'c' } - pool: - vmImage: $(VM_IMAGE) - continueOnError: 'true' - steps: - - bash: | - set -e - uname -a - ./tools/ci/linux-cxx-install.sh - displayName: 'Install CXX' - - bash: | - set -e - pushd ${HOME} - wget -nv https://github.com/bfgroup/b2/archive/main.tar.gz - tar -zxf main.tar.gz - cd b2-main - ./bootstrap.sh - sudo ./b2 install - popd - displayName: 'Install B2' - - bash: | - set -e - EXE_PATH=`which ${EXE}` - echo "using ${TOOLSET} : ${VERSION} : ${EXE_PATH} : ${B2_CONFIG} ;" > ${HOME}/user-config.jam - pushd test - b2 --verbose-test -a toolset=${TOOLSET} ${B2_ARGS} - b2 --debug-configuration -a toolset=${TOOLSET} ${B2_ARGS} - popd - displayName: Test - -- stage: WebsiteUpdate - displayName: 'Website Update' - dependsOn: [Test] - condition: and(in(variables['Build.SourceBranch'], 'refs/heads/master', 'refs/heads/develop'), eq(variables['Build.Repository.Name'], 'grafikrobot/hash-predef')) - jobs: - - - job: Documentation - pool: - vmImage: 'ubuntu-latest' - steps: - - task: UseRubyVersion@0 - - bash: | - gem install asciidoctor - gem install rouge - displayName: 'Install Doc Tools' - - bash: | - set -e - pushd ${HOME} - wget -nv https://github.com/bfgroup/b2/archive/release.tar.gz - tar -zxf release.tar.gz - cd b2-release - CXX= ./bootstrap.sh - sudo ./b2 install - popd - displayName: 'Install B2' - - bash: | - rm -rf ${WEB_DIR} - git clone --verbose --branch gh-pages --depth 1 "https://${GH_TOKEN}github.com/grafikrobot/hash-predef.git" ${WEB_DIR} || exit 1 - pushd ${WEB_DIR} - git rm --ignore-unmatch -r "${DOC_DIR}" || exit 1 - mkdir -p "${DOC_DIR}" || exit 1 - popd - displayName: 'Clone Website' - env: - GH_TOKEN: $(GitHubToken) - WEB_DIR: website - DOC_DIR: manual/$(Build.SourceBranchName) - - bash: | - echo "using asciidoctor ;" > ${HOME}/user-config.jam - pushd doc - b2 --doc-dir=${WEB_DIR}/${DOC_DIR} html - git config user.email "doc-bot" - git config user.name "doc-bot" - cd ${WEB_DIR}/${DOC_DIR} - git add --verbose . || exit 1 - git commit -m "Update documentation." - git push - popd - displayName: 'Build & Publish' - env: - GH_TOKEN: $(GitHubToken) - WEB_DIR: website - DOC_DIR: manual/$(Build.SourceBranchName) + - stage: WebsiteUpdate + displayName: "Website Update" + dependsOn: [ Core, Compilers, Windows_UWP ] + condition: and(in(variables['Build.SourceBranch'], 'refs/heads/master', + 'refs/heads/develop'), eq(variables['Build.Repository.Name'], + 'grafikrobot/hash-predef')) + jobs: + - job: Documentation + pool: + vmImage: "ubuntu-latest" + steps: + - task: UseRubyVersion@0 + - bash: | + gem install asciidoctor + gem install rouge + displayName: "Install Doc Tools" + - bash: | + set -e + pushd ${HOME} + wget -nv https://github.com/bfgroup/b2/archive/release.tar.gz + tar -zxf release.tar.gz + cd b2-release + CXX= ./bootstrap.sh + sudo ./b2 install + popd + displayName: "Install B2" + - bash: | + rm -rf ${WEB_DIR} + git clone --verbose --branch gh-pages --depth 1 "https://${GH_TOKEN}github.com/grafikrobot/hash-predef.git" ${WEB_DIR} || exit 1 + pushd ${WEB_DIR} + git rm --ignore-unmatch -r "${DOC_DIR}" || exit 1 + mkdir -p "${DOC_DIR}" || exit 1 + popd + displayName: "Clone Website" + env: + GH_TOKEN: $(GitHubToken) + WEB_DIR: website + DOC_DIR: manual/$(Build.SourceBranchName) + - bash: | + echo "using asciidoctor ;" > ${HOME}/user-config.jam + pushd doc + b2 --doc-dir=${WEB_DIR}/${DOC_DIR} html + git config user.email "doc-bot" + git config user.name "doc-bot" + cd ${WEB_DIR}/${DOC_DIR} + git add --verbose . || exit 1 + git commit -m "Update documentation." + git push + popd + displayName: "Build & Publish" + env: + GH_TOKEN: $(GitHubToken) + WEB_DIR: website + DOC_DIR: manual/$(Build.SourceBranchName) diff --git a/doc/history.adoc b/doc/history.adoc index a9f4939..0385945 100644 --- a/doc/history.adoc +++ b/doc/history.adoc @@ -7,6 +7,10 @@ http://www.boost.org/LICENSE_1_0.txt) = History +== 1.17.0 + +* Fix warnings at high levels current {CPP} compilers / standards. + == 1.16.0 * Add detection for Tiny C Compiler (TCC). (from Kornel Ponikwicki) diff --git a/include/boost/predef/detail/test_def.h b/include/boost/predef/detail/test_def.h index c2f195b..95a30b3 100644 --- a/include/boost/predef/detail/test_def.h +++ b/include/boost/predef/detail/test_def.h @@ -43,7 +43,7 @@ using namespace std; #endif unsigned generated_predef_info_count = 0; -predef_info* generated_predef_info = 0; +predef_info* generated_predef_info = (predef_info*)(0); void * add_predef_entry(const char * name, const char * description, unsigned value) { if (0 == generated_predef_info_count) @@ -60,7 +60,7 @@ void * add_predef_entry(const char * name, const char * description, unsigned va generated_predef_info[generated_predef_info_count-1].name = name; generated_predef_info[generated_predef_info_count-1].description = description; generated_predef_info[generated_predef_info_count-1].value = value; - return 0; + return (void*)0; } int predef_info_compare(const void * a, const void * b) diff --git a/include/boost/predef/version.h b/include/boost/predef/version.h index 98802af..7054deb 100644 --- a/include/boost/predef/version.h +++ b/include/boost/predef/version.h @@ -10,6 +10,6 @@ http://www.boost.org/LICENSE_1_0.txt) #include -#define BOOST_PREDEF_VERSION BOOST_VERSION_NUMBER(1,16,0) +#define BOOST_PREDEF_VERSION BOOST_VERSION_NUMBER(1,17,0) #endif diff --git a/include/boost/predef/version_number.h b/include/boost/predef/version_number.h index 9035782..e5f762f 100644 --- a/include/boost/predef/version_number.h +++ b/include/boost/predef/version_number.h @@ -34,16 +34,16 @@ Defines standard version numbers, with these properties: */ // end::reference[] #define BOOST_VERSION_NUMBER(major,minor,patch) \ - ( (((major)%100)*10000000) + (((minor)%100)*100000) + ((patch)%100000) ) + ( (((major)%100U)*10000000U) + (((minor)%100U)*100000U) + ((patch)%100000U) ) #define BOOST_VERSION_NUMBER_MAX \ - BOOST_VERSION_NUMBER(99,99,99999) + BOOST_VERSION_NUMBER(99U,99U,99999U) #define BOOST_VERSION_NUMBER_ZERO \ - BOOST_VERSION_NUMBER(0,0,0) + BOOST_VERSION_NUMBER(0U,0U,0U) #define BOOST_VERSION_NUMBER_MIN \ - BOOST_VERSION_NUMBER(0,0,1) + BOOST_VERSION_NUMBER(0U,0U,1U) #define BOOST_VERSION_NUMBER_AVAILABLE \ BOOST_VERSION_NUMBER_MIN @@ -63,12 +63,12 @@ version number resulting in a preprocessor expression in the range of respectively. */ // end::reference[] #define BOOST_VERSION_NUMBER_MAJOR(N) \ - ( ((N)/10000000)%100 ) + ( ((N)/10000000U)%100U ) #define BOOST_VERSION_NUMBER_MINOR(N) \ - ( ((N)/100000)%100 ) + ( ((N)/100000U)%100U ) #define BOOST_VERSION_NUMBER_PATCH(N) \ - ( (N)%100000 ) + ( (N)%100000U ) #endif diff --git a/test/make.cpp b/test/make.cpp index 0a9e58c..a2cf7e2 100644 --- a/test/make.cpp +++ b/test/make.cpp @@ -73,7 +73,7 @@ int main() { test_BOOST_VERSION_NUMBER(); - unsigned fail_count = 0; + int fail_count = 0; std::vector::iterator i = test_results.begin(); std::vector::iterator e = test_results.end(); for (; i != e; ++i) @@ -87,7 +87,7 @@ int main() std::cout << std::endl << "TOTAL: " - << "passed " << (test_results.size()-fail_count) << ", " + << "passed " << (test_results.size()-(unsigned)fail_count) << ", " << "failed " << (fail_count) << ", " << "of " << (test_results.size()) << std::endl; diff --git a/test/tested_at.cpp b/test/tested_at.cpp index 2c4816e..265a1b0 100644 --- a/test/tested_at.cpp +++ b/test/tested_at.cpp @@ -40,7 +40,7 @@ int main() { test_BOOST_PREDEF_TESTED_AT(); - unsigned fail_count = 0; + int fail_count = 0; std::vector::iterator i = test_results.begin(); std::vector::iterator e = test_results.end(); for (; i != e; ++i) @@ -48,15 +48,15 @@ int main() std::cout << (i->passed ? "[passed]" : "[failed]") << " " << i->value - << std::endl; + << "\n"; fail_count += i->passed ? 0 : 1; } std::cout - << std::endl + << "\n" << "TOTAL: " - << "passed " << (test_results.size()-fail_count) << ", " + << "passed " << (test_results.size()-(unsigned)fail_count) << ", " << "failed " << (fail_count) << ", " << "of " << (test_results.size()) - << std::endl; + << "\n"; return fail_count; } diff --git a/test/version.cpp b/test/version.cpp index 68e724f..9cc4562 100644 --- a/test/version.cpp +++ b/test/version.cpp @@ -61,7 +61,7 @@ int main() { test_BOOST_VERSION_NUMBER(); - unsigned fail_count = 0; + int fail_count = 0; std::vector::iterator i = test_results.begin(); std::vector::iterator e = test_results.end(); for (; i != e; ++i) @@ -75,7 +75,7 @@ int main() std::cout << std::endl << "TOTAL: " - << "passed " << (test_results.size()-fail_count) << ", " + << "passed " << (test_results.size()-(unsigned)fail_count) << ", " << "failed " << (fail_count) << ", " << "of " << (test_results.size()) << std::endl; diff --git a/test/workaround.cpp b/test/workaround.cpp index 368daea..87bbeb6 100644 --- a/test/workaround.cpp +++ b/test/workaround.cpp @@ -40,7 +40,7 @@ int main() { test_BOOST_PREDEF_WORKAROUND(); - unsigned fail_count = 0; + int fail_count = 0; std::vector::iterator i = test_results.begin(); std::vector::iterator e = test_results.end(); for (; i != e; ++i) @@ -54,7 +54,7 @@ int main() std::cout << std::endl << "TOTAL: " - << "passed " << (test_results.size()-fail_count) << ", " + << "passed " << (test_results.size()-(unsigned)fail_count) << ", " << "failed " << (fail_count) << ", " << "of " << (test_results.size()) << std::endl; diff --git a/tools/check/predef_check.h b/tools/check/predef_check.h index a6917c1..310b4e6 100644 --- a/tools/check/predef_check.h +++ b/tools/check/predef_check.h @@ -12,7 +12,7 @@ const char * str_token(const char ** str, const char * space) char * token; for (; **str != 0; *str += 1) { - if (0 == strchr(space, **str)) + if ((char*)0 == strchr(space, **str)) { break; } @@ -23,7 +23,7 @@ const char * str_token(const char ** str, const char * space) token[span] = 0; for (*str += span; **str != 0; *str += 1) { - if (0 == strchr(space, **str)) + if ((char*)0 == strchr(space, **str)) { break; } @@ -61,7 +61,7 @@ int main(int argc, const char ** argv) const char * exp_val_a = str_token(&exp, dot); const char * exp_val_b = str_token(&exp, dot); const char * exp_val_c = str_token(&exp, dot); - exp_version = BOOST_VERSION_NUMBER(atoi(exp_val_a), atoi(exp_val_b),atoi(exp_val_c)); + exp_version = BOOST_VERSION_NUMBER((unsigned int)atoi(exp_val_a), (unsigned int)atoi(exp_val_b), (unsigned int)atoi(exp_val_c)); } for (x = 0; x < generated_predef_info_count; ++x) {