1 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -g -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