// RUN: grep -Ev "// *[A-Z-]+:" %s > %t.cpp
// RUN: clang-modernize -loop-convert %t.cpp -- -I %S/Inputs
// RUN: FileCheck -input-file=%t.cpp %s
// RUN: clang-modernize -loop-convert %t.cpp -risk=risky -- -I %S/Inputs
// RUN: FileCheck -check-prefix=RISKY -input-file=%t.cpp %s

#include "structures.h"

void f() {
  const int N = 5;
  const int M = 7;
  int (*pArr)[N];
  int Arr[N][M];
  int sum = 0;

  for (int i = 0; i < M; ++i) {
    sum += Arr[0][i];
  }
  // CHECK: for (int i = 0; i < M; ++i) {
  // CHECK-NEXT: sum += Arr[0][i];
  // CHECK-NEXT: }
  // RISKY: for (auto & elem : Arr[0]) {
  // RISKY-NEXT: sum += elem;
  // RISKY-NEXT: }

  for (int i = 0; i < N; ++i) {
    sum += (*pArr)[i];
  }
  // RISKY: for (auto & elem : *pArr) {
  // RISKY-NEXT: sum += elem;
  // RISKY-NEXT: }
  // CHECK: for (int i = 0; i < N; ++i) {
  // CHECK-NEXT: sum += (*pArr)[i];
  // CHECK-NEXT: }
}
