diff options
author | George Burgess IV <george.burgess.iv@gmail.com> | 2016-06-08 00:34:22 +0000 |
---|---|---|
committer | George Burgess IV <george.burgess.iv@gmail.com> | 2016-06-08 00:34:22 +0000 |
commit | beca4a3338ab39dcdc81924734e95863fb53e5bb (patch) | |
tree | 93431375f9b3618f0e141d8b4c74fd86bb507b9b /lldb/packages/Python/lldbsuite/test/python_api/interpreter/main.c | |
parent | 140065a693f5fdcc52f7aa7fef58815b746f0317 (diff) | |
download | bcm5719-llvm-beca4a3338ab39dcdc81924734e95863fb53e5bb.tar.gz bcm5719-llvm-beca4a3338ab39dcdc81924734e95863fb53e5bb.zip |
[Sema] Teach CheckPlaceholderExpr about unaddressable functions.
Given the following C++:
```
void foo();
void foo() __attribute__((enable_if(false, "")));
bool bar() {
auto P = foo;
return P == foo;
}
```
We'll currently happily (and correctly) resolve `foo` to the `foo`
overload without `enable_if` when assigning to `P`. However, we'll
complain about an ambiguous overload on the `P == foo` line, because
`Sema::CheckPlaceholderExpr` doesn't recognize that there's only one
`foo` that could possibly work here.
This patch teaches `Sema::CheckPlaceholderExpr` how to properly deal
with such cases.
Grepping for other callers of things like
`Sema::ResolveAndFixSingleFunctionTemplateSpecialization`, it *looks*
like this is the last place that needed to be fixed up. If I'm wrong,
I'll see if there's something we can do that beats what amounts to
whack-a-mole with bugs.
llvm-svn: 272080
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api/interpreter/main.c')
0 files changed, 0 insertions, 0 deletions