Including a header file that uses the struct sigaction results in the following compilation error:
error: union sigaction::<anonymous> has no member names __sigaction_handler
The problem is a recursive macro in signal.h:
# define sa_handler __sigaction_handler.sa_handler
When setting the expanded header to collapse system headers or collapse non-search directory headers, the effect is that the header file is expanded twice and the harness code as a result then references sigaction_handler.
In the VectorCAST unit test, the right place to fix this error is by adding a #undef in driver prefix user code. In the VectorCAST QA, however, it will require that a post-instrument script is used to insert the #undef in the instrumented source file. Here is an example script:
sed -i -e '/#include .*signal.h"/s/$/\
#undef sa_handler/' $1