Kimon Topouzidis
1298634804
Extended declarations to store their packing. ( #871 )
8 years ago
Mohit Mohta
3699574983
Removed the macros in C++ AST for std::string because we can marshal it ( #866 )
8 years ago
Kimon Topouzidis
e8e03f7aae
Added float128 to the marshalling structures in the C# generator. ( #857 )
8 years ago
Dimitar Dobrev
b77de1a36c
Improved the collection of type template parameters when parsing dependent name types.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
8 years ago
Dimitar Dobrev
9dbcc3cc2c
Completed the support for dependent type names.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
8 years ago
Dimitar Dobrev
974f8fab20
Replaced the useless desugared dependent name type with its qualifier.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
8 years ago
realvictorprm
936d2231a7
Fixed wrong recording of declaration order ( #816 )
...
This is a bugfix for critical bug. With the fix the generation of the parser bindings should be nearly correct.
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
8 years ago
Dimitar Dobrev
6d63508d3f
Sent a missed changed about reading the function type in the parser.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
8 years ago
realvictorprm
10c86a2a10
Fixed the generated C# when an incomplete class is forwarded more than once.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
8 years ago
realvictorprm
9d89764965
Wrapped injected classes in order to ease binding lists of redeclarations.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
8 years ago
Dimitar Dobrev
10ac0a4865
Fixed the getting of the template a specialised function is instantiated from.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
8 years ago
Dimitar Dobrev
fed72f5910
Ensured the C# gen correctly imports a native library with no target triple.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
8 years ago
Dimitar Dobrev
e32ebc8200
Added resolution of C++ "auto" types.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Joao Matos
3070cdd955
Stubbed BuiltinTemplate and ClassScopeFunctionSpecialization decl types in parser.
9 years ago
Joao Matos
70257ab6df
Stubbed out clang AutoType in the parser to get rid of warnings.
9 years ago
Dimitar Dobrev
2531d631c6
Ensured template arguments of specialised functions are read.
9 years ago
Dimitar Dobrev
f4ace8fccc
Checked all redeclarations when parsing function bodies which is back on.
9 years ago
Dimitar Dobrev
32f315d206
Improved the recognition of inlined functions by checking their redeclarations.
...
The parsing of function bodies is no longer needed and it slows parsing down significantly so it is now turned off.
9 years ago
Dimitar Dobrev
b8f54de73e
Parsed function bodies.
9 years ago
Dimitar Dobrev
329d350f9d
Added the specialisation info, if any, along with its arguments, to functions.
9 years ago
Dimitar Dobrev
8d322ad53e
Properly handled signed chars in the AST.
9 years ago
Dimitar Dobrev
cef847825a
Exposed constant expressions, friendships and exception specifications of functions in our AST.
9 years ago
Dimitar Dobrev
dbb3182b44
Fixed all warnings in our C++ part.
9 years ago
Dimitar Dobrev
60f5da9ced
Fixed memory leaks when reading template parameters.
9 years ago
Dimitar Dobrev
5af5b2093f
Extended the AST with the template parameters being substituted.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Joao Matos
2be56cbf0d
Clean up a bunch of build warnings.
9 years ago
Dimitar Dobrev
56c1fab63b
Fixed a bug causing a class layout to have the class as its own base.
...
Fixes https://github.com/mono/CppSharp/issues/702 .
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
db942dc06c
Wrapped the reference qualifier of functions.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
5d8ecf32d7
Extended the AST with the GCC vector type ("__attribute__").
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
0a5c73dc48
Added explicit GNU versions to the language options of the parser.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
749c2b17ec
Renamed ParserOptions to CppParserOptions and ParserOptions2 to ParserOptions.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
deea8d8cda
Removed functions made ambiguous by different qualifiers on the same type in their parameter.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
d419cb7156
Added all system fields to the internal layouts used in the C# generator.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
1dd73afda6
Fixed a crash when checking specialisations of std::vector.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
7d67f4b023
Added unary transformations and other fixes to restore the full build with all tests.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
397d82b2a1
Fixed the generated C# when having a field of type char*.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Joao Matos
b7689b2d60
Added support for missing basic Clang built-in types.
9 years ago
Joao Matos
4b1309f5be
Added support for C++14 variable templates and specializations.
9 years ago
Joao Matos
12312bff14
Refactored common template handling code in native AST.
9 years ago
Dimitar Dobrev
d41609eafb
Marked incomplete class template specialisations and ignored them later.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
7b78053f93
Added compatibility with a little newer Clang.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Joao Matos
ab3660cc02
Skip walking implicit C++ records.
9 years ago
Nathan Loofbourrow
d168496cbf
Changes to match clang 3.8.1 API changes
9 years ago
Dimitar Dobrev
3cd024cccf
Added marshalling of std::string to the C# end.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
fc87fb6ee9
Added the desugared type, if any, of DependentNameType, to the AST.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
7986747373
Added dependent template specialization types to the AST.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
06410eddbc
Stored specializations in the templated class itself because ClassTemplate is not a complete declaration.
...
ClassTemplate in Clang does not actually represent a complete declaration. For example, let's see the implementation of clang::ClassTemplateDecl::isThisDeclarationADefinition:
bool isThisDeclarationADefinition() const {
return getTemplatedDecl()->isThisDeclarationADefinition();
}
(http://clang.llvm.org/doxygen/DeclTemplate_8h_source.html#l01995 at the time of this commit)
The above shows that class templates do not have definitions, instead, their "definitions" are those of the real templates classes.
In addition let's see ClassTemplateDecl::getCanonicalDecl():
const ClassTemplateDecl *getCanonicalDecl() const {
return cast<ClassTemplateDecl>(
RedeclarableTemplateDecl::getCanonicalDecl());
}
(http://clang.llvm.org/doxygen/DeclTemplate_8h_source.html#l02023 at the time of this commit)
In turn RedeclarableTemplateDecl::getCanonicalDecl() is defined as:
RedeclarableTemplateDecl *getCanonicalDecl() override {
return getFirstDecl();
}
where getFirstDecl() returns just that - the first encountered declaration which might as well be a forward one.
This means that the only complete declaration ClassTemplateDecl can point to is the template class itself,
and the latter is therefore our only choice if we want to have a full list of all specializations of that template class.
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
eaef452d52
Stopped ignoring system declarations so that they can be properly parsed.
...
We need this because of the upcoming support for system types, such as std::string or std::vector.
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
7f93b4a5bd
Marked incomplete declarations even if their completions cannot be found.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
cc2a283c7f
Fixed the completion of templates.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago