| // RUN: %clang_cc1 %s -triple spir-unknown-unknown -cl-std=clc++ -verify -fsyntax-only |
| // RUN: %clang_cc1 %s -triple spir-unknown-unknown -cl-std=clc++ -verify -fsyntax-only -fexceptions -fcxx-exceptions |
| // This test checks that various C++ and OpenCL C keywords are not available |
| // Test that exceptions are disabled despite passing -fcxx-exceptions. |
| kernel void test_exceptions() { |
| // expected-error@-1 {{cannot use 'try' with exceptions disabled}} |
| // expected-error@-1 {{cannot use 'throw' with exceptions disabled}} |
| // Test that only __-prefixed address space qualifiers are accepted. |
| struct test_address_space_qualifiers { |
| int global; // expected-warning{{declaration does not declare anything}} |
| int local; // expected-warning{{declaration does not declare anything}} |
| int private; // expected-warning{{declaration does not declare anything}} |
| int constant; // expected-warning{{declaration does not declare anything}} |
| int generic; // expected-warning{{declaration does not declare anything}} |
| // Test that 'private' can be parsed as an access qualifier and an address space too. |
| private int i; //expected-error{{field may not be qualified with an address space}} |
| private ::A i; //expected-error{{program scope variable must reside in global or constant address space}} |
| private int bar(); //expected-error{{return type cannot be qualified with address space}} |