This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c/65452] strcmp (foo, foo) could give a warning
- From: "mpolacek at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 25 Oct 2016 15:42:06 +0000
- Subject: [Bug c/65452] strcmp (foo, foo) could give a warning
- Auto-submitted: auto-generated
- References: <bug-65452-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65452
--- Comment #9 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Testcase:
#include <string.h>
#define STR1 "str"
#define STR2 "str"
#define S1 (s)
#define S2 (s)
int
f (const char *s)
{
int r = 0;
r += strcmp (s, s) == 0;
r += __builtin_strcmp (s, s) == 0;
r += strcmp ("s", "s") == 0;
r += __builtin_strcmp ("s", "s") == 0;
r += strcmp ((const char *) 0, "s") == 0;
r += __builtin_strcmp ((const char *) 0, "s") == 0;
r += strcmp ((const char *) 0, (const char *) 0) == 0;
r += __builtin_strcmp ((const char *) 0, (const char *) 0) == 0;
r += strcmp (STR1, STR2) == 0;
r += __builtin_strcmp (STR1, STR2) == 0;
r += strcmp (STR1, "str") == 0;
r += __builtin_strcmp (STR1, "str") == 0;
r += strcmp ("str", STR2) == 0;
r += __builtin_strcmp ("str", STR2) == 0;
r += strcmp (S1, S2) == 0;
r += __builtin_strcmp (S1, S2) == 0;
r += strcmp (S1, s) == 0;
r += __builtin_strcmp (S1, s) == 0;
r += strcmp (s, S2) == 0;
r += __builtin_strcmp (s, S2) == 0;
return r;
}