* [PATCH] gdbsupport, gdbserver, gdb: use -Wno-vla-cxx-extension
@ 2024-04-12 17:51 Simon Marchi
2024-04-15 16:22 ` Tom Tromey
0 siblings, 1 reply; 6+ messages in thread
From: Simon Marchi @ 2024-04-12 17:51 UTC (permalink / raw)
To: gdb-patches; +Cc: Simon Marchi
When building with clang 18, I see:
CXX aarch64-linux-tdep.o
/home/smarchi/src/binutils-gdb/gdb/aarch64-linux-tdep.c:1299:26: error: variable length arrays in C++ are a Clang extension [-Werror,-Wvla-cxx-extension]
1299 | gdb_byte za_zeroed[za_bytes];
| ^~~~~~~~
/home/smarchi/src/binutils-gdb/gdb/aarch64-linux-tdep.c:1299:26: note: read of non-const variable 'za_bytes' is not allowed in a constant expression
/home/smarchi/src/binutils-gdb/gdb/aarch64-linux-tdep.c:1282:10: note: declared here
1282 | size_t za_bytes = std::pow (sve_vl_from_vg (svg), 2);
| ^
Since we are using VLAs right now, that warning doesn't make sense for
us. add `-Wno-vla-cxx-extension` to the list of warning flags we try to
enable. If we ever choose to disallow VLAs, we can remove that flag.
Change-Id: Ie41feafc50c343f6e75333d4f836ce32fbeb6d8c
---
gdb/configure | 1 +
gdbserver/configure | 1 +
gdbsupport/configure | 1 +
gdbsupport/warning.m4 | 1 +
4 files changed, 4 insertions(+)
diff --git a/gdb/configure b/gdb/configure
index a77e3e273328..c3d5cf7ed63d 100755
--- a/gdb/configure
+++ b/gdb/configure
@@ -31179,6 +31179,7 @@ build_warnings="-Wall -Wpointer-arith \
-Wredundant-move \
-Wmissing-declarations \
-Wstrict-null-sentinel \
+-Wno-vla-cxx-extension \
"
# The -Wmissing-prototypes flag will be accepted by GCC, but results
diff --git a/gdbserver/configure b/gdbserver/configure
index b85db9cd49df..026d250cc732 100755
--- a/gdbserver/configure
+++ b/gdbserver/configure
@@ -13706,6 +13706,7 @@ build_warnings="-Wall -Wpointer-arith \
-Wredundant-move \
-Wmissing-declarations \
-Wstrict-null-sentinel \
+-Wno-vla-cxx-extension \
"
# The -Wmissing-prototypes flag will be accepted by GCC, but results
diff --git a/gdbsupport/configure b/gdbsupport/configure
index b45f12de45be..ae991250ce4c 100755
--- a/gdbsupport/configure
+++ b/gdbsupport/configure
@@ -14179,6 +14179,7 @@ build_warnings="-Wall -Wpointer-arith \
-Wredundant-move \
-Wmissing-declarations \
-Wstrict-null-sentinel \
+-Wno-vla-cxx-extension \
"
# The -Wmissing-prototypes flag will be accepted by GCC, but results
diff --git a/gdbsupport/warning.m4 b/gdbsupport/warning.m4
index bdac8b3e7d22..d12bccbd3fb9 100644
--- a/gdbsupport/warning.m4
+++ b/gdbsupport/warning.m4
@@ -52,6 +52,7 @@ build_warnings="-Wall -Wpointer-arith \
-Wredundant-move \
-Wmissing-declarations \
-Wstrict-null-sentinel \
+-Wno-vla-cxx-extension \
"
# The -Wmissing-prototypes flag will be accepted by GCC, but results
base-commit: ec48903170926f3827144525b50ddd3c6ae3fbf0
--
2.44.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] gdbsupport, gdbserver, gdb: use -Wno-vla-cxx-extension
2024-04-12 17:51 [PATCH] gdbsupport, gdbserver, gdb: use -Wno-vla-cxx-extension Simon Marchi
@ 2024-04-15 16:22 ` Tom Tromey
2024-04-15 16:32 ` Luis Machado
2024-04-15 16:48 ` Simon Marchi
0 siblings, 2 replies; 6+ messages in thread
From: Tom Tromey @ 2024-04-15 16:22 UTC (permalink / raw)
To: Simon Marchi; +Cc: gdb-patches
>>>>> "Simon" == Simon Marchi <simon.marchi@efficios.com> writes:
Simon> When building with clang 18, I see:
Simon> CXX aarch64-linux-tdep.o
Simon> /home/smarchi/src/binutils-gdb/gdb/aarch64-linux-tdep.c:1299:26: error: variable length arrays in C++ are a Clang extension [-Werror,-Wvla-cxx-extension]
Simon> 1299 | gdb_byte za_zeroed[za_bytes];
Simon> | ^~~~~~~~
Simon> /home/smarchi/src/binutils-gdb/gdb/aarch64-linux-tdep.c:1299:26: note: read of non-const variable 'za_bytes' is not allowed in a constant expression
Simon> /home/smarchi/src/binutils-gdb/gdb/aarch64-linux-tdep.c:1282:10: note: declared here
Simon> 1282 | size_t za_bytes = std::pow (sve_vl_from_vg (svg), 2);
Simon> | ^
Simon> Since we are using VLAs right now, that warning doesn't make sense for
Simon> us. add `-Wno-vla-cxx-extension` to the list of warning flags we try to
Simon> enable. If we ever choose to disallow VLAs, we can remove that flag.
I wonder if we should instead remove the use of VLAs.
Is it just the one spot?
Tom
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] gdbsupport, gdbserver, gdb: use -Wno-vla-cxx-extension
2024-04-15 16:22 ` Tom Tromey
@ 2024-04-15 16:32 ` Luis Machado
2024-04-15 16:48 ` Simon Marchi
1 sibling, 0 replies; 6+ messages in thread
From: Luis Machado @ 2024-04-15 16:32 UTC (permalink / raw)
To: Tom Tromey, Simon Marchi; +Cc: gdb-patches
On 4/15/24 17:22, Tom Tromey wrote:
>>>>>> "Simon" == Simon Marchi <simon.marchi@efficios.com> writes:
>
> Simon> When building with clang 18, I see:
> Simon> CXX aarch64-linux-tdep.o
> Simon> /home/smarchi/src/binutils-gdb/gdb/aarch64-linux-tdep.c:1299:26: error: variable length arrays in C++ are a Clang extension [-Werror,-Wvla-cxx-extension]
> Simon> 1299 | gdb_byte za_zeroed[za_bytes];
> Simon> | ^~~~~~~~
> Simon> /home/smarchi/src/binutils-gdb/gdb/aarch64-linux-tdep.c:1299:26: note: read of non-const variable 'za_bytes' is not allowed in a constant expression
> Simon> /home/smarchi/src/binutils-gdb/gdb/aarch64-linux-tdep.c:1282:10: note: declared here
> Simon> 1282 | size_t za_bytes = std::pow (sve_vl_from_vg (svg), 2);
> Simon> | ^
>
> Simon> Since we are using VLAs right now, that warning doesn't make sense for
> Simon> us. add `-Wno-vla-cxx-extension` to the list of warning flags we try to
> Simon> enable. If we ever choose to disallow VLAs, we can remove that flag.
>
> I wonder if we should instead remove the use of VLAs.
> Is it just the one spot?
If we want to go that route, we can modify that code to not use it. I think it was mostly convenience rather than a need for it.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] gdbsupport, gdbserver, gdb: use -Wno-vla-cxx-extension
2024-04-15 16:22 ` Tom Tromey
2024-04-15 16:32 ` Luis Machado
@ 2024-04-15 16:48 ` Simon Marchi
2024-04-16 22:56 ` Tom Tromey
1 sibling, 1 reply; 6+ messages in thread
From: Simon Marchi @ 2024-04-15 16:48 UTC (permalink / raw)
To: Tom Tromey; +Cc: gdb-patches
On 4/15/24 12:22 PM, Tom Tromey wrote:
>>>>>> "Simon" == Simon Marchi <simon.marchi@efficios.com> writes:
>
> Simon> When building with clang 18, I see:
> Simon> CXX aarch64-linux-tdep.o
> Simon> /home/smarchi/src/binutils-gdb/gdb/aarch64-linux-tdep.c:1299:26: error: variable length arrays in C++ are a Clang extension [-Werror,-Wvla-cxx-extension]
> Simon> 1299 | gdb_byte za_zeroed[za_bytes];
> Simon> | ^~~~~~~~
> Simon> /home/smarchi/src/binutils-gdb/gdb/aarch64-linux-tdep.c:1299:26: note: read of non-const variable 'za_bytes' is not allowed in a constant expression
> Simon> /home/smarchi/src/binutils-gdb/gdb/aarch64-linux-tdep.c:1282:10: note: declared here
> Simon> 1282 | size_t za_bytes = std::pow (sve_vl_from_vg (svg), 2);
> Simon> | ^
>
> Simon> Since we are using VLAs right now, that warning doesn't make sense for
> Simon> us. add `-Wno-vla-cxx-extension` to the list of warning flags we try to
> Simon> enable. If we ever choose to disallow VLAs, we can remove that flag.
>
> I wonder if we should instead remove the use of VLAs.
> Is it just the one spot?
Here's the list of those I see in my build (x86-64 Linux all targets):
/home/smarchi/src/binutils-gdb/gdb/aarch64-linux-tdep.c:1298:26: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
/home/smarchi/src/binutils-gdb/gdb/aarch64-tdep.c:1729:20: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
/home/smarchi/src/binutils-gdb/gdb/aarch64-tdep.c:2545:17: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
/home/smarchi/src/binutils-gdb/gdb/aarch64-tdep.c:2659:20: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
/home/smarchi/src/binutils-gdb/gdb/aarch64-tdep.c:3306:20: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
/home/smarchi/src/binutils-gdb/gdb/aarch64-tdep.c:5718:16: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
/home/smarchi/src/binutils-gdb/gdb/amd64-linux-nat.c:238:20: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
/home/smarchi/src/binutils-gdb/gdb/amd64-linux-nat.c:303:20: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
/home/smarchi/src/binutils-gdb/gdb/arc-linux-tdep.c:203:16: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
/home/smarchi/src/binutils-gdb/gdb/fbsd-tdep.c:2035:16: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
/home/smarchi/src/binutils-gdb/gdb/loongarch-tdep.c:38:16: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
/home/smarchi/src/binutils-gdb/gdb/loongarch-tdep.c:1308:19: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
/home/smarchi/src/binutils-gdb/gdb/mips-linux-tdep.c:101:16: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
/home/smarchi/src/binutils-gdb/gdb/riscv-tdep.c:1017:24: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
/home/smarchi/src/binutils-gdb/gdb/solib-darwin.c:241:20: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
/home/smarchi/src/binutils-gdb/gdb/solib-darwin.c:335:20: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
/home/smarchi/src/binutils-gdb/gdb/trad-frame.c:156:16: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
I think we should have a vector type with "small vector optimization",
it would be great to replace these uses of VLAs. I might give it a shot
at some point (or maybe someone else wants to try?). But until then, I
think it makes sense to silence the warning.
Simon
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] gdbsupport, gdbserver, gdb: use -Wno-vla-cxx-extension
2024-04-15 16:48 ` Simon Marchi
@ 2024-04-16 22:56 ` Tom Tromey
2024-04-17 14:52 ` Simon Marchi
0 siblings, 1 reply; 6+ messages in thread
From: Tom Tromey @ 2024-04-16 22:56 UTC (permalink / raw)
To: Simon Marchi; +Cc: Tom Tromey, gdb-patches
Simon> Here's the list of those I see in my build (x86-64 Linux all targets):
Simon> I think we should have a vector type with "small vector optimization",
Simon> it would be great to replace these uses of VLAs. I might give it a shot
Simon> at some point (or maybe someone else wants to try?). But until then, I
Simon> think it makes sense to silence the warning.
I suppose I'm ok with that.
On the whole I'd prefer we remove VLAs (since they aren't standard) and
alloca (since it is bad). I don't really care if we have a small vector
unless it's proven we need it.
Tom
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] gdbsupport, gdbserver, gdb: use -Wno-vla-cxx-extension
2024-04-16 22:56 ` Tom Tromey
@ 2024-04-17 14:52 ` Simon Marchi
0 siblings, 0 replies; 6+ messages in thread
From: Simon Marchi @ 2024-04-17 14:52 UTC (permalink / raw)
To: Tom Tromey, Simon Marchi; +Cc: gdb-patches
On 2024-04-16 18:56, Tom Tromey wrote:
> Simon> Here's the list of those I see in my build (x86-64 Linux all targets):
>
> Simon> I think we should have a vector type with "small vector optimization",
> Simon> it would be great to replace these uses of VLAs. I might give it a shot
> Simon> at some point (or maybe someone else wants to try?). But until then, I
> Simon> think it makes sense to silence the warning.
>
> I suppose I'm ok with that.
Ok, pushed. Whoever takes on the project of removing VLAs can remove
the flag.
> On the whole I'd prefer we remove VLAs (since they aren't standard) and
> alloca (since it is bad). I don't really care if we have a small vector
> unless it's proven we need it.
Agreed.
Simon
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-04-17 14:52 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-12 17:51 [PATCH] gdbsupport, gdbserver, gdb: use -Wno-vla-cxx-extension Simon Marchi
2024-04-15 16:22 ` Tom Tromey
2024-04-15 16:32 ` Luis Machado
2024-04-15 16:48 ` Simon Marchi
2024-04-16 22:56 ` Tom Tromey
2024-04-17 14:52 ` Simon Marchi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).