Çözüldü libthecore Warning

Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

MEKA

Discord: mekaprojects
Süper Moderatör
Premium Üye
Grafiker
Geliştirici
Yardımsever Üye
Editör
Mesaj
2.746
Çözümler
286
Beğeni
1.989
Puan
1.349
Çözümünü bildiğiniz warningler var ise yardımcı olursanız sevinirim.

fdwatch.c:
fdwatch.c: In function 'void fdwatch_clear_event(LPFDWATCH, socket_t, unsigned int)':
fdwatch.c:165:19: warning: comparison of integer expressions of different signedness: 'unsigned int' and 'int' [-Wsign-compare]
  165 |  assert(event_idx < fdw->nfiles * 2);
      |         ~~~~~~~~~~^~~~~~~~~~~~~~~~~
fdwatch.c:167:38: warning: comparison of integer expressions of different signedness: '__uintptr_t' {aka 'unsigned int'} and 'socket_t' {aka 'int'} [-Wsign-compare]
  167 |  if (fdw->kqrevents[event_idx].ident != fd)
      |      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
In file included from ../include/stdafx.h:95,
                 from fdwatch.c:2:
fdwatch.c: In function 'int fdwatch_check_event(LPFDWATCH, socket_t, unsigned int)':
fdwatch.c:175:19: warning: comparison of integer expressions of different signedness: 'unsigned int' and 'int' [-Wsign-compare]
  175 |  assert(event_idx < fdw->nfiles * 2);
      |         ~~~~~~~~~~^~~~~~~~~~~~~~~~~
fdwatch.c:177:38: warning: comparison of integer expressions of different signedness: '__uintptr_t' {aka 'unsigned int'} and 'socket_t' {aka 'int'} [-Wsign-compare]
  177 |  if (fdw->kqrevents[event_idx].ident != fd)
      |      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
In file included from ../include/stdafx.h:95,
                 from fdwatch.c:2:
fdwatch.c: In function 'int fdwatch_get_ident(LPFDWATCH, unsigned int)':
fdwatch.c:209:19: warning: comparison of integer expressions of different signedness: 'unsigned int' and 'int' [-Wsign-compare]
  209 |  assert(event_idx < fdw->nfiles * 2);
      |         ~~~~~~~~~~^~~~~~~~~~~~~~~~~
fdwatch.c: In function 'void* fdwatch_get_client_data(LPFDWATCH, unsigned int)':
fdwatch.c:227:19: warning: comparison of integer expressions of different signedness: 'unsigned int' and 'int' [-Wsign-compare]
  227 |  assert(event_idx < fdw->nfiles * 2);

hungul.c:
hangul.c: In function 'const char* first_han(const BYTE*)':
hangul.c:47:15: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
   47 |     char *p = "�׿�";

DES_table.h:
DES_table.h:164:14: warning: 'KeyPerm' defined but not used [-Wunused-variable]
  164 | static DWORD KeyPerm[8][64] =
      |
 
Çözüm
event_idx zaten unsigned int
Kusura bakma uyku sersemi baktım yanlış görmüşüm fdw unsigned int olacak, örnek şu şekil olabilir ;

C++:
assert (event_idx < (unsigned int)fdw->nfiles * 2);

Hangul.c UFT8 demişim ANSI'de olabilir ama içeriğin bu şekilde olması gerek ;

C++:
const char* first_han (const BYTE* str)
{
    unsigned char high, low;
    int len, i;
    const char* p = "±×¿Ü";

    static const char* wansung[] =
    {
        "°¡", "°¡", "³ª", "´Ù", "´Ù",
        "¶ó", "¸¶", "¹Ù", "¹Ù", "»ç",
        "»ç", "¾Æ", "ÀÚ", "ÀÚ", "Â÷",
        "Ä«", "Ÿ", "ÆÄ", "ÇÏ", ""
    };

    static const char* johab[] =
    {
        "ˆa", "Œa", "a", "”a", "˜a",
        "œa", " a", "?", "?", "?",
        "?", "?", "?", "?", "?"...
Kod:
DES_table.h:164:14: warning: 'KeyPerm' defined but not used [-Wunused-variable]
  164 | static DWORD KeyPerm[8][64] =
      |

KeyPerm tanımlanmış ama kullanılmıyor diyor. Kontrol et, eğer gerçekten hiç bir yerde kullanılmıyorsa sil gitsin.
 
Kod:
DES_table.h:164:14: warning: 'KeyPerm' defined but not used [-Wunused-variable]
  164 | static DWORD KeyPerm[8][64] =
      |

KeyPerm tanımlanmış ama kullanılmıyor diyor. Kontrol et, eğer gerçekten hiç bir yerde kullanılmıyorsa sil gitsin.
C++:
static DWORD KeyPerm[8][64] =
{
    /* for C bits (numbered as per FIPS 46) 1 2 3 4 5 6 */
    {
    0x00000000,0x00000010,0x20000000,0x20000010,
    0x00010000,0x00010010,0x20010000,0x20010010,
    0x00000800,0x00000810,0x20000800,0x20000810,
    0x00010800,0x00010810,0x20010800,0x20010810,
    0x00000020,0x00000030,0x20000020,0x20000030,
    0x00010020,0x00010030,0x20010020,0x20010030,
    0x00000820,0x00000830,0x20000820,0x20000830,
    0x00010820,0x00010830,0x20010820,0x20010830,
    0x00080000,0x00080010,0x20080000,0x20080010,
    0x00090000,0x00090010,0x20090000,0x20090010,
    0x00080800,0x00080810,0x20080800,0x20080810,
    0x00090800,0x00090810,0x20090800,0x20090810,
    0x00080020,0x00080030,0x20080020,0x20080030,
    0x00090020,0x00090030,0x20090020,0x20090030,
    0x00080820,0x00080830,0x20080820,0x20080830,
    0x00090820,0x00090830,0x20090820,0x20090830
    },

    /* for C bits (numbered as per FIPS 46) 7 8 10 11 12 13 */
    {
    0x00000000,0x02000000,0x00002000,0x02002000,
    0x00200000,0x02200000,0x00202000,0x02202000,
    0x00000004,0x02000004,0x00002004,0x02002004,
    0x00200004,0x02200004,0x00202004,0x02202004,
    0x00000400,0x02000400,0x00002400,0x02002400,
    0x00200400,0x02200400,0x00202400,0x02202400,
    0x00000404,0x02000404,0x00002404,0x02002404,
    0x00200404,0x02200404,0x00202404,0x02202404,
    0x10000000,0x12000000,0x10002000,0x12002000,
    0x10200000,0x12200000,0x10202000,0x12202000,
    0x10000004,0x12000004,0x10002004,0x12002004,
    0x10200004,0x12200004,0x10202004,0x12202004,
    0x10000400,0x12000400,0x10002400,0x12002400,
    0x10200400,0x12200400,0x10202400,0x12202400,
    0x10000404,0x12000404,0x10002404,0x12002404,
    0x10200404,0x12200404,0x10202404,0x12202404
    },

    /* for C bits (numbered as per FIPS 46) 14 15 16 17 19 20 */
    {
    0x00000000,0x00000001,0x00040000,0x00040001,
    0x01000000,0x01000001,0x01040000,0x01040001,
    0x00000002,0x00000003,0x00040002,0x00040003,
    0x01000002,0x01000003,0x01040002,0x01040003,
    0x00000200,0x00000201,0x00040200,0x00040201,
    0x01000200,0x01000201,0x01040200,0x01040201,
    0x00000202,0x00000203,0x00040202,0x00040203,
    0x01000202,0x01000203,0x01040202,0x01040203,
    0x08000000,0x08000001,0x08040000,0x08040001,
    0x09000000,0x09000001,0x09040000,0x09040001,
    0x08000002,0x08000003,0x08040002,0x08040003,
    0x09000002,0x09000003,0x09040002,0x09040003,
    0x08000200,0x08000201,0x08040200,0x08040201,
    0x09000200,0x09000201,0x09040200,0x09040201,
    0x08000202,0x08000203,0x08040202,0x08040203,
    0x09000202,0x09000203,0x09040202,0x09040203
    },

    /* for C bits (numbered as per FIPS 46) 21 23 24 26 27 28 */
    {
    0x00000000,0x00100000,0x00000100,0x00100100,
    0x00000008,0x00100008,0x00000108,0x00100108,
    0x00001000,0x00101000,0x00001100,0x00101100,
    0x00001008,0x00101008,0x00001108,0x00101108,
    0x04000000,0x04100000,0x04000100,0x04100100,
    0x04000008,0x04100008,0x04000108,0x04100108,
    0x04001000,0x04101000,0x04001100,0x04101100,
    0x04001008,0x04101008,0x04001108,0x04101108,
    0x00020000,0x00120000,0x00020100,0x00120100,
    0x00020008,0x00120008,0x00020108,0x00120108,
    0x00021000,0x00121000,0x00021100,0x00121100,
    0x00021008,0x00121008,0x00021108,0x00121108,
    0x04020000,0x04120000,0x04020100,0x04120100,
    0x04020008,0x04120008,0x04020108,0x04120108,
    0x04021000,0x04121000,0x04021100,0x04121100,
    0x04021008,0x04121008,0x04021108,0x04121108
    },

    /* for D bits (numbered as per FIPS 46) 1 2 3 4 5 6 */
    {
    0x00000000,0x10000000,0x00010000,0x10010000,
    0x00000004,0x10000004,0x00010004,0x10010004,
    0x20000000,0x30000000,0x20010000,0x30010000,
    0x20000004,0x30000004,0x20010004,0x30010004,
    0x00100000,0x10100000,0x00110000,0x10110000,
    0x00100004,0x10100004,0x00110004,0x10110004,
    0x20100000,0x30100000,0x20110000,0x30110000,
    0x20100004,0x30100004,0x20110004,0x30110004,
    0x00001000,0x10001000,0x00011000,0x10011000,
    0x00001004,0x10001004,0x00011004,0x10011004,
    0x20001000,0x30001000,0x20011000,0x30011000,
    0x20001004,0x30001004,0x20011004,0x30011004,
    0x00101000,0x10101000,0x00111000,0x10111000,
    0x00101004,0x10101004,0x00111004,0x10111004,
    0x20101000,0x30101000,0x20111000,0x30111000,
    0x20101004,0x30101004,0x20111004,0x30111004
    },

    /* for D bits (numbered as per FIPS 46) 8 9 11 12 13 14 */
    {
    0x00000000,0x08000000,0x00000008,0x08000008,
    0x00000400,0x08000400,0x00000408,0x08000408,
    0x00020000,0x08020000,0x00020008,0x08020008,
    0x00020400,0x08020400,0x00020408,0x08020408,
    0x00000001,0x08000001,0x00000009,0x08000009,
    0x00000401,0x08000401,0x00000409,0x08000409,
    0x00020001,0x08020001,0x00020009,0x08020009,
    0x00020401,0x08020401,0x00020409,0x08020409,
    0x02000000,0x0A000000,0x02000008,0x0A000008,
    0x02000400,0x0A000400,0x02000408,0x0A000408,
    0x02020000,0x0A020000,0x02020008,0x0A020008,
    0x02020400,0x0A020400,0x02020408,0x0A020408,
    0x02000001,0x0A000001,0x02000009,0x0A000009,
    0x02000401,0x0A000401,0x02000409,0x0A000409,
    0x02020001,0x0A020001,0x02020009,0x0A020009,
    0x02020401,0x0A020401,0x02020409,0x0A020409
    },

    /* for D bits (numbered as per FIPS 46) 16 17 18 19 20 21 */
    {
    0x00000000,0x00000100,0x00080000,0x00080100,
    0x01000000,0x01000100,0x01080000,0x01080100,
    0x00000010,0x00000110,0x00080010,0x00080110,
    0x01000010,0x01000110,0x01080010,0x01080110,
    0x00200000,0x00200100,0x00280000,0x00280100,
    0x01200000,0x01200100,0x01280000,0x01280100,
    0x00200010,0x00200110,0x00280010,0x00280110,
    0x01200010,0x01200110,0x01280010,0x01280110,
    0x00000200,0x00000300,0x00080200,0x00080300,
    0x01000200,0x01000300,0x01080200,0x01080300,
    0x00000210,0x00000310,0x00080210,0x00080310,
    0x01000210,0x01000310,0x01080210,0x01080310,
    0x00200200,0x00200300,0x00280200,0x00280300,
    0x01200200,0x01200300,0x01280200,0x01280300,
    0x00200210,0x00200310,0x00280210,0x00280310,
    0x01200210,0x01200310,0x01280210,0x01280310
    },

    /* for D bits (numbered as per FIPS 46) 22 23 24 25 27 28 */
    {
    0x00000000,0x04000000,0x00040000,0x04040000,
    0x00000002,0x04000002,0x00040002,0x04040002,
    0x00002000,0x04002000,0x00042000,0x04042000,
    0x00002002,0x04002002,0x00042002,0x04042002,
    0x00000020,0x04000020,0x00040020,0x04040020,
    0x00000022,0x04000022,0x00040022,0x04040022,
    0x00002020,0x04002020,0x00042020,0x04042020,
    0x00002022,0x04002022,0x00042022,0x04042022,
    0x00000800,0x04000800,0x00040800,0x04040800,
    0x00000802,0x04000802,0x00040802,0x04040802,
    0x00002800,0x04002800,0x00042800,0x04042800,
    0x00002802,0x04002802,0x00042802,0x04042802,
    0x00000820,0x04000820,0x00040820,0x04040820,
    0x00000822,0x04000822,0x00040822,0x04040822,
    0x00002820,0x04002820,0x00042820,0x04042820,
    0x00002822,0x04002822,0x00042822,0x04042822
    }
};

Böyle değişik bir şey olduğu için silmek istemedim.
 
fdwatch.c kısmında event_idx leri unsigned int olarak göster, hungul.c yi UFT8 formatına dönüştür, KeyPerm kod bloğunu tamamen sil çünkü işlevsiz.Bunlar sıkıntılarını çözecektir.
 
fdwatch.c kısmında event_idx leri unsigned int olarak göster, hungul.c yi UFT8 formatına dönüştür, KeyPerm kod bloğunu tamamen sil çünkü işlevsiz.Bunlar sıkıntılarını çözecektir.
event_idx zaten unsigned int
 
event_idx zaten unsigned int
Kusura bakma uyku sersemi baktım yanlış görmüşüm fdw unsigned int olacak, örnek şu şekil olabilir ;

C++:
assert (event_idx < (unsigned int)fdw->nfiles * 2);

Hangul.c UFT8 demişim ANSI'de olabilir ama içeriğin bu şekilde olması gerek ;

C++:
const char* first_han (const BYTE* str)
{
    unsigned char high, low;
    int len, i;
    const char* p = "±×¿Ü";

    static const char* wansung[] =
    {
        "°¡", "°¡", "³ª", "´Ù", "´Ù",
        "¶ó", "¸¶", "¹Ù", "¹Ù", "»ç",
        "»ç", "¾Æ", "ÀÚ", "ÀÚ", "Â÷",
        "Ä«", "Ÿ", "ÆÄ", "ÇÏ", ""
    };

    static const char* johab[] =
    {
        "ˆa", "Œa", "a", "”a", "˜a",
        "œa", " a", "?", "?", "?",
        "?", "?", "?", "?", "?",
        "?", "?", "?", "?", ""
    };

KeyPerm ise dediğim gibi tamamen işlevsiz, gönül rahatlığıyla silebilirsin.Kolay gelsin.
 
Çözüm
Kod:
fdwatch.c: In function 'void fdwatch_clear_event(LPFDWATCH, socket_t, unsigned int)':
fdwatch.c:167:38: warning: comparison of integer expressions of different signedness: '__uintptr_t' {aka 'unsigned int'} and 'socket_t' {aka 'int'} [-Wsign-compare]
  167 |  if (fdw->kqrevents[event_idx].ident != fd)
      |      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
fdwatch.c: In function 'int fdwatch_check_event(LPFDWATCH, socket_t, unsigned int)':
fdwatch.c:177:38: warning: comparison of integer expressions of different signedness: '__uintptr_t' {aka 'unsigned int'} and 'socket_t' {aka 'int'} [-Wsign-compare]
  177 |  if (fdw->kqrevents[event_idx].ident != fd)
      |      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~

Bu dosyaya ait sadece bu warningler kaldı.
 
Kod:
fdwatch.c: In function 'void fdwatch_clear_event(LPFDWATCH, socket_t, unsigned int)':
fdwatch.c:167:38: warning: comparison of integer expressions of different signedness: '__uintptr_t' {aka 'unsigned int'} and 'socket_t' {aka 'int'} [-Wsign-compare]
  167 |  if (fdw->kqrevents[event_idx].ident != fd)
      |      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
fdwatch.c: In function 'int fdwatch_check_event(LPFDWATCH, socket_t, unsigned int)':
fdwatch.c:177:38: warning: comparison of integer expressions of different signedness: '__uintptr_t' {aka 'unsigned int'} and 'socket_t' {aka 'int'} [-Wsign-compare]
  177 |  if (fdw->kqrevents[event_idx].ident != fd)
      |      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~

Bu dosyaya ait sadece bu warningler kaldı.

Hatanın kod bloğunu paylaşabilir misin?
 
Hatanın kod bloğunu paylaşabilir misin?
C:
void fdwatch_clear_event(LPFDWATCH fdw, socket_t fd, unsigned int event_idx)
{
    assert(event_idx < fdw->nfiles * 2);

    if (fdw->kqrevents[event_idx].ident != fd)
    return;

    fdw->kqrevents[event_idx].ident = 0;
}
 
C:
void fdwatch_clear_event(LPFDWATCH fdw, socket_t fd, unsigned int event_idx)
{
    assert(event_idx < fdw->nfiles * 2);

    if (fdw->kqrevents[event_idx].ident != fd)
    return;

    fdw->kqrevents[event_idx].ident = 0;
}

C++:
void fdwatch_clear_event(LPFDWATCH fdw, socket_t fd, unsigned int event_idx)
{
    //assert(event_idx < fdw->nfiles * 2);
    assert (event_idx < (unsigned int)fdw->nfiles * 2);
    
    if (fdw->kqrevents[event_idx].ident != fd)
    return;

    fdw->kqrevents[event_idx].ident = 0;
}

Bu şekilde bu warningte çözülecektir.
 
C++:
void fdwatch_clear_event(LPFDWATCH fdw, socket_t fd, unsigned int event_idx)
{
    //assert(event_idx < fdw->nfiles * 2);
    assert (event_idx < (unsigned int)fdw->nfiles * 2);
   
    if (fdw->kqrevents[event_idx].ident != fd)
    return;

    fdw->kqrevents[event_idx].ident = 0;
}

Bu şekilde bu warningte çözülecektir.
Zaten bu şekilde ayarlamışım verdiği uyarıda şu şekilde
C++:
void fdwatch_clear_event(LPFDWATCH fdw, socket_t fd, unsigned int event_idx)
{
    assert(event_idx < (unsigned int)fdw->nfiles * 2);

    if (fdw->kqrevents[event_idx].ident != fd)
    return;

    fdw->kqrevents[event_idx].ident = 0;
}

int fdwatch_check_event(LPFDWATCH fdw, socket_t fd, unsigned int event_idx)
{
    assert(event_idx < (unsigned int)fdw->nfiles * 2);

    if (fdw->kqrevents[event_idx].ident != fd)
    return 0;

    if (fdw->kqrevents[event_idx].flags & EV_ERROR)
    return FDW_EOF;

    if (fdw->kqrevents[event_idx].flags & EV_EOF)
    return FDW_EOF;

    if (fdw->kqrevents[event_idx].filter == EVFILT_READ)
    {
        if (fdw->fd_rw[fd] & FDW_READ)
            return FDW_READ;
    }
    else if (fdw->kqrevents[event_idx].filter == EVFILT_WRITE)
    {
        if (fdw->fd_rw[fd] & FDW_WRITE)
        {
            if (fdw->fd_rw[fd] & FDW_WRITE_ONESHOT)
            fdw->fd_rw[fd] &= ~FDW_WRITE;

            return FDW_WRITE;
        }
    }
    else
    sys_err("fdwatch_check_event: Unknown filter %d (descriptor %d)", fdw->kqrevents[event_idx].filter, fd);

    return 0;
}

Kod:
fdwatch.c: In function 'void fdwatch_clear_event(LPFDWATCH, socket_t, unsigned int)':
fdwatch.c:167:38: warning: comparison of integer expressions of different signedness: '__uintptr_t' {aka 'unsigned int'} and 'socket_t' {aka 'int'} [-Wsign-compare]
  167 |  if (fdw->kqrevents[event_idx].ident != fd)
      |      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
fdwatch.c: In function 'int fdwatch_check_event(LPFDWATCH, socket_t, unsigned int)':
fdwatch.c:177:38: warning: comparison of integer expressions of different signedness: '__uintptr_t' {aka 'unsigned int'} and 'socket_t' {aka 'int'} [-Wsign-compare]
  177 |  if (fdw->kqrevents[event_idx].ident != fd)
      |      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
 
Uyarı: Farklı imzalı/imzasız tamsayı ifadelerinin karşılaştırılması.

C++:
'__uintptr_t' {aka 'unsigned int'} and 'socket_t' {aka 'int'}

'__uintptr_t' diğer adıyla 'unsigned int' imzalı ifadenin, 'socket_t' diğer adıyla 'int' imzasız tam sayı ifadelerinin karşılaştırılması. Sonuç olarak 'socket_t' ifadesini bir imzalı tamsayı ifadesi olarak tanıtmamız çözüm olabilir.

Altta ki kısmı bu şekilde değiştirir misiniz?

C++:
void fdwatch_clear_event(LPFDWATCH fdw, unsigned int socket_t fd, unsigned int event_idx)

Yada;

C++:
void fdwatch_clear_event(LPFDWATCH fdw, socket_t fd, event_idx)
 
Son düzenleme:
Uyarı: Farklı imzalı/imzasız tamsayı ifadelerinin karşılaştırılması.

C++:
'__uintptr_t' {aka 'unsigned int'} and 'socket_t' {aka 'int'}

'__uintptr_t' diğer adıyla 'unsigned int' imzalı ifadenin, 'socket_t' diğer adıyla 'int' imzasız tam sayı ifadelerinin karşılaştırılması. Sonuç olarak 'socket_t' ifadesini bir imzalı tamsayı ifadesi olarak tanıtmamız çözüm olabilir.

Altta ki kısmı bu şekilde değiştirir misiniz?

C++:
void fdwatch_clear_event(LPFDWATCH fdw, unsigned int socket_t fd, unsigned int event_idx)

Yada;

C++:
void fdwatch_clear_event(LPFDWATCH fdw, socket_t fd, event_idx)
İşe yaramadı şu şekilde değiştirdim. Uyarı ortadan kalktı.

C++:
socket_t fd

C++:
unsigned int fd
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst