[PATCH 0/5] Sparse on Cygwin (and git).

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

 



Hi Josh,

Since git uses sparse in it's "check" make target, I decided to download the
(then current) 0.2 tar-ball and see what sparse was about. Unfortunately, at present,
I am using cygwin on win32 until I get around to installing Linux. ;-)
Hence, the following patch series...

0001-Add-support-for-WIN32-attribute-names.patch
0002-Fix-an-__attribute__-parsing-error.patch
0003-Add-cygwin-support-to-cgcc.patch
0004-Fix-a-Wtypesign-bug.patch

Well, when the 0.3 tar-ball was released, I had to update the patch series.
Changes to the attribute parsing code meant an update to patch 0001 was
required. Patch 0004 now seems to be unnecessary (probably due to commit
ef2596162115bfdc2a1d3639ac99dd3ba2a71af2). Also compilation errors lead to
the introduction of two new patches (1&2/5), as follows ...

0001-Fix-an-attribute-__sentinel__-unknown-warning.patch
0002-Fix-some-enum-value-XXX-not-handled-in-switch-wa.patch
0003-Add-support-for-WIN32-attribute-names.patch
0004-Fix-an-__attribute__-parsing-error.patch
0005-Add-cygwin-support-to-cgcc.patch

As I am somewhat bandwidth challenged, until recently, I had never cloned a
git repository (not even the git repo). So, last week I cloned the sparse
repository; thankfully it only took about ten minutes (yep a slow pipe!).
Thus, again I had to update the patch series. Patch 0003 overlapped a
recent commit (baf2c5a8) by Michael Stefaniuc and patch 0004 required an
update due to handle_attributes() gaining a third parameter. So the final
patch series is:

0001-Fix-an-__sentinel__-attribute-directive-ignored.patch
0002-Fix-some-enum-value-XXX-not-handled-in-switch-wa.patch
0003-Add-more-support-for-WIN32-attribute-names.patch
0004-Fix-an-__attribute__-parsing-error.patch
0005-Add-cygwin-support-to-cgcc.patch

which was built on top of: 0.3-15-gb5bd30f

I have attached "0004-Fix-a-Wtypesign-bug.patch" simply out of interest, as
it does not require the parameter type of "function returning..." to decay to
"pointer to function returning...".  The test case comes from git:

$cat tsb.c

typedef int erf(const char *r, const unsigned char *s, int f, void *c);

extern int fer(erf, void *);

static int ar(const char *r, const unsigned char *s, int f, void *c)
{
	return 0;
}

int main (int argc, char *argv[])
{
	fer(ar, (void *)0);
}

$

Hope you find this useful.

All the best,

Ramsay Jones

Attachment: 0004-Fix-a-Wtypesign-bug.patch
Description: application/xxxxx

typedef int erf(const char *r, const unsigned char *s, int f, void *c);

extern int fer(erf, void *);

static int ar(const char *r, const unsigned char *s, int f, void *c)
{
	return 0;
}

int main (int argc, char *argv[])
{
	fer(ar, (void *)0);
}


[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