Factor out duplication between lvalue-to-rvalue conversions and variable
assignments in constant expressions. No significant functionality changes
(slight improvement to potential constant expression checking). 

llvm-svn: 181170
diff --git a/clang/test/SemaCXX/constant-expression-cxx1y.cpp b/clang/test/SemaCXX/constant-expression-cxx1y.cpp
index 543c7cf..62739ee 100644
--- a/clang/test/SemaCXX/constant-expression-cxx1y.cpp
+++ b/clang/test/SemaCXX/constant-expression-cxx1y.cpp
@@ -232,6 +232,11 @@
     int z = 0;
     return 100 / (set(z), 0); // expected-note {{division by zero}}
   }
+  int n; // expected-note {{declared here}}
+  constexpr int ref() { // expected-error {{never produces a constant expression}}
+    int &r = n;
+    return r; // expected-note {{read of non-const variable 'n'}}
+  }
 }
 
 namespace subobject {