From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Fri, 7 Jul 2023 11:28:19 -0500 Subject: fix: -Wshadow warning In utils.h's `ERROR_AND_ABORT` macro, rename the static local variable `args` to avoid -Wshadow warnings in code that calls `ERROR_AND_ABORT()` or `CHECK()` from a function that already has an `args` variable. This patch could be removed after upstreaming to Node.js. Example warning: In file included from ../../third_party/electron_node/src/inspector/runtime_agent.cc:3: In file included from ../../third_party/electron_node/src/env-inl.h:32: ../../third_party/electron_node/src/node_internals.h:72:3: error: declaration shadows a local variable [-Werror,-Wshadow] 72 | CHECK(args[0]->IsObject()); | ^ ../../third_party/electron_node/src/util.h:154:7: note: expanded from macro 'CHECK' 154 | ERROR_AND_ABORT(expr); \ | ^ ../../third_party/electron_node/src/util.h:132:38: note: expanded from macro 'ERROR_AND_ABORT' 132 | static const node::AssertionInfo args = { \ | ^ ../../third_party/electron_node/src/node_internals.h:67:67: note: previous declaration is here 67 | void GetSockOrPeerName(const v8::FunctionCallbackInfo& args) { | ^ 1 error generated. diff --git a/src/util.h b/src/util.h index e5f508b5090b2a0a95dc280e010ddcc731ad0dd2..d1d78c5b2f0409c7a399444875079eb5c487a3e7 100644 --- a/src/util.h +++ b/src/util.h @@ -145,9 +145,9 @@ void DumpJavaScriptBacktrace(FILE* fp); do { \ /* Make sure that this struct does not end up in inline code, but */ \ /* rather in a read-only data section when modifying this code. */ \ - static const node::AssertionInfo args = { \ + static const node::AssertionInfo error_and_abort_args = { \ __FILE__ ":" STRINGIFY(__LINE__), #expr, PRETTY_FUNCTION_NAME}; \ - node::Assert(args); \ + node::Assert(error_and_abort_args); \ /* `node::Assert` doesn't return. Add an [[noreturn]] abort() here to */ \ /* make the compiler happy about no return value in the caller */ \ /* function when calling ERROR_AND_ABORT. */ \