// RUN: %clang_cc1 -fsyntax-only -verify -fenable-matrix %s struct Foo {}; __attribute__((objc_root_class)) @interface FooValue @property struct Foo value; @end typedef double double4x4 __attribute__((matrix_type(4, 4))); // Check that we generate proper error messages for invalid placeholder types. // double test_index_placeholders(double4x4 m, FooValue *iv) { return m[iv.value][iv.value]; // expected-error@-1 {{matrix row index is not an integer}} // expected-error@-2 {{matrix column index is not an integer}} } double test_base_and_index_placeholders(FooValue *m, FooValue *iv) { return m.value[iv.value][iv.value]; // expected-error@-1 {{subscripted value is not an array, pointer, or vector}} }