// Copyright (C) 2005 Free Software Foundation, Inc. // Contributed by Nathan Sidwell 31 Mar 2005 <nathan@codesourcery.com> // { dg-do run } // DR214 template <class T> T f(int) {return 0;} template <class T, class U> T f(U){return 1;} template <typename T, typename R> T checked_cast (R const &) {return 0;} template <typename T, typename R> T checked_cast (R *) {return 1;} int main () { int i = 0; if (f<int>(1)) return 1; if (checked_cast<int>(i) != 0) return 2; if (checked_cast<int>(&i) != 1) return 3; return 0; }