On Sun, Aug 12, 2012 at 3:33 PM, H.J. Lu <hjl.to...@gmail.com> wrote: > On Sun, Aug 12, 2012 at 1:04 PM, Diego Novillo <dnovi...@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 -- H.J.