a GCC question

Olaf Hering olh at suse.de
Sun Aug 6 23:06:11 EST 2000


On Sat, Aug 05, Takashi Oe wrote:

>
> On Sat, 5 Aug 2000, David Edelsohn wrote:
>
> > 	I would guess that for smaller numbers of cases, GCC is deciding
> > that it is more efficient to use a series of "if" statements for a
> > decision tree instead of a switch statement.  You can explicitly code it
> > as such, e.g.,
> >
> > if (bi->dispDeviceDepth == 32)
> > ...
> > else if (bi-dispDeviceDepth == 16)
> > ...
> > else if
> > ...
> > else abort();
>
> Ah, that works, though the code doesn't work for some other unknown
> reasons now, probably due to something along the line of things Olaf was
> talking about recently.  Thanks!

Can you send me a diff against the current Benh kernel?
I just inserted these (useless) printk() to a non called function and
now it works so far for me.

find_pci_device_OFnode(unsigned char bus, unsigned char dev_fn)
{
/*      char blubber[60] = ""; */
        struct device_node* np;
        unsigned int *reg;
        int l;
/*      printk("I am just a dummy ...\n");  */
        for (np = allnodes; np != 0; np = np->allnext) {
                int in_macio = 0;
                struct device_node* parent = np->parent;
                while(parent) {
                        char *pname = (char *)get_property(parent, "name", &l);
        printk("I am just another dummy ...\n");
        printk("I am just another dummy ...\n");
                        if (pname && strcmp(pname, "mac-io") == 0) {
                                in_macio = 1;
                                break;
                        }

Bit ugly.


Gruss Olaf

--
 $ man clone

BUGS
       Main feature not yet implemented...

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/





More information about the Linuxppc-dev mailing list