在clang中启用隐式转换

时间:2014-07-28 22:25:47

标签: c++ c++11 clang

我有一堆随机的csmith生成的代码我试图用clang编译,但是csmith没有明确地转换类型,而且它让人感到困惑。

示例错误:

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, &...

gcc会隐瞒它,我无法通过clang找到一种方法

非常感谢帮助

1 个答案:

答案 0 :(得分:1)

您是在C ++模式下编译吗?

有关如何将其更改为C99模式,请参阅this link

你可能遇到的另一个问题是,即使你在C99中进行编译,clang也会对它的编译方式更加挑剔。这可以直接从Clang兼容性页面中获取:

  

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

此外,您可能遇到l值转换问题,这是clang和GCC之间的文档问题。您可以找到该信息here

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