While I think there's no need to not mirror gcc warning, probably the message can be reworded in a slightly different way.
I tried, but suggestions are more than welcome. Fixes PR24026
% ./clang -Wshift-negative-value emit.c
emit.c:3:14: warning: shifting a negative signed value is undefined [-Wshift-negative-value]
int a = -1 << 3; ~~ ^
1 warning generated.
While you're here, please reverse the order of these two lines. It's much cheaper to check for an unsigned type than to evaluate the expression.