This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
On Sun, Aug 12, 2012 at 3:33 PM, H.J. Lu <hjl.tools@gmail.com> wrote:On Sun, Aug 12, 2012 at 1:04 PM, Diego Novillo <dnovillo@google.com> wrote:I will be sending 6 patches that implement all the changes we have been making on the cxx-conversion branch. As described in http://gcc.gnu.org/ml/gcc/2012-08/msg00015.html, these patches change the default bootstrap process so that stage 1 always builds with a C++ compiler.
Other than the bootstrap change, the patches make no functional changes to the compiler. Everything should build as it does now in trunk.
I have split the merge in 6 main patches. I will send these patches to the respective maintainers and gcc-patches. Please remember that the patches conform to the new C++ coding guidelines (http://gcc.gnu.org/codingconventions.html#Cxx_Conventions):
1- Configuration changes. 2- Re-write of VEC. 3- Re-write of gengtype to support C++ templates and user-provided marking functions. 4- New hash table class. 5- Re-write double_int. 6- Implement tree macros as inline functions so they can be called from gdb.
As discussed before, several of these patches do not fully change the call sites to use the new APIs. We will do this change once the branch has been merged into trunk. Otherwise, the branch becomes a maintenance nightmare (despite not having changed many caller sites we were already starting to run into maintenance problems).
For those who would like to build the conversion, you can either checkout the branch from SVN (svn://gcc.gnu.org/gcc/branches/cxx-conversion) or get the merged trunk I have in the git repo (branch dnovillo/cxx-conversion).
dnovillo/cxx-conversion git branch failed to bootstrap on Fedora 17 x86-64 when configured with
--enable-languages=c,c++,fortran,java,lto,objc,obj-c++,go
I got
/export/gnu/import/git/gcc-x32/gcc/objc/objc-act.c: In function \u2018tree_node* objc_build_constructor(tree, vec_t<constructor_elt_d>*)\u2019: /export/gnu/import/git/gcc-x32/gcc/objc/objc-act.c:3212:44: error: base operand of \u2018->\u2019 has non-pointer type \u2018constructor_elt_d\u2019 if (!VEC_index (constructor_elt, elts, 0)->index)
This patch fixes the error:
diff --git a/gcc/objc/objc-act.c b/gcc/objc/objc-act.c index 5c924bf..caa16c7 100644 --- a/gcc/objc/objc-act.c +++ b/gcc/objc/objc-act.c @@ -3209,7 +3209,7 @@ objc_build_constructor (tree type, VEC(constructor_elt,gc) *elts) #ifdef OBJCPLUS /* Adjust for impedance mismatch. We should figure out how to build CONSTRUCTORs that consistently please both the C and C++ gods. */ - if (!VEC_index (constructor_elt, elts, 0)->index) + if (!VEC_index (constructor_elt, elts, 0).index) TREE_TYPE (constructor) = init_list_type_node; #endif
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |