1113c4448003ff6fd76eaabde08d3ebfffd8a327aDouglas Gregor// RUN: %clang_cc1 -std=c++11 %s -verify 28e8fb3be5bd78f0564444eca02b404566a5f3b5dAndy Gibbs// expected-no-diagnostics 3113c4448003ff6fd76eaabde08d3ebfffd8a327aDouglas Gregor 4113c4448003ff6fd76eaabde08d3ebfffd8a327aDouglas Gregornamespace PR13003 { 5113c4448003ff6fd76eaabde08d3ebfffd8a327aDouglas Gregor struct void_type 6113c4448003ff6fd76eaabde08d3ebfffd8a327aDouglas Gregor { 7113c4448003ff6fd76eaabde08d3ebfffd8a327aDouglas Gregor template <typename Arg0, typename... Args> 8113c4448003ff6fd76eaabde08d3ebfffd8a327aDouglas Gregor void_type(Arg0&&, Args&&...) { } 9113c4448003ff6fd76eaabde08d3ebfffd8a327aDouglas Gregor }; 10113c4448003ff6fd76eaabde08d3ebfffd8a327aDouglas Gregor 11113c4448003ff6fd76eaabde08d3ebfffd8a327aDouglas Gregor struct void_type2 12113c4448003ff6fd76eaabde08d3ebfffd8a327aDouglas Gregor { 13113c4448003ff6fd76eaabde08d3ebfffd8a327aDouglas Gregor template <typename... Args> 14113c4448003ff6fd76eaabde08d3ebfffd8a327aDouglas Gregor void_type2(Args&&...) { } 15113c4448003ff6fd76eaabde08d3ebfffd8a327aDouglas Gregor }; 16113c4448003ff6fd76eaabde08d3ebfffd8a327aDouglas Gregor 17113c4448003ff6fd76eaabde08d3ebfffd8a327aDouglas Gregor struct atom { }; 18113c4448003ff6fd76eaabde08d3ebfffd8a327aDouglas Gregor 19113c4448003ff6fd76eaabde08d3ebfffd8a327aDouglas Gregor void_type v1 = atom(); 20113c4448003ff6fd76eaabde08d3ebfffd8a327aDouglas Gregor void_type2 v2 = atom(); 21113c4448003ff6fd76eaabde08d3ebfffd8a327aDouglas Gregor} 22113c4448003ff6fd76eaabde08d3ebfffd8a327aDouglas Gregor 23