I had missed when converting this testcase to Gimple that there was a define for int/unsigned type specifically to get an INT32 type. This means when using a literal integer constant you need to use the `_Literal (type)` to form the types correctly on the constants.
This fixes the issue and has been both tested on xstormy16-elf and x86_64-linux-gnu. Committed as obvious. gcc/testsuite/ChangeLog: PR testsuite/109776 * gcc.dg/pr81192.c: Fix integer constants for int16 targets. --- gcc/testsuite/gcc.dg/pr81192.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gcc/testsuite/gcc.dg/pr81192.c b/gcc/testsuite/gcc.dg/pr81192.c index f6d201ee71a..c46ac18fd9a 100644 --- a/gcc/testsuite/gcc.dg/pr81192.c +++ b/gcc/testsuite/gcc.dg/pr81192.c @@ -22,21 +22,21 @@ void __GIMPLE(ssa, startwith("pre")) fn2 () goto __BB7; __BB(3): - if (j_6(D) != 2147483647) + if (j_6(D) != _Literal (int)2147483647) goto __BB4; else goto __BB5; __BB(4): - iftmp2_8 = j_6(D) + 1; + iftmp2_8 = j_6(D) + _Literal (int)1; goto __BB5; __BB(5): - b_lsm6_10 = 2147483647; + b_lsm6_10 = _Literal (int)2147483647; goto __BB6; __BB(6): - if (c0_1 != 0) + if (c0_1 != _Literal (int) 0) goto __BB3; else goto __BB8; -- 2.39.1