d: Fix ICE in expand_intrinsic_vaarg
authorIain Buclaw <ibuclaw@gdcproject.org>
Thu, 16 Jul 2020 16:34:18 +0000 (18:34 +0200)
committerIain Buclaw <ibuclaw@gdcproject.org>
Thu, 30 Jul 2020 21:44:31 +0000 (23:44 +0200)
commitdfc420f8d4492dbf5f45df4fecf93cb9645c0d7b
tree66848001f1fae4622a5aabd3813239d8cb05a08d
parent684d6ee140af6585c18c8790f8f5bddfcc6bd153
d: Fix ICE in expand_intrinsic_vaarg

Both intrinsics did not handle the case where the va_list object comes
from a ref parameter.

gcc/d/ChangeLog:

PR d/96140
* intrinsics.cc (expand_intrinsic_vaarg): Handle ref parameters as
arguments to va_arg().
(expand_intrinsic_vastart): Handle ref parameters as arguments to
va_start().

gcc/testsuite/ChangeLog:

PR d/96140
* gdc.dg/pr96140.d: New test.
gcc/d/intrinsics.cc
gcc/testsuite/gdc.dg/pr96140.d [new file with mode: 0644]