English 中文(简体)
g++汇编者中的“未初步使用”警告
原标题:“Uninitialized use” warning in the g++ compiler

I'm using g++ with press level -Wall - Wextra and treatmenting presss as wrong (-Werror).

现在,我有时会发现“<> 可变”的错误,可在这一职能中加以使用。

我通过“有时”表示,我有两个独立的汇编单位,这两个单位都包含同一个目录。 一个汇编股没有错误汇编,另一个单位给出了上述错误。

标题档案中的相关法典如下。 由于这一职能相当长,我只转录了下文的相关文字。

确切错误是:

在这项职能中,可使用未开标法

我用以下的<代码>*标明了这一错误。

for (; ;) {
    int cmpres; // *
    while (b <= c and (cmpres = cmp(b, pivot)) <= 0) {
        if (cmpres == 0)
            ::std::iter_swap(a++, b);
        ++b;
    }
    while (c >= b and (cmpres = cmp(c, pivot)) >= 0) {
        if (cmpres == 0)
            ::std::iter_swap(d--, c);
        --c;
    }
    if (b > c) break;
    ::std::iter_swap(b++, c--);
}

(cmp is a functor that take two pointers x and y and Return —1, 0 or +1 if *x < *y,x ==*y or x > *y 。 其他变量是相同的阵列。

这一代码是较大功能的一部分,但可变的<代码>cmpres则使用no where otherwise。 因此, 我不理解为什么会发出这一警告。 此外,汇编者显然understands:cmpres将永远不会被读成(或至少,它并不总能见上)。

现在我有两个问题:

  1. www.un.org/Depts/DGACM/index_spanish.htm 为什么行为不一致? 这种警告是否由冷漠产生? (由于发出这一警告,需要进行控制流动分析,而这种分析在一般情况下是很难的,不可能总是进行)

  2. Why the warning? Is my code unsafe? I have come to appreciate this particular warning because it has saved me from very hard to detect bugs in other cases – so this is a valid warning, at least sometimes. Is it valid here?

最佳回答
问题回答

本周就与这些霸权主义有关的部族集邮清单进行了有趣的讨论。

底线是:实际上很难在不出现成指数行为的情况下诊断单位化的价值......

很显然(从讨论来看), gcc 采用上游基调方法,但鉴于你的经验,似乎并不总是足够。

我怀疑,这只是与转让在条件范围内(和在短路操作者之后)混杂在一起。 你们是否在没有审判的情况下受审?

我认为,博爱和部族民都非常关心这一榜样,因为它在C或C++中有着相对常见的做法,因此可以受益于一些调整。

守则是正确的,但汇编者未能确定,如果不进行初始使用,变量就永远不会使用。

我建议,它可能会产生一种冷却错误,即“可以”的错误。 我怀疑,不许许多多的居住条件就是如此。 该法典并非不安全,因为在所有控制道路上,在使用之前先分配立克。 然而,我肯定会发现,首先开始这样做是错误的。

然而,你可以在此留下某种变幻影。 这将是我只能认为两个翻译单位中只有一个出现错误的唯一解释。





相关问题
Undefined reference

I m getting this linker error. I know a way around it, but it s bugging me because another part of the project s linking fine and it s designed almost identically. First, I have namespace LCD. Then I ...

C++ Equivalent of Tidy

Is there an equivalent to tidy for HTML code for C++? I have searched on the internet, but I find nothing but C++ wrappers for tidy, etc... I think the keyword tidy is what has me hung up. I am ...

Template Classes in C++ ... a required skill set?

I m new to C++ and am wondering how much time I should invest in learning how to implement template classes. Are they widely used in industry, or is this something I should move through quickly?

Print possible strings created from a Number

Given a 10 digit Telephone Number, we have to print all possible strings created from that. The mapping of the numbers is the one as exactly on a phone s keypad. i.e. for 1,0-> No Letter for 2->...

typedef ing STL wstring

Why is it when i do the following i get errors when relating to with wchar_t? namespace Foo { typedef std::wstring String; } Now i declare all my strings as Foo::String through out the program, ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

Window iconification status via Xlib

Is it possible to check with the means of pure X11/Xlib only whether the given window is iconified/minimized, and, if it is, how?

热门标签