This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F280039C:当‘‘Δ T 而不是‘=Δ T IN‘‘IF’条件时、C2000 编译器不会生成任何警告。

Guru**** 2535750 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1544359/tms320f280039c-the-c2000-compiler-does-not-generate-any-warnings-when-is-used-instead-of-in-if-condition

器件型号:TMS320F280039C


工具/软件:

我 ‘CCS11.1 中的 C2000‘器在‘‘Δ T 而不是 Δ t=Δ T IN Δ f‘条件时不会生成任何警告。 我想在我的程序中检查这些语法错误。 那么、如何在这种情况下配置编译器呢?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Devin

    您能否确认所使用的编译器版本? 我将联系您并邀请编译器专家、以便进一步帮助您。

    此致、

    Aishwarya

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    最新版本的 C2000 编译器为 22.6.2.LTS。  当我尝试时、我会收到警告。

    % cl2000 --verbose_diagnostics file.c
    "file.c", line 3: warning: use of "=" where "==" may have been intended
          if (arg = 0)
              ^

    无论选项是否可用、都会发出诊断 -- verbose_diagnostics 调制。  此选项使诊断程序也显示受影响的源代码行、并带有错误开始位置的指示器。

    谢谢。此致、

    -乔治

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Aishwarya:

    很抱歉这么晚回复。  我的电子邮件将此电子邮件标记为垃圾邮件。  所以我没有看到这个答复。 编译器版本为 v21.6.0.LTS。

    此致。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、George、

    很抱歉这么晚回复。  我的电子邮件将此电子邮件标记为垃圾邮件。  所以我没有看到这个答复。 编译器版本为 v21.6.0.LTS。

    我‘您代码中的“reg"是否“是否是全局变量、诊断结果确实会出现。 ‘、当“reg"是“是 局部变量时、不会进行诊断。 我很困惑。

    此致。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当“arg"是“是 局部变量时、没有诊断信息

    我无法重现这一结果。  对于发生这种情况的源文件、 请按照 如何提交编译器测试用例一文中的说明进行操作。   

    谢谢。此致、

    -乔治

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我创建了一个只包含“main.c"源“源文件的工程。 “main.c"中“中的代码如下所示。

    int global, global1;
    void main(void)
    {
        int i;
        if(global = global1){
            i++;
        }
        if(i = global1){
            i++;
        }
    }

    我之前的描述不正确。 我原本以为这是'='左侧的一个问题。 实际上、如果“="的“的右侧是全局变量、则没有诊断信息。 编译器版本为 v21.6.0.LTS。

    此致。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的测试用例。  我能够重现同样的行为。  我提交 EXT_EP-12882 对此进行调查。  欢迎点击这个链接。  请注意、该问题不会被视为错误、而是要求改进编译器发出的诊断。

    谢谢。此致、

    -乔治