// RUN: %clang_cc1 -std=c++11 %s -Wunused -verify // expected-no-diagnostics template struct is_same { static const bool value = false; }; template struct is_same { static const bool value = true; }; void f3() { float x, &r = x; int i; int &ir = i; const int &irc = i; [=,&irc,&ir] { static_assert(is_same::value, "should be const float&"); static_assert(is_same::value, "should be float"); static_assert(is_same::value, "should be const float&"); static_assert(is_same::value, "should be float&"); static_assert(is_same::value, "should be int&"); static_assert(is_same::value, "should be int&"); static_assert(is_same::value, "should be const int&"); static_assert(is_same::value, "should be const int&"); }(); [=] { [=] () mutable { static_assert(is_same::value, "should be float"); static_assert(is_same::value, "should be float&"); }(); }(); [&i] { static_assert(is_same::value, "should be int&"); }(); }