[Bug 2261448] perl-Curses: FTBFS in Fedora rawhide/f40

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

 



https://bugzilla.redhat.com/show_bug.cgi?id=2261448



--- Comment #8 from Petr Pisar <ppisar@xxxxxxxxxx> ---
First error reported in the build.log is:

In file included from Curses.c:434:
CursesWide.c: In function ‘c_wstr2sv’:
CursesWide.c:84:15: error: assignment to ‘wint_t *’ {aka ‘unsigned int *’} from
incompatible pointer type ‘wchar_t *’ {aka ‘long int *’}
[-Wincompatible-pointer-types]
   84 |     for (ws_p = ws; *ws_p; ws_p++) {
      |               ^

The variables are declared like this:

static void
c_wstr2sv(SV *      const sv,
          wchar_t * const ws) {
/*----------------------------------------------------------------------------
  Set SV to a Perl string holding a given wide string
-----------------------------------------------------------------------------*/
    wint_t *ws_p;
    int need_utf8 = 0;
    size_t ws_len = wcslen(ws);

and used like this (the line from the error message):

    for (ws_p = ws; *ws_p; ws_p++) {

C17 standard in 7.29.1 section defines that wint_t is an integer which can hold
any value of the extended character set (i.e. wchar_t) and at least one value
which is not representable in the extended character set (i.e. WEOF). That
means that size of wint_t cannot be less than size of wchar_t. Here on i686
"unsigned int" unsigned 32-bit and "long int" is signed 32-bit. While the
conversion of the extended character value could be preserved (e.g. the
extended charcter set ranges from 0 to 2^21), reinterpreting a wchar_t by a
dereferencing a pointer to a wint_t could mangle the sign because the compiler
thinks that the type have a different rank.

Either it's a bug in GCC, or something incorrectly redigined the types, or it
works as intended and one only need to explicitly cast "ws_p = (wint_t*)ws". I
would the have dig deeper.


-- 
You are receiving this mail because:
You are on the CC list for the bug.
https://bugzilla.redhat.com/show_bug.cgi?id=2261448

Report this comment as SPAM: https://bugzilla.redhat.com/enter_bug.cgi?product=Bugzilla&format=report-spam&short_desc=Report%20of%20Bug%202261448%23c8
--
_______________________________________________
perl-devel mailing list -- perl-devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to perl-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/perl-devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Legacy Announce]     [Fedora PHP Devel]     [Kernel Devel]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite Information]

  Powered by Linux