问题标签 [compiler-warnings]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
visual-c++ - VC++ 编译器:如何确定当前的警告级别或覆盖?
我有一个项目,我刚刚发现警告 C4244(可能丢失数据)正在被抑制。我强烈怀疑某些糟糕的 MS 标头正在抑制此警告,并为所有包含所述标头的翻译单元保留它,但我尚未确定其无数标头中的哪一个可能有问题。
所以,就像任何其他编程问题一样,我想首先进行二进制搜索,打印出当前的警告级别,如果可能的话,在我的主预编译头文件中打印出任何被抑制的警告。
有谁知道我可能使用什么编译器指令,或者我可以采取什么方法来给我这些信息?
我无法告诉你,当调用者违反合同并试图向我发送整数而不是有符号字节时,发现我在标题中精心构造的类型声明未能给出编译器警告是多么令人讨厌(这导致了我正在尝试解决的当前错误)。
想法?
笔记:
通过我的整个解决方案对#pragma 进行搜索,只得到平衡的#pragma warning(disable:xxxx) 声明,然后是#pragma warning(default:xxxx)。这些都没有引用 4244。
在整个解决方案中搜索 4244 不会返回任何匹配项(我从不覆盖该警告,我的任何包含的库、子项目等也不会覆盖)。
在整个 MS 中搜索 4244 包括返回一些引用的路径,这些引用似乎是平衡的,或者几乎是平衡的,这取决于在调用它们之前设置的#define 符号。因此,我怀疑 MS 有过错(结合 MS 在其标题中草率工作的先前历史)。
visual-studio-2005 - VS2005下奇怪的“警告C4127:条件表达式是常数”
我正在尝试编译带有第 4 级警告的LightZPng。我在明显不值得此警告的行上得到了很多 C4127。一个例子:
如何更改此代码以避免#pragma 以外的警告?
vb.net - 自定义 Generic.IEqualityComparer(Of T) - 编译器错误
我正在尝试实现一个简单的 IEqulityComparer 以与 LINQ 集合一起使用。为了讨论目的,我编写了以下代码,将其简化为最简单的形式...
我遇到的问题是这两个函数都会引发编译器警告“函数'getHashCode'(或'Equals')在基类'Object'中隐藏了一个可覆盖的方法。要覆盖基类方法,该方法必须声明为'Overrides ’。”
但是,如果我将它们声明为覆盖,我会收到错误“函数'GetHashCode'不能被声明覆盖,因为它没有覆盖基类中的函数。”!!
我还在“Implements”行收到编译器错误,大意是我必须实现“getHashCode”,但我认为这是第一个问题的结果。
我所有的研究表明我应该没事 - 请问有人有任何线索吗?
bash - bash 中 gcc 警告的语法高亮显示
有没有办法为 gcc/g++ 警告输出启用高亮方案?当消息流过时,我想要一种简单的方法来发现来自编译器的警告(亮红色?)。
c++ - 编译器警告
假设我有这个(C++ 或者 C)代码:
我不在乎它是否做得对。重要的部分是在 for 循环声明中。编译器为此给出了有符号/无符号不匹配,因为 size() 返回一个无符号整数,而不是有符号整数。更改i
为未签名有多重要?我将循环计数器声明为 int 是出于习惯,但如果这是一个潜在的错误,我会强迫自己改掉这个习惯。
c++ - 删除编译器警告的危险方法?
当我检查某人的代码时,我喜欢强制执行不发出警告的政策。任何出现的警告都必须明确记录,因为有时删除一些警告并不容易,或者可能需要太多的周期或内存等。
但是这个策略有一个缺点,那就是以潜在危险的方式删除警告,即使用的方法实际上隐藏了问题而不是修复它。
我最敏锐地意识到的是可能隐藏错误的显式强制转换。
在 C(++) 中删除编译器警告的其他潜在危险方法还有哪些我应该注意的?
java - 如何从 javac 获得更多警告?
我希望 Java 编译器能够给我最高级别的警告。目前我用 -Xlint 编译。反正我有更多的警告吗?Xlint 提供的警告似乎微不足道。
我刚刚用 -Xlint 编译了这段代码,没有收到任何警告:
如果我在 C++ 中执行此操作并使用带有选项 -Wfloat-equal 的 gcc 进行编译,编译器会发出警告。Java 不会发出任何警告。我正在使用 Java 6。
gcc - 在 GCC 中禁用特定警告
在 Microsoft 编译器上,可以使用 #pragma 禁用特定警告,而不禁用其他警告。如果编译器警告“必须完成”的事情,这是一个非常有用的功能。
此时的 GCC 是否有类似的功能?这似乎是一个足够明显的功能,无法想象它还没有这个功能,但网络上的旧信息表明这个功能不存在。
在 GCC 中使用什么?
具体来说,我喜欢使用多字符常量,例如“abc”。这些有效地评估为一个基数 256 数字 - 一个非常方便的功能,但它会触发警告。在 case 语句中切换四个字符串非常方便。
visual-studio-2008 - 当我忘记处置 IDisposable 对象时,Visual Studio 可以警告我吗?
是否可以将 Visual Studio 2008 配置为在我忘记处置实现 IDisposable 的对象时向我发出警告?
c# - 如何摆脱 Visual Studio 中的“[some event] never used”编译器警告?
例如,我收到这个编译器警告,
从未使用过事件“Company.SomeControl.SearchClick”。
但我知道它已被使用,因为将其注释掉会使我像 20 个试图使用此事件的 XAML 页面的新警告一样!
是什么赋予了?有没有办法摆脱这个警告?