From 74e8018e672bcbeb0874fde35ddc3dade238c216 Mon Sep 17 00:00:00 2001 From: Alexander Monakov Date: Thu, 16 Oct 2008 21:30:06 +0400 Subject: [PATCH] re PR target/37381 (ICE in ia64_speculate_insn, at config/ia64/ia64.c:6902) 2008-10-16 Alexander Monakov PR target/37381 * gcc.c-torture/compile/pr37381.c: New test. From-SVN: r141177 --- gcc/testsuite/ChangeLog | 5 ++ gcc/testsuite/gcc.c-torture/compile/pr37381.c | 97 +++++++++++++++++++++++++++ 2 files changed, 102 insertions(+) create mode 100644 gcc/testsuite/gcc.c-torture/compile/pr37381.c diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 9d3d304..94f1659 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2008-10-16 Alexander Monakov + + PR target/37381 + * gcc.c-torture/compile/pr37381.c: New test. + 2008-10-16 Joseph Myers PR c/33192 diff --git a/gcc/testsuite/gcc.c-torture/compile/pr37381.c b/gcc/testsuite/gcc.c-torture/compile/pr37381.c new file mode 100644 index 0000000..a2fed66 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr37381.c @@ -0,0 +1,97 @@ +extern unsigned int __invalid_size_argument_for_IOC; +typedef unsigned int __u32; +struct video_window +{ + __u32 x, y; + __u32 width, height; +}; +typedef unsigned long XID; +typedef XID Window; +typedef struct _XExtData +{ + Window root; +} +Screen; +typedef struct +{ + int border_width; +} +XWindowAttributes; +typedef struct _XDisplay Display; +typedef struct +{ + int default_screen; + Screen *screens; +} + *_XPrivDisplay; +typedef struct +{ + int x, y; +} +XSizeHints; +typedef struct +{ + unsigned short hdisplay; + unsigned short vdisplay; +} +XF86VidModeModeInfo; +Display *display; +int tfd; +int ccapt; +int tml; +int fswidth = 0; +int fsheight = 0; +Window fmwin; +XF86VidModeModeInfo **modelines, *fullscreenmode = ((void *) 0); +struct video_window vswin; +DoFullScreen (void) +{ + int i; + int rx, ry; + Window junkwin; + XSizeHints fmsizehints; + XWindowAttributes fmwinattr; + if (ioctl + (tfd, + (((1U) << (((0 + 8) + 8) + 14)) | ((('v')) << (0 + 8)) | (((8)) << 0) | + (((((sizeof (int) == sizeof (int[1]) + && sizeof (int) < + (1 << 14)) ? sizeof (int) : __invalid_size_argument_for_IOC))) << + ((0 + 8) + 8))), &ccapt) < 0) + { + perror ("ioctl VIDIOCCAPTURE"); + } + if (!XTranslateCoordinates + (display, fmwin, + ((&((_XPrivDisplay) display)-> + screens[(((_XPrivDisplay) display)->default_screen)])->root), + -fmwinattr.border_width, -fmwinattr.border_width, &rx, &ry, &junkwin)) + { + } + vswin.width = fswidth; + vswin.height = fsheight; + vswin.x = fmsizehints.x + rx; + vswin.y = fmsizehints.y + ry; + if (ioctl + (tfd, + (((1U) << (((0 + 8) + 8) + 14)) | ((('v')) << (0 + 8)) | (((8)) << 0) | + (((((sizeof (int) == sizeof (int[1]) + && sizeof (int) < + (1 << 14)) ? sizeof (int) : __invalid_size_argument_for_IOC))) << + ((0 + 8) + 8))), &ccapt) < 0) + { + XF86VidModeGetAllModeLines (display, XDefaultScreen (display), &tml, + &modelines); + { + if ((modelines[i]->hdisplay == fswidth) + && (modelines[i]->vdisplay == fsheight)) + { + fullscreenmode = modelines[i]; + } + } + { + XF86VidModeSetViewPort (display, XDefaultScreen (display), vswin.x, + vswin.y); + } + } +} -- 2.7.4