Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | extend API to support templatesaoliva/libcp1-templates | Alexandre Oliva | 2016-03-02 | 1 | -35/+547 |
| | |||||
* | introduce callback to get type char | Alexandre Oliva | 2016-03-02 | 1 | -0/+6 |
| | |||||
* | shift operators are not assignment operators | Alexandre Oliva | 2016-03-02 | 1 | -2/+0 |
| | |||||
* | fix operator handling | Alexandre Oliva | 2016-03-01 | 1 | -189/+222 |
| | |||||
* | improve decl hashing in addr rewriter; set TREE_NO_WARNING | Alexandre Oliva | 2016-02-26 | 1 | -1/+9 |
| | |||||
* | adjust copyright notice | Alexandre Oliva | 2016-02-24 | 1 | -3/+4 |
| | |||||
* | update C++ start_enum call for new prototype | Alexandre Oliva | 2016-02-19 | 1 | -1/+3 |
| | |||||
* | sanity-check all virtual, ctor and dtor flags | Alexandre Oliva | 2016-02-19 | 1 | -0/+10 |
| | |||||
* | unbreak typedefs | Alexandre Oliva | 2016-02-19 | 1 | -20/+22 |
| | |||||
* | Implement special member functions | Alexandre Oliva | 2016-02-19 | 1 | -20/+329 |
| | |||||
* | fix test to define static data members | Alexandre Oliva | 2016-02-19 | 1 | -1/+1 |
| | |||||
* | use address oracle for global namespace only | Alexandre Oliva | 2016-02-19 | 1 | -1/+2 |
| | |||||
* | libcp1plugin: drop obsolete plugin_build_member_decl draft | Alexandre Oliva | 2016-02-19 | 1 | -99/+0 |
| | |||||
* | libcc1 interface: add C++ refs, memptrs, throw specs | Alexandre Oliva | 2016-02-19 | 1 | -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 interface | Alexandre Oliva | 2016-02-19 | 1 | -12/+5 |
| | |||||
* | Fix plugin_new_decl | Alexandre Oliva | 2016-02-19 | 1 | -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 call | Alexandre Oliva | 2016-02-19 | 1 | -14/+52 |
| | |||||
* | Revamp the libcp1plugin API to support classes and namespaces. | Alexandre Oliva | 2016-02-19 | 1 | -102/+301 |
| | |||||
* | Fix variable-length arrays in C++ | Alexandre Oliva | 2016-02-19 | 1 | -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 Oliva | 2016-02-19 | 1 | -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 Oliva | 2016-02-19 | 1 | -1/+1 |
| | |||||
* | Fix function overloads. Simplify plugin_bind. | Alexandre Oliva | 2016-02-19 | 1 | -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 Oliva | 2016-02-19 | 1 | -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++ parser | Alexandre Oliva | 2016-02-19 | 1 | -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 now | Alexandre Oliva | 2016-02-19 | 1 | -0/+12 |
| | |||||
* | Use build_lang_decl for functions | Alexandre Oliva | 2016-02-19 | 1 | -1/+7 |
| | |||||
* | Introduce support for C++ in libcc1. | Alexandre Oliva | 2016-02-19 | 1 | -0/+965 |