summaryrefslogtreecommitdiff
path: root/libcc1/libcp1plugin.cc
Commit message (Collapse)AuthorAgeFilesLines
* extend API to support templatesaoliva/libcp1-templatesAlexandre Oliva2016-03-021-35/+547
|
* introduce callback to get type charAlexandre Oliva2016-03-021-0/+6
|
* shift operators are not assignment operatorsAlexandre Oliva2016-03-021-2/+0
|
* fix operator handlingAlexandre Oliva2016-03-011-189/+222
|
* improve decl hashing in addr rewriter; set TREE_NO_WARNINGAlexandre Oliva2016-02-261-1/+9
|
* adjust copyright noticeAlexandre Oliva2016-02-241-3/+4
|
* update C++ start_enum call for new prototypeAlexandre Oliva2016-02-191-1/+3
|
* sanity-check all virtual, ctor and dtor flagsAlexandre Oliva2016-02-191-0/+10
|
* unbreak typedefsAlexandre Oliva2016-02-191-20/+22
|
* Implement special member functionsAlexandre Oliva2016-02-191-20/+329
|
* fix test to define static data membersAlexandre Oliva2016-02-191-1/+1
|
* use address oracle for global namespace onlyAlexandre Oliva2016-02-191-1/+2
|
* libcp1plugin: drop obsolete plugin_build_member_decl draftAlexandre Oliva2016-02-191-99/+0
|
* libcc1 interface: add C++ refs, memptrs, throw specsAlexandre Oliva2016-02-191-1/+68
| | | | | | | Add support for reference types, pointers to members, and exception specifications for function and method types. Bumped GCC_CP_FE_VERSION_0.
* libcp1plugin: update to new hashtable interfaceAlexandre Oliva2016-02-191-12/+5
|
* Fix plugin_new_declAlexandre Oliva2016-02-191-3/+4
| | | | | Tested and fixed static data members, member functions, member typedefs, and nested classes.
* libcp1plugin: implement non-field class members; fix build_memfn_type callAlexandre Oliva2016-02-191-14/+52
|
* Revamp the libcp1plugin API to support classes and namespaces.Alexandre Oliva2016-02-191-102/+301
|
* Fix variable-length arrays in C++Alexandre Oliva2016-02-191-14/+6
| | | | | | | | | | Use g++ infrastructure to save the computation of the array size, but this is not enough. The plugin is replacing the array type with a constant-sized array, so that building the auto array does not confuse later passes. This unfortunately breaks the deferred evaluation of sizeof done in C++, so I removed that, and made all decls for which addresses are given DECL_EXTERN, so that we don't even attempt to instantiate them.
* Fix build_constant for C++.Alexandre Oliva2016-02-191-19/+7
| | | | | | | C++ wants CONST_DECLs to be used for enumerators only. Define a VAR_DECL with a READONLY and STATIC flags, and let cp_finish_decl take care of the initialization. Then introduce the declaration like other decls, removing the only remaining use of pushdecl_safe, so the function is removed too.
* Update libcp1plugin build_enumerator call to match cc1plus change.Alexandre Oliva2016-02-191-1/+1
|
* Fix function overloads. Simplify plugin_bind.Alexandre Oliva2016-02-191-1/+10
| | | | | | | | | | | | _gdb_expr is extern C, which makes C the current language, which causes decls created within to be regarded as extern C as well, so overloading is not possible. I'm overriding the lang setting for now, but if my plan goes through, the oracle will run get a different context that will make C++ the current language. While looking into this, I have simplified decl binding, so that changes to the C++ front-end can be reverted, since no internal functions are used any more.
* Fix enums.Alexandre Oliva2016-02-191-50/+45
| | | | | | | Use more of the same machinery that the C++ parser uses to introduce tagged types. This enters and leaves scopes, so build_*_type and finish_*_type must be properly nested. All tagged types are added to the global namespace for now.
* Fix unions (and structs), behaving more like the C++ parserAlexandre Oliva2016-02-191-35/+15
| | | | | | | We enter the class/union scope at build_(record|union)_type, and leave it at finish_record_or_union. Ctors, dtors and the class name defined within the class name are probably not correctly defined because we're still using a placeholder name, but this will have to do for now.
* Work around GDB's supplying namespace and signature for nowAlexandre Oliva2016-02-191-0/+12
|
* Use build_lang_decl for functionsAlexandre Oliva2016-02-191-1/+7
|
* Introduce support for C++ in libcc1.Alexandre Oliva2016-02-191-0/+965