| // RUN: %clang_cc1 -triple arm64-apple-macosx -Wall -fsyntax-only -verify %s -std=c++26 -fexceptions -fcxx-exceptions |
| // expected-no-diagnostics |
| |
| // This test makes sure that we don't erroneously consider an accessible operator |
| // delete to be inaccessible, and then discard the entire new expression. |
| |
| class TestClass { |
| public: |
| TestClass(); |
| int field = 0; |
| friend class Foo; |
| static void * operator new(unsigned long size); |
| private: |
| static void operator delete(void *p); |
| }; |
| |
| class Foo { |
| public: |
| int test_method(); |
| }; |
| |
| int Foo::test_method() { |
| TestClass *obj = new TestClass() ; |
| return obj->field; |
| } |