aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/CGExprConstant.cpp
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2011-05-03 18:35:10 +0000
committerChandler Carruth <chandlerc@gmail.com>2011-05-03 18:35:10 +0000
commit0f4be74ff0273e505d383f89174ef539828424ed (patch)
tree24263da428c02f4ba6efe5a6ff2ac4aa526a9f67 /lib/CodeGen/CGExprConstant.cpp
parente452c78072156c14cd9998733e3b4b28b6fc7fd7 (diff)
When parsing a template friend declaration we dropped the template
parameters on the floor in certain cases: class X { template <typename T> friend typename A<T>::Foo; }; This was parsed as a *non* template friend declaration some how, and received an ExtWarn. Fixing the parser to actually provide the template parameters to the freestanding declaration parse triggers the code which specifically looks for such constructs and hard errors on them. Along the way, this prevents us from trying to instantiate constructs like the above inside of a outer template. This is important as loosing the template parameters means we don't have a well formed declaration and template instantiation will be unable to rebuild the AST. That fixes a crash in the GCC test suite. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130772 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CGExprConstant.cpp')
0 files changed, 0 insertions, 0 deletions