Re: [PATCH] decl lang hooks
On May 13, 2017 2:01:11 AM GMT+02:00, Nathan Sidwell wrote: >On 05/12/2017 03:26 AM, Richard Biener wrote: >> On Thu, May 11, 2017 at 7:58 PM, Nathan Sidwell >wrote: >>> On 05/11/2017 01:50 PM, Rainer Orth wrote: >>> however, it breaks bootstrap with --enable-languages=obj-c++: >>> >>> >>> wierd, I thought --enable-languges=all enabled that (and I have seen >objc >>> issues pop up during development). Will take another look. >> >> to enable all languages you need to do >> --enable-languages=all,ada,obj-c++,go,brig > >seems like --enable-languages=all means --enable-languages=some :) >(though it >does help if one spells the option correctly) =all really means 'default' Richard. > >nathan
Re: [PATCH] decl lang hooks
On 05/12/2017 03:26 AM, Richard Biener wrote: On Thu, May 11, 2017 at 7:58 PM, Nathan Sidwell wrote: On 05/11/2017 01:50 PM, Rainer Orth wrote: however, it breaks bootstrap with --enable-languages=obj-c++: wierd, I thought --enable-languges=all enabled that (and I have seen objc issues pop up during development). Will take another look. to enable all languages you need to do --enable-languages=all,ada,obj-c++,go,brig seems like --enable-languages=all means --enable-languages=some :) (though it does help if one spells the option correctly) nathan -- Nathan Sidwell
Re: [PATCH] decl lang hooks
On May 11, 2017, at 12:16 PM, Nathan Sidwell wrote: > > On 05/11/2017 01:50 PM, Rainer Orth wrote: >> Hi Nathan, >>> On 05/08/2017 05:34 PM, Joseph Myers wrote: > >> ^~ >> make: *** [Makefile:1102: objcp/objcp-lang.o] Error 1 > > Having learnt how to spell --enable-languages properly today, here's the fix, > which I have applied.\ Thanks for your work.
Re: [PATCH] decl lang hooks
On Thu, May 11, 2017 at 7:58 PM, Nathan Sidwell wrote: > On 05/11/2017 01:50 PM, Rainer Orth wrote: > >> however, it breaks bootstrap with --enable-languages=obj-c++: > > > wierd, I thought --enable-languges=all enabled that (and I have seen objc > issues pop up during development). Will take another look. to enable all languages you need to do --enable-languages=all,ada,obj-c++,go,brig Richard. > nathan > > > -- > Nathan Sidwell
Re: [PATCH] decl lang hooks
On 05/11/2017 01:50 PM, Rainer Orth wrote: Hi Nathan, On 05/08/2017 05:34 PM, Joseph Myers wrote: ^~ make: *** [Makefile:1102: objcp/objcp-lang.o] Error 1 Having learnt how to spell --enable-languages properly today, here's the fix, which I have applied. nathan -- Nathan Sidwell 2017-05-11 Nathan Sidwell * cp-lang.c (get_global_decls, cxx_pushdecl, LANG_HOOK_GETDECLS, LANG_HOOKS_PUSHDECL): Move to ... * cp-objcp-common.c (cp_get_global_decls, cp_pushdec, LANG_HOOK_DECLS, LANG_HOOKS_PUSHDECL): ... here. * cp-objcp-common.h (cp_get_global_decls, cp_pushdecl): Declare. Index: cp-lang.c === --- cp-lang.c (revision 247916) +++ cp-lang.c (working copy) @@ -35,8 +35,6 @@ static tree cp_eh_personality (void); static tree get_template_innermost_arguments_folded (const_tree); static tree get_template_argument_pack_elems_folded (const_tree); static tree cxx_enum_underlying_base_type (const_tree); -static tree get_global_decls (); -static tree cxx_pushdecl (tree); /* Lang hooks common to C++ and ObjC++ are declared in cp/cp-objcp-common.h; consequently, there should be very few hooks below. */ @@ -80,10 +78,6 @@ static tree cxx_pushdecl (tree); #define LANG_HOOKS_EH_RUNTIME_TYPE build_eh_type_type #undef LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE #define LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE cxx_enum_underlying_base_type -#undef LANG_HOOKS_GETDECLS -#define LANG_HOOKS_GETDECLS get_global_decls -#undef LANG_HOOKS_PUSHDECL -#define LANG_HOOKS_PUSHDECL cxx_pushdecl /* Each front end provides its own lang hook initializer. */ struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER; @@ -235,21 +229,6 @@ tree cxx_enum_underlying_base_type (cons return underlying_type; } -/* Return the list of decls in the global namespace. */ - -static tree -get_global_decls () -{ - return NAMESPACE_LEVEL (global_namespace)->names; -} - -/* Push DECL into the current scope. */ - -static tree -cxx_pushdecl (tree decl) -{ - return pushdecl (decl); -} #include "gt-cp-cp-lang.h" #include "gtype-cp.h" Index: cp-objcp-common.c === --- cp-objcp-common.c (revision 247916) +++ cp-objcp-common.c (working copy) @@ -336,6 +336,22 @@ cxx_block_may_fallthru (const_tree stmt) } } +/* Return the list of decls in the global namespace. */ + +tree +cp_get_global_decls () +{ + return NAMESPACE_LEVEL (global_namespace)->names; +} + +/* Push DECL into the current scope. */ + +tree +cp_pushdecl (tree decl) +{ + return pushdecl (decl); +} + void cp_common_init_ts (void) { Index: cp-objcp-common.h === --- cp-objcp-common.h (revision 247916) +++ cp-objcp-common.h (working copy) @@ -31,6 +31,8 @@ extern int cp_decl_dwarf_attribute (cons extern int cp_type_dwarf_attribute (const_tree, int); extern void cp_common_init_ts (void); extern tree cp_unit_size_without_reusable_padding (tree); +extern tree cp_get_global_decls (); +extern tree cp_pushdecl (tree); /* Lang hooks that are shared between C++ and ObjC++ are defined here. Hooks specific to C++ or ObjC++ go in cp/cp-lang.c and objcp/objcp-lang.c, @@ -165,4 +167,9 @@ extern tree cp_unit_size_without_reusabl #undef LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS #define LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS cp_protect_cleanup_actions + +#undef LANG_HOOKS_GETDECLS +#define LANG_HOOKS_GETDECLS cp_get_global_decls +#undef LANG_HOOKS_PUSHDECL +#define LANG_HOOKS_PUSHDECL cp_pushdecl #endif /* GCC_CP_OBJCP_COMMON */
Re: [PATCH] decl lang hooks
On 05/11/2017 01:50 PM, Rainer Orth wrote: however, it breaks bootstrap with --enable-languages=obj-c++: wierd, I thought --enable-languges=all enabled that (and I have seen objc issues pop up during development). Will take another look. nathan -- Nathan Sidwell
Re: [PATCH] decl lang hooks
Hi Nathan, > On 05/08/2017 05:34 PM, Joseph Myers wrote: >> On Mon, 8 May 2017, Nathan Sidwell wrote: > >>> This patch changes the C++ FE to override the pushdecl and getdecl lang >>> hooks. >>> In addition to simply overriding them there, I had to fixup a couple of >>> places >>> in c-family/c-common.c and objc/objc-gnu-runtime-abi-01.c to use the >>> pushdecl >>> hook. >> >> The c/ and c-family/ changes are OK. > > Thanks. I've taken the objc change as therefore obvious and committed > (with the formatting fix Marek pointed out). however, it breaks bootstrap with --enable-languages=obj-c++: In file included from /vol/gcc/src/hg/trunk/local/gcc/objcp/objcp-lang.c:28:0: /vol/gcc/src/hg/trunk/local/gcc/langhooks-def.h:227:29: error: 'getdecls' was not declared in this scope #define LANG_HOOKS_GETDECLS getdecls ^ /vol/gcc/src/hg/trunk/local/gcc/langhooks-def.h:249:3: note: in expansion of macro 'LANG_HOOKS_GETDECLS' LANG_HOOKS_GETDECLS, \ ^~~ /vol/gcc/src/hg/trunk/local/gcc/langhooks-def.h:323:3: note: in expansion of macro 'LANG_HOOKS_DECLS' LANG_HOOKS_DECLS, \ ^~~~ /vol/gcc/src/hg/trunk/local/gcc/objcp/objcp-lang.c:47:32: note: in expansion of macro 'LANG_HOOKS_INITIALIZER' struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER; ^~ /vol/gcc/src/hg/trunk/local/gcc/langhooks-def.h:227:29: note: suggested alternative: 'getdelim' #define LANG_HOOKS_GETDECLS getdecls ^ /vol/gcc/src/hg/trunk/local/gcc/langhooks-def.h:249:3: note: in expansion of macro 'LANG_HOOKS_GETDECLS' LANG_HOOKS_GETDECLS, \ ^~~ /vol/gcc/src/hg/trunk/local/gcc/langhooks-def.h:323:3: note: in expansion of macro 'LANG_HOOKS_DECLS' LANG_HOOKS_DECLS, \ ^~~~ /vol/gcc/src/hg/trunk/local/gcc/objcp/objcp-lang.c:47:32: note: in expansion of macro 'LANG_HOOKS_INITIALIZER' struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER; ^~ make: *** [Makefile:1102: objcp/objcp-lang.o] Error 1 Rainer -- - Rainer Orth, Center for Biotechnology, Bielefeld University
Re: [PATCH] decl lang hooks
On 05/08/2017 05:34 PM, Joseph Myers wrote: On Mon, 8 May 2017, Nathan Sidwell wrote: This patch changes the C++ FE to override the pushdecl and getdecl lang hooks. In addition to simply overriding them there, I had to fixup a couple of places in c-family/c-common.c and objc/objc-gnu-runtime-abi-01.c to use the pushdecl hook. The c/ and c-family/ changes are OK. Thanks. I've taken the objc change as therefore obvious and committed (with the formatting fix Marek pointed out). nathan -- Nathan Sidwell
Re: [PATCH] decl lang hooks
On 05/09/2017 07:01 AM, Marek Polacek wrote: On Mon, May 08, 2017 at 03:16:13PM -0400, Nathan Sidwell wrote: +/* Return the list of decls in the global namespace. */ + +static +tree get_global_decls () These look weird - I'd expect to see "static tree" on the same line. D'oh! thanks for noticing. nathan -- Nathan Sidwell
Re: [PATCH] decl lang hooks
On Mon, May 08, 2017 at 03:16:13PM -0400, Nathan Sidwell wrote: > +/* Return the list of decls in the global namespace. */ > + > +static > +tree get_global_decls () > +{ > + return NAMESPACE_LEVEL (global_namespace)->names; > +} > + > +/* Push DECL into the current scope. */ > + > +static > +tree cxx_pushdecl (tree decl) > +{ > + return pushdecl (decl); > +} These look weird - I'd expect to see "static tree" on the same line. Marek
Re: [PATCH] decl lang hooks
On Mon, 8 May 2017, Nathan Sidwell wrote: > cp/name-lookup has a twisty maze of forwarding functions. One reason is that > a couple of the names are used directly by c-common.c. However, we now have > lang hooks for these things. > > This patch changes the C++ FE to override the pushdecl and getdecl lang hooks. > In addition to simply overriding them there, I had to fixup a couple of places > in c-family/c-common.c and objc/objc-gnu-runtime-abi-01.c to use the pushdecl > hook. The c/ and c-family/ changes are OK. -- Joseph S. Myers jos...@codesourcery.com