Re: [PATCH] decl lang hooks

2017-05-12 Thread Richard Biener
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

2017-05-12 Thread Nathan Sidwell

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

2017-05-12 Thread Mike Stump
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

2017-05-12 Thread Richard Biener
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

2017-05-11 Thread Nathan Sidwell

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

2017-05-11 Thread Nathan Sidwell

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

2017-05-11 Thread Rainer Orth
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

2017-05-09 Thread Nathan Sidwell

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

2017-05-09 Thread Nathan Sidwell

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

2017-05-09 Thread Marek Polacek
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

2017-05-08 Thread Joseph Myers
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