diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-11-19 21:07:04 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-11-19 21:07:04 +0000 |
commit | 92045bc37c84ff6e4a819685879d062a57bc8b45 (patch) | |
tree | 1e640d795abf60f4fc693ef6937cf3bfec40dbd1 /clang/test | |
parent | 8aac4f6d7b6150e2185ea2b9b7869df77ac75b0a (diff) | |
download | bcm5719-llvm-92045bc37c84ff6e4a819685879d062a57bc8b45.tar.gz bcm5719-llvm-92045bc37c84ff6e4a819685879d062a57bc8b45.zip |
Further fixes when thiscall is the default for methods.
The previous patches tried to deduce the correct function type. I now realize
this is not possible in general. Consider
class foo {
template <typename T> static void bar(T v);
};
extern template void foo::bar(const void *);
We will only know that bar is static after a lookup, so we have to handle this
in the template instantiation code.
This patch reverts my previous two changes (but not the tests) and instead
handles the issue in DeduceTemplateArguments.
llvm-svn: 195154
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/SemaCXX/decl-microsoft-call-conv.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/decl-microsoft-call-conv.cpp b/clang/test/SemaCXX/decl-microsoft-call-conv.cpp index e47a5c2a5cf..a1a6d0b2895 100644 --- a/clang/test/SemaCXX/decl-microsoft-call-conv.cpp +++ b/clang/test/SemaCXX/decl-microsoft-call-conv.cpp @@ -176,3 +176,10 @@ namespace test3 { void bah() {} void baz() { zed(bah); } } + +namespace test4 { + class foo { + template <typename T> static void bar(T v); + }; + extern template void foo::bar(const void *); +} |