1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
|
Index: gcc/cp/Make-lang.in
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/cp/Make-lang.in,v
retrieving revision 1.77.2.7
diff -c -3 -p -r1.77.2.7 Make-lang.in
*** gcc/cp/Make-lang.in 14 Nov 2001 22:33:42 -0000 1.77.2.7
--- gcc/cp/Make-lang.in 6 Nov 2003 00:53:34 -0000
*************** CXX_C_OBJS = c-common.o c-format.o c-pra
*** 98,103 ****
--- 98,104 ----
# Language-specific object files.
CXX_OBJS = cp/call.o cp/decl.o cp/errfn.o cp/expr.o cp/pt.o cp/typeck2.o \
cp/class.o cp/decl2.o cp/error.o cp/lex.o cp/parse.o cp/ptree.o cp/rtti.o \
+ cp/xml.o \
cp/spew.o cp/typeck.o cp/cvt.o cp/except.o cp/friend.o cp/init.o cp/method.o \
cp/search.o cp/semantics.o cp/tree.o cp/xref.o cp/repo.o cp/dump.o \
cp/optimize.o cp/mangle.o
*************** cp/dump.o: cp/dump.c $(CXX_TREE_H) c-dum
*** 276,281 ****
--- 277,283 ----
cp/optimize.o: cp/optimize.c $(CXX_TREE_H) rtl.h integrate.h insn-config.h \
input.h $(PARAMS_H)
cp/mangle.o: cp/mangle.c $(CXX_TREE_H) toplev.h
+ cp/xml.o: cp/xml.c $(CXX_TREE_H) toplev.h
cp/parse.o: cp/parse.c $(CXX_TREE_H) flags.h cp/lex.h except.h output.h \
system.h toplev.h $(GGC_H)
Index: gcc/cp/cp-tree.h
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/cp/cp-tree.h,v
retrieving revision 1.572.2.36
diff -c -3 -p -r1.572.2.36 cp-tree.h
*** gcc/cp/cp-tree.h 8 Dec 2001 16:12:51 -0000 1.572.2.36
--- gcc/cp/cp-tree.h 6 Nov 2003 00:53:34 -0000
*************** extern tree mangle_guard_variable
*** 4586,4591 ****
--- 4586,4602 ----
/* in dump.c */
extern int cp_dump_tree PARAMS ((dump_info_p, tree));
+ /* Filename for xml dump of translation unit. */
+
+ extern const char* flag_xml;
+
+ /* Start locations for dump of translation unit. */
+
+ extern const char* flag_xml_start;
+
+ /* in xml.c */
+ extern void do_xml_output PARAMS((const char *));
+
/* -- end of C++ */
#endif /* not _CP_TREE_H */
Index: gcc/cp/decl2.c
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/cp/decl2.c,v
retrieving revision 1.437.2.29
diff -c -3 -p -r1.437.2.29 decl2.c
*** gcc/cp/decl2.c 30 Nov 2001 03:12:42 -0000 1.437.2.29
--- gcc/cp/decl2.c 6 Nov 2003 00:53:35 -0000
*************** int flag_enforce_eh_specs = 1;
*** 440,445 ****
--- 440,453 ----
c_language_kind c_language = clk_cplusplus;
+ /* Filename for xml dump of translation unit. */
+
+ const char* flag_xml = 0;
+
+ /* Start locations for dump of translation unit. */
+
+ const char* flag_xml_start = 0;
+
/* Table of language-dependent -f options.
STRING is the option name. VARIABLE is the address of the variable.
ON_VALUE is the value to store in VARIABLE
*************** cxx_decode_option (argc, argv)
*** 601,606 ****
--- 609,630 ----
warning ("-fname-mangling-version is no longer supported");
return 1;
}
+ else if ((option_value
+ = skip_leading_substring (p, "xml=")))
+ {
+ if (*option_value == '\0')
+ error ("no file specified with -fxml");
+ else
+ flag_xml = option_value;
+ }
+ else if ((option_value
+ = skip_leading_substring (p, "xml-start=")))
+ {
+ if (*option_value == '\0')
+ error ("no location specified with -fxml-start");
+ else
+ flag_xml_start = option_value;
+ }
else if (dump_switch_p (p))
;
else
Index: gcc/cp/lang-options.h
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/cp/Attic/lang-options.h,v
retrieving revision 1.37.4.4
diff -c -3 -p -r1.37.4.4 lang-options.h
*** gcc/cp/lang-options.h 2 Aug 2001 14:23:12 -0000 1.37.4.4
--- gcc/cp/lang-options.h 6 Nov 2003 00:53:35 -0000
*************** DEFINE_LANG_NAME ("C++")
*** 114,119 ****
--- 114,123 ----
{ "-fweak",
N_("Emit common-like symbols as weak symbols") },
{ "-fno-weak", "" },
+ { "-fxml=",
+ N_("Enable XML output to a file (use with -fsyntax-only)") },
+ { "-fno-xml", "" },
+ { "-fxml-start=", "Specify start locations for XML dump (use with -fxml)" },
{ "-fxref",
N_("Emit cross referencing information") },
{ "-fno-xref", "" },
Index: gcc/cp/semantics.c
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/cp/semantics.c,v
retrieving revision 1.189.2.19
diff -c -3 -p -r1.189.2.19 semantics.c
*** gcc/cp/semantics.c 31 Jan 2002 22:46:46 -0000 1.189.2.19
--- gcc/cp/semantics.c 6 Nov 2003 00:53:36 -0000
*************** finish_translation_unit ()
*** 1703,1708 ****
--- 1703,1712 ----
while (current_namespace != global_namespace)
pop_namespace ();
finish_file ();
+
+ /* Do XML output if output file was given. */
+ if (flag_xml)
+ do_xml_output (flag_xml);
}
/* Finish a template type parameter, specified as AGGR IDENTIFIER.
|