Hang on, the test case looks invalid:
> ReadCfgFile (char *cfg_file) > { > void *conf_handler; > int i; > struct sockaddr_in nsaddr_list[0]; > char *nserver_str; > qp_getconf_array_str (conf_handler, "Nameservers", i, &nserver_str, 0); > (*__res_state ()).nsaddr_list[(*__res_state ()).nscount++] = nsaddr_list[0]; > }
This has a zero-element array as a local variable, which it then fetches an element from. That's clearly invalid. Changing it as follows
- struct sockaddr_in nsaddr_list[0]; + struct sockaddr_in nsaddr_list[1];
makes the test case work for me, even without -mtune=xscale.
Hang on, the test case looks invalid:
> ReadCfgFile (char *cfg_file) array_str (conf_handler, "Nameservers", i, &nserver_str, 0); list[(* __res_state ()).nscount++] = nsaddr_list[0];
> {
> void *conf_handler;
> int i;
> struct sockaddr_in nsaddr_list[0];
> char *nserver_str;
> qp_getconf_
> (*__res_state ()).nsaddr_
> }
This has a zero-element array as a local variable, which it then fetches an element from. That's clearly invalid. Changing it as follows
- struct sockaddr_in nsaddr_list[0];
+ struct sockaddr_in nsaddr_list[1];
makes the test case work for me, even without -mtune=xscale.