------- Comment #6 from pinskia at gcc dot gnu dot org 2005-11-24 20:42 ------- Here is a reduced testcase as far as I can get it: struct device_driver { const char * name; }; struct video_picture { unsigned short a,b,c,d,e; }; struct w9968cf_device { struct device_driver *driver; int vpp_flag; }; int debug = 2; int specific_debug = 0; int w9968cf_set_picture(struct w9968cf_device* cam, struct video_picture pict) { short fmt, reg_v = 0x0000; int err = 0; long esi, edi; switch (fmt) { case 13: reg_v |= 0x0002; case 4: case 5: cam->vpp_flag = 8; } if (err = w9968cf_write_reg(cam, reg_v, 0x16)) if (err = w9968cf_sensor_update_picture(cam, pict)) __asm__ __volatile__("movsw" :"=&D"(edi),"=&S"(esi):"0"(edi),"1"(esi):"memory"); if (((specific_debug) && (debug == (1))) || ((!specific_debug) && (debug >= (1)))) printk("<4>" "%s %s: " "Failed to change picture settings" "\n" , cam->driver->name ); return err; }
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25023