[LV] Add test showing debug output for loops with uncountable BTCs.
[llvm-project.git] / clang / test / SemaCXX / warn-array-comparion.cpp
blob2bd4218f3a27932c6fc1e0312360282e71893876
1 // RUN: %clang_cc1 -std=c++17 -fsyntax-only -verify %s -verify=expected,not-cxx20
2 // RUN: %clang_cc1 -std=c++20 -fsyntax-only -Wno-deprecated-array-compare -verify %s -verify=expected,not-cxx20
3 // RUN: %clang_cc1 -std=c++20 -fsyntax-only -Wdeprecated -verify %s -verify=expected,cxx20
4 // RUN: %clang_cc1 -std=c++26 -fsyntax-only -Wdeprecated -verify %s -verify=expected,cxx26
6 typedef struct {
7 char str[16];
8 int id[16];
9 } Object;
11 bool object_equal(const Object &obj1, const Object &obj2) {
12 if (obj1.str != obj2.str) // not-cxx20-warning {{comparison between two arrays compare their addresses}} cxx20-warning {{comparison between two arrays is deprecated}}
13 return false; // cxx26-error@-1 {{comparison between two arrays is ill-formed in C++26}}
14 if (obj1.id != obj2.id) // not-cxx20-warning {{comparison between two arrays compare their addresses}} cxx20-warning {{comparison between two arrays is deprecated}}
15 return false; // cxx26-error@-1 {{comparison between two arrays is ill-formed in C++26}}
16 return true;
20 void foo(int (&array1)[2], int (&array2)[2]) {
21 if (array1 == array2) { } // not-cxx20-warning {{comparison between two arrays compare their addresses}} cxx20-warning {{comparison between two arrays is deprecated}}
22 // cxx26-error@-1 {{comparison between two arrays is ill-formed in C++26}}