|  | // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -debug-info-kind=limited -emit-llvm %s -o /dev/null | 
|  |  | 
|  | // This test passes if clang doesn't crash. | 
|  |  | 
|  | template <class C> class scoped_ptr { | 
|  | public: | 
|  | C* operator->() const { return 0; } | 
|  | }; | 
|  |  | 
|  | @class NSWindow; | 
|  | @class NSImage; | 
|  | @interface NSWindow { | 
|  | NSImage *_miniIcon; | 
|  | } | 
|  | -(id)windowController; | 
|  | @end | 
|  |  | 
|  | class AutomationResourceTracker { | 
|  | public: | 
|  | NSWindow* GetResource(int handle) { return 0; } | 
|  | }; | 
|  |  | 
|  | # 13 "automation/automation_window_tracker.h" | 
|  | class AutomationWindowTracker : public AutomationResourceTracker { }; | 
|  |  | 
|  | template<typename NST> class scoped_nsobject { }; | 
|  |  | 
|  | @interface TabStripController{ | 
|  | scoped_nsobject<NSImage> defaultFavicon_; | 
|  | } | 
|  | @end | 
|  |  | 
|  | @interface BrowserWindowController { | 
|  | TabStripController* tabStripController_; | 
|  | } | 
|  | @end | 
|  |  | 
|  | void WindowGetViewBounds(scoped_ptr<AutomationWindowTracker> window_tracker_) { | 
|  | NSWindow* window = window_tracker_->GetResource(42); | 
|  | BrowserWindowController* controller = [window windowController]; | 
|  | } |