aboutsummaryrefslogtreecommitdiff
path: root/gcc/d
diff options
context:
space:
mode:
authorIain Buclaw <ibuclaw@gcc.gnu.org>2019-03-10 16:29:48 +0000
committerIain Buclaw <ibuclaw@gcc.gnu.org>2019-03-10 16:29:48 +0000
commit1c63105c0cfc9d75b3c07bcb242a2863003874d3 (patch)
tree99c2fc566450619586d32b348d137008676b4bed /gcc/d
parentb496651b7d281bd1bf22688f4de0cbb78c1bf8e5 (diff)
downloadgcc-1c63105c0cfc9d75b3c07bcb242a2863003874d3.zip
gcc-1c63105c0cfc9d75b3c07bcb242a2863003874d3.tar.gz
gcc-1c63105c0cfc9d75b3c07bcb242a2863003874d3.tar.bz2
re PR d/88958 (ICE in walk_aliased_vdefs_1, at tree-ssa-alias.c:2887)
PR d/88958 d/dmd: Merge upstream dmd 0fc786f49 Backport fix to disallow passing functions as parameters. Fixes https://gcc.gnu.org/PR88958 Reviewed-on: https://github.com/dlang/dmd/pull/9437 From-SVN: r269557
Diffstat (limited to 'gcc/d')
-rw-r--r--gcc/d/dmd/MERGE2
-rw-r--r--gcc/d/dmd/expressionsem.c6
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/d/dmd/MERGE b/gcc/d/dmd/MERGE
index 3f416db..98bf825 100644
--- a/gcc/d/dmd/MERGE
+++ b/gcc/d/dmd/MERGE
@@ -1,4 +1,4 @@
-d517c0e6a10b548f44d82b71b3c079663cb94f8e
+0fc786f4908aa6bdd4220af87995333b1f24c3d7
The first line of this file holds the git revision number of the last
merge done from the dlang/dmd repository.
diff --git a/gcc/d/dmd/expressionsem.c b/gcc/d/dmd/expressionsem.c
index 3fd5c1f..bcc1ac9 100644
--- a/gcc/d/dmd/expressionsem.c
+++ b/gcc/d/dmd/expressionsem.c
@@ -102,6 +102,12 @@ static bool preFunctionParameters(Scope *sc, Expressions *exps)
arg = new ErrorExp();
err = true;
}
+ else if (arg->type->toBasetype()->ty == Tfunction)
+ {
+ arg->error("cannot pass type %s as a function argument", arg->toChars());
+ arg = new ErrorExp();
+ err = true;
+ }
else if (checkNonAssignmentArrayOp(arg))
{
arg = new ErrorExp();