<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Mar 7, 2020 at 8:45 AM Jed Brown <<a href="mailto:jed@jedbrown.org">jed@jedbrown.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Satish Balay <<a href="mailto:balay@mcs.anl.gov" target="_blank">balay@mcs.anl.gov</a>> writes:<br>
<br>
> On Fri, 6 Mar 2020, Jed Brown wrote:<br>
>>   PetscInt some,several,variables;<br>
>> <br>
>>   // code<br>
>>   if (PetscDefined(HAVE_MAGIC)) {<br>
>>     function(several,&variables);<br>
>>   }<br>
>>   use(some,variables);<br>
><br>
> One minor issue: we haven't yet fixed up clang analyzer build. Likely this will be listed as 'dead code' block or something like that.<br>
<br>
As with #ifdef, accurate code coverage needs to be aggregated across<br>
multiple configurations.  Are you aware of other problems?<br></blockquote><div>I guess gcov should be able to aggregate results of different runs. Remember that we investigated a related issue and concluded that it is safe for multiple MPI ranks to write the same gcov file simultaneously.</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
>> This approach could also be used to avoid needing separate macros for<br>
>> every SETERRQ1-SETERRQ9, etc.  I have an example implementation in this<br>
>> MR, and it passes the full pipeline (after relaxing the -std=c89<br>
>> -pedantic build).<br>
><br>
> These are in public includes. So apps using -std=c89 won't have access to this part of the API?<br>
<br>
Oh, I would keep the macros for a while (perhaps with gradual<br>
deprecation starting eventually), just define the new ones for supported<br>
dialects and use the new ones internally.<br>
</blockquote></div></div>