]> git.pld-linux.org Git - packages/gcc.git/blame - gcc-g++-is-tree.patch
- apply glibc-2.2 patch if "glibc22" is defined
[packages/gcc.git] / gcc-g++-is-tree.patch
CommitLineData
d405059b 1# DP: Work around memory corruption (just for 2.95.1)
2# DP: by Daniel Jacobowitz <dan@debian.org>
3
4diff -rcp ../egcs/for-unstable/gcc-2.95/gcc/cp/cp-tree.h gcc-2.95/gcc/cp/cp-tree.h
5*** ../egcs/for-unstable/gcc-2.95/gcc/cp/cp-tree.h Thu Jun 24 09:16:17 1999
6--- gcc-2.95/gcc/cp/cp-tree.h Fri Aug 6 17:41:45 1999
7*************** Boston, MA 02111-1307, USA. */
8*** 52,58 ****
9 4: BINFO_NEW_VTABLE_MARKED.
10 TREE_HAS_CONSTRUCTOR (in INDIRECT_REF, SAVE_EXPR, CONSTRUCTOR,
11 or FIELD_DECL).
12! 5: Not used.
13 6: Not used.
14
15 Usage of TYPE_LANG_FLAG_?:
16--- 52,58 ----
17 4: BINFO_NEW_VTABLE_MARKED.
18 TREE_HAS_CONSTRUCTOR (in INDIRECT_REF, SAVE_EXPR, CONSTRUCTOR,
19 or FIELD_DECL).
20! 5: CALL_EXPR_RTL_IS_TREE.
21 6: Not used.
22
23 Usage of TYPE_LANG_FLAG_?:
24*************** extern int flag_new_for_scope;
25*** 1614,1619 ****
26--- 1614,1622 ----
27
28 /* Nonzero for _TYPE means that the _TYPE defines a destructor. */
29 #define TYPE_HAS_DESTRUCTOR(NODE) (TYPE_LANG_FLAG_2(NODE))
30+
31+ /* Nonzero for CALL_EXPR means that operands[2] is a cv_qualifier tree */
32+ #define CALL_EXPR_RTL_IS_TREE(NODE) (TREE_LANG_FLAG_5(NODE))
33
34 #if 0
35 /* Nonzero for _TYPE node means that creating an object of this type
36diff -rcp ../egcs/for-unstable/gcc-2.95/gcc/cp/lex.c gcc-2.95/gcc/cp/lex.c
37*** ../egcs/for-unstable/gcc-2.95/gcc/cp/lex.c Thu Jun 24 09:16:26 1999
38--- gcc-2.95/gcc/cp/lex.c Fri Aug 6 16:14:25 1999
39*************** make_call_declarator (target, parms, cv_
40*** 226,231 ****
41--- 226,233 ----
42 tree target, parms, cv_qualifiers, exception_specification;
43 {
44 target = build_parse_node (CALL_EXPR, target, parms, cv_qualifiers);
45+ if (cv_qualifiers != NULL_TREE)
46+ CALL_EXPR_RTL_IS_TREE (target) = 1;
47 TREE_TYPE (target) = exception_specification;
48 return target;
49 }
50*************** set_quals_and_spec (call_declarator, cv_
51*** 235,240 ****
52--- 237,246 ----
53 tree call_declarator, cv_qualifiers, exception_specification;
54 {
55 TREE_OPERAND (call_declarator, 2) = cv_qualifiers;
56+ if (cv_qualifiers != NULL_TREE)
57+ CALL_EXPR_RTL_IS_TREE (call_declarator) = 1;
58+ else
59+ CALL_EXPR_RTL_IS_TREE (call_declarator) = 0;
60 TREE_TYPE (call_declarator) = exception_specification;
61 }
62 \f
63diff -rcp ../egcs/for-unstable/gcc-2.95/gcc/cp/tree.c gcc-2.95/gcc/cp/tree.c
64*** ../egcs/for-unstable/gcc-2.95/gcc/cp/tree.c Thu Jun 24 09:16:27 1999
65--- gcc-2.95/gcc/cp/tree.c Fri Aug 6 16:08:20 1999
66*************** mapcar (t, func)
67*** 1887,1892 ****
68--- 1887,1893 ----
69 /* tree.def says that operand two is RTL, but
70 make_call_declarator puts trees in there. */
71 if (TREE_OPERAND (t, 2)
72+ && CALL_EXPR_RTL_IS_TREE (t)
73 && TREE_CODE (TREE_OPERAND (t, 2)) == TREE_LIST)
74 TREE_OPERAND (t, 2) = mapcar (TREE_OPERAND (t, 2), func);
75 else
76
77--bp/iNruPH9dso1Pn--
78
79
80--
81To UNSUBSCRIBE, email to debian-toolchain-request@lists.debian.org
82with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
This page took 0.304097 seconds and 4 git commands to generate.