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

typedef __attribute__((ext_vector_type(2)))  char char2;
typedef __attribute__((ext_vector_type(4)))  unsigned int uint4;
typedef __attribute__((ext_vector_type(8)))  long long8;
typedef __attribute__((ext_vector_type(4)))  float float4;

void vectorIncrementDecrementOps(void)
{
  char2 A = (char2)(1);
  uint4 B = (uint4)(1);
  long8 C = (long8)(1);

  A++;
  --A;
  B--;
  ++B;
  C++;
}

void invalidIncrementDecrementOps(void) {
  ((float4)(1.0f))++; // expected-error{{cannot increment value of type 'float4'}}
  float4 i;
  ++i; // expected-error{{cannot increment value of type '__private float4'}}
  i--; // expected-error{{cannot decrement value of type '__private float4'}}
}
