)]}' { "commit": "8c56a8627667faeb094e002ff2fbf2473de74d93", "tree": "a06bf4560d6d04452ada2f044bdeef90b0176435", "parents": [ "9772bf511a32353fad73e38fdfc501d5fccb50d2" ], "author": { "name": "Faisal Vali", "email": "faisalv@yahoo.com", "time": "Sun Nov 13 06:09:16 2016 +0000" }, "committer": { "name": "Duncan P. N. Exon Smith", "email": "dexonsmith@apple.com", "time": "Wed Apr 05 10:44:20 2017 -0700" }, "message": "Fix PR28366: Handle variables from enclosing local scopes more gracefully during constant expression evaluation.\n\nOnly look for a variable\u0027s value in the constant expression evaluation activation frame, if the variable was indeed declared in that frame, otherwise it might be a constant expression and be usable within a nested local scope or emit an error.\n\nvoid f(char c) {\n struct X {\n static constexpr char f() {\n return c; // error gracefully here as opposed to crashing.\n }\n };\n int I \u003d X::f();\n}\n\ngit-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@286748 91177308-0d34-0410-b5e6-96231b3b80d8\n(cherry picked from commit e3fbde7486a0e43ef164ba7f93134d4b103867bf)\n", "tree_diff": [ { "type": "modify", "old_id": "107913ed61bc642af72bfbb9187ed8ec9597a992", "old_mode": 33188, "old_path": "lib/AST/ExprConstant.cpp", "new_id": "00b2871b12b3cd02bc1c77f0818f9f5586431ead", "new_mode": 33188, "new_path": "lib/AST/ExprConstant.cpp" }, { "type": "modify", "old_id": "7680369d541b297af6c5805e115a5e2b26f04696", "old_mode": 33188, "old_path": "lib/Sema/SemaTemplateInstantiateDecl.cpp", "new_id": "05773ea87874e2dcc059697da780305cb66e4cad", "new_mode": 33188, "new_path": "lib/Sema/SemaTemplateInstantiateDecl.cpp" }, { "type": "modify", "old_id": "e2b3f091f70f07a335178be5cde943de63723b42", "old_mode": 33188, "old_path": "test/SemaCXX/constant-expression-cxx11.cpp", "new_id": "e50fd65f66604374b8f84789638405c55f5337b9", "new_mode": 33188, "new_path": "test/SemaCXX/constant-expression-cxx11.cpp" }, { "type": "modify", "old_id": "526dd27d9d1af18810a79314bb04e24fbdd41ffe", "old_mode": 33188, "old_path": "test/SemaCXX/cxx1z-constexpr-lambdas.cpp", "new_id": "90a07665cbf7115302c1261e3aa2fe48ff9821d3", "new_mode": 33188, "new_path": "test/SemaCXX/cxx1z-constexpr-lambdas.cpp" } ] }