Re: [PATCH 03/15] Add type information to struct instruction.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Christopher Li wrote:
[...]
> I think what David need is just distinction of int vs pointer.

Actually, I need to distinguish between ints, doubles, object pointers,
function pointers, structures/arrays and void; the code for doing this
is currently a pretty nasty set of heuristics, which is here if you're
interested:

http://cluecc.svn.sourceforge.net/viewvc/cluecc/clue/src/clue/typestore.c?revision=45&view=markup

I'm sure there's a better way of doing it, but I just couldn't find one!
So if you can think of any way to clean all this up I'd be delighted.
The underlying issue, BTW, is that OP_LOAD doesn't carry enough
information in its arguments to determine the type of the instruction.

Incidentally, speaking of distinguishing arguments, one of the issues I
have with Clue is that sparse can't distinguish between parameters of
the different types but the same size in some situations --- e.g.:

extern void foo(float i);
...
foo(5);

...will call foo() with an *integer* parameter rather than a float one.
This is preventing me doing certain optimisations (like being able to
store ints in ints rather than doubles!). Is this related?

(I vaguely recall mentioning this before, but can't find my message...
is there a bug tracker for sparse?)

- --
David Given
dg@xxxxxxxxxxx
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFJUMo+f9E0noFvlzgRAqy/AJ40DRC4Cgzjml50KMw+Bk9i/hRcXwCdH0sK
2SSrZI19MCnrOhjcy9kYUbI=
=NywA
-----END PGP SIGNATURE-----
--
To unsubscribe from this list: send the line "unsubscribe linux-sparse" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Newbies FAQ]     [LKML]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Trinity Fuzzer Tool]

  Powered by Linux