diff options
| author | Pekka Enberg <penberg@kernel.org> | 2011-08-30 19:46:29 +0300 |
|---|---|---|
| committer | Pekka Enberg <penberg@kernel.org> | 2011-08-30 20:29:10 +0300 |
| commit | c19ad437aee130bfde2ac41494d3a46900670dc6 (patch) | |
| tree | 24786de5a073aa960e0611b85370cf7065c6b7ac /validation/backend | |
| parent | 014de231b87ad9ba3f62b21abd4a591de742a5f4 (diff) | |
| download | sparse-dev-c19ad437aee130bfde2ac41494d3a46900670dc6.tar.gz | |
sparse, llvm: Fix code generation for casts
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Diffstat (limited to 'validation/backend')
| -rw-r--r-- | validation/backend/cast.c | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/validation/backend/cast.c b/validation/backend/cast.c new file mode 100644 index 00000000..3e677446 --- /dev/null +++ b/validation/backend/cast.c @@ -0,0 +1,47 @@ +typedef unsigned char uchar; +typedef unsigned short ushort; +typedef unsigned int uint; +typedef unsigned long ulong; +typedef long long longlong; +typedef unsigned long long ulonglong; + +#define DEFINE_CAST(from, to) \ + static to from##2##to(from x) { \ + return x; \ + } + +#define DEFINE_CASTS(from) \ + DEFINE_CAST(from, char) \ + DEFINE_CAST(from, uchar) \ + DEFINE_CAST(from, short) \ + DEFINE_CAST(from, ushort) \ + DEFINE_CAST(from, int) \ + DEFINE_CAST(from, uint) \ + DEFINE_CAST(from, long) \ + DEFINE_CAST(from, ulong) \ + DEFINE_CAST(from, longlong) \ + DEFINE_CAST(from, ulonglong) \ +/* + DEFINE_CAST(from, float) \ + DEFINE_CAST(from, double) +*/ + +DEFINE_CASTS(char) +DEFINE_CASTS(uchar) +DEFINE_CASTS(short) +DEFINE_CASTS(ushort) +DEFINE_CASTS(int) +DEFINE_CASTS(uint) +DEFINE_CASTS(long) +DEFINE_CASTS(ulong) +DEFINE_CASTS(longlong) +DEFINE_CASTS(ulonglong) +/* +DEFINE_CASTS(float) +DEFINE_CASTS(double) +*/ + +/* + * check-name: Cast code generation + * check-command: ./sparsec -c $file -o tmp.o + */ |
