Created attachment 23695 [details] gzipped .ii file The compiler seems to get totally confused about scope. Here comes the error message: In file included from VerilogA/src/vsLexer/../../include/vsParser/vsYYparse.H:22:0, from vsVeriSmartLex.cxx:1652: VerilogA/src/vsLexer/../../include/vsParser/../vsExpr/vsExpr.H: In member function ‘virtual CVectorOfVisited CTwoArgumentOperator<P, BCOMMUTATIVE, KIND, TYPE, CREATEFROMCHILDREN, BDERIVE, DERIVE, GETPOTENTIALREPRESENTATIONS, TYPE_FLAGS>::getPotentialRepresentations(const visited*, silvaco::verilogCompiler::CVerilogCompilerArgs*) const’: VerilogA/src/vsLexer/../../include/vsParser/../vsExpr/vsExpr.H:1985:22: error: too few arguments to function ‘int clone(int (*)(void*), void*, int, void*)’ /usr/include/bits/sched.h:71:12: note: declared here VerilogA/src/vsLexer/../../include/vsParser/../vsExpr/vsExpr.H:1987:25: error: ‘m_sChildren’ was not declared in this scope VerilogA/src/vsLexer/../../include/vsParser/../vsExpr/vsExpr.H:1989:52: error: there are no arguments to ‘createFromChildren1’ that depend on a template parameter, so a declaration of ‘createFromChildren1’ must be available VerilogA/src/vsLexer/../../include/vsParser/../vsExpr/vsExpr.H:1989:52: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated) To make this compileable, simply add a this-> in front of every member object or method: clone, m_sChildren, createFromChildren1
Created attachment 23696 [details] command to call the compiler
Created attachment 23697 [details] gzipped compiler log
Created attachment 23698 [details] output of "uname -a"
In a template unqualified names are not looked up in dependent base classes Even if it was a bug, it would not be 'critical' severity, gcc does not crash, no data is lost.. That field is not meant for you to say "I think this is really really important"
http://womble.decadent.org.uk/c++/template-faq.html#base-lookup
> In a template unqualified names are not looked up in dependent base classes Aegypt?! Then explain to me, why it works for all the other classes and including other methods inside this class.
(In reply to comment #6) > > In a template unqualified names are not looked up in dependent base classes > > Aegypt?! > > Then explain to me, why it works for all the other classes and including other > methods inside this class. never mind -- I understand -- sorry about the noise
See the link in comment 5, or this one: http://clang.llvm.org/compatibility.html#dep_lookup_bases or this one: http://www.parashift.com/c++-faq/templates.html#faq-35.19