On 24-04-15 05:25, Bin.Cheng wrote: > On Tue, Apr 21, 2015 at 3:10 PM, Tom de Vries wrote: >> Hi, >> >> this patch fixes PR65802. >> >> diff --git a/gcc/testsuite/g++.dg/ > pr65802.C b/gcc/testsuite/g++.dg/pr65802.C >> new file mode 100644 >> index 0000000..26e5317 >> --- /dev/null >> +++ b/gcc/testsuite/g++.dg/pr65802.C >> @@ -0,0 +1,29 @@ >> +// { dg-do compile } >> +// { dg-options "-O0" } >> + >> +typedef int tf (); >> + >> +struct S >> +{ >> + tf m_fn1; >> +} a; >> + >> +void >> +fn1 () >> +{ >> + try >> + { >> + __builtin_va_list c; >> + { >> + int *d = __builtin_va_arg (c, int *); >> + int **e = &d; >> + __asm__("" : "=d"(e)); > Hi, thanks for fixing the issue. > But 'd' is a machine specific constraint? This case failed on all arm > processors. Hi, I've rewritten the test-case for C, made the function a valid stdargs function, and removed the superfluous inline assembly. Committed as attached. Thanks, - Tom