llvm-project

Форк
0
/
cxx-rewrite.mm 
33 строки · 774.0 Байт
1
// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fsyntax-only -fobjc-arc -x objective-c++ %s.result
2
// RUN: arcmt-test --args -triple x86_64-apple-darwin10 -fsyntax-only -x objective-c++ %s > %t
3
// RUN: diff %t %s.result
4

5
#include "Common.h"
6

7
@interface NSString : NSObject
8
+(id)string;
9
@end
10

11
struct foo {
12
    NSString *s;
13
    foo(NSString *s): s([s retain]){
14
        NSAutoreleasePool *pool = [NSAutoreleasePool new];
15
        [[[NSString string] retain] release];
16
        [pool drain];
17
        if (s)
18
          [s release];
19
    }
20
    ~foo(){ [s release]; }
21
private:
22
    foo(foo const &);
23
    foo &operator=(foo const &);
24
};
25

26
int main(){
27
    NSAutoreleasePool *pool = [NSAutoreleasePool new];
28

29
    foo f([[NSString string] autorelease]);
30

31
    [pool drain];
32
    return 0;
33
}
34

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.