This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Merge C++ conversion into trunk (0/6 - Overview)
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: Diego Novillo <dnovillo at google dot com>
- Cc: gcc-patches at gcc dot gnu dot org, Lawrence Crowl <crowl at google dot com>, bonzini at gnu dot org, dj at redhat dot com, rguenther at suse dot de, tromey at redhat dot com, laurynas dot biveinis at gmail dot com
- Date: Sun, 12 Aug 2012 15:38:04 -0700
- Subject: Re: Merge C++ conversion into trunk (0/6 - Overview)
- References: <20120812200427.GA12561@google.com> <CAMe9rOqTQ6Ongo6SmmYJCrN7_9ry+ApfgTCUoacWoCXub0pfsg@mail.gmail.com>
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
--
H.J.