// RUN: %clang_cc1 -fsyntax-only -verify %s

typedef int Arr[10];

typedef int trungl_int;

void f(int a[10], Arr arr) { // expected-note 4 {{declared here}}

  /* Should warn. */
  (void)sizeof(a);  // \
      // expected-warning{{sizeof on array function parameter will return size of 'int *' instead of 'int[10]'}}
  (void)sizeof((((a))));  // \
      // expected-warning{{sizeof on array function parameter will return size of 'int *' instead of 'int[10]'}}
  (void)sizeof a;  // \
      // expected-warning{{sizeof on array function parameter will return size of 'int *' instead of 'int[10]'}}
  (void)sizeof arr;  // \
      // expected-warning{{sizeof on array function parameter will return size of 'int *' instead of 'Arr' (aka 'int[10]')}}

  /* Shouldn't warn. */
  int b[10];
  (void)sizeof b;
  Arr brr;
  (void)sizeof brr;
  (void)sizeof(Arr);
  (void)sizeof(int);
}
