> On Mar 11, 2024, at 20:52, Jonathan Wakely <jwak...@redhat.com> wrote:
> 
> On Mon, 11 Mar 2024 at 16:38, Maxim Kuvyrkov <maxim.kuvyr...@linaro.org> 
> wrote:
>> 
>>> On Jan 30, 2024, at 23:03, ci_not...@linaro.org wrote:
>>> 
>>> Dear contributor, our automatic CI has detected problems related to your 
>>> patch(es).  Please find some details below.  If you have any questions, 
>>> please follow up on linaro-toolchain@lists.linaro.org mailing list, 
>>> Libera's #linaro-tcwg channel, or ping your favourite Linaro toolchain 
>>> developer on the usual project channel.
>>> 
>>> We appreciate that it might be difficult to find the necessary logs or 
>>> reproduce the issue locally. If you can't get what you need from our CI 
>>> within minutes, let us know and we will be happy to help.
>>> 
>>> We track this report status in https://linaro.atlassian.net/browse/GNU-1136 
>>> , please let us know if you are looking at the problem and/or when you have 
>>> a fix.
>>> 
>>> In  master-arm after:
>>> 
>>> | commit gdb-14-branchpoint-1411-g033bc67bdb0
>>> | Author: Tom Tromey <t...@tromey.com>
>>> | Date:   Tue Sep 19 17:39:31 2023 -0600
>>> |
>>> |     Only search types in cp_lookup_rtti_type
>>> |
>>> |     This changes cp_lookup_rtti_type to only search for types -- not
>>> |     functions or variables.  Due to the symbol-matching hack, this could
>>> |     just use SEARCH_TYPE_DOMAIN, but I think it's better to be clear; also
>>> |     I hold on to some hope that perhaps the hack can someday be removed.
>>> 
>>> FAIL: 2 regressions
>>> 
>>> regressions.sum:
>>> === libstdc++ tests ===
>>> 
>>> Running libstdc++:libstdc++-prettyprinters/prettyprinters.exp ...
>>> FAIL: libstdc++-prettyprinters/cxx11.cc print ecmiaow
>>> FAIL: libstdc++-prettyprinters/cxx11.cc print emiaow
>> 
>> Hi Tom,
>> Hi Jonathan,
>> 
>> After the above GDB patch I see 2 new failures both for aarch64-linux-gnu 
>> and arm-linux-gnueabihf in GCC's libstdc++ testsuite.  The log [1] says:
>> ===
>> $35 = warning: RTTI symbol not found for class 'main::custom_cat'
>> warning: RTTI symbol not found for class 'main::custom_cat'
>> got: $35 = warning: RTTI symbol not found for class 'main::custom_cat'
>> FAIL: libstdc++-prettyprinters/cxx11.cc print emiaow
>> skipping: warning: RTTI symbol not found for class 'main::custom_cat'
>> std::error_code = {std::_V2::error_category: 42}
>> skipping: std::error_code = {std::_V2::error_category: 42}
>> $36 = warning: RTTI symbol not found for class 'main::custom_cat'
>> warning: RTTI symbol not found for class 'main::custom_cat'
>> got: $36 = warning: RTTI symbol not found for class 'main::custom_cat'
>> FAIL: libstdc++-prettyprinters/cxx11.cc print ecmiaow
>> ===
>> 
>> Which way should I dig -- GDB or libstdc++?  Does this look like libstdc++ 
>> testcase needs an update?
> 
> 
> Just a guess, but maybe making the type global instead of a local type
> (with no linkage) will solve it:
> 
> --- a/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc
> +++ b/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc
> @@ -63,6 +63,11 @@ struct datum
> 
> std::unique_ptr<datum> global;
> 
> +struct custom_cat : std::error_category {
> +  const char* name() const noexcept { return "miaow"; }
> +  std::string message(int) const { return ""; }
> +};
> +
> int
> main()
> {
> @@ -179,10 +184,7 @@ main()
>  std::error_condition ecinval =
> std::make_error_condition(std::errc::invalid_argument);
>  // { dg-final { note-test ecinval {std::error_condition =
> {"generic": EINVAL}} } }
> 
> -  struct custom_cat : std::error_category {
> -    const char* name() const noexcept { return "miaow"; }
> -    std::string message(int) const { return ""; }
> -  } cat;
> +  custom_cat cat;
>  std::error_code emiaow(42, cat);
>  // { dg-final { note-test emiaow {std::error_code = {custom_cat: 42}} } }
>  std::error_condition ecmiaow(42, cat);
> 
> 
> If this works, I think this change to the test is reasonable. A local
> type as an error_category probably doesn't make sense in real code.
> 
> But I don't know if this is revealing some issue with Tom's patch and
> how it handles local types (or any types without linkage).

Hi Jonathan,

Your above change to cxx11.cc <http://cxx11.cc/> fixes the failures [1].  Would 
you please commit it?

Thanks!

[1] 
https://ci.linaro.org/job/tcwg_gnu_native_check_gcc--master-aarch64-precommit/1/artifact/artifacts/artifacts.precommit/notify/mail-body.txt/*view*/


--
Maxim Kuvyrkov
https://www.linaro.org


_______________________________________________
linaro-toolchain mailing list -- linaro-toolchain@lists.linaro.org
To unsubscribe send an email to linaro-toolchain-le...@lists.linaro.org

Reply via email to