Message ID | 444abf20-b5ef-664a-fed4-ebfd8969e1da@ramsayjones.plus.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
On Mon, Mar 27, 2017 at 5:27 PM, Ramsay Jones <ramsay@ramsayjones.plus.com> wrote: > So, I looked in the debugger and 'bits_in_long' and 'bits_in_pointer' > are set correctly, but __LONG_MAX__ is being printed with an LL suffix, > so, this fixes it for me: > > $ git diff > diff --git a/lib.c b/lib.c > index 272d2c8..502c264 100644 > --- a/lib.c > +++ b/lib.c > @@ -834,7 +834,7 @@ static void predefined_macros(void) > add_pre_buffer("#define __CHECKER__ 1\n"); > > val = (1ULL << (bits_in_long-1)) - 1; > - add_pre_buffer("#weak_define __LONG_MAX__ %#llxLL\n", val); > + add_pre_buffer("#weak_define __LONG_MAX__ %#llxL\n", val); > add_pre_buffer("#weak_define __SIZEOF_POINTER__ %d\n", bits_in_pointer/8); > } > > $ > > Not a proper fix, but ... Well, actually it is the proper fix as __LONG_MAX__ is supposed to be a 'long' and not a 'long long'. > Ah, I've just noticed you have sent some patches. ;-) > > I will take a look and let you know. OK, thanks. It should be OK as I new tested it on a 32bit machine but another environment is always good for testing. -- Luc -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 27/03/17 17:10, Luc Van Oostenryck wrote: > On Mon, Mar 27, 2017 at 5:27 PM, Ramsay Jones > <ramsay@ramsayjones.plus.com> wrote: > >> So, I looked in the debugger and 'bits_in_long' and 'bits_in_pointer' >> are set correctly, but __LONG_MAX__ is being printed with an LL suffix, >> so, this fixes it for me: >> >> $ git diff >> diff --git a/lib.c b/lib.c >> index 272d2c8..502c264 100644 >> --- a/lib.c >> +++ b/lib.c >> @@ -834,7 +834,7 @@ static void predefined_macros(void) >> add_pre_buffer("#define __CHECKER__ 1\n"); >> >> val = (1ULL << (bits_in_long-1)) - 1; >> - add_pre_buffer("#weak_define __LONG_MAX__ %#llxLL\n", val); >> + add_pre_buffer("#weak_define __LONG_MAX__ %#llxL\n", val); >> add_pre_buffer("#weak_define __SIZEOF_POINTER__ %d\n", bits_in_pointer/8); >> } >> >> $ >> >> Not a proper fix, but ... > > Well, actually it is the proper fix as __LONG_MAX__ is supposed to be > a 'long' and not a 'long long'. > >> Ah, I've just noticed you have sent some patches. ;-) >> >> I will take a look and let you know. > > OK, thanks. > It should be OK as I new tested it on a 32bit machine but > another environment is always good for testing. OK, so I tested the 5 patch series + the v2 patch that you sent out on Linux 64bit, Linux 32bit and cygwin 64bit. I applied the patches on top of the current 'sparse-next' branch: $ git branch -v chrisl-master ce18a90 sparse: update __builtin_object_size() prototype master fbbfc73 simplify float-to-float casts that doesn't change size mingw 9e96dd5 test-suite: Add -b option to ignore CR at eol on MinGW sparse-next f7817f0 llvm: cleanup of output_[ptr]cast() * sparse-next-tmp df7cd04 fix expansion of integers to floats $ git log --oneline sparse-next.. df7cd04 fix expansion of integers to floats 83de8c4 do not depends on limits.h to test __CHAR_BIT__ ac9f7b4 fix test validation/div.c 153d5cf predefine __SIZEOF_INT__ & friends a3a916c predefine __INT_MAX__ and friends 26a0a0a fix test for cast to bool on 32bit machines $ On Linux 64bit, I get: $ make check ... Out of 214 tests, 205 passed, 9 failed (9 of them are known to fail) 39 tests were disabled $ On Linux 32bit, I get: $ make check ... TEST call-inlined (call-inlined.c) error: actual output text does not match expected output text. error: see call-inlined.c.output.* for further investigation. --- call-inlined.c.output.expected 2017-03-27 16:57:23.438683323 +0100 +++ call-inlined.c.output.got 2017-03-27 16:57:23.442685323 +0100 @@ -15,14 +15,14 @@ bas: .L6: <entry-point> - add.64 %r16 <- "abc", $1 - ret.64 %r16 + add.32 %r16 <- "abc", $1 + ret.32 %r16 qus: .L9: <entry-point> - add.64 %r21 <- messg, $1 - ret.64 %r21 + add.32 %r21 <- messg, $1 + ret.32 %r21 TEST call-variadic (call-variadic.c) error: actual output text does not match expected output text. error: see call-variadic.c.output.* for further investigation. --- call-variadic.c.output.expected 2017-03-27 16:57:23.482705323 +0100 +++ call-variadic.c.output.got 2017-03-27 16:57:23.486707323 +0100 @@ -1,14 +1,14 @@ foo: .L0: <entry-point> - push.64 "msg %c: %d %d/%ld %ld/%p %p\n" + push.32 "msg %c: %d %d/%ld %ld/%p %p\n" push.32 $120 push.32 %arg2 push.32 $7 - push.64 %arg3 - push.64 $0 - push.64 %arg4 - push.64 $0 + push.32 %arg3 + push.32 $0 + push.32 %arg4 + push.32 $0 call.32 %r5 <- print ret.32 %r5 ... Out of 214 tests, 203 passed, 11 failed (9 of them are known to fail) 39 tests were disabled Makefile:213: recipe for target 'check' failed make: *** [check] Error 1 $ And on cygwin 64bit, I get: $ tail test-out-tmp TEST Varargs bogus warning regression test #1 (varargs1.c) TEST wide character constants (wide.c) TEST Woverride-init-def (Woverride-init-def.c) TEST Woverride-init-no (Woverride-init-no.c) TEST Woverride-init-yes (Woverride-init-yes.c) TEST warn-unknown-attribute (Wunknown-attribute-def.c) TEST warn-unknown-attribute-no (Wunknown-attribute-no.c) TEST warn-unknown-attribute-yes (Wunknown-attribute-yes.c) Out of 253 tests, 235 passed, 18 failed (9 of them are known to fail) make: *** [Makefile:213: check] Error 1 $ Note that the 9 unexpected failures on cygwin are due to the same 'llvm tool problems' that we discussed before. ie the new tests added in these patches all pass. Hope that helps. ATB, Ramsay Jones -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Mon, Mar 27, 2017 at 05:53:17PM +0100, Ramsay Jones wrote: > > > OK, thanks. > > It should be OK as I new tested it on a 32bit machine but > > another environment is always good for testing. > > OK, so I tested the 5 patch series + the v2 patch that you sent > out on Linux 64bit, Linux 32bit and cygwin 64bit. > > I applied the patches on top of the current 'sparse-next' branch: > > $ git branch -v > chrisl-master ce18a90 sparse: update __builtin_object_size() prototype > master fbbfc73 simplify float-to-float casts that doesn't change size > mingw 9e96dd5 test-suite: Add -b option to ignore CR at eol on MinGW > sparse-next f7817f0 llvm: cleanup of output_[ptr]cast() > * sparse-next-tmp df7cd04 fix expansion of integers to floats > > $ git log --oneline sparse-next.. > df7cd04 fix expansion of integers to floats > 83de8c4 do not depends on limits.h to test __CHAR_BIT__ > ac9f7b4 fix test validation/div.c > 153d5cf predefine __SIZEOF_INT__ & friends > a3a916c predefine __INT_MAX__ and friends > 26a0a0a fix test for cast to bool on 32bit machines > $ > > On Linux 64bit, I get: > > $ make check > ... > Out of 214 tests, 205 passed, 9 failed (9 of them are known to fail) > 39 tests were disabled > $ > > On Linux 32bit, I get: > > $ make check > ... > TEST call-inlined (call-inlined.c) > error: actual output text does not match expected output text. > error: see call-inlined.c.output.* for further investigation. > --- call-inlined.c.output.expected 2017-03-27 16:57:23.438683323 +0100 > +++ call-inlined.c.output.got 2017-03-27 16:57:23.442685323 +0100 Yes, this is expected. Sorry, I should have told earlier. Those were part of another serie that I didn't yes sent an updated version. The 5 patches series only covered what's already in master, not sparse-next. I'll sent an updated version for what's in sparse-next a bit later. -- Luc -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/lib.c b/lib.c index 272d2c8..502c264 100644 --- a/lib.c +++ b/lib.c @@ -834,7 +834,7 @@ static void predefined_macros(void) add_pre_buffer("#define __CHECKER__ 1\n"); val = (1ULL << (bits_in_long-1)) - 1; - add_pre_buffer("#weak_define __LONG_MAX__ %#llxLL\n", val); + add_pre_buffer("#weak_define __LONG_MAX__ %#llxL\n", val); add_pre_buffer("#weak_define __SIZEOF_POINTER__ %d\n", bits_in_pointer/8); }