[LLVMbugs] [Bug 23810] New: [ms] unqualified lookup into dependent base class failure
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Wed Jun 10 10:53:40 PDT 2015
https://llvm.org/bugs/show_bug.cgi?id=23810
Bug ID: 23810
Summary: [ms] unqualified lookup into dependent base class
failure
Product: clang
Version: trunk
Hardware: PC
OS: Linux
Status: NEW
Severity: normal
Priority: P
Component: -New Bugs
Assignee: unassignedclangbugs at nondot.org
Reporter: hans at chromium.org
CC: llvmbugs at cs.uiuc.edu, nicolasweber at gmx.de,
rnk at google.com
Classification: Unclassified
After Clang r239373, the following test case fails:
$ clang -cc1 -triple i686-pc-windows-msvc18.0.0 -fms-extensions
-fms-compatibility -std=c++11 -fdelayed-template-parsing getparent.ii
void GetParent(int);
struct CWindow {
void GetParent() {}
};
template <class TBase> struct CWindowImplRoot : TBase {
void ForwardNotifications();
};
template <class TBase> void CWindowImplRoot<TBase>::ForwardNotifications() {
GetParent();
}
template <class TBase, class TWinTraits> struct CWindowImpl :
CWindowImplRoot<TBase> { };
struct CAxFrameWindow : CWindowImpl<CWindow, float> {};
struct __declspec(dllexport) S : CWindowImpl<CWindow, int> {};
getparent.ii:11:5: error: no matching function for call to 'GetParent'
GetParent();
^~~~~~~~~
getparent.ii:1:8: note: candidate function not viable: requires 1 argument, but
0 were provided
void GetParent(int);
^
(Reduced from build failure currently occurring in Chromium:
http://build.chromium.org/p/chromium.fyi/builders/ClangToTWin64%28dll%29/builds/635/steps/compile/logs/stdio)
Before r239373, we would not propagate dllexport from CWindowImpl<CWindow,int>
to its base CWindowImplRoot<CWindow>, because the latter had previously been
instantiated. Because of that, it seems we didn't use to instantiate
ForwardNotifications() and hit this error.
The lookup problem existed before r239373, though. If the CAxFrameWindow
definition is removed, the same lookup error occurs in previous Clangs
(including 3.6).
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20150610/0b57db12/attachment.html>
More information about the llvm-bugs
mailing list