// RUN: %clang_cc1 %s -verify -pedantic -fsyntax-only -cl-std=CL2.0
// RUN: %clang_cc1 %s -verify -pedantic -fsyntax-only -cl-std=clc++

// Taken from opencl-c.h
#define CLK_NULL_EVENT (__builtin_astype(((__SIZE_MAX__)), clk_event_t))

global clk_event_t ce; // expected-error {{the '__global clk_event_t' type cannot be used to declare a program scope variable}}

int clk_event_tests(void) {
  event_t e;
  clk_event_t ce1;
  clk_event_t ce2;
  clk_event_t ce3 = CLK_NULL_EVENT;

  // FIXME: Not obvious if this should give an error as if it was in program scope.
  static clk_event_t ce4;

  if (e == ce1) { // expected-error {{invalid operands to binary expression ('__private event_t' and '__private clk_event_t')}}
    return 9;
  }

  if (ce1 != ce2) {
    return 1;
  }
  else if (ce1 == CLK_NULL_EVENT || ce2 != CLK_NULL_EVENT) {
    return 0;
  }

  return 2;
}
