diff options
author | Iain Buclaw <ibuclaw@gcc.gnu.org> | 2019-03-10 16:29:48 +0000 |
---|---|---|
committer | Iain Buclaw <ibuclaw@gcc.gnu.org> | 2019-03-10 16:29:48 +0000 |
commit | 1c63105c0cfc9d75b3c07bcb242a2863003874d3 (patch) | |
tree | 99c2fc566450619586d32b348d137008676b4bed /gcc/d | |
parent | b496651b7d281bd1bf22688f4de0cbb78c1bf8e5 (diff) | |
download | gcc-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/MERGE | 2 | ||||
-rw-r--r-- | gcc/d/dmd/expressionsem.c | 6 |
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(); |