diff --git a/src/CppParser/Bindings/CLI/CppParser.h b/src/CppParser/Bindings/CLI/CppParser.h
index 0d1fd612..136b02d7 100644
--- a/src/CppParser/Bindings/CLI/CppParser.h
+++ b/src/CppParser/Bindings/CLI/CppParser.h
@@ -34,10 +34,16 @@ namespace CppSharp
{
/// The C programming language.
C = 0,
+ /// The C programming language (GNU version).
+ GNUC = 1,
/// The C++ programming language year 1998; supports deprecated constructs.
- CPlusPlus98 = 1,
+ CPlusPlus98 = 2,
+ /// The C++ programming language year 1998; supports deprecated constructs (GNU version).
+ GNUPlusPlus98 = 3,
/// The C++ programming language year 2011.
- CPlusPlus11 = 2
+ CPlusPlus11 = 4,
+ /// The C++ programming language year 2011 (GNU version).
+ GNUPlusPlus11 = 5
};
public enum struct ParserDiagnosticLevel
diff --git a/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs b/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs
index c01aba1b..4c07b2fd 100644
--- a/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs
+++ b/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs
@@ -16814,10 +16814,16 @@ namespace CppSharp
{
/// The C programming language.
C = 0,
+ /// The C programming language (GNU version).
+ GNUC = 1,
/// The C++ programming language year 1998; supports deprecated constructs.
- CPlusPlus98 = 1,
+ CPlusPlus98 = 2,
+ /// The C++ programming language year 1998; supports deprecated constructs (GNU version).
+ GNUPlusPlus98 = 3,
/// The C++ programming language year 2011.
- CPlusPlus11 = 2
+ CPlusPlus11 = 4,
+ /// The C++ programming language year 2011 (GNU version).
+ GNUPlusPlus11 = 5
}
public enum ParserDiagnosticLevel
diff --git a/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs b/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs
index 3457b699..47c4d2b8 100644
--- a/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs
+++ b/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs
@@ -16814,10 +16814,16 @@ namespace CppSharp
{
/// The C programming language.
C = 0,
+ /// The C programming language (GNU version).
+ GNUC = 1,
/// The C++ programming language year 1998; supports deprecated constructs.
- CPlusPlus98 = 1,
+ CPlusPlus98 = 2,
+ /// The C++ programming language year 1998; supports deprecated constructs (GNU version).
+ GNUPlusPlus98 = 3,
/// The C++ programming language year 2011.
- CPlusPlus11 = 2
+ CPlusPlus11 = 4,
+ /// The C++ programming language year 2011 (GNU version).
+ GNUPlusPlus11 = 5
}
public enum ParserDiagnosticLevel
diff --git a/src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs b/src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs
index 8e513c0f..51e97437 100644
--- a/src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs
+++ b/src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs
@@ -16813,10 +16813,16 @@ namespace CppSharp
{
/// The C programming language.
C = 0,
+ /// The C programming language (GNU version).
+ GNUC = 1,
/// The C++ programming language year 1998; supports deprecated constructs.
- CPlusPlus98 = 1,
+ CPlusPlus98 = 2,
+ /// The C++ programming language year 1998; supports deprecated constructs (GNU version).
+ GNUPlusPlus98 = 3,
/// The C++ programming language year 2011.
- CPlusPlus11 = 2
+ CPlusPlus11 = 4,
+ /// The C++ programming language year 2011 (GNU version).
+ GNUPlusPlus11 = 5
}
public enum ParserDiagnosticLevel
diff --git a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs
index f2fbe222..68f63402 100644
--- a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs
+++ b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs
@@ -16813,10 +16813,16 @@ namespace CppSharp
{
/// The C programming language.
C = 0,
+ /// The C programming language (GNU version).
+ GNUC = 1,
/// The C++ programming language year 1998; supports deprecated constructs.
- CPlusPlus98 = 1,
+ CPlusPlus98 = 2,
+ /// The C++ programming language year 1998; supports deprecated constructs (GNU version).
+ GNUPlusPlus98 = 3,
/// The C++ programming language year 2011.
- CPlusPlus11 = 2
+ CPlusPlus11 = 4,
+ /// The C++ programming language year 2011 (GNU version).
+ GNUPlusPlus11 = 5
}
public enum ParserDiagnosticLevel
diff --git a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/Std.cs b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/Std.cs
index a2a5d146..bf615f41 100644
--- a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/Std.cs
+++ b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/Std.cs
@@ -1096,6 +1096,10 @@ namespace std
namespace __cxx11
{
}
+
+ namespace __cxx11
+ {
+ }
}
public unsafe partial class __mbstate_t
@@ -3478,6 +3482,10 @@ namespace std
namespace __cxx11
{
}
+
+ namespace __cxx11
+ {
+ }
}
namespace std
diff --git a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs
index ee400b7c..e6b900a3 100644
--- a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs
+++ b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs
@@ -16813,10 +16813,16 @@ namespace CppSharp
{
/// The C programming language.
C = 0,
+ /// The C programming language (GNU version).
+ GNUC = 1,
/// The C++ programming language year 1998; supports deprecated constructs.
- CPlusPlus98 = 1,
+ CPlusPlus98 = 2,
+ /// The C++ programming language year 1998; supports deprecated constructs (GNU version).
+ GNUPlusPlus98 = 3,
/// The C++ programming language year 2011.
- CPlusPlus11 = 2
+ CPlusPlus11 = 4,
+ /// The C++ programming language year 2011 (GNU version).
+ GNUPlusPlus11 = 5
}
public enum ParserDiagnosticLevel
diff --git a/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs b/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs
index 4d8ea8eb..859813ef 100644
--- a/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs
+++ b/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs
@@ -16814,10 +16814,16 @@ namespace CppSharp
{
/// The C programming language.
C = 0,
+ /// The C programming language (GNU version).
+ GNUC = 1,
/// The C++ programming language year 1998; supports deprecated constructs.
- CPlusPlus98 = 1,
+ CPlusPlus98 = 2,
+ /// The C++ programming language year 1998; supports deprecated constructs (GNU version).
+ GNUPlusPlus98 = 3,
/// The C++ programming language year 2011.
- CPlusPlus11 = 2
+ CPlusPlus11 = 4,
+ /// The C++ programming language year 2011 (GNU version).
+ GNUPlusPlus11 = 5
}
public enum ParserDiagnosticLevel
diff --git a/src/CppParser/CppParser.cpp b/src/CppParser/CppParser.cpp
index 4bc15fbe..aca8dfa0 100644
--- a/src/CppParser/CppParser.cpp
+++ b/src/CppParser/CppParser.cpp
@@ -18,7 +18,7 @@ CppParserOptions::CppParserOptions()
, NoBuiltinIncludes(false)
, MicrosoftMode(false)
, Verbose(false)
- , LanguageVersion(CppParser::LanguageVersion::CPlusPlus11)
+ , LanguageVersion(CppParser::LanguageVersion::GNUPlusPlus11)
, TargetInfo(0)
{
}
diff --git a/src/CppParser/CppParser.h b/src/CppParser/CppParser.h
index ed9552de..3644262e 100644
--- a/src/CppParser/CppParser.h
+++ b/src/CppParser/CppParser.h
@@ -22,13 +22,25 @@ enum class LanguageVersion
*/
C,
/**
+ * The C programming language (GNU version).
+ */
+ GNUC,
+ /**
* The C++ programming language year 1998; supports deprecated constructs.
*/
CPlusPlus98,
/**
+ * The C++ programming language year 1998; supports deprecated constructs (GNU version).
+ */
+ GNUPlusPlus98,
+ /**
* The C++ programming language year 2011.
*/
- CPlusPlus11
+ CPlusPlus11,
+ /**
+ * The C++ programming language year 2011 (GNU version).
+ */
+ GNUPlusPlus11
};
struct CS_API CppParserOptions
diff --git a/src/CppParser/Parser.cpp b/src/CppParser/Parser.cpp
index ff2547cb..7fcaa848 100644
--- a/src/CppParser/Parser.cpp
+++ b/src/CppParser/Parser.cpp
@@ -250,10 +250,10 @@ void Parser::SetupHeader()
switch (Opts->LanguageVersion)
{
case CppParser::LanguageVersion::C:
+ case CppParser::LanguageVersion::GNUC:
args.push_back("-xc");
break;
- case CppParser::LanguageVersion::CPlusPlus98:
- case CppParser::LanguageVersion::CPlusPlus11:
+ default:
args.push_back("-xc++");
break;
}
@@ -261,11 +261,20 @@ void Parser::SetupHeader()
switch (Opts->LanguageVersion)
{
case CppParser::LanguageVersion::C:
+ args.push_back("-std=c99");
+ break;
+ case CppParser::LanguageVersion::GNUC:
args.push_back("-std=gnu99");
break;
case CppParser::LanguageVersion::CPlusPlus98:
+ args.push_back("-std=c++98");
+ break;
+ case CppParser::LanguageVersion::GNUPlusPlus98:
args.push_back("-std=gnu++98");
break;
+ case CppParser::LanguageVersion::CPlusPlus11:
+ args.push_back(Opts->MicrosoftMode ? "-std=c++14" : "-std=c++11");
+ break;
default:
args.push_back(Opts->MicrosoftMode ? "-std=gnu++14" : "-std=gnu++11");
break;