https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91258
--- Comment #9 from Martin Sebor <msebor at gcc dot gnu.org> --- Is this just before the warning is printed? (In my build the function is called three times, each time with a slightly different tree node, but never with an argument that sets is_char_store to true.) >From the dump I don't see how the MEM_REF can cause is_char_store to be true. Its type is a 32-bit int so the first call to is_char_type returns false. The if block then considers the type of operand 0 (the ADDR_EXPR) which is a POINTER_TYPE to ARRAY_TYPE of 4 byte ints. Can you step through the code to see if this is really the node that results in is_char_type returning true?