diff --git a/src/template.c b/src/template.c index 1e9a77feb223..7eb7d811ca4c 100644 --- a/src/template.c +++ b/src/template.c @@ -1540,7 +1540,7 @@ MATCH TemplateDeclaration::deduceFunctionTemplateMatch( * the oded == oarg */ (*dedargs)[i] = oded; - MATCH m2 = tparam->matchArg(loc, paramscope, dedargs, i, parameters, dedtypes, NULL); + MATCH m2 = tparam->matchArg(instLoc, paramscope, dedargs, i, parameters, dedtypes, NULL); //printf("m2 = %d\n", m2); if (m2 <= MATCHnomatch) goto Lnomatch; @@ -1558,7 +1558,7 @@ MATCH TemplateDeclaration::deduceFunctionTemplateMatch( } else { - oded = tparam->defaultArg(loc, paramscope); + oded = tparam->defaultArg(instLoc, paramscope); if (oded) (*dedargs)[i] = declareParameter(paramscope, tparam, oded); } diff --git a/test/compilable/test15668.d b/test/compilable/test15668.d new file mode 100644 index 000000000000..723521622001 --- /dev/null +++ b/test/compilable/test15668.d @@ -0,0 +1,9 @@ +void foo ( int line = __LINE__ ) ( string msg = "" ) +{ + static assert (line == 8); +} + +void main() +{ + foo(); +}