[libstdc++, testsuite] Add dg-require-thread-fence

Christophe Lyon christophe.lyon@linaro.org
Thu Oct 20 09:19:00 GMT 2016


On 20 October 2016 at 09:55, Christophe Lyon <christophe.lyon@linaro.org> wrote:
> Hi,
>
> Several times I have noticed/reported test failures because some test
> cases wouldn't link on arm-none-eabi using the default 'old' cpu
> target: __sync_synchronize cannot be resolved by the linker.
>
> The attached long patch adds
> +// { dg-require-thread-fence "" }
> to all the tests that require it according to the error messages I get.
>
> The change is mechanical:
> - insert this line below dg-do if present
> - insert this line at the top of the file otherwise
>
> For instance:
>
> diff --git a/libstdc++-v3/testsuite/18_support/bad_typeid/what.cc
> b/libstdc++-v3/testsuite/18_support/bad_typeid/what.cc
> index 633175b..a048250 100644
> --- a/libstdc++-v3/testsuite/18_support/bad_typeid/what.cc
> +++ b/libstdc++-v3/testsuite/18_support/bad_typeid/what.cc
> @@ -1,3 +1,4 @@
> +// { dg-require-thread-fence "" }
>  // 2007-01-30  Paolo Carlini  <pcarlini@suse.de>
>
>  // Copyright (C) 2007-2016 Free Software Foundation, Inc.
> diff --git a/libstdc++-v3/testsuite/18_support/cxa_vec.cc
> b/libstdc++-v3/testsuite/18_support/cxa_vec.cc
> index e712655..f2a6c5a 100644
> --- a/libstdc++-v3/testsuite/18_support/cxa_vec.cc
> +++ b/libstdc++-v3/testsuite/18_support/cxa_vec.cc
> @@ -1,4 +1,5 @@
>  // { dg-do run }
> +// { dg-require-thread-fence "" }
>  // Avoid use of non-overridable new/delete operators in shared
>  // { dg-options "-static" { target *-*-mingw* } }
>  // Test __cxa_vec routines
>
>
> If that's OK, I'm not sure how to write the ChangeLog entry: it
> modifies 3287 files.
>
> In my testing, it replaces 3287 FAILs by 3287 UNSUPPORTED.
>
>
> OK?
>

Jonathan,

The new test you introduced yesterday would need a similar fix:
experimental/memory/shared_ptr/cons/enable_shared_from_this.cc

Christophe

> Other question: I've noticed similar errors in the g++ validation, but
> I'm not sure what is the corresponding dg-require directive?
>
> Thanks,
>
> Christophe



More information about the Gcc-patches mailing list