June 13, 2022 [Issue 23184] New: importC: array division with sizeof is problematic | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=23184 Issue ID: 23184 Summary: importC: array division with sizeof is problematic Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: blocker Priority: P1 Component: dmd Assignee: nobody@puremagic.com Reporter: ryuukk.dev@gmail.com I have no clue how it is called, pardon my ignorance, but i came across that snippet of code that is causing an issue: ``` static const char nk_utfmask[4 +1] = {0xC0, 0x80, 0xE0, 0xF0, 0xF8}; void test() { int a = (int)(sizeof(nk_utfmask)/sizeof(nk_utfmask)[0]); } ``` it is the result of that macro: [1] called here: [2] using clang preprocessor the actual code: ``` static nk_rune nk_utf_decode_byte(char c, int *i) { ((i) ? (void)0 : __assert_func ("./nuklear_all.h", 7976, __func__, "i")); if (!i) return 0; for(*i = 0; *i < (int)(sizeof(nk_utfmask)/sizeof(nk_utfmask)[0]); ++(*i)) { if (((nk_byte)c & nk_utfmask[*i]) == nk_utfbyte[*i]) return (nk_byte)(c & ~nk_utfmask[*i]); } return 0; } ``` [1] https://github.com/Immediate-Mode-UI/Nuklear/blob/11d8acfd4fbb9d0966161fa01d58be15be1974e3/src/nuklear.h#L5455 [2] https://github.com/Immediate-Mode-UI/Nuklear/blob/11d8acfd4fbb9d0966161fa01d58be15be1974e3/src/nuklear_utf8.c#L30 -- |
Copyright © 1999-2021 by the D Language Foundation