[LLVMbugs] [Bug 6962] New: A Concrete class inside a template class is identified as abstract
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Wed Apr 28 02:06:03 PDT 2010
http://llvm.org/bugs/show_bug.cgi?id=6962
Summary: A Concrete class inside a template class is identified
as abstract
Product: clang
Version: 2.7
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P
Component: C++
AssignedTo: unassignedclangbugs at nondot.org
ReportedBy: etienne.pierre at c-s.fr
CC: llvmbugs at cs.uiuc.edu, dgregor at apple.com
Created an attachment (id=4755)
--> (http://llvm.org/bugs/attachment.cgi?id=4755)
Source to reproduce the bug
Attached is a simple code example (complied with clang++ -c bug.cpp) that
reproduces the problem.
Inside a template class (template <class T> class TemplateClass) are 2 inner
classes, the first one is abstract (Interface), the second inherits from it and
is concrete (Concrete). If I try to add a member to TemplateClass of type
Concrete, the compiler gives me the following message :
bug.cpp:21:14: error: field type 'Concrete' is an abstract class
Concrete m_c;
bug.cpp:10:22: note: pure virtual function 'Write'
virtual void Write(const char * a_pBuf) = 0;
The funny thing is that, if you remove line 21 (Concrete m_c;), the compiler
doesn't complain on line 26 (which uses TemplateClass<char>::Concrete but
outside TemplateClass).
Thanks for the great work on clang.
Étienne PIERRE
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
More information about the llvm-bugs
mailing list