Fix ICE in substring-handling building 502.gcc_r (PR 87562)
[official-gcc.git] / gcc / testsuite / c-c++-common / pr81376.c
blobe67f41e7356da50945dc3511fed05a478e19ecc7
1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-original" } */
4 typedef double c_t;
5 typedef int a_t;
6 int f(a_t a1, a_t a2) {
7 return (c_t) a1 < (c_t) a2;
8 /* { dg-final { scan-tree-dump "return (<retval> = )?a1 < a2" "original" } } */
11 void f1(short a, short b)
13 volatile int s_s;
14 s_s = (float) a < (float) b;
15 /* { dg-final { scan-tree-dump "s_s = a < b" "original" } } */
18 void f2(unsigned short a, unsigned short b)
20 volatile int us_us;
21 us_us = (float) a < (float) b;
22 /* { dg-final { scan-tree-dump "us_us = a < b" "original" } } */
25 /* We don't optimize here because neither of integral types is
26 subset of the other. */
27 void f3(unsigned short a, short b)
29 volatile int us_s;
30 us_s = (float) a < (float) b;
31 /* { dg-final { scan-tree-dump "us_s = \\(float\\) a < \\(float\\) b" "original" } } */
34 void f4(unsigned short a, int b)
36 volatile int us_i;
37 us_i = (double) a < (double) b;
38 /* { dg-final { scan-tree-dump "us_i = \\(int\\) a < b" "original" } } */
41 /* We don't optimize here because neither of integral types is
42 subset of the other. */
43 void f5(short a, unsigned int b)
45 volatile int s_ui;
46 s_ui = (double) a < (double) b;
47 /* { dg-final { scan-tree-dump "s_ui = \\(double\\) a < \\(double\\) b" "original" } } */