systemtap/systemtap-0.6.1-gcc43.diff
2008-02-12 16:24:50 +00:00

72 lines
1.8 KiB
Diff

diff -up systemtap-0.6.1/staptree.cxx.orig systemtap-0.6.1/staptree.cxx
--- systemtap-0.6.1/staptree.cxx.orig 2008-01-17 21:53:20.000000000 -0500
+++ systemtap-0.6.1/staptree.cxx 2008-02-12 11:16:00.000000000 -0500
@@ -2370,3 +2370,30 @@ deep_copy_visitor::deep_copy (expression
require <expression*> (&v, &n, s);
return n;
}
+
+template <> void
+require <indexable *> (deep_copy_visitor* v, indexable** dst, indexable* src)
+{
+ if (src != NULL)
+ {
+ symbol *array_src=NULL, *array_dst=NULL;
+ hist_op *hist_src=NULL, *hist_dst=NULL;
+
+ classify_indexable(src, array_src, hist_src);
+
+ *dst = NULL;
+
+ if (array_src)
+ {
+ require <symbol*> (v, &array_dst, array_src);
+ *dst = array_dst;
+ }
+ else
+ {
+ require <hist_op*> (v, &hist_dst, hist_src);
+ *dst = hist_dst;
+ }
+ assert (*dst);
+ }
+}
+
diff -up systemtap-0.6.1/staptree.h.orig systemtap-0.6.1/staptree.h
--- systemtap-0.6.1/staptree.h.orig 2008-01-17 21:53:20.000000000 -0500
+++ systemtap-0.6.1/staptree.h 2008-02-12 11:16:00.000000000 -0500
@@ -846,31 +846,8 @@ require (deep_copy_visitor* v, T* dst, T
}
}
-template <> static void
-require <indexable *> (deep_copy_visitor* v, indexable** dst, indexable* src)
-{
- if (src != NULL)
- {
- symbol *array_src=NULL, *array_dst=NULL;
- hist_op *hist_src=NULL, *hist_dst=NULL;
-
- classify_indexable(src, array_src, hist_src);
-
- *dst = NULL;
-
- if (array_src)
- {
- require <symbol*> (v, &array_dst, array_src);
- *dst = array_dst;
- }
- else
- {
- require <hist_op*> (v, &hist_dst, hist_src);
- *dst = hist_dst;
- }
- assert (*dst);
- }
-}
+template <> void
+require <indexable *> (deep_copy_visitor* v, indexable** dst, indexable* src);
template <typename T> void
provide (deep_copy_visitor* v, T src)