]> granicus.if.org Git - clang/commit
Further fixes when thiscall is the default for methods.
authorRafael Espindola <rafael.espindola@gmail.com>
Tue, 19 Nov 2013 21:07:04 +0000 (21:07 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Tue, 19 Nov 2013 21:07:04 +0000 (21:07 +0000)
commit1334490e37b5e10d3ee699c445290c3daf2d877e
treeef43a85c97740ad27a5075978566b1857b9f107d
parent5f96d3cbdd72f3074dfb544be67441ed2199a346
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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195154 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Sema/SemaTemplate.cpp
lib/Sema/SemaTemplateDeduction.cpp
lib/Sema/SemaType.cpp
test/SemaCXX/decl-microsoft-call-conv.cpp