clang++ and g++ difference. Who is right ?


I know there is come C++ expert around, so maybe someone may tell me who is right and who is wrong compiling the following code:

---------------- extern.cpp ---------------

#include <stdio.h>

namespace lldb_private { const char *GetVersion(); }

const char * lldb_private::GetVersion() {
extern const double LLDBVersionNumber;
static char g_version_string[32];
if (g_version_string[0] == ‘\0’)
::snprintf (g_version_string, sizeof(g_version_string), “LLDB-%g”, LLDBVersionNumber);

return g_version_string;

Umm, what's the issue? It appears to compile with both g++ and
clang++ without errors.