[aspectc-user] a minor bug with reporting syntax errors

Panu Bloigu panu.bloigu at mbnet.fi
Tue May 15 16:12:05 CEST 2007


Hello.

I think I have found a bug in ac++ 1.0pre3. It concerns reporting errors 
in the syntax of the advice code. The case is, that ac++ doesn't output 
a proper error message when a particular type of syntax error is seen in 
the the advice code. Please consider the following code:

=============================================================================
aspect Error
{
        advice execution("void f()") : around()
        {
                for(;;
                {
                   //
                }
        }
};

void f(){}

int main()
{
        f();
        return 0;
}
=============================================================================

As you can see, the tailing parenthesis is missing from the for clause. 
This will cause the compiler simply say:

=============================================================================
<anonymous unit>:4: error: invalid member declaration near token `private'
error: Execution failed: "ac++" --config "puma.config"  -k -p. -c 
"anonerr.cpp" -o "anonerr.acc"
=============================================================================

Also note that if the obviously erroneous for clause is replaced with a 
while clause with the tailing parenthesis also missing, e.g. 
'while(true', the exact same message is printed.

Panu.







More information about the aspectc-user mailing list