On 05/09/2011 11:06 PM, Tom Tromey wrote: > As long as the change is done cleanly, and there is some mechanism for > avoiding the troublesome code on platforms not supporting _Complex (and > in particular making the rest of the tests in these files continue to > execute on such a platform), then it doesn't matter to me where the > tests end up. > As suggested by Tom, the whole test cases to _Complex type should be run on the platforms that support _Complex. As a result, support_complex_tests is added in lib/gdb.exp, which determines whether to run tests to _Complex according to proper target triplets. As I comment in support_complex_tests, the list of target triplet is still very conservative, because I don't want break existing tests on some `complex-type-unsupported' platforms that I am not aware of. People who familiar with a certain platform can enrich this list later. All the _Complex stuff in *.c are isolated by checking macro TEST_COMPLEX. If support_complex_tests returns 1, TEST_COMPLEX is defined in compilation commandline. For the platforms doesn't support _Complex, the rest of test case will run as usual. The other part I am not sure is about PROTOTYPES. If I understand it correctly, these stuff are used to be compatible with old C standard, while _Complex types are introduced in C99. We may don't need prototype stuffs for functions of _Complex args/return type. In my patch, I still follow the existing manner. Run funargs.exp on i686-pc-linux-gnu, no new fails. -- Yao (齐尧)