On 10/13/2016 12:20 PM, Jakub Jelinek wrote:

both relied on TREE_PUBLIC be actually false for LABEL_DECLs, because
otherwise they have code later on that can't handle LABE_DECLs (plus callers
also not expecting LABEL_DECLs might not bind locally or might not bind to
the current def.


Ok, thanks. Guess I'll be testing the following:

@@ -6867,6 +6877,7 @@ default_binds_local_p_3 (const_tree exp,
   /* Static variables are always local.  */
   if (! TREE_PUBLIC (exp))
     return true;
+  gcc_assert (TREE_CODE (exp) != LABEL_DECL);

   /* With resolution file in hand, take look into resolutions.
      We can't just return true for resolved_locally symbols,
@@ -6978,6 +6989,7 @@ decl_binds_to_current_def_p (const_tree
     return false;
   if (!TREE_PUBLIC (decl))
     return true;
+  gcc_assert (TREE_CODE (exp) != LABEL_DECL);

   /* When resolution is available, just use it.  */
   if (symtab_node *node = symtab_node::get (decl))


Bernd

Reply via email to