Patchwork C++ PATCH to avoid duplicate overload resolution (related to c++/48481)

login
register
mail settings
Submitter Jakub Jelinek
Date July 1, 2011, 7:30 a.m.
Message ID <20110701073000.GD16443@tyan-ft48-01.lab.bos.redhat.com>
Download mbox | patch
Permalink /patch/102875/
State New
Headers show

Comments

Jakub Jelinek - July 1, 2011, 7:30 a.m.
On Thu, Jun 30, 2011 at 05:08:49PM -0400, Jason Merrill wrote:
> Author: Jason Merrill <jason@redhat.com>
> Date:   Thu Jun 30 00:03:40 2011 -0400
> 
>     	PR c++/48481
>     	* name-lookup.c (struct arg_lookup): Add fn_set.
>     	(add_function): Check it.
>     	(lookup_arg_dependent_1): Initialize it.
> 
> diff --git a/gcc/cp/name-lookup.c b/gcc/cp/name-lookup.c
> index 8bf5f5f..615e177 100644
> --- a/gcc/cp/name-lookup.c
> +++ b/gcc/cp/name-lookup.c
> @@ -33,6 +33,7 @@ along with GCC; see the file COPYING3.  If not see
>  #include "debug.h"
>  #include "c-family/c-pragma.h"
>  #include "params.h"
> +#include "pointer-set.h"

Then cp/name-lookup.o should depend on pointer-set.h in cp/Make-lang.in.
Fixed thusly, so far untested, I've noticed a couple of other spots.  Ok for
trunk after testing?

OT, if we don't switch to on the fly dependency generation, I think it would
be nice to at least a write a maintainer-script that would regenerate GCC
style rules for dependences in Makefile.in and */Make-lang.in -
dependencies on just immediately mentioned headers, and for headers
with dependencies find a matching SPLAY_TREE_H etc. variable, which we
could run once a month or so to make sure our Makefiles are up to date.

2011-07-01  Jakub Jelinek  <jakub@redhat.com>

	* Make-lang.in (cp/decl.o): Depend on pointer-set.h.
	(cp/class.o): Likewise.
	(cp/error.o): Likewise.
	(cp/name-lookup.o): Likewise.
	(cp/decl2.o): Likewise.  Don't depend on $(POINTER_SET_H).



	Jakub
Joseph S. Myers - July 1, 2011, 11:18 a.m.
On Fri, 1 Jul 2011, Jakub Jelinek wrote:

> OT, if we don't switch to on the fly dependency generation, I think it would
> be nice to at least a write a maintainer-script that would regenerate GCC
> style rules for dependences in Makefile.in and */Make-lang.in -

(and in config/*/t-*)

> dependencies on just immediately mentioned headers, and for headers
> with dependencies find a matching SPLAY_TREE_H etc. variable, which we
> could run once a month or so to make sure our Makefiles are up to date.

I commented a bit on dependency generation at 
<http://gcc.gnu.org/ml/gcc-patches/2011-05/msg01925.html> - I think the 
incremental approach I suggested there is more likely to make useful 
progress than trying to do it again with a monolithic patch.  Various 
cleanups would also be helpful for both automatic generation and 
maintainer-script updates of dependencies.
Jason Merrill - July 1, 2011, 11:36 a.m.
OK, thanks.

Jason

Patch

--- gcc/cp/Make-lang.in.jj	2011-06-17 11:01:54.000000000 +0200
+++ gcc/cp/Make-lang.in	2011-07-01 09:19:29.000000000 +0200
@@ -266,11 +266,11 @@  cp/decl.o: cp/decl.c $(CXX_TREE_H) $(TM_
   output.h toplev.h $(HASHTAB_H) $(RTL_H) \
   cp/operators.def $(TM_P_H) $(TREE_INLINE_H) $(DIAGNOSTIC_H) $(C_PRAGMA_H) \
   debug.h gt-cp-decl.h $(TIMEVAR_H) $(TARGET_H) $(PLUGIN_H) \
-  intl.h tree-iterator.h $(SPLAY_TREE_H) \
+  intl.h tree-iterator.h pointer-set.h $(SPLAY_TREE_H) \
   c-family/c-objc.h
 cp/decl2.o: cp/decl2.c $(CXX_TREE_H) $(TM_H) $(FLAGS_H) cp/decl.h \
   output.h toplev.h $(C_COMMON_H) gt-cp-decl2.h $(CGRAPH_H) \
-  $(C_PRAGMA_H) $(TREE_DUMP_H) intl.h $(TARGET_H) $(GIMPLE_H) $(POINTER_SET_H) \
+  $(C_PRAGMA_H) $(TREE_DUMP_H) intl.h $(TARGET_H) $(GIMPLE_H) pointer-set.h \
   $(SPLAY_TREE_H) c-family/c-ada-spec.h \
   c-family/c-objc.h
 cp/cp-objcp-common.o : cp/cp-objcp-common.c $(CONFIG_H) $(SYSTEM_H) \
@@ -284,7 +284,7 @@  cp/typeck.o: cp/typeck.c $(CXX_TREE_H) $
   output.h c-family/c-objc.h
 cp/class.o: cp/class.c $(CXX_TREE_H) $(TM_H) $(FLAGS_H) toplev.h \
   $(TARGET_H) convert.h $(CGRAPH_H) $(TREE_DUMP_H) gt-cp-class.h \
-  $(SPLAY_TREE_H)
+  $(SPLAY_TREE_H) pointer-set.h
 cp/call.o: cp/call.c $(CXX_TREE_H) $(TM_H) $(FLAGS_H) toplev.h \
   $(DIAGNOSTIC_CORE_H) intl.h gt-cp-call.h convert.h $(TARGET_H) langhooks.h \
   $(TIMEVAR_H) c-family/c-objc.h
@@ -312,7 +312,7 @@  cp/pt.o: cp/pt.c $(CXX_TREE_H) $(TM_H) c
   c-family/c-objc.h
 cp/error.o: cp/error.c $(CXX_TREE_H) $(TM_H) $(DIAGNOSTIC_H) \
   $(FLAGS_H) $(REAL_H) $(LANGHOOKS_DEF_H) $(CXX_PRETTY_PRINT_H) \
-  tree-diagnostic.h tree-pretty-print.h c-family/c-objc.h
+  tree-diagnostic.h tree-pretty-print.h pointer-set.h c-family/c-objc.h
 cp/repo.o: cp/repo.c $(CXX_TREE_H) $(TM_H) toplev.h $(DIAGNOSTIC_CORE_H) \
   gt-cp-repo.h
 cp/semantics.o: cp/semantics.c $(CXX_TREE_H) $(TM_H) toplev.h \
@@ -333,7 +333,7 @@  cp/cp-gimplify.o: cp/cp-gimplify.c $(CXX
 
 cp/name-lookup.o: cp/name-lookup.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
 	$(TM_H) $(CXX_TREE_H) $(TIMEVAR_H) gt-cp-name-lookup.h \
-	$(DIAGNOSTIC_CORE_H) $(FLAGS_H) debug.h
+	$(DIAGNOSTIC_CORE_H) $(FLAGS_H) debug.h pointer-set.h
 
 cp/cxx-pretty-print.o: cp/cxx-pretty-print.c $(CXX_PRETTY_PRINT_H) \
   $(CONFIG_H) $(SYSTEM_H) $(TM_H) coretypes.h $(CXX_TREE_H) tree-pretty-print.h