http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48169

           Summary: compiler is confused about scope
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Severity: critical
          Priority: P3
         Component: c++
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: pet...@silvaco.com


Created attachment 23695
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=23695
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

Reply via email to