在包含Boost_Foreach指令的文件上运行声纳时解析错误

时间:2013-08-06 06:42:55

标签: c++ boost sonarqube static-analysis

当我对包含Boost_Foreach指令的文件进行声纳分析时出现解析错误

包含Boost_Foreach指令的文件:

    BOOST_FOREACH(SExcludedType entry, excludedFiles)
    {
        CString keyName;
        keyName.Format(format, counter);

        CString textRepresentation = SExcludedType::GetStringRepresentation(entry);
        persistentSettings_.SaveNow(const_cast<PTSTR>(keyName.GetString()), textRepresentation);

        ++counter;
    }

解析错误:

  

08:18:11.639错误 - 无法解析文件:C:\ Users \ aogonowski \ Desktop \ Defragler missing files \ MainFrame.cpp   com.sonar.sslr.api.RecognitionException:第3793行第3行的解析错误无法匹配以下所有:RECOVERED_EXPRESSION_STATEMENT STATEMENT

     

3787::: GetStringRepresentation(entry);    3788:persistentSettings_.SaveNow(const_cast(keyName.GetString()),textRepresentation);    3789:    3790:++ counter;    3791:}    3792:      - &GT; }

     

规则失败:   / -RECOVERED_EXPRESSION_STATEMENT消耗自(3782,2)到(3791,3):...)),textRepresentation); ++ counter; }   STATEMENT

我一直在寻找如何设置sonnar来分析该文件的任何解决方案,但我没有找到任何解决方案期望注释掉有问题的代码行。

1 个答案:

答案 0 :(得分:0)

尝试在Sonar runner配置文件或pom.xml(无论您使用的是什么)中将属性sonar.cxx.defines设置为BOOST_FOREACH(x,y)