recog: Restore builds with Clang
authorRichard Sandiford <richard.sandiford@arm.com>
Mon, 22 Jun 2020 19:15:36 +0000 (20:15 +0100)
committerRichard Sandiford <richard.sandiford@arm.com>
Mon, 22 Jun 2020 19:15:36 +0000 (20:15 +0100)
commit20a2e6afa82c165bcd1a8749478e9402a25088a4
treec62a0c81382dfc4f59d1cfe3f00c0a0cec06a0e5
parent99abb146fd0923ebda2c7e7681adb18e6798a90c
recog: Restore builds with Clang

Using parameter packs with function typedefs tripped a Clang bug
in which the packs were not being expanded correctly:

  https://bugs.llvm.org/show_bug.cgi?id=46377

Work around that by going back to the decltype approach, but adding
a cast to void to suppress a warning about unused values.

2020-06-22  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* coretypes.h (first_type): Delete.
* recog.h (insn_gen_fn::operator()): Go back to using a decltype.
gcc/coretypes.h
gcc/recog.h