diff options
author | Xavier Leroy <xavier.leroy@inria.fr> | 2015-12-21 10:09:21 +0100 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@inria.fr> | 2015-12-21 10:09:21 +0100 |
commit | 7a8558575054daff45d41bdfe4058596f87467a3 (patch) | |
tree | 57999d475dc6dd3d2475b1594a0777222e497430 | |
parent | 6423f1293f9bd78dd981dd6a1e8908659d46875f (diff) | |
download | compcert-7a8558575054daff45d41bdfe4058596f87467a3.tar.gz compcert-7a8558575054daff45d41bdfe4058596f87467a3.zip |
The return type of __builtin_clz() et al is "int", as documented and for GCC compatibility, and not "unsigned int", as previously implemented.v2.6
-rw-r--r-- | Changelog | 2 | ||||
-rw-r--r-- | arm/CBuiltins.ml | 2 | ||||
-rw-r--r-- | ia32/CBuiltins.ml | 4 | ||||
-rw-r--r-- | powerpc/CBuiltins.ml | 6 |
4 files changed, 8 insertions, 6 deletions
@@ -45,6 +45,8 @@ Miscellaneous: passing a struct/union as function argument is now rejected. - The -fstruct-return command-line option is deprecated and becomes a synonymous for -fstruct-passing. +- The return type of __builtin_clz() is "int", as documented, + and not "unsigned int", as previously implemented. Release 2.5, 2015-06-12 diff --git a/arm/CBuiltins.ml b/arm/CBuiltins.ml index 00de4df7..6751074c 100644 --- a/arm/CBuiltins.ml +++ b/arm/CBuiltins.ml @@ -30,7 +30,7 @@ let builtins = { "__builtin_bswap16", (TInt(IUShort, []), [TInt(IUShort, [])], false); "__builtin_clz", - (TInt(IUInt, []), [TInt(IUInt, [])], false); + (TInt(IInt, []), [TInt(IUInt, [])], false); (* Float arithmetic *) "__builtin_fsqrt", (TFloat(FDouble, []), [TFloat(FDouble, [])], false); diff --git a/ia32/CBuiltins.ml b/ia32/CBuiltins.ml index 771d2786..802588d4 100644 --- a/ia32/CBuiltins.ml +++ b/ia32/CBuiltins.ml @@ -30,9 +30,9 @@ let builtins = { "__builtin_bswap16", (TInt(IUShort, []), [TInt(IUShort, [])], false); "__builtin_clz", - (TInt(IUInt, []), [TInt(IUInt, [])], false); + (TInt(IInt, []), [TInt(IUInt, [])], false); "__builtin_ctz", - (TInt(IUInt, []), [TInt(IUInt, [])], false); + (TInt(IInt, []), [TInt(IUInt, [])], false); (* Float arithmetic *) "__builtin_fsqrt", (TFloat(FDouble, []), [TFloat(FDouble, [])], false); diff --git a/powerpc/CBuiltins.ml b/powerpc/CBuiltins.ml index ec3a633b..d244cba0 100644 --- a/powerpc/CBuiltins.ml +++ b/powerpc/CBuiltins.ml @@ -29,11 +29,11 @@ let builtins = { "__builtin_mulhwu", (TInt(IUInt, []), [TInt(IUInt, []); TInt(IUInt, [])], false); "__builtin_clz", - (TInt(IUInt, []), [TInt(IUInt, [])], false); + (TInt(IInt, []), [TInt(IUInt, [])], false); "__builtin_clzl", - (TInt(IUInt, []), [TInt(IULong, [])], false); + (TInt(IInt, []), [TInt(IULong, [])], false); "__builtin_clzll", - (TInt(IUInt, []), [TInt(IULongLong, [])], false); + (TInt(IInt, []), [TInt(IULongLong, [])], false); "__builtin_bswap", (TInt(IUInt, []), [TInt(IUInt, [])], false); "__builtin_bswap32", |