diff options
Diffstat (limited to 'meta/packages/gcc/gcc-4.3.1/debian/svn-gdc-updates.dpatch')
-rw-r--r-- | meta/packages/gcc/gcc-4.3.1/debian/svn-gdc-updates.dpatch | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/meta/packages/gcc/gcc-4.3.1/debian/svn-gdc-updates.dpatch b/meta/packages/gcc/gcc-4.3.1/debian/svn-gdc-updates.dpatch new file mode 100644 index 0000000000..728209e51d --- /dev/null +++ b/meta/packages/gcc/gcc-4.3.1/debian/svn-gdc-updates.dpatch | |||
@@ -0,0 +1,137 @@ | |||
1 | #! /bin/sh -e | ||
2 | |||
3 | # svn-gdc-updates.dpatch by Arthur Loiret <arthur.loiret@gmail.com> | ||
4 | # DP: SVN updates from the gdc branch up to 20070831. | ||
5 | |||
6 | dir= | ||
7 | if [ $# -eq 3 -a "$2" = '-d' ]; then | ||
8 | pdir="-d $3" | ||
9 | dir="$3/" | ||
10 | elif [ $# -ne 1 ]; then | ||
11 | echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" | ||
12 | exit 1 | ||
13 | fi | ||
14 | case "$1" in | ||
15 | -patch) | ||
16 | patch $pdir -f --no-backup-if-mismatch -p0 < $0 | ||
17 | #cd ${dir}gcc && autoconf | ||
18 | ;; | ||
19 | -unpatch) | ||
20 | patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 | ||
21 | #rm ${dir}gcc/configure | ||
22 | ;; | ||
23 | *) | ||
24 | echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" | ||
25 | exit 1 | ||
26 | esac | ||
27 | exit 0 | ||
28 | |||
29 | |||
30 | diff -ruN gcc/d/ChangeLog gcc/d/ChangeLog | ||
31 | --- gcc/d/ChangeLog 2007-08-26 22:34:22.000000000 +0200 | ||
32 | +++ gcc/d/ChangeLog 2007-09-02 19:33:43.000000000 +0200 | ||
33 | @@ -1,3 +1,20 @@ | ||
34 | +2007-08-31 David Friedman <dvdfrdmn@users.sf.net> | ||
35 | + | ||
36 | + * d-objfile.cc (outdata): Do not set TREE_CONSTANT on initializers | ||
37 | + (Bugzilla 1453) | ||
38 | + | ||
39 | +2007-08-29 David Friedman <dvdfrdmn@users.sf.net> | ||
40 | + | ||
41 | + * d-decls.cc (uniqueName): Allow multiple static declaration with | ||
42 | + the same name if in a function. (SF 1783085) | ||
43 | + | ||
44 | +2007-08-28 David Friedman <dvdfrdmn@users.sf.net> | ||
45 | + | ||
46 | + * d-codegen.cc (call): Use CommaExp correctly. (Bugzilla 1443) | ||
47 | + | ||
48 | + * dmd/todt.c (createTsarrayDt): Don't take quadratic time to build | ||
49 | + the initializer. (Bugzilla 1440) | ||
50 | + | ||
51 | 2007-08-22 David Friedman <dvdfrdmn@users.sf.net> | ||
52 | |||
53 | Release GDC 0.24 | ||
54 | diff -ruN gcc/d/d-codegen.cc gcc/d/d-codegen.cc | ||
55 | --- gcc/d/d-codegen.cc 2007-08-26 22:34:22.000000000 +0200 | ||
56 | +++ gcc/d/d-codegen.cc 2007-09-02 19:33:43.000000000 +0200 | ||
57 | @@ -780,10 +780,12 @@ | ||
58 | if (expr->op == TOKcomma) | ||
59 | { | ||
60 | CommaExp * ce = (CommaExp *) expr; | ||
61 | + expr = ce->e2; | ||
62 | + | ||
63 | VarExp * ve; | ||
64 | - expr = ce->e1; | ||
65 | - gcc_assert( ce->e2->op == TOKvar && | ||
66 | - ((VarExp *) ce->e2)->var->isFuncDeclaration() ); | ||
67 | + gcc_assert( ce->e2->op == TOKvar ); | ||
68 | + ve = (VarExp *) ce->e2; | ||
69 | + gcc_assert(ve->var->isFuncDeclaration() && ! ve->var->needThis()); | ||
70 | } | ||
71 | |||
72 | Type* t = expr->type->toBasetype(); | ||
73 | diff -ruN gcc/d/d-decls.cc gcc/d/d-decls.cc | ||
74 | --- gcc/d/d-decls.cc 2007-08-26 22:34:22.000000000 +0200 | ||
75 | +++ gcc/d/d-decls.cc 2007-09-02 19:33:43.000000000 +0200 | ||
76 | @@ -137,10 +137,17 @@ | ||
77 | FuncDeclaration * f = d->isFuncDeclaration(); | ||
78 | VarDeclaration * v = d->isVarDeclaration(); | ||
79 | |||
80 | - if (d->protection == PROTprivate && | ||
81 | - !(f && ! f->fbody) && | ||
82 | + /* Check cases for which it is okay to have a duplicate symbol name. | ||
83 | + Otherwise, duplicate names are an error and the condition will | ||
84 | + be caught by the assembler. */ | ||
85 | + if (!(f && ! f->fbody) && | ||
86 | !(v && (v->storage_class & STCextern)) && | ||
87 | - (!p || p->isModule())) | ||
88 | + ( | ||
89 | + // Static declarations in different scope statements | ||
90 | + (p && p->isFuncDeclaration()) || | ||
91 | + | ||
92 | + // Top-level duplicate names are okay if private. | ||
93 | + ((!p || p->isModule()) && d->protection == PROTprivate) )) | ||
94 | { | ||
95 | StringValue * sv; | ||
96 | |||
97 | diff -ruN gcc/d/dmd/todt.c gcc/d/dmd/todt.c | ||
98 | --- gcc/d/dmd/todt.c 2007-08-26 22:34:22.000000000 +0200 | ||
99 | +++ gcc/d/dmd/todt.c 2007-09-02 19:33:43.000000000 +0200 | ||
100 | @@ -73,17 +73,18 @@ | ||
101 | |||
102 | target_size_t dim = tsa->dim->toInteger(); | ||
103 | dt_t * adt = NULL; | ||
104 | + dt_t ** padt = & adt; | ||
105 | |||
106 | if (eoa_size * dim == eoa_size) | ||
107 | { | ||
108 | for (target_size_t i = 0; i < dim; i++) | ||
109 | - dtcontainer(& adt, NULL, elem_or_all); | ||
110 | + padt = dtcontainer(padt, NULL, elem_or_all); | ||
111 | } | ||
112 | else | ||
113 | { | ||
114 | assert(tsa->size(0) % eoa_size == 0); | ||
115 | for (target_size_t i = 0; i < dim; i++) | ||
116 | - dtcontainer(& adt, NULL, | ||
117 | + padt = dtcontainer(padt, NULL, | ||
118 | createTsarrayDt(elem_or_all, tsa->next)); | ||
119 | } | ||
120 | dt_t * fdt = NULL; | ||
121 | diff -ruN gcc/d/d-objfile.cc gcc/d/d-objfile.cc | ||
122 | --- gcc/d/d-objfile.cc 2007-08-26 22:34:22.000000000 +0200 | ||
123 | +++ gcc/d/d-objfile.cc 2007-09-02 19:33:43.000000000 +0200 | ||
124 | @@ -954,11 +954,8 @@ | ||
125 | |||
126 | assert( t ); | ||
127 | |||
128 | - if (sym->Sdt && DECL_INITIAL( t ) == NULL_TREE) { | ||
129 | - tree ini = dt2tree( sym->Sdt ); | ||
130 | - TREE_CONSTANT( ini ) = TREE_CONSTANT( t ); | ||
131 | - DECL_INITIAL( t ) = ini; | ||
132 | - } | ||
133 | + if (sym->Sdt && DECL_INITIAL( t ) == NULL_TREE) | ||
134 | + DECL_INITIAL( t ) = dt2tree( sym->Sdt ); | ||
135 | |||
136 | if (! g.ofile->shouldEmit(sym)) | ||
137 | return; | ||