diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index a5cbd27bb0..401d5f088a 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -185,12 +185,12 @@ jobs: tflags: '--min=910 951 to 9999' generate: -DENABLE_DEBUG=ON -DENABLE_THREADED_RESOLVER=OFF - - name: 'openssl intel' + - name: 'openssl intel C89' install_packages: libssh-dev install_steps: pytest configure: CFLAGS=-std=gnu89 --with-openssl --with-libssh --enable-debug - - name: 'openssl arm' + - name: 'openssl arm C89' image: ubuntu-24.04-arm install_steps: pytest configure: CFLAGS=-std=gnu89 --with-openssl --enable-debug --disable-verbose diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 054ba48245..754d9f6a23 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -257,11 +257,11 @@ jobs: install: libressl install_steps: pytest generate: -DENABLE_DEBUG=ON -DOPENSSL_ROOT_DIR=/opt/homebrew/opt/libressl -DCURL_DISABLE_LDAP=ON -DCURL_BROTLI=OFF -DCURL_ZSTD=OFF -DCURL_USE_LIBSSH2=OFF - - name: 'OpenSSL 10.15' + - name: 'OpenSSL 10.15 C89' compiler: clang install: libnghttp3 libngtcp2 install_steps: pytest - generate: -DENABLE_DEBUG=ON -DOPENSSL_ROOT_DIR=/opt/homebrew/opt/openssl -DUSE_NGTCP2=ON -DCURL_BROTLI=OFF -DCURL_ZSTD=OFF -DCURL_USE_LIBSSH2=OFF + generate: -DENABLE_DEBUG=ON -DOPENSSL_ROOT_DIR=/opt/homebrew/opt/openssl -DUSE_NGTCP2=ON -DCURL_BROTLI=OFF -DCURL_ZSTD=OFF -DCURL_USE_LIBSSH2=OFF -DCMAKE_C_STANDARD=90 macos-version-min: '10.15' - name: 'OpenSSL SecTrust' compiler: clang diff --git a/CMake/PickyWarnings.cmake b/CMake/PickyWarnings.cmake index 437ddcf058..980e017f30 100644 --- a/CMake/PickyWarnings.cmake +++ b/CMake/PickyWarnings.cmake @@ -435,6 +435,15 @@ if(CMAKE_C_COMPILER_ID STREQUAL "Clang" AND MSVC) endforeach() endif() +if(CMAKE_C_STANDARD STREQUAL 90 AND CMAKE_C_COMPILER_ID STREQUAL "AppleClang") + if(CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 4.2) + list(APPEND _picky "-Wno-c99-extensions") # Avoid: warning: '_Bool' is a C99 extension + endif() + if(CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 8.1) + list(APPEND _picky "-Wno-comma") # Just silly + endif() +endif() + if(DOS AND CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 10.0) list(APPEND _picky "-Wno-arith-conversion") # Avoid warnings in DJGPP's built-in FD_SET() macro endif() diff --git a/CMakeLists.txt b/CMakeLists.txt index c5bdd99e8d..8103f98aec 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -132,6 +132,9 @@ endif() if(CMAKE_CROSSCOMPILING) string(APPEND _target_flags " CROSS") endif() +if(CMAKE_C_STANDARD) + string(APPEND _target_flags " C${CMAKE_C_STANDARD}") +endif() message(STATUS "CMake platform flags:${_target_flags}") if(CMAKE_CROSSCOMPILING) diff --git a/src/tool_getparam.c b/src/tool_getparam.c index eea3ef2f67..a66f044799 100644 --- a/src/tool_getparam.c +++ b/src/tool_getparam.c @@ -3058,8 +3058,7 @@ ParameterError parse_args(int argc, argv_item_t argv[]) ParameterError result = PARAM_OK; struct OperationConfig *config = global->first; - stillflags = TRUE; - for(i = 1; i < argc && !result; i++) { + for(i = 1, stillflags = TRUE; i < argc && !result; i++) { orig_opt = convert_tchar_to_UTF8(argv[i]); if(!orig_opt) return PARAM_NO_MEM;