summaryrefslogtreecommitdiff
path: root/recipes/gcc/gcc-4.4.1/debian/svn-gdc-updates.dpatch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/gcc/gcc-4.4.1/debian/svn-gdc-updates.dpatch')
-rw-r--r--recipes/gcc/gcc-4.4.1/debian/svn-gdc-updates.dpatch137
1 files changed, 137 insertions, 0 deletions
diff --git a/recipes/gcc/gcc-4.4.1/debian/svn-gdc-updates.dpatch b/recipes/gcc/gcc-4.4.1/debian/svn-gdc-updates.dpatch
new file mode 100644
index 0000000000..728209e51d
--- /dev/null
+++ b/recipes/gcc/gcc-4.4.1/debian/svn-gdc-updates.dpatch
@@ -0,0 +1,137 @@
+#! /bin/sh -e
+
+# svn-gdc-updates.dpatch by Arthur Loiret <arthur.loiret@gmail.com>
+# DP: SVN updates from the gdc branch up to 20070831.
+
+dir=
+if [ $# -eq 3 -a "$2" = '-d' ]; then
+ pdir="-d $3"
+ dir="$3/"
+elif [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch)
+ patch $pdir -f --no-backup-if-mismatch -p0 < $0
+ #cd ${dir}gcc && autoconf
+ ;;
+ -unpatch)
+ patch $pdir -f --no-backup-if-mismatch -R -p0 < $0
+ #rm ${dir}gcc/configure
+ ;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+esac
+exit 0
+
+
+diff -ruN gcc/d/ChangeLog gcc/d/ChangeLog
+--- gcc/d/ChangeLog 2007-08-26 22:34:22.000000000 +0200
++++ gcc/d/ChangeLog 2007-09-02 19:33:43.000000000 +0200
+@@ -1,3 +1,20 @@
++2007-08-31 David Friedman <dvdfrdmn@users.sf.net>
++
++ * d-objfile.cc (outdata): Do not set TREE_CONSTANT on initializers
++ (Bugzilla 1453)
++
++2007-08-29 David Friedman <dvdfrdmn@users.sf.net>
++
++ * d-decls.cc (uniqueName): Allow multiple static declaration with
++ the same name if in a function. (SF 1783085)
++
++2007-08-28 David Friedman <dvdfrdmn@users.sf.net>
++
++ * d-codegen.cc (call): Use CommaExp correctly. (Bugzilla 1443)
++
++ * dmd/todt.c (createTsarrayDt): Don't take quadratic time to build
++ the initializer. (Bugzilla 1440)
++
+ 2007-08-22 David Friedman <dvdfrdmn@users.sf.net>
+
+ Release GDC 0.24
+diff -ruN gcc/d/d-codegen.cc gcc/d/d-codegen.cc
+--- gcc/d/d-codegen.cc 2007-08-26 22:34:22.000000000 +0200
++++ gcc/d/d-codegen.cc 2007-09-02 19:33:43.000000000 +0200
+@@ -780,10 +780,12 @@
+ if (expr->op == TOKcomma)
+ {
+ CommaExp * ce = (CommaExp *) expr;
++ expr = ce->e2;
++
+ VarExp * ve;
+- expr = ce->e1;
+- gcc_assert( ce->e2->op == TOKvar &&
+- ((VarExp *) ce->e2)->var->isFuncDeclaration() );
++ gcc_assert( ce->e2->op == TOKvar );
++ ve = (VarExp *) ce->e2;
++ gcc_assert(ve->var->isFuncDeclaration() && ! ve->var->needThis());
+ }
+
+ Type* t = expr->type->toBasetype();
+diff -ruN gcc/d/d-decls.cc gcc/d/d-decls.cc
+--- gcc/d/d-decls.cc 2007-08-26 22:34:22.000000000 +0200
++++ gcc/d/d-decls.cc 2007-09-02 19:33:43.000000000 +0200
+@@ -137,10 +137,17 @@
+ FuncDeclaration * f = d->isFuncDeclaration();
+ VarDeclaration * v = d->isVarDeclaration();
+
+- if (d->protection == PROTprivate &&
+- !(f && ! f->fbody) &&
++ /* Check cases for which it is okay to have a duplicate symbol name.
++ Otherwise, duplicate names are an error and the condition will
++ be caught by the assembler. */
++ if (!(f && ! f->fbody) &&
+ !(v && (v->storage_class & STCextern)) &&
+- (!p || p->isModule()))
++ (
++ // Static declarations in different scope statements
++ (p && p->isFuncDeclaration()) ||
++
++ // Top-level duplicate names are okay if private.
++ ((!p || p->isModule()) && d->protection == PROTprivate) ))
+ {
+ StringValue * sv;
+
+diff -ruN gcc/d/dmd/todt.c gcc/d/dmd/todt.c
+--- gcc/d/dmd/todt.c 2007-08-26 22:34:22.000000000 +0200
++++ gcc/d/dmd/todt.c 2007-09-02 19:33:43.000000000 +0200
+@@ -73,17 +73,18 @@
+
+ target_size_t dim = tsa->dim->toInteger();
+ dt_t * adt = NULL;
++ dt_t ** padt = & adt;
+
+ if (eoa_size * dim == eoa_size)
+ {
+ for (target_size_t i = 0; i < dim; i++)
+- dtcontainer(& adt, NULL, elem_or_all);
++ padt = dtcontainer(padt, NULL, elem_or_all);
+ }
+ else
+ {
+ assert(tsa->size(0) % eoa_size == 0);
+ for (target_size_t i = 0; i < dim; i++)
+- dtcontainer(& adt, NULL,
++ padt = dtcontainer(padt, NULL,
+ createTsarrayDt(elem_or_all, tsa->next));
+ }
+ dt_t * fdt = NULL;
+diff -ruN gcc/d/d-objfile.cc gcc/d/d-objfile.cc
+--- gcc/d/d-objfile.cc 2007-08-26 22:34:22.000000000 +0200
++++ gcc/d/d-objfile.cc 2007-09-02 19:33:43.000000000 +0200
+@@ -954,11 +954,8 @@
+
+ assert( t );
+
+- if (sym->Sdt && DECL_INITIAL( t ) == NULL_TREE) {
+- tree ini = dt2tree( sym->Sdt );
+- TREE_CONSTANT( ini ) = TREE_CONSTANT( t );
+- DECL_INITIAL( t ) = ini;
+- }
++ if (sym->Sdt && DECL_INITIAL( t ) == NULL_TREE)
++ DECL_INITIAL( t ) = dt2tree( sym->Sdt );
+
+ if (! g.ofile->shouldEmit(sym))
+ return;