asn1: code generators that left bit shift .gt. 31 must use 1ULL
The code generators were shifting "1LU" by (<< 32) and (<< 63) which are undefined operations for a 32-bit integer. To ensure the integer is 64-bit use "1ULL". Change-Id: I062cae5638139a9fe51563f64b1964f87e2f49e3
This commit is contained in:

committed by
Jeffrey Altman

parent
ad2a352600
commit
136abf55b7
@@ -53,7 +53,7 @@ generate_2int (const Type *t, const char *gen_name)
|
||||
gen_name, gen_name);
|
||||
|
||||
HEIM_TAILQ_FOREACH(m, t->members, members) {
|
||||
fprintf (codefile, "if(f.%s) r |= (1LU << %d);\n",
|
||||
fprintf (codefile, "if(f.%s) r |= (1ULL << %d);\n",
|
||||
m->gen_name, m->val);
|
||||
}
|
||||
fprintf (codefile, "return r;\n"
|
||||
@@ -114,7 +114,7 @@ generate_units (const Type *t, const char *gen_name)
|
||||
if(t->members) {
|
||||
HEIM_TAILQ_FOREACH_REVERSE(m, t->members, memhead, members) {
|
||||
fprintf (codefile,
|
||||
"\t{\"%s\",\t1LU << %d},\n", m->name, m->val);
|
||||
"\t{\"%s\",\t1ULL << %d},\n", m->name, m->val);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user