189a1d03eSRichard // RUN: %check_clang_tidy %s bugprone-suspicious-memory-comparison %t \ 289a1d03eSRichard // RUN: -- -- -target i386-unknown-unknown 389a1d03eSRichard 489a1d03eSRichard static_assert(sizeof(int *) == sizeof(int)); 589a1d03eSRichard 689a1d03eSRichard namespace std { 789a1d03eSRichard typedef __SIZE_TYPE__ size_t; 889a1d03eSRichard int memcmp(const void *lhs, const void *rhs, size_t count); 989a1d03eSRichard } // namespace std 1089a1d03eSRichard 1189a1d03eSRichard namespace no_padding_on_32bit { 1289a1d03eSRichard struct S { 1389a1d03eSRichard int x; 1489a1d03eSRichard int *y; 1589a1d03eSRichard }; 1689a1d03eSRichard test()1789a1d03eSRichardvoid test() { 1889a1d03eSRichard S a, b; 1989a1d03eSRichard std::memcmp(&a, &b, sizeof(S)); 2089a1d03eSRichard } 2189a1d03eSRichard } // namespace no_padding_on_32bit 2289a1d03eSRichard 2389a1d03eSRichard namespace inner_padding { 2489a1d03eSRichard struct S { 2589a1d03eSRichard char x; 2689a1d03eSRichard int y; 2789a1d03eSRichard }; test()2889a1d03eSRichardvoid test() { 2989a1d03eSRichard S a, b; 3089a1d03eSRichard std::memcmp(&a, &b, sizeof(S)); 31*15f3cd6bSMatheus Izvekov // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: comparing object representation of type 'S' which does not have a unique object representation; consider comparing the members of the object manually 3289a1d03eSRichard } 3389a1d03eSRichard } // namespace inner_padding 34