Skip to content

Commit 2ec61fb

Browse files
committed
Fix compilation on Fedora 34 (GCC 11.1.1)
Compiling quick-lint-js on Fedora 34 fails with the following error: ../vendor/googletest/googletest/src/gtest-death-test.cc: In function 'bool testing::internal::StackGrowsDown()': ../vendor/googletest/googletest/src/gtest-death-test.cc:1301:24: error: 'dummy' may be used uninitialized [-Werror=maybe-uninitialized] 1301 | StackLowerThanAddress(&dummy, &result); | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ ../vendor/googletest/googletest/src/gtest-death-test.cc:1290:13: note: by argument 1 of type 'const void*' to 'void testing::internal::StackLowerThanAddress(const void*, bool*)' declared here 1290 | static void StackLowerThanAddress(const void* ptr, bool* result) { | ^~~~~~~~~~~~~~~~~~~~~ ../vendor/googletest/googletest/src/gtest-death-test.cc:1299:7: note: 'dummy' declared here 1299 | int dummy; | ^~~~~ Turn this error into a warning by disabling -Werror.
1 parent 385b32e commit 2ec61fb

File tree

4 files changed

+39
-2
lines changed

4 files changed

+39
-2
lines changed

.github/workflows/build-and-test-dev.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ jobs:
1919
- {docker_container: "centos:centos8", name: "CentOS 8", install_dependencies_script: "dnf --enablerepo=powertools install -y cmake gcc-c++ ninja-build", extra_environment: ""}
2020
- {docker_container: "debian:buster", name: "Debian 10 Buster", install_dependencies_script: "apt-get update && apt-get install -y cmake g++ ninja-build", extra_environment: ""}
2121
- {docker_container: "fedora:32", name: "Fedora 32", install_dependencies_script: "dnf install -y cmake gcc-c++ ninja-build", extra_environment: ""}
22+
- {docker_container: "fedora:34", name: "Fedora 34", install_dependencies_script: "dnf install -y cmake gcc-c++ ninja-build", extra_environment: ""}
2223
- {docker_container: "ubuntu:18.04", name: "Ubuntu 18.04 LTS Bionic", install_dependencies_script: "apt-get update && apt-get install -y cmake g++-8 ninja-build", extra_environment: "CC=gcc-8 CXX=g++-8"}
2324
- {docker_container: "ubuntu:20.04", name: "Ubuntu 20.04 LTS Focal", install_dependencies_script: "apt-get update && apt-get install -y cmake g++ ninja-build", extra_environment: ""}
2425
runs-on: ubuntu-latest

vendor/README.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ applications, and Google Mock, its companion mocking framework.
5252
The following patches have been manually applied:
5353

5454
* googletest-result-of.patch
55+
* googletest-werror.patch
5556

5657
Copyright: Copyright 2008, Google Inc.
5758
Download URL: https://github.com/google/googletest/archive/release-1.10.0.tar.gz

vendor/googletest-werror.patch

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
googletest adds the -Werror compiler flag, which breaks compilation with newer
2+
compiler versions. Remove the flag to work around the following diagnostic from
3+
GCC 11.1.1 on Fedora 34:
4+
5+
../vendor/googletest/googletest/src/gtest-death-test.cc: In function 'bool testing::internal::StackGrowsDown()':
6+
../vendor/googletest/googletest/src/gtest-death-test.cc:1301:24: error: 'dummy' may be used uninitialized [-Werror=maybe-uninitialized]
7+
1301 | StackLowerThanAddress(&dummy, &result);
8+
| ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
9+
../vendor/googletest/googletest/src/gtest-death-test.cc:1290:13: note: by argument 1 of type 'const void*' to 'void testing::internal::StackLowerThanAddress(const void*, bool*)' declared here
10+
1290 | static void StackLowerThanAddress(const void* ptr, bool* result) {
11+
| ^~~~~~~~~~~~~~~~~~~~~
12+
../vendor/googletest/googletest/src/gtest-death-test.cc:1299:7: note: 'dummy' declared here
13+
1299 | int dummy;
14+
| ^~~~~
15+
16+
diff --git a/vendor/googletest/googletest/cmake/internal_utils.cmake b/vendor/googletest/googletest/cmake/internal_utils.cmake
17+
index 2f70f0b0..36cbecb1 100644
18+
--- a/googletest/cmake/internal_utils.cmake
19+
+++ b/googletest/cmake/internal_utils.cmake
20+
@@ -82,13 +82,13 @@ macro(config_compiler_and_linker)
21+
# http://stackoverflow.com/questions/3232669 explains the issue.
22+
set(cxx_base_flags "${cxx_base_flags} -wd4702")
23+
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
24+
- set(cxx_base_flags "-Wall -Wshadow -Werror -Wconversion")
25+
+ set(cxx_base_flags "-Wall -Wshadow -Wconversion")
26+
set(cxx_exception_flags "-fexceptions")
27+
set(cxx_no_exception_flags "-fno-exceptions")
28+
set(cxx_strict_flags "-W -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wunused-parameter -Wcast-align -Wchar-subscripts -Winline -Wredundant-decls")
29+
set(cxx_no_rtti_flags "-fno-rtti")
30+
elseif (CMAKE_COMPILER_IS_GNUCXX)
31+
- set(cxx_base_flags "-Wall -Wshadow -Werror")
32+
+ set(cxx_base_flags "-Wall -Wshadow")
33+
if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0.0)
34+
set(cxx_base_flags "${cxx_base_flags} -Wno-error=dangling-else")
35+
endif()

vendor/googletest/googletest/cmake/internal_utils.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,13 +82,13 @@ macro(config_compiler_and_linker)
8282
# http://stackoverflow.com/questions/3232669 explains the issue.
8383
set(cxx_base_flags "${cxx_base_flags} -wd4702")
8484
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
85-
set(cxx_base_flags "-Wall -Wshadow -Werror -Wconversion")
85+
set(cxx_base_flags "-Wall -Wshadow -Wconversion")
8686
set(cxx_exception_flags "-fexceptions")
8787
set(cxx_no_exception_flags "-fno-exceptions")
8888
set(cxx_strict_flags "-W -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wunused-parameter -Wcast-align -Wchar-subscripts -Winline -Wredundant-decls")
8989
set(cxx_no_rtti_flags "-fno-rtti")
9090
elseif (CMAKE_COMPILER_IS_GNUCXX)
91-
set(cxx_base_flags "-Wall -Wshadow -Werror")
91+
set(cxx_base_flags "-Wall -Wshadow")
9292
if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0.0)
9393
set(cxx_base_flags "${cxx_base_flags} -Wno-error=dangling-else")
9494
endif()

0 commit comments

Comments
 (0)