Re: Update on the Modern C initiative

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



* Milan Crha:

> On Thu, 2023-11-30 at 18:09 +0100, Florian Weimer wrote:
>> Again, some of these are false positives. 
>
> 	Hi,
> I think the errors from the configure time of the script are not always
> problems, are they? At least in the case of the evolution-data-server,
> it's half a problem and half expected.

Yes, we have definitely need an exception list for implicit function
declarations.

> Specifically, one "configure" (there is used CMake) check tries to
> figure out whether gethostbyname_r() has five arguments. It does not in
> Fedora, thus a) there are passed no enough arguments to the function;
> b) there are incompatible types passed to the function. Both are
> claimed by gcc. The second is due to the first. The result of this
> "source compiles" test is correct, the function does not have five
> arguments.

I don't see this.  The evolution-data-server-3.50.2-1.fc39 and
evolution-data-server-3.50.2-1.fc40 have this:

-- Performing Test HAVE_I_CAL_EMAIL_PARAMETER
-- Performing Test HAVE_I_CAL_EMAIL_PARAMETER - Success

While my test build has:

-- Performing Test HAVE_I_CAL_EMAIL_PARAMETER
-- Performing Test HAVE_I_CAL_EMAIL_PARAMETER - Failed

So the test outcome is altered by the new error.

Furthermore, in the YAML log, I don't see the second error about the
mismatching parameter count:

“
…-build/CMakeFiles/CMakeScratch/TryCompile-HmYCHv/src.c: In function ‘main’:
…-build/CMakeFiles/CMakeScratch/TryCompile-HmYCHv/src.c:5:39: error: assignment to ‘icalparameter *’ {aka ‘struct icalparameter_impl *’} from incompatible pointer type ‘ICalParameter *’
    5 |                                 param = i_cal_property_get_first_parameter (NULL, I_CAL_EMAIL_PARAMETER);
      |                                       ^
…-build/CMakeFiles/CMakeScratch/TryCompile-HmYCHv/src.c:6:60: error: passing argument 1 of ‘i_cal_parameter_get_email’ from incompatible pointer type
    6 |                                 i_cal_parameter_get_email (param);
      |                                                            ^~~~~
      |                                                            |
      |                                                            icalparameter * {aka struct icalparameter_impl *}
In file included from /usr/include/libical-glib/i-cal-parameter.h:28,
                 from /usr/include/libical-glib/i-cal-component.h:27,
                 from /usr/include/libical-glib/libical-glib.h:34,
                 from …-build/CMakeFiles/CMakeScratch/TryCompile-HmYCHv/src.c:2:
/usr/include/libical-glib/i-cal-derived-parameter.h:399:71: note: expected ‘const ICalParameter *’ but argument is of type ‘icalparameter *’ {aka ‘struct icalparameter_impl *’}
          399 | const gchar *   i_cal_parameter_get_email       (const ICalParameter *param);
              |                                                  ~~~~~~~~~~~~~~~~~~~~~^~~~~
”

The instrumented GCC can backpropagate certain errors and suppress the
logging of otherwise critical errors (even if they occurred earlier in
the file), including in some cases if there are too many function
arguments.  However, this suppression heuristic is presently incomplete.
But I don't think it matters here because there is no such error in the
CMake probe.

> Another "configure" check used incorrect arguments in error. I
> corrected it for the development version [1], which should be released
> at the beginning of the next year.

> [1] https://gitlab.gnome.org/GNOME/evolution-data-server/-/commit/55558d3c23e68aada59c5deb59a664aea263f075

Ahh, sorry, I think I looked at this error because that's the only one
that makes it into the critical error log. 8-)

The first one you mentioned has probably been suppressed by the
heuristic.  Still sending this message because it might be helpful to
show how this works.

Thanks,
Florian
--
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux