File: objc-modern-fast-enumeration.mm

package info (click to toggle)
llvm-toolchain-4.0 1%3A4.0.1-10~deb9u2
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 493,332 kB
  • sloc: cpp: 2,698,100; ansic: 552,773; asm: 128,821; python: 121,589; objc: 105,054; sh: 21,174; lisp: 6,758; ml: 5,532; perl: 5,311; pascal: 5,245; makefile: 2,083; cs: 1,868; xml: 686; php: 212; csh: 117
file content (25 lines) | stat: -rw-r--r-- 1,323 bytes parent folder | download | duplicates (26)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// RUN: %clang_cc1 -E %s -o %t.mm
// RUN: %clang_cc1 -x objective-c++ -fblocks -fms-extensions -rewrite-objc %t.mm -o - | FileCheck %s
// RUN: %clang_cc1 -x objective-c++ -fblocks -fms-extensions -rewrite-objc %t.mm -o %t-rw.cpp
// RUN: %clang_cc1 -fsyntax-only -triple i686-pc-win32 -Werror -Wno-address-of-temporary -D"Class=struct objc_class *" -D"id=struct objc_object *" -D"SEL=void*" -U__declspec -D"__declspec(X)=" %t-rw.cpp -Wno-attributes
// RUN: %clang_cc1 -fsyntax-only -triple x86_64-pc-win32 -Werror -Wno-address-of-temporary -D_WIN64 -D"Class=struct objc_class *" -D"id=struct objc_object *" -D"SEL=void*" -U__declspec -D"__declspec(X)=" %t-rw.cpp -Wno-attributes
// rdar://14913632

extern "C" void *sel_registerName(const char *);

void x() {
    id y;
    for (id a in y) {
    }
}

// CHECK: #ifdef _WIN64
// CHECK-NEXT: typedef unsigned long long  _WIN_NSUInteger;
// CHECK-NEXT: #else
// CHECK-NEXT: typedef unsigned int _WIN_NSUInteger;
// CHECK-NEXT: #endif
// CHECK: _WIN_NSUInteger limit =
// CHECK-NEXT: ((_WIN_NSUInteger (*) (id, SEL, struct __objcFastEnumerationState *, id *, _WIN_NSUInteger))(void *)objc_msgSend)
// CHECK-NEXT: ((id)l_collection,
// CHECK-NEXT: sel_registerName("countByEnumeratingWithState:objects:count:"),
// CHECK-NEXT: &enumState, (id *)__rw_items, (_WIN_NSUInteger)16);