summaryrefslogtreecommitdiffstats
path: root/meta/packages/gcc/gcc-4.3.1/debian/svn-gdc-updates.dpatch
diff options
context:
space:
mode:
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.dpatch137
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
6dir=
7if [ $# -eq 3 -a "$2" = '-d' ]; then
8 pdir="-d $3"
9 dir="$3/"
10elif [ $# -ne 1 ]; then
11 echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
12 exit 1
13fi
14case "$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
26esac
27exit 0
28
29
30diff -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
54diff -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();
73diff -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
97diff -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;
121diff -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;