blob: 3fcf18a4ad7559ad51290f4763d71e7b183a4e42 [file] [log] [blame]
/* { dg-additional-options "-fdiagnostics-text-art-charset=unicode" } */
/* { dg-skip-if "" { powerpc-ibm-aix* } } */
#include <string.h>
void test (void)
{
char buf[11];
strcpy (buf, "サツキ");
strcat (buf, "メイ"); /* { dg-warning "stack-based buffer overflow" } */
/* { dg-message "write of 5 bytes to beyond the end of 'buf'" "" { target *-*-* } .-1 } */
}
/* { dg-begin-multiline-output "" }
┌──────┬────┐┌────┬────┬────┬────┬──────┐
│ [0] │[1] ││[2] │[3] │[4] │[5] │ [6] │
├──────┼────┤├────┼────┼────┼────┼──────┤
│ 0xe3 │0x83││0xa1│0xe3│0x82│0xa4│ 0x00 │
├──────┴────┴┴────┼────┴────┴────┼──────┤
│ U+30e1 │ U+30a4 │U+0000│
├─────────────────┼──────────────┼──────┤
│ メ │ イ │ NUL │
├─────────────────┴──────────────┴──────┤
│ string literal (type: 'char[7]') │
└───────────────────────────────────────┘
│ │ │ │ │ │ │
│ │ │ │ │ │ │
v v v v v v v
┌────┬────────────────────────────────────────┬──────┬────┐┌──────────────────────────┐
│[0] │ ... │ [9] │[10]││ │
├────┼────┬────┬────┬────┬────┬────┬────┬────┬┼──────┼────┘│ │
│0xe3│0x82│0xb5│0xe3│0x83│0x84│0xe3│0x82│0xad││ 0x00 │ │ │
├────┴────┴────┼────┴────┴────┼────┴────┴────┤├──────┤ │ │
│ U+30b5 │ U+30c4 │ U+30ad ││U+0000│ │ after valid range │
├──────────────┼──────────────┼──────────────┤├──────┤ │ │
│ サ │ ツ │ キ ││ NUL │ │ │
├──────────────┴──────────────┴──────────────┴┴──────┴────┐│ │
│ 'buf' (type: 'char[11]') ││ │
└─────────────────────────────────────────────────────────┘└──────────────────────────┘
├────────────────────────────┬────────────────────────────┤├────────────┬─────────────┤
│ │
╭─────────┴────────╮ ╭─────────┴─────────╮
│capacity: 11 bytes│ │overflow of 5 bytes│
╰──────────────────╯ ╰───────────────────╯
{ dg-end-multiline-output "" } */