C++ 在clang中启用隐式转换

C++ 在clang中启用隐式转换,c++,c++11,clang,C++,C++11,Clang,我有一堆随机的csmith生成的代码,我正试图用clang编译,但是csmith并没有显式地强制转换类型,这让clang感到困惑 示例错误: gcc只是隐式地转换它,我找不到一种方法来使用clang实现这一点 请参见如何将其更改为C99模式 您可能遇到的另一个问题是,即使您是在C99中编译,clang对它将编译的内容往往更加挑剔。这直接来自于Clang兼容性页面: 然而,Clang比其他流行的编译器更严格,并且可能 拒绝其他编译器允许的错误代码。本页记录 Clang的常见兼容性和可移植性问题帮

我有一堆随机的csmith生成的代码,我正试图用clang编译,但是csmith并没有显式地强制转换类型,这让clang感到困惑

示例错误:

gcc只是隐式地转换它,我找不到一种方法来使用clang实现这一点


<非常感谢你

你在C++模式下编译吗?< /P> 请参见如何将其更改为C99模式

您可能遇到的另一个问题是,即使您是在C99中编译,clang对它将编译的内容往往更加挑剔。这直接来自于Clang兼容性页面:

然而,Clang比其他流行的编译器更严格,并且可能 拒绝其他编译器允许的错误代码。本页记录 Clang的常见兼容性和可移植性问题帮助您 当Clang发出错误时,理解并修复代码中的问题 信息

此外,您可能会遇到l值强制转换的问题,这是clang和GCC之间的一个文档问题。你可以找到这些信息


如果您提供了导致编译错误的确切源代码,则会更容易提供帮助。

运行
creduce
并发布导致此错误的最小代码段。当你得到一个你认为不正确的编译器错误时,也要提供版本。问题不是你认为它是什么。声明输出有效的C代码。有效的C代码不能包含从
long
int**
的隐式转换。因此,不是clang误解了代码,就是csmith生成了错误代码。无论如何,解决方案都不是让clang接受整数和指针之间的隐式转换。您是否有一个您认为有效的具体示例程序,但clang没有?文件扩展名看起来也不适合C代码。有一个问题非常值得注意,您似乎没有遵循Hi havocheavy-多亏了上面的Ben,我现在能够编译该文件了。虽然我有链接错误,这真的令人沮丧。我将很快提出一个关于链接错误的新问题
C:\Users\Steve\Documents\A\a\Csmith\main.cpp:52:568: error: cannot
  initialize an array element of type 'int32_t **volatile'
  (aka 'int **volatile') with an rvalue of type 'void *'
  ...&g_50, &g_50, &g_50, &g_50, &g_50, (void*)0}, {(void*)0, &g_50, &g_50, &...