diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2011-05-02 19:39:53 +0000 |
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2011-05-02 19:39:53 +0000 |
| commit | 01af97d3b23bded2b2b21af19bbc6e4cce49e5b3 (patch) | |
| tree | 64a10f4c4154739d4a8191d7e1b52ce497f4ebd6 /test/SemaCXX/address-space-newdelete.cpp | |
| parent | c3b054d250cdca485c71845089c316e10610ebad (diff) | |
Notes
Diffstat (limited to 'test/SemaCXX/address-space-newdelete.cpp')
| -rw-r--r-- | test/SemaCXX/address-space-newdelete.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/test/SemaCXX/address-space-newdelete.cpp b/test/SemaCXX/address-space-newdelete.cpp new file mode 100644 index 000000000000..b809cd3fadcc --- /dev/null +++ b/test/SemaCXX/address-space-newdelete.cpp @@ -0,0 +1,24 @@ +// RUN: %clang_cc1 -fsyntax-only -verify %s + +void* operator new (__SIZE_TYPE__ size, void* ptr); +void* operator new[](__SIZE_TYPE__ size, void* ptr); + +typedef int __attribute__((address_space(1))) int_1; + +void test_new(void *p) { + (void)new int_1; // expected-error{{'new' cannot allocate objects of type 'int' in address space '1'}} + (void)new __attribute__((address_space(1))) int; // expected-error{{'new' cannot allocate objects of type 'int' in address space '1'}} + (void)new int_1 [5]; // expected-error{{'new' cannot allocate objects of type 'int' in address space '1'}} + (void)new __attribute__((address_space(1))) int [5]; // expected-error{{'new' cannot allocate objects of type 'int' in address space '1'}} + + // Placement new + (void)new (p) int_1; // expected-error{{'new' cannot allocate objects of type 'int' in address space '1'}} + (void)new (p) __attribute__((address_space(1))) int; // expected-error{{'new' cannot allocate objects of type 'int' in address space '1'}} + (void)new (p) int_1 [5]; // expected-error{{'new' cannot allocate objects of type 'int' in address space '1'}} + (void)new (p) __attribute__((address_space(1))) int [5]; // expected-error{{'new' cannot allocate objects of type 'int' in address space '1'}} +} + +void test_delete(int_1 *ip1) { + delete ip1; // expected-error{{'delete' cannot delete objects of type 'int' in address space '1'}} + delete [] ip1; // expected-error{{'delete' cannot delete objects of type 'int' in address space '1'}} +} |
