2023-07-16 14:14:43 +00:00
|
|
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Charles Kerr <charles@charleskerr.com>
|
|
|
|
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<v8::Value>& args) {
|
|
|
|
| ^
|
|
|
|
1 error generated.
|
|
|
|
|
|
|
|
diff --git a/src/util.h b/src/util.h
|
2024-04-17 16:39:13 +00:00
|
|
|
index e5f508b5090b2a0a95dc280e010ddcc731ad0dd2..d1d78c5b2f0409c7a399444875079eb5c487a3e7 100644
|
2023-07-16 14:14:43 +00:00
|
|
|
--- a/src/util.h
|
|
|
|
+++ b/src/util.h
|
2024-04-17 16:39:13 +00:00
|
|
|
@@ -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. */ \
|