问题标签 [gcc6]

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.

0 投票
1 回答
667 浏览

c - 如何从 GCC-6 中捕获像“-Wduplicated-cond”这样的重复项

就像标题说的那样,对于那些已经知道从你开始的人来说,可以使用这个标志GCC-6在语句中捕获重复项,如下所示:if-Wduplicated-cond

输出将是:

现在我知道以下内容:

else if( (a > 4) && (a < 6) )

不一样

else if( a == 5 )

但是碰巧我会检查相同的条件 if a == 5

我的问题是,是否有机会捕捉(避免)这种重复?

0 投票
1 回答
428 浏览

c++ - 存在使用命名空间时的全局范围解析

考虑以下代码:

此代码有效吗?还是::foo模棱两可?或确实::foo指的是class foo,因此没有::foo::baz

当谈到编译器时,gcc 6.1.1似乎认为后者:

另一方面gcc 5.3.1clang 3.8.0和 intel 编译器 16.0.3 不会产生任何警告或错误。

我怀疑在 C++14 标准的 3.4.3.2.2 下,这应该是有效的并且没有歧义,但我不太确定。

编辑:此外,foo::baz mybaz只有 clang 报告了一个模棱两可的错误。

0 投票
1 回答
725 浏览

gcc - 执行编译命令时出现gdb错误:libcc1.so:无法打开共享对象文件:没有这样的文件或目录

我从源代码编译了最新的 gdb 版本以尝试新compile命令。但不幸的是,Could not load libcc1.so: libcc1.so: cannot open shared object file: No such file or directory每当我尝试执行compile命令时它都会出错。我检查了我是否libcc1.so安装了库并且我已经安装了。实际上看这里安装的库,看起来gcc已经安装了libcc1.so。我的 gcc 版本是 6.1 顺便说一句。

0 投票
1 回答
227 浏览

linked-list - 带有互斥锁的线程安全代码

试图汤姆在 c11 (gcc6) 中实现我的链表,线程安全。唯一我没有得到多少互斥锁和解锁我应该去?

或者

或者

寻找一种不让其他线程等待太多的方法,因为我将有许多持续时间很短的任务从文件中读取最多 10 个字节,更改内存中的 10 个字节,写入 10 个字节的文件。

0 投票
0 回答
593 浏览

c++ - -fsanitize=bounds-strict 是否包含在 GCC 6 的 -fsanitize=undefined 中?

我正在为使用 GCC 6 编译的 C++ 库编写问题报告。我正在阅读GCC 6 Changes, New Features, and Fixes,其中一个注释是:

  • UndefinedBehaviorSanitizer 获得了一个新的清理选项 -fsanitize=bounds-strict,它可以严格检查数组边界。特别是,它启用了 -fsanitize=bounds 以及灵活的类似数组成员的数组的检测。

是否包含严格的边界检查-fsanitize=undefined?还是我们都需要-fsanitize=undefinedand -fsanitize=bounds-strict

0 投票
2 回答
489 浏览

c - c struct (gcc) 问题上的原子加载/保存

尝试我的运气来实现无锁单链表。

这是否也使 _Atomic 结构的所有成员都具有原子性?

atomic_load 和 atomic_store 的用法是否正确?

0 投票
3 回答
2422 浏览

c++ - gcc 6.1.0 分段错误 - gcc 错误?

让我们考虑以下代码。事实上,这是我使用 gmock 和模拟 void(void) 方法发现的缩小问题。

构建它:

优化级别不同于 -O0 并且运行结果会导致分段错误。

是 gcc 错误还是带有 c++ 代码的东西(是的,是的,我知道它使用副作用,但它可以与其他编译器一起使用,并且也没有优化)

0 投票
1 回答
2879 浏览

nvidia - gcc - openacc - 编译的程序无法正常运行

最近,GCC 社区已经做出了一些努力,在他们的编译器中支持 OpenACC。所以,我想尝试一下。

使用这个与 GCC 网站上的主要文档很接近的分步教程(教程),我能够编译和构建支持 OpenACC 的GCC 6.1 。

然后,我使用以下命令编译了我的程序:

gcc pi.c -fopenacc -foffload=nvptx-none -foffload="-O3" -O3

而且,一切都没有任何错误。

执行没有错误,但没有正确答案。

这是我的 C 代码和正在运行的程序的输出:

这是运行后的输出a.out

有任何想法吗?

0 投票
1 回答
592 浏览

c++ - 为什么 std::equal 比两个小的 std::array 的手动循环慢得多?

我正在分析一小段代码,它是更大模拟的一部分,令我惊讶的是,STL 函数 equal (std::equal) 比简单的 for 循环慢得多,逐个元素地比较两个数组。我写了一个小测试用例,我认为这是两者之间的公平比较,并且使用 Debian 档案中的 g++ 6.1.1 的差异并非微不足道。我正在比较两个有符号整数的四元素数组。我测试了 std::equal、operator== 和一个小的 for 循环。我没有使用 std::chrono 来确定确切的时间,但是可以通过 time ./a.out 明确地看到差异。

我的问题是,鉴于下面的示例代码,为什么 operator== 和重载函数 std::equal (我相信它调用 operator== )需要大约 40 秒才能完成,而手写循环只需要 8 秒?我正在使用最近的基于英特尔的笔记本电脑。for 循环在所有优化级别(-O1、-O2、-O3 和 -Ofast)上都更快。我编译了代码 g++ -std=c++14 -Ofast -march=native -mtune=native

运行代码

循环运行了很多次,只是为了让肉眼清楚地看到差异。模运算符表示对数组元素之一的廉价操作,用于防止编译器在循环外进行优化。

0 投票
1 回答
162 浏览

c++ - GCC 错误 - 在 constexpr 中输入/递减数组访问

我在 constexpr 函数内的 GCC 6 和 7(不是 GCC 5)中发现了一个错误,如果函数在编译时(错误结果)或运行时(正确结果)得到评估,这会导致不同的结果。

现场示例

问题是数组访问中的递增(也发生在递减)操作。

常量表达式的编译时结果为 0(错误),运行时结果为 1(正确)。

任何人都可以确认此错误并将其报告给:https ://gcc.gnu.org/bugzilla/

我无法在那里创建帐户User account creation has been restricted.。我联系了管理员,但对我来说这个错误非常重要。所以它也想通知你。谢谢!