From 91f074ced1fa309b50e019a8b3d4bb44d0774647 Mon Sep 17 00:00:00 2001 From: Richard Guenther <rguenther@suse.de> Date: Tue, 10 Jan 2012 13:38:41 +0000 Subject: [PATCH] re PR tree-optimization/51801 (ICE in inline_small_functions) 2012-01-10 Richard Guenther <rguenther@suse.de> PR tree-optimization/51801 * gcc.dg/torture/pr51801.c: New testcase. From-SVN: r183064 --- gcc/testsuite/ChangeLog | 5 +++ gcc/testsuite/gcc.dg/torture/pr51801.c | 62 ++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/torture/pr51801.c diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 1eccbaa7c17e..f05d3e5182db 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2012-01-10 Richard Guenther <rguenther@suse.de> + + PR tree-optimization/51801 + * gcc.dg/torture/pr51801.c: New testcase. + 2012-01-10 Tobias Burnus <burnus@net-b.de> PR fortran/51652 diff --git a/gcc/testsuite/gcc.dg/torture/pr51801.c b/gcc/testsuite/gcc.dg/torture/pr51801.c new file mode 100644 index 000000000000..c36cee306fb0 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/pr51801.c @@ -0,0 +1,62 @@ +/* { dg-do compile } */ + +typedef struct { char Vshow; } TScreen; +typedef struct _Misc { char Tshow; } Misc; +typedef struct _XtermWidgetRec { TScreen screen; Misc misc; } XtermWidgetRec, *XtermWidget; +extern XtermWidget term; + +void +handle_tekshow (void *gw, int allowswitch) +{ + XtermWidget xw = term; + if (!((xw)->misc.Tshow)) + set_tek_visibility (1); +} + +void +do_tekonoff (void *gw, void *closure, void *data) +{ + handle_tekshow (gw, 0); +} + +void +do_vtonoff (void *gw, void *closure, void *data) +{ +} + +void +handle_toggle (void (*proc) (void *gw, void *closure, void *data), + int var, char **params, unsigned int nparams, void *w, + void *closure, void *data) +{ + XtermWidget xw = term; + int dir = -2; + switch (nparams) + { + case 0: + dir = -1; + } + switch (dir) + { + case 1: + (*proc) (w, closure, data); + Bell (xw, 2, 0); + } +} + +void +HandleVisibility (void *w, char **params, unsigned int *param_count) +{ + XtermWidget xw = term; + if (*param_count == 2) + switch (params[0][0]) + { + case 'v': + handle_toggle (do_vtonoff, (int) ((int) (&(xw)->screen)->Vshow), + params + 1, (*param_count) - 1, w, (void *) 0, + (void *) 0); + handle_toggle (do_tekonoff, (int) ((int) ((xw)->misc.Tshow)), + params + 1, (*param_count) - 1, w, (void *) 0, + (void *) 0); + } +} -- GitLab