C++11 half of r147023: In C++11, additionally eagerly instantiate:
 - constexpr function template instantiations
 - variables of reference type
 - constexpr variables

llvm-svn: 147031
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp
index ebcdcf5..9ae39f1 100644
--- a/clang/lib/Sema/SemaDecl.cpp
+++ b/clang/lib/Sema/SemaDecl.cpp
@@ -6544,8 +6544,7 @@
         for (unsigned I = 0, N = Notes.size(); I != N; ++I)
           Diag(Notes[I].first, Notes[I].second);
       }
-    } else if (getLangOptions().CPlusPlus && !Type.isVolatileQualified() &&
-               Type.isConstQualified() && Type->isIntegralOrEnumerationType()) {
+    } else if (var->isUsableInConstantExpressions()) {
       // Check whether the initializer of a const variable of integral or
       // enumeration type is an ICE now, since we can't tell whether it was
       // initialized by a constant expression if we check later.