Dimitar Dobrev
0798c5428c
Fixed a case of default arguments which use nullptr.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
cdc51afc0e
Extended the parser and AST to handle template template parameters.
...
For more details see the Clang documentation ( http://clang.llvm.org/doxygen/classclang_1_1TemplateTemplateParmDecl.html ).
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
8a4261dd42
Handled the completeness of template specialisations in the parser.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
dc84c9b765
Added an option to parse all headers at once - much faster.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
69bd424c75
Temporarily suspended the completion of types because it causes problems while not useful yet.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
e41d4340e9
Simplified the parser by removing a redundancy.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
0d5c4539a2
Generated internals of types nested in templates.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
a6604b5f8c
Fixed a regression when getting code gen info for certain functions.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
1604f8e494
Removed the completion of system types because it needlessly exhausts the stack.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
8badb497cf
Fixed an endless recursion when checking a function for code generation.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
f29e3a2240
Fixed an assert when parsing nested types which use template instantiations of void.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
50a5d328db
Fixed an assert when parsing template instantiations of void.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
c4332f2c8a
Removed some redundant completion of types now that we complete all of them anyway.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
3d4c7c56f8
Changed the parser for easier transition to a newer Clang.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
2403d7d3a3
Replaced the useless internals of templates with the internals of their specialisations.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
e4200f4690
Fixed the wrapping of template parameters in the parser.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Joao Matos
bc26e77ab2
Extract AST->getTargetInfo() expression into a local variable.
10 years ago
Joao Matos
b53aaae81b
Fixes parsing of K&R-style C functions with no prototypes.
...
Fixes issue #641 .
10 years ago
Joao Matos
93f5161710
Fixed handling of different language versions in the C++ parser.
...
Fixes issue #641 .
10 years ago
Dimitar Dobrev
6821e983a6
Checked if a library exists before trying to parse it.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
2ef14d0fcf
Introduced consistent usage of '&' - it is now always stuck to the type.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
ae8d3feb53
Added reading of exported mach-o (OS X) symbols.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
fc84e6bf1e
Added reading of dependencies of Mach-O (OS X) binaries.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
11 years ago
Dimitar Dobrev
192fede3f7
Connected the functions in the AST to the template functions they instantiate, if any.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
11 years ago
Dimitar Dobrev
a2fd71cc74
Enabled getting of template specialisations when type locations are invalid.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
11 years ago
Joao Matos
24e53f4f79
Fixed expression parsing of dependent type default unary expressions.
...
Fixes issue #618 .
11 years ago
Abhinav Tripathi
d753c8d637
Moved property IsImplicit to Declaration from Method.
11 years ago
Dimitar Dobrev
998f8446fe
Fixed the debug build.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
11 years ago
Dimitar Dobrev
1471e6f2fb
Simplified and tested the reading of line numbers.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
11 years ago
Dimitar Dobrev
05d7088cd0
Improved the reading of line numbers by expanding locations.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
11 years ago
Dimitar Dobrev
b3a5b88433
Removed Method.AccessDecl because it doesn't map to Clang and was buggy.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
11 years ago
Dimitar Dobrev
f6210f622e
Fixed a regression in the sharing of the method object from v-tables in certain corner cases.
...
QPaintDevice::initPainter appeared twice in the wrapper for QtGui but I could not isolate it in a test.
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
11 years ago
Dimitar Dobrev
c7357aa400
Removed the creation of forward declarations if their complete counterparts have been parsed.
...
These object leaked memory too.
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
11 years ago
Dimitar Dobrev
68e9bb3756
Fixed a regression when a default value uses a constructor with a temporary expression.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
11 years ago
Dimitar Dobrev
6db0676b5a
Made entries in v-tables use the same method objects as regular methods.
...
Besides being obviously correct, this fixes a memory leak.
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
11 years ago
Dimitar Dobrev
9645fa24a5
Fixed a possible memory leak with default arguments assigned by a constructor.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
11 years ago
Dimitar Dobrev
c0767bcd47
Eliminated memory leaks with forward declarations.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
11 years ago
Dimitar Dobrev
40479b31a0
Removed a redundant C++ object which on top caused a memory leak.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
11 years ago
Dimitar Dobrev
0b93c17b39
Removed code made redundant by the simplified parsing of libraries.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
11 years ago
Dimitar Dobrev
fd866d5cdb
Simplified the parsing of libraries.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
11 years ago
Dimitar Dobrev
088530dacf
Fixed the memory leaks when parsing enumerations.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
11 years ago
Dimitar Dobrev
7d7b75a155
Changed PreprocessedEntity to a non-declaration because it isn't in Clang.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
11 years ago
Dimitar Dobrev
1ba4493bf6
Updated to LLVM/Clang 253162/253161 respectively.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
11 years ago
Dimitar Dobrev
01a087117e
Improved the support for default args by ignoring a temporary expression.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
11 years ago
Dimitar Dobrev
d0ad681a61
Extended the AST and the parser to support call expressions in default args.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
11 years ago
triton
4f1e619a62
Moved MSVC options setup from parser to MSVC toolchain code.
11 years ago
triton
54267b88a4
Implemented support for parsing C++11 atomic types.
11 years ago
triton
b908881517
Simplified Parser::GetDeclMangledName.
11 years ago
triton
aa7f02460e
Fixes dependent bitfield testcase introduced in d6b5fcfe2b.
...
I extracted a test case based from the Boost crasher but it seems that it was stronger than the original problem.
11 years ago
triton
ce7d6b2dc4
Improve robustness when handling unexpected FunctionProto type locs.
...
Fixes an error when parsing Boost code (tuple_basic.hpp).
```
// Swallows any assignment (by Doug Gregor)
namespace detail {
struct swallow_assign;
typedef void (detail::swallow_assign::*ignore_t)();
struct swallow_assign {
swallow_assign(ignore_t(*)(ignore_t)) {}
template<typename T>
swallow_assign const& operator=(const T&) const {
return *this;
}
};
} // namespace detail
template<>
struct make_tuple_traits<detail::ignore_t(detail::ignore_t)> {
typedef detail::swallow_assign type;
};
```
11 years ago