aboutsummaryrefslogtreecommitdiff
path: root/examples/clang-interpreter/main.cpp
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2011-03-29 08:08:18 +0000
committerChandler Carruth <chandlerc@gmail.com>2011-03-29 08:08:18 +0000
commit90434238b7edfc806437f1d40742a60ff92fbf6a (patch)
tree1a983659bdd5f4783efa260e2c869b4a2cef2f8b /examples/clang-interpreter/main.cpp
parentb831c673621c5587642343cace9def134916a17b (diff)
Fix a bug in how we were resolving the address of overloaded functions
when the resolution took place due to a single template specialization being named with an explicit template argument list. In this case, the "resolution" doesn't take into account the target type at all, and therefore can take place for functions, static member functions, and *non-static* member functions. The latter weren't being properly checked and their proper form enforced in this scenario. We now do so. The result of this last form slipping through was some confusing logic in IsStandardConversion handling of these resolved address-of expressions which eventually exploded in an assert. Simplify this logic a bit and add some more aggressive asserts to catch improperly formed expressions getting into this routine. Finally add systematic testing of member functions, both static and non-static, in the various forms they can take. One of these is essentially PR9563, and this commit fixes the crash in that PR. However, the diagnostics for this are still pretty terrible. We at least are now accepting the correct constructs and rejecting the invalid ones rather than accepting invalid or crashing as before. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128456 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'examples/clang-interpreter/main.cpp')
0 files changed, 0 insertions, 0 deletions