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