1 | // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -debug-info-kind=limited -emit-llvm %s -o /dev/null |
2 | |
3 | // This test passes if clang doesn't crash. |
4 | |
5 | template <class C> class scoped_ptr { |
6 | public: |
7 | C* operator->() const { return 0; } |
8 | }; |
9 | |
10 | @class NSWindow; |
11 | @class NSImage; |
12 | @interface NSWindow { |
13 | NSImage *_miniIcon; |
14 | } |
15 | -(id)windowController; |
16 | @end |
17 | |
18 | class AutomationResourceTracker { |
19 | public: |
20 | NSWindow* GetResource(int handle) { return 0; } |
21 | }; |
22 | |
23 | # 13 "automation/automation_window_tracker.h" |
24 | class AutomationWindowTracker : public AutomationResourceTracker { }; |
25 | |
26 | template<typename NST> class scoped_nsobject { }; |
27 | |
28 | @interface TabStripController{ |
29 | scoped_nsobject<NSImage> defaultFavicon_; |
30 | } |
31 | @end |
32 | |
33 | @interface BrowserWindowController { |
34 | TabStripController* tabStripController_; |
35 | } |
36 | @end |
37 | |
38 | void WindowGetViewBounds(scoped_ptr<AutomationWindowTracker> window_tracker_) { |
39 | NSWindow* window = window_tracker_->GetResource(42); |
40 | BrowserWindowController* controller = [window windowController]; |
41 | } |
42 | |