* [PATCH] gdb/testsuite: Fix FAILs in gdb.linespec/cpcompletion.exp when using clang
@ 2023-01-05 7:57 Bruno Larsen
2023-01-05 20:06 ` Tom Tromey
0 siblings, 1 reply; 3+ messages in thread
From: Bruno Larsen @ 2023-01-05 7:57 UTC (permalink / raw)
To: gdb-patches; +Cc: Bruno Larsen
When using clang 16.0.0 to test gdb.linespec/cpcompletion.exp, I get 99
unexpected failures. They all fail to produce a complete list of
completion options for a function, either overload2_function,
overload3_function or anon_ns_function. This happens because clang is
optimizing them away, since they are never used.
Fix this by adding __attribute__((used)) to all declarations to the
aforementioned functions.
---
gdb/testsuite/gdb.linespec/cpls.cc | 33 ++++++++++++++++--------------
1 file changed, 18 insertions(+), 15 deletions(-)
diff --git a/gdb/testsuite/gdb.linespec/cpls.cc b/gdb/testsuite/gdb.linespec/cpls.cc
index 037b5c28325..d63ed892564 100644
--- a/gdb/testsuite/gdb.linespec/cpls.cc
+++ b/gdb/testsuite/gdb.linespec/cpls.cc
@@ -56,16 +56,17 @@ struct overload2_arg9 {};
struct overload2_arga {};
#define GEN_OVERLOAD2_FUNCTIONS(ARG1, ARG2) \
- void \
+ void __attribute__ ((used)) \
overload2_function (ARG1) \
{} \
\
struct struct_overload2_test \
{ \
- void overload2_function (ARG2); \
+ void __attribute__ ((used)) \
+ overload2_function (ARG2); \
}; \
\
- void \
+ void __attribute__ ((used)) \
struct_overload2_test::overload2_function (ARG2) \
{}
@@ -99,23 +100,25 @@ namespace ns_overload2_test
/* Code for the overload-3 test. */
#define GEN_OVERLOAD3_FUNCTIONS(ARG1, ARG2) \
- void \
+ void __attribute__ ((used)) \
overload3_function (ARG1) \
{} \
- void \
+ void __attribute__ ((used)) \
overload3_function (ARG2) \
{} \
\
struct struct_overload3_test \
{ \
- void overload3_function (ARG1); \
- void overload3_function (ARG2); \
+ void __attribute__ ((used)) \
+ overload3_function (ARG1); \
+ void __attribute__ ((used)) \
+ overload3_function (ARG2); \
}; \
\
- void \
+ void __attribute__ ((used)) \
struct_overload3_test::overload3_function (ARG1) \
{} \
- void \
+ void __attribute__ ((used)) \
struct_overload3_test::overload3_function (ARG2) \
{}
@@ -343,15 +346,15 @@ namespace ns2_incomplete_scope_colon_test
namespace
{
- void anon_ns_function ()
+ void __attribute__ ((used)) anon_ns_function ()
{}
struct anon_ns_struct
{
- void anon_ns_function ();
+ void __attribute__ ((used)) anon_ns_function ();
};
- void
+ void __attribute__ ((used))
anon_ns_struct::anon_ns_function ()
{}
}
@@ -361,15 +364,15 @@ namespace the_anon_ns_wrapper_ns
namespace
{
- void anon_ns_function ()
+ void __attribute__ ((used)) anon_ns_function ()
{}
struct anon_ns_struct
{
- void anon_ns_function ();
+ void __attribute__ ((used)) anon_ns_function ();
};
- void
+ void __attribute__ ((used))
anon_ns_struct::anon_ns_function ()
{}
}
--
2.39.0
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] gdb/testsuite: Fix FAILs in gdb.linespec/cpcompletion.exp when using clang
2023-01-05 7:57 [PATCH] gdb/testsuite: Fix FAILs in gdb.linespec/cpcompletion.exp when using clang Bruno Larsen
@ 2023-01-05 20:06 ` Tom Tromey
2023-01-06 9:51 ` Bruno Larsen
0 siblings, 1 reply; 3+ messages in thread
From: Tom Tromey @ 2023-01-05 20:06 UTC (permalink / raw)
To: Bruno Larsen via Gdb-patches; +Cc: Bruno Larsen
>>>>> Bruno Larsen via Gdb-patches <gdb-patches@sourceware.org> writes:
> When using clang 16.0.0 to test gdb.linespec/cpcompletion.exp, I get 99
> unexpected failures. They all fail to produce a complete list of
> completion options for a function, either overload2_function,
> overload3_function or anon_ns_function. This happens because clang is
> optimizing them away, since they are never used.
> Fix this by adding __attribute__((used)) to all declarations to the
> aforementioned functions.
Thanks for the patch. I guess we use this attribute in the tests
already, so I think this is ok.
Tom
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] gdb/testsuite: Fix FAILs in gdb.linespec/cpcompletion.exp when using clang
2023-01-05 20:06 ` Tom Tromey
@ 2023-01-06 9:51 ` Bruno Larsen
0 siblings, 0 replies; 3+ messages in thread
From: Bruno Larsen @ 2023-01-06 9:51 UTC (permalink / raw)
To: Tom Tromey, Bruno Larsen via Gdb-patches
On 05/01/2023 21:06, Tom Tromey wrote:
>>>>>> Bruno Larsen via Gdb-patches <gdb-patches@sourceware.org> writes:
>> When using clang 16.0.0 to test gdb.linespec/cpcompletion.exp, I get 99
>> unexpected failures. They all fail to produce a complete list of
>> completion options for a function, either overload2_function,
>> overload3_function or anon_ns_function. This happens because clang is
>> optimizing them away, since they are never used.
>> Fix this by adding __attribute__((used)) to all declarations to the
>> aforementioned functions.
> Thanks for the patch. I guess we use this attribute in the tests
> already, so I think this is ok.
thanks! pushed
>
> Tom
>
--
Cheers,
Bruno
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2023-01-06 9:51 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-05 7:57 [PATCH] gdb/testsuite: Fix FAILs in gdb.linespec/cpcompletion.exp when using clang Bruno Larsen
2023-01-05 20:06 ` Tom Tromey
2023-01-06 9:51 ` Bruno Larsen
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).