FailedChanges

Summary

  1. [Sema] Make typeof(OverloadedFunctionName) not a pointer. We were sometimes doing a function->pointer conversion in Sema::CheckPlaceholderExpr, which isn't the job of CheckPlaceholderExpr. So, when we saw typeof(OverloadedFunctionName), where OverloadedFunctionName referenced a name with only one function that could have its address taken, we'd give back a function pointer type instead of a function type. This is incorrect. I kept the logic for doing the function pointer conversion in resolveAndFixAddressOfOnlyViableOverloadCandidate because it was more consistent with existing ResolveAndFix* methods.
Revision 302506 by George Burgess IV:
[Sema] Make typeof(OverloadedFunctionName) not a pointer.

We were sometimes doing a function->pointer conversion in
Sema::CheckPlaceholderExpr, which isn't the job of CheckPlaceholderExpr.

So, when we saw typeof(OverloadedFunctionName), where
OverloadedFunctionName referenced a name with only one function that
could have its address taken, we'd give back a function pointer type
instead of a function type. This is incorrect.

I kept the logic for doing the function pointer conversion in
resolveAndFixAddressOfOnlyViableOverloadCandidate because it was more
consistent with existing ResolveAndFix* methods.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Sema/Sema.h (diff)llvm-revision.src/cfe/trunk/include/clang/Sema/Sema.h
The file was modified/cfe/trunk/lib/Sema/SemaCast.cpp (diff)llvm-revision.src/cfe/trunk/lib/Sema/SemaCast.cpp
The file was modified/cfe/trunk/lib/Sema/SemaOverload.cpp (diff)llvm-revision.src/cfe/trunk/lib/Sema/SemaOverload.cpp
The file was modified/cfe/trunk/test/Sema/overloadable.c (diff)llvm-revision.src/cfe/trunk/test/Sema/overloadable.c
The file was modified/cfe/trunk/test/SemaCXX/enable_if.cpp (diff)llvm-revision.src/cfe/trunk/test/SemaCXX/enable_if.cpp