13e74d6fdd248e20a280f1dff3da9a6c689c2c4c3Evan Cheng//===----------------------------------------------------------------------===// 2bb061291406b1b9f0c976e9845f69f9faf985606Daniel Dunbar// 3bb061291406b1b9f0c976e9845f69f9faf985606Daniel Dunbar// The LLVM Compiler Infrastructure 4bb061291406b1b9f0c976e9845f69f9faf985606Daniel Dunbar// 5bb061291406b1b9f0c976e9845f69f9faf985606Daniel Dunbar// This file is dual licensed under the MIT and the University of Illinois Open 6bb061291406b1b9f0c976e9845f69f9faf985606Daniel Dunbar// Source Licenses. See LICENSE.TXT for details. 7bb061291406b1b9f0c976e9845f69f9faf985606Daniel Dunbar// 8bb061291406b1b9f0c976e9845f69f9faf985606Daniel Dunbar//===----------------------------------------------------------------------===// 9bb061291406b1b9f0c976e9845f69f9faf985606Daniel Dunbar 10bb061291406b1b9f0c976e9845f69f9faf985606Daniel Dunbar// <map> 11bb061291406b1b9f0c976e9845f69f9faf985606Daniel Dunbar 12bb061291406b1b9f0c976e9845f69f9faf985606Daniel Dunbar// Check that std::multimap and its iterators can be instantiated with an incomplete 13bb061291406b1b9f0c976e9845f69f9faf985606Daniel Dunbar// type. 14bb061291406b1b9f0c976e9845f69f9faf985606Daniel Dunbar 15bb061291406b1b9f0c976e9845f69f9faf985606Daniel Dunbar#include <map> 16bb061291406b1b9f0c976e9845f69f9faf985606Daniel Dunbar 17bb061291406b1b9f0c976e9845f69f9faf985606Daniel Dunbarstruct A { 18bb061291406b1b9f0c976e9845f69f9faf985606Daniel Dunbar typedef std::multimap<A, A> Map; 193e74d6fdd248e20a280f1dff3da9a6c689c2c4c3Evan Cheng int data; 203e74d6fdd248e20a280f1dff3da9a6c689c2c4c3Evan Cheng Map m; 21bb061291406b1b9f0c976e9845f69f9faf985606Daniel Dunbar Map::iterator it; 2236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines Map::const_iterator cit; 23de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar}; 248977d087c693fd581db82bcff134d12da0f48bd3Daniel Dunbar 25255f89faee13dc491cb64fbeae3c763e7e2ea4e6Chandler Carruthinline bool operator==(A const& L, A const& R) { return &L == &R; } 260c7f116bb6950ef819323d855415b2f2b0aad987Pirama Arumuga Nainarinline bool operator<(A const& L, A const& R) { return L.data < R.data; } 27bb061291406b1b9f0c976e9845f69f9faf985606Daniel Dunbarint main() { 28ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines A a; 29255f89faee13dc491cb64fbeae3c763e7e2ea4e6Chandler Carruth} 30bb061291406b1b9f0c976e9845f69f9faf985606Daniel Dunbar