Hi Nathaniel,
> On Mon, May 13, 2024 at 10:40:30AM +0200, Rainer Orth wrote:
>> g++.dg/modules/stdio-1_a.H currently FAILs on Solaris:
>>
>> FAIL: g++.dg/modules/stdio-1_a.H -std=c++17 scan-lang-dump module "Depset:0
>> decl entity:[0-9]* function_decl:'::printf'"
>> FAIL: g++.dg/modules/stdio-1_a.H -std=c++2a scan-lang-dump module "Depset:0
>> decl entity:[0-9]* function_decl:'::printf'"
>> FAIL: g++.dg/modules/stdio-1_a.H -std=c++2b scan-lang-dump module "Depset:0
>> decl entity:[0-9]* function_decl:'::printf'"
>>
>> The problem is that the module file doesn't contain
>>
>> Depset:0 decl entity:95 function_decl:'::printf'
>>
>> as expected by the test, but
>>
>> Depset:0 decl entity:26 function_decl:'::std::printf'
>>
>> This happens because Solaris <stdio.h> declares printf in namespace std
>> as allowed by C++11, Annex D, D.5.
>>
>> This patch allows for both forms.
>>
>> Tested on i386-pc-solaris2.11, sparc-sun-solaris2.11, and
>> x86_64-pc-linux-gnu.
>>
>> Ok for trunk?
>>
>> Rainer
>
> There are a couple of other tests that appear to potentially have a
> similar issue:
>
> global-2_a.C
> 21:// { dg-final { scan-lang-dump-not {Reachable GMF '::printf[^\n']*'
> added} module } }
>
> global-3_a.C
> 15:// { dg-final { scan-lang-dump-not {Reachable GMF '::printf[^'\n]*'
> added} module } }
neither module file contains "Reachable GMF" at all, with ::printf or
otherwise.
> Which I suppose maybe also should be updated in the same way; I guess
> they don't fail on Solaris because they aren't actually correctly
> testing what they think they are.
Perhaps, but it would be useful to first understand what those tests are
supposed to look like. WRT global-3_a.C, printf doesn't occur at all,
so this may just be a case of copy-and-paste.
Maybe Nathan, who authored the tests, can shed some light.
> Otherwise LGTM.
Thanks. I'll go ahead and commit the patch as is, asjusting the other
two once it's become clear what they should look like.
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University