* [PATCH] LoongArch: Fix warnings building libgcc
@ 2023-12-09 16:38 Xi Ruoyao
2023-12-12 1:58 ` chenglulu
0 siblings, 1 reply; 3+ messages in thread
From: Xi Ruoyao @ 2023-12-09 16:38 UTC (permalink / raw)
To: gcc-patches; +Cc: chenglulu, i, xuchenghua, Xi Ruoyao
We are excluding loongarch-opts.h from target libraries, but now struct
loongarch_target and gcc_options are not declared in the target
libraries, causing:
In file included from ../.././gcc/options.h:8,
from ../.././gcc/tm.h:49,
from ../../../gcc/libgcc/fixed-bit.c:48:
../../../gcc/libgcc/../gcc/config/loongarch/loongarch-opts.h:57:41:
warning: 'struct gcc_options' declared inside parameter list will not
be visible outside of this definition or declaration
57 | struct gcc_options *opts,
| ^~~~~~~~~~~
So exclude the declarations referring to the C++ structs as well.
gcc/ChangeLog:
* config/loongarch/loongarch-opts.h (la_target): Move into #if
for loongarch-def.h.
(loongarch_init_target): Likewise.
(loongarch_config_target): Likewise.
(loongarch_update_gcc_opt_status): Likewise.
---
Bootstrapped and regtested on loongarch64-linux-gnu. Ok for trunk?
gcc/config/loongarch/loongarch-opts.h | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/gcc/config/loongarch/loongarch-opts.h b/gcc/config/loongarch/loongarch-opts.h
index 651c1c18ca8..d091359300a 100644
--- a/gcc/config/loongarch/loongarch-opts.h
+++ b/gcc/config/loongarch/loongarch-opts.h
@@ -21,22 +21,15 @@ along with GCC; see the file COPYING3. If not see
#ifndef LOONGARCH_OPTS_H
#define LOONGARCH_OPTS_H
-/* This is a C++ header and it shouldn't be used by target libraries. */
+/* The loongarch-def.h file is a C++ header and it shouldn't be used by
+ target libraries. Exclude it and everything using the C++ structs
+ (struct loongarch_target and gcc_options) from target libraries. */
#if !defined(IN_LIBGCC2) && !defined(IN_TARGET_LIBS) && !defined(IN_RTS)
#include "loongarch-def.h"
-#endif
/* Target configuration */
extern struct loongarch_target la_target;
-/* Flag status */
-struct loongarch_flags {
- int flt; const char* flt_str;
-#define SX_FLAG_TYPE(x) ((x) < 0 ? -(x) : (x))
- int sx[2];
-};
-
-
/* Initialize loongarch_target from separate option variables. */
void
loongarch_init_target (struct loongarch_target *target,
@@ -56,7 +49,14 @@ void
loongarch_update_gcc_opt_status (struct loongarch_target *target,
struct gcc_options *opts,
struct gcc_options *opts_set);
+#endif
+/* Flag status */
+struct loongarch_flags {
+ int flt; const char* flt_str;
+#define SX_FLAG_TYPE(x) ((x) < 0 ? -(x) : (x))
+ int sx[2];
+};
/* Macros for common conditional expressions used in loongarch.{c,h,md} */
#define TARGET_CMODEL_NORMAL (la_target.cmodel == CMODEL_NORMAL)
--
2.43.0
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] LoongArch: Fix warnings building libgcc
2023-12-09 16:38 [PATCH] LoongArch: Fix warnings building libgcc Xi Ruoyao
@ 2023-12-12 1:58 ` chenglulu
2023-12-12 3:37 ` chenglulu
0 siblings, 1 reply; 3+ messages in thread
From: chenglulu @ 2023-12-12 1:58 UTC (permalink / raw)
To: Xi Ruoyao, gcc-patches; +Cc: i, xuchenghua
在 2023/12/10 上午12:38, Xi Ruoyao 写道:
> We are excluding loongarch-opts.h from target libraries, but now struct
> loongarch_target and gcc_options are not declared in the target
> libraries, causing:
>
> In file included from ../.././gcc/options.h:8,
> from ../.././gcc/tm.h:49,
> from ../../../gcc/libgcc/fixed-bit.c:48:
> ../../../gcc/libgcc/../gcc/config/loongarch/loongarch-opts.h:57:41:
> warning: 'struct gcc_options' declared inside parameter list will not
> be visible outside of this definition or declaration
> 57 | struct gcc_options *opts,
> | ^~~~~~~~~~~
>
> So exclude the declarations referring to the C++ structs as well.
>
> gcc/ChangeLog:
>
> * config/loongarch/loongarch-opts.h (la_target): Move into #if
> for loongarch-def.h.
> (loongarch_init_target): Likewise.
> (loongarch_config_target): Likewise.
> (loongarch_update_gcc_opt_status): Likewise.
> ---
>
> Bootstrapped and regtested on loongarch64-linux-gnu. Ok for trunk?
>
I don't understand. I tested it when I submitted the code, but I didn't
find this problem.
I think such a problem will cause compilation errors when
--enable-bootstrap, right?
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] LoongArch: Fix warnings building libgcc
2023-12-12 1:58 ` chenglulu
@ 2023-12-12 3:37 ` chenglulu
0 siblings, 0 replies; 3+ messages in thread
From: chenglulu @ 2023-12-12 3:37 UTC (permalink / raw)
To: Xi Ruoyao, gcc-patches; +Cc: i, xuchenghua
在 2023/12/12 上午9:58, chenglulu 写道:
>
> 在 2023/12/10 上午12:38, Xi Ruoyao 写道:
>> We are excluding loongarch-opts.h from target libraries, but now struct
>> loongarch_target and gcc_options are not declared in the target
>> libraries, causing:
>>
>> In file included from ../.././gcc/options.h:8,
>> from ../.././gcc/tm.h:49,
>> from ../../../gcc/libgcc/fixed-bit.c:48:
>> ../../../gcc/libgcc/../gcc/config/loongarch/loongarch-opts.h:57:41:
>> warning: 'struct gcc_options' declared inside parameter list will not
>> be visible outside of this definition or declaration
>> 57 | struct gcc_options *opts,
>> | ^~~~~~~~~~~
>>
>> So exclude the declarations referring to the C++ structs as well.
>>
>> gcc/ChangeLog:
>>
>> * config/loongarch/loongarch-opts.h (la_target): Move into #if
>> for loongarch-def.h.
>> (loongarch_init_target): Likewise.
>> (loongarch_config_target): Likewise.
>> (loongarch_update_gcc_opt_status): Likewise.
>> ---
>>
>> Bootstrapped and regtested on loongarch64-linux-gnu. Ok for trunk?
>>
> I don't understand. I tested it when I submitted the code, but I
> didn't find this problem.
>
> I think such a problem will cause compilation errors when
> --enable-bootstrap, right?
>
>
I've seen a warning message.
Thanks!
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2023-12-12 3:38 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-12-09 16:38 [PATCH] LoongArch: Fix warnings building libgcc Xi Ruoyao
2023-12-12 1:58 ` chenglulu
2023-12-12 3:37 ` chenglulu
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).