From e2501940a05bff598e1a8650a0ca0253d3dc44c4 Mon Sep 17 00:00:00 2001 From: Pentarctagon Date: Sun, 6 May 2018 03:04:59 -0500 Subject: [PATCH] Warn about use of trampolines for nested functions. Use of this feature with GCC in particular causes the stack to become marked as executable. (cherry-picked from commit 96b43a9af4ec76882afe6924e9c3dafb5b8beac5) --- CMakeLists.txt | 2 +- SConstruct | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 71943b93b66..814633c5633 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -204,7 +204,7 @@ if(NOT DEFINED CXX_FLAGS_USER) endif(NOT DEFINED CXX_FLAGS_USER) -set(COMPILER_FLAGS "-std=c++${CXX_STD} -Wall -Wextra -Werror=non-virtual-dtor -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wold-style-cast") +set(COMPILER_FLAGS "-std=c++${CXX_STD} -Wall -Wextra -Werror=non-virtual-dtor -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wold-style-cast -Wtrampolines") if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") set(COMPILER_FLAGS "${COMPILER_FLAGS} -Qunused-arguments -Wno-unknown-warning-option -Wmismatched-tags -Wno-conditional-uninitialized") diff --git a/SConstruct b/SConstruct index 861a4eab00c..424a228680f 100755 --- a/SConstruct +++ b/SConstruct @@ -474,7 +474,7 @@ for env in [test_env, client_env, env]: env.AppendUnique(CXXFLAGS = Split("-Wdocumentation -Wno-documentation-deprecated-sync")) if "gcc" in env["TOOLS"]: - env.AppendUnique(CCFLAGS = Split("-Wno-unused-local-typedefs -Wno-maybe-uninitialized")) + env.AppendUnique(CCFLAGS = Split("-Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wtrampolines")) env.AppendUnique(CXXFLAGS = Split("-Wold-style-cast")) if env['strict']: