brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · 365187a Raw
53 lines · plain
1// RUN: %clang_cc1 %s -triple spir-unknown-unknown -cl-std=clc++ -verify -fsyntax-only2// RUN: %clang_cc1 %s -triple spir-unknown-unknown -cl-std=clc++ -verify -fsyntax-only -fexceptions -fcxx-exceptions3 4// This test checks that various C++ and OpenCL C keywords are not available5// in OpenCL.6 7// Test that exceptions are disabled despite passing -fcxx-exceptions.8kernel void test_exceptions() {9  int x;10  try {11    // expected-error@-1 {{cannot use 'try' with exceptions disabled}}12    throw 0;13    // expected-error@-1 {{cannot use 'throw' with exceptions disabled}}14  } catch (int i) {15    x = 41;16  }17}18 19// Test that only __-prefixed address space qualifiers are accepted.20struct test_address_space_qualifiers {21  global int *g;22  __global int *uug;23  int global; // expected-warning{{declaration does not declare anything}}24 25  local int *l;26  __local int *uul;27  int local; // expected-warning{{declaration does not declare anything}}28 29  private int *p;30  __private int *uup;31  int private; // expected-warning{{declaration does not declare anything}}32 33  constant int *c;34  __constant int *uuc;35  int constant; // expected-warning{{declaration does not declare anything}}36 37  generic int *ge;38  __generic int *uuge;39  int generic; // expected-warning{{declaration does not declare anything}}40};41 42// Test that 'private' can be parsed as an access qualifier and an address space too.43class A{44  private:45  private int i; //expected-error{{field may not be qualified with an address space}}46};47 48private ::A i; //expected-error{{program scope variable must reside in global or constant address space}}49 50void foo(private int i);51 52private int bar(); //expected-error{{return type cannot be qualified with address space}}53