Also test all shader types and be a bit more careful to make shaders
reasonably valid in these tests.
Differential Revision: https://reviews.llvm.org/D158820
If the HLSL entry function had a shader attribute that conflicted
with the pipeline stage specified in the target triple, Clang
would emit:
error: (null) attribute parameters do not match the previous declaration
conflicting attribute is here
(where the second line doesn't reference an attribute).
This was because the code constructed a dummy attribute that had
only a source location, but no kind or syntax.
Noticed while doing some changes to the attribute handling.
Differential Revision: https://reviews.llvm.org/D147657