decltype.cpp revision 762bb9d0ad20320b9f97a841dce57ba5e8e48b07
1762bb9d0ad20320b9f97a841dce57ba5e8e48b07Richard Smith// RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify %s 2f801dcff43b49509bf758e213de56288bd3e2a2eDouglas Gregor 3f801dcff43b49509bf758e213de56288bd3e2a2eDouglas Gregor// PR5290 4f801dcff43b49509bf758e213de56288bd3e2a2eDouglas Gregorint const f0(); 5f801dcff43b49509bf758e213de56288bd3e2a2eDouglas Gregorvoid f0_test() { 635e12c90c1b107a75c5615aa76fdbd403661aaa6Douglas Gregor decltype(0, f0()) i = 0; 7f801dcff43b49509bf758e213de56288bd3e2a2eDouglas Gregor i = 0; 8f801dcff43b49509bf758e213de56288bd3e2a2eDouglas Gregor} 9f801dcff43b49509bf758e213de56288bd3e2a2eDouglas Gregor 10f801dcff43b49509bf758e213de56288bd3e2a2eDouglas Gregorstruct A { int a[1]; A() { } }; 11f801dcff43b49509bf758e213de56288bd3e2a2eDouglas Gregortypedef A const AC; 12f801dcff43b49509bf758e213de56288bd3e2a2eDouglas Gregorint &f1(int*); 13f801dcff43b49509bf758e213de56288bd3e2a2eDouglas Gregorfloat &f2(int const*); 14f801dcff43b49509bf758e213de56288bd3e2a2eDouglas Gregor 15f801dcff43b49509bf758e213de56288bd3e2a2eDouglas Gregorvoid test_f2() { 16f801dcff43b49509bf758e213de56288bd3e2a2eDouglas Gregor float &fr = f2(AC().a); 17f801dcff43b49509bf758e213de56288bd3e2a2eDouglas Gregor} 18f801dcff43b49509bf758e213de56288bd3e2a2eDouglas Gregor 19e3d49b44ad0596b2998ecf2e7ca78d59188920e5Francois Pichetnamespace pr10154 { 20e3d49b44ad0596b2998ecf2e7ca78d59188920e5Francois Pichet class A{ 21e3d49b44ad0596b2998ecf2e7ca78d59188920e5Francois Pichet A(decltype(nullptr) param); 22e3d49b44ad0596b2998ecf2e7ca78d59188920e5Francois Pichet }; 23e3d49b44ad0596b2998ecf2e7ca78d59188920e5Francois Pichet}