/* Verify that strcmp doesn't make assumptions about the size of a weak symbol. { dg-do compile } { dg-options "-O2 -Wall" } */ /* An ordinary definition of A with more elements might be provided in another translation unit. Even though that would be undefined (the type of the actual definition must be the same as the type of the weak declaration) this test verifies that GCC doesn't rely on the size of this A for optimization (as a matter of QoI). */ __attribute__ ((weak)) char a[3]; int cmp_a3_x (void) { return __builtin_strcmp (a, "1234567") == 0; }