tree: Don't reuse types if TYPE_USER_ALIGN differ [PR94775]
[official-gcc.git] / gcc / testsuite / g++.dg / warn / Wstringop-overflow-2.C
blob425ba83841b3e0e2fb8ad2c1d5c8f75f36b8303d
1 /* PR tree-optimization/89688 - -Wstringop-overflow confused by const 2D
2    array of char
3    { dg-do compile }
4    { dg-options "-Wall -fdump-tree-gimple -fdump-tree-optimized" } */
6 extern "C" __SIZE_TYPE__ strlen (const char*);
8 const char a2[2] = { '1' };
10 void a2_len ()
12   if (strlen (a2) != 1)
13     __builtin_abort ();
16 const char a2_2[2][3] = { { '1' }, { '1', '2' } };
18 void a2_2_len ()
20   if  (strlen (a2_2[0]) != 1)   // { dg-bogus "-Wstringop-overflow" }
21     __builtin_abort ();
23   if  (strlen (a2_2[1]) != 2)   // { dg-bogus "-Wstringop-overflow" }
24     __builtin_abort ();
28 /* { dg-final { scan-tree-dump-not "abort" "optimized" } }
29    { dg-final { scan-tree-dump-not "strlen" "gimple" } } */