Mercurial > projects > ldc
diff dmd/inline.c @ 1640:9bf06e02070b
Merge DMD 1.057.
author | Christian Kamm <kamm incasoftware de> |
---|---|
date | Mon, 08 Mar 2010 21:39:20 +0100 |
parents | 44b145be2ef5 |
children |
line wrap: on
line diff
--- a/dmd/inline.c Mon Mar 08 20:09:18 2010 +0100 +++ b/dmd/inline.c Mon Mar 08 21:39:20 2010 +0100 @@ -1,5 +1,5 @@ -// Copyright (c) 1999-2009 by Digital Mars +// Copyright (c) 1999-2010 by Digital Mars // All Rights Reserved // written by Walter Bright // http://www.digitalmars.com @@ -292,6 +292,11 @@ int CallExp::inlineCost(InlineCostState *ics) { + // Bugzilla 3500: super.func() calls must be devirtualized, and the inliner + // can't handle that at present. + if (e1->op == TOKdotvar && ((DotVarExp *)e1)->e1->op == TOKsuper) + return COST_MAX; + return 1 + e1->inlineCost(ics) + arrayInlineCost(ics, arguments); }