aboutsummaryrefslogtreecommitdiff
path: root/tccgen.c
diff options
context:
space:
mode:
authorPavlas, Zdenek <zden3k@gmail.com>2016-10-03 00:40:37 -0700
committerPavlas, Zdenek <zden3k@gmail.com>2016-10-03 00:43:28 -0700
commitda63695cf3ee85dc4a2f914d278cf90873cd0052 (patch)
treeb99c9e6665646e2a3402eabcc8c9d21fd6131c6b /tccgen.c
parentc2ad11ac70b9ae2010eb63d5eaf77ede0168ca41 (diff)
downloadtinycc-da63695cf3ee85dc4a2f914d278cf90873cd0052.tar.gz
tinycc-da63695cf3ee85dc4a2f914d278cf90873cd0052.tar.bz2
switch: fix label sorting
Diffstat (limited to 'tccgen.c')
-rw-r--r--tccgen.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/tccgen.c b/tccgen.c
index 398e165..6f7cf1f 100644
--- a/tccgen.c
+++ b/tccgen.c
@@ -4881,8 +4881,12 @@ static void label_or_decl(int l)
decl(l);
}
-static int case_cmp(const void *a, const void *b)
-{ return (*(struct case_t**) a)->v1 - (*(struct case_t**) b)->v1; }
+static int case_cmp(const void *pa, const void *pb)
+{
+ int a = (*(struct case_t**) pa)->v1;
+ int b = (*(struct case_t**) pb)->v1;
+ return a < b ? -1 : a > b;
+}
static void block(int *bsym, int *csym, int is_expr)
{