Hi Segher,

Gentle ping this patch as you wanted empty TU issue to be fixed
first at the discussion [1].  Thanks in advance for your time!

[1] https://gcc.gnu.org/pipermail/gcc-patches/2022-September/600927.html

BR,
Kewen

on 2022/7/25 14:26, Kewen.Lin via Gcc-patches wrote:
> Hi,
> 
> As the failure of test case gcc.target/powerpc/pr92398.p9-.c in
> PR106345 shows, some test sources for some powerpc effective
> targets use empty translation unit wrongly.  The test sources
> could go with options like "-ansi -pedantic-errors", then those
> effective target checkings will fail unexpectedly with the
> error messages like:
> 
>   error: ISO C forbids an empty translation unit [-Wpedantic]
> 
> This patch is to fix empty TUs with one dummy function definition
> accordingly.
> 
> Excepting for the failures on gcc.target/powerpc/pr92398.p9-.c
> fixed, I can see it helps to bring back some testing coverage like:
> 
> NA->PASS: gcc.target/powerpc/pr92398.p9+.c
> NA->PASS: gcc.target/powerpc/pr93453-1.c
> 
> Tested as before.
> 
> v1: https://gcc.gnu.org/pipermail/gcc-patches/2022-July/598602.html
> v2: Use dummy function instead of dummy int as Segher suggested.
> 
> Segher, does this v2 look good to you?
> 
> BR,
> Kewen
> -----
>       PR testsuite/106345
> 
> gcc/testsuite/ChangeLog:
> 
>       * lib/target-supports.exp (check_effective_target_powerpc_sqrt): Add
>       a function definition to avoid pedwarn about empty translation unit.
>       (check_effective_target_has_arch_pwr5): Likewise.
>       (check_effective_target_has_arch_pwr6): Likewise.
>       (check_effective_target_has_arch_pwr7): Likewise.
>       (check_effective_target_has_arch_pwr8): Likewise.
>       (check_effective_target_has_arch_pwr9): Likewise.
>       (check_effective_target_has_arch_pwr10): Likewise.
>       (check_effective_target_has_arch_ppc64): Likewise.
>       (check_effective_target_ppc_float128): Likewise.
>       (check_effective_target_ppc_float128_insns): Likewise.
>       (check_effective_target_powerpc_vsx): Likewise.
> ---
>  gcc/testsuite/lib/target-supports.exp | 33 +++++++++++++++++++++++++++
>  1 file changed, 33 insertions(+)
> 
> diff --git a/gcc/testsuite/lib/target-supports.exp 
> b/gcc/testsuite/lib/target-supports.exp
> index 4ed7b25b9a4..06484330178 100644
> --- a/gcc/testsuite/lib/target-supports.exp
> +++ b/gcc/testsuite/lib/target-supports.exp
> @@ -6259,9 +6259,12 @@ proc check_effective_target_powerpc_sqrt { } {
>      }
> 
>      return [check_no_compiler_messages powerpc_sqrt object {
> +     void test (void)
> +     {
>       #ifndef _ARCH_PPCSQ
>       #error _ARCH_PPCSQ is not defined
>       #endif
> +     }
>      } {}]
>  }
> 
> @@ -6369,71 +6372,92 @@ proc check_effective_target_powerpc_p9modulo_ok { } {
>  # as provided by the test.
>  proc check_effective_target_has_arch_pwr5 { } {
>       return [check_no_compiler_messages_nocache arch_pwr5 assembly {
> +             void test (void)
> +             {
>               #ifndef _ARCH_PWR5
>               #error does not have power5 support.
>               #else
>               /* "has power5 support" */
>               #endif
> +             }
>       } [current_compiler_flags]]
>  }
> 
>  proc check_effective_target_has_arch_pwr6 { } {
>       return [check_no_compiler_messages_nocache arch_pwr6 assembly {
> +             void test (void)
> +             {
>               #ifndef _ARCH_PWR6
>               #error does not have power6 support.
>               #else
>               /* "has power6 support" */
>               #endif
> +             }
>       } [current_compiler_flags]]
>  }
> 
>  proc check_effective_target_has_arch_pwr7 { } {
>       return [check_no_compiler_messages_nocache arch_pwr7 assembly {
> +             void test (void)
> +             {
>               #ifndef _ARCH_PWR7
>               #error does not have power7 support.
>               #else
>               /* "has power7 support" */
>               #endif
> +             }
>       } [current_compiler_flags]]
>  }
> 
>  proc check_effective_target_has_arch_pwr8 { } {
>       return [check_no_compiler_messages_nocache arch_pwr8 assembly {
> +             void test (void)
> +             {
>               #ifndef _ARCH_PWR8
>               #error does not have power8 support.
>               #else
>               /* "has power8 support" */
>               #endif
> +             }
>       } [current_compiler_flags]]
>  }
> 
>  proc check_effective_target_has_arch_pwr9 { } {
>       return [check_no_compiler_messages_nocache arch_pwr9 assembly {
> +             void test (void)
> +             {
>               #ifndef _ARCH_PWR9
>               #error does not have power9 support.
>               #else
>               /* "has power9 support" */
>               #endif
> +             }
>       } [current_compiler_flags]]
>  }
> 
>  proc check_effective_target_has_arch_pwr10 { } {
>       return [check_no_compiler_messages_nocache arch_pwr10 assembly {
> +             void test (void)
> +             {
>               #ifndef _ARCH_PWR10
>               #error does not have power10 support.
>               #else
>               /* "has power10 support" */
>               #endif
> +             }
>       } [current_compiler_flags]]
>  }
> 
>  proc check_effective_target_has_arch_ppc64 { } {
>       return [check_no_compiler_messages_nocache arch_ppc64 assembly {
> +             void test (void)
> +             {
>               #ifndef _ARCH_PPC64
>               #error does not have ppc64 support.
>               #else
>               /* "has ppc64 support" */
>               #endif
> +             }
>       } [current_compiler_flags]]
>  }
> 
> @@ -6520,9 +6544,12 @@ proc check_effective_target_powerpc_float128_hw_ok { } 
> {
> 
>  proc check_effective_target_ppc_float128 { } {
>      return [check_no_compiler_messages_nocache ppc_float128 object {
> +     void test (void)
> +     {
>       #ifndef __FLOAT128__
>         nope no good
>       #endif
> +     }
>      }]
>  }
> 
> @@ -6530,9 +6557,12 @@ proc check_effective_target_ppc_float128 { } {
> 
>  proc check_effective_target_ppc_float128_insns { } {
>      return [check_no_compiler_messages_nocache ppc_float128 object {
> +     void test (void)
> +     {
>       #ifndef __FLOAT128_HARDWARE__
>         nope no good
>       #endif
> +     }
>      }]
>  }
> 
> @@ -6540,9 +6570,12 @@ proc check_effective_target_ppc_float128_insns { } {
> 
>  proc check_effective_target_powerpc_vsx { } {
>      return [check_no_compiler_messages_nocache powerpc_vsx object {
> +     void test (void)
> +     {
>       #ifndef __VSX__
>         nope no vsx
>       #endif
> +     }
>      }]
>  }
> 
> --
> 2.32.0

Reply via email to