File 0001-rename-mktemp-to-mktemporary.patch of Package harec
From 8aec3c9c4cc150c9452461ba8367413909ec157a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20=22sp1rit=22=E2=80=8B?= <sp1ritCS@protonmail.com>
Date: Mon, 25 Apr 2022 15:58:55 +0200
Subject: [PATCH] rename mktemp to mktemporary
this is to avoid confusion with the mktemp(3) stdlib function that
deprecated due to security concerns.
---
include/gen.h | 2 +-
src/gen.c | 70 +++++++++++++++++++++++++--------------------------
src/genutil.c | 2 +-
3 files changed, 37 insertions(+), 37 deletions(-)
diff --git a/include/gen.h b/include/gen.h
index 40379d5..cc4318e 100644
--- a/include/gen.h
+++ b/include/gen.h
@@ -83,7 +83,7 @@ void gen(const struct unit *unit,
// genutil.c
char *gen_name(struct gen_context *ctx, const char *fmt);
-struct gen_value mktemp(struct gen_context *ctx,
+struct gen_value mktemporary(struct gen_context *ctx,
const struct type *type, const char *fmt);
struct qbe_value mkqval(struct gen_context *ctx, struct gen_value *value);
struct qbe_value mklval(struct gen_context *ctx, struct gen_value *value);
diff --git a/src/gen.c b/src/gen.c
index a10f937..b29bf06 100644
--- a/src/gen.c
+++ b/src/gen.c
@@ -501,7 +501,7 @@ gen_expr_alloc_init_with(struct gen_context *ctx,
objtype = objtype->pointer.referent;
struct qbe_value sz = constl(objtype->size);
- struct gen_value result = mktemp(ctx, expr->result, ".%d");
+ struct gen_value result = mktemporary(ctx, expr->result, ".%d");
struct qbe_value qresult = mkqval(ctx, &result);
struct qbe_value rtfunc = mkrtfunc(ctx, "rt.malloc");
pushi(ctx->current, &qresult, Q_CALL, &rtfunc, &sz, NULL);
@@ -539,7 +539,7 @@ gen_expr_alloc_slice_with(struct gen_context *ctx,
gen_alloc_slice_at(ctx, expr, *out, expand);
return gv_void;
}
- struct gen_value temp = mktemp(ctx, expr->result, "object.%d");
+ struct gen_value temp = mktemporary(ctx, expr->result, "object.%d");
struct qbe_value base = mkqval(ctx, &temp);
struct qbe_value sz = constl(expr->result->size);
enum qbe_instr alloc = alloc_for_align(expr->result->align);
@@ -555,7 +555,7 @@ gen_expr_alloc_copy_with(struct gen_context *ctx,
// alloc(init...) case
struct gen_value ret = gv_void;
if (out == NULL) {
- ret = mktemp(ctx, expr->result, "object.%d");
+ ret = mktemporary(ctx, expr->result, "object.%d");
out = &ret;
struct qbe_value base = mkqval(ctx, out);
@@ -906,7 +906,7 @@ gen_expr_binarithm(struct gen_context *ctx, const struct expression *expr)
{
const struct type *ltype = type_dealias(expr->binarithm.lvalue->result);
const struct type *rtype = type_dealias(expr->binarithm.rvalue->result);
- struct gen_value result = mktemp(ctx, expr->result, ".%d");
+ struct gen_value result = mktemporary(ctx, expr->result, ".%d");
struct qbe_value qresult = mkqval(ctx, &result);
if (expr->binarithm.op == BIN_LAND || expr->binarithm.op == BIN_LOR) {
@@ -1070,7 +1070,7 @@ gen_expr_call(struct gen_context *ctx, const struct expression *expr)
};
struct gen_value rval = gv_void;
if (type_dealias(rtype->func.result)->storage != STORAGE_VOID) {
- rval = mktemp(ctx, rtype->func.result, "returns.%d");
+ rval = mktemporary(ctx, rtype->func.result, "returns.%d");
call.out = xcalloc(1, sizeof(struct qbe_value));
*call.out = mkqval(ctx, &rval);
call.out->type = qtype_lookup(ctx, rtype->func.result, false);
@@ -1238,8 +1238,8 @@ gen_expr_cast_tagged_at(struct gen_context *ctx,
subtype = tagged_subset_compat(to, from) ? from : to;
const struct type *innertype = type_store_tagged_to_union(
ctx->store, type_dealias(subtype));
- struct gen_value iout = mktemp(ctx, innertype, ".%d");
- struct gen_value ival = mktemp(ctx, innertype, ".%d");
+ struct gen_value iout = mktemporary(ctx, innertype, ".%d");
+ struct gen_value ival = mktemporary(ctx, innertype, ".%d");
struct qbe_value qiout = mkqval(ctx, &iout);
struct qbe_value qival = mkqval(ctx, &ival);
struct qbe_value offs = constl(to->align);
@@ -1259,7 +1259,7 @@ gen_expr_cast_tagged_at(struct gen_context *ctx,
return;
}
- struct gen_value storage = mktemp(ctx, subtype, ".%d");
+ struct gen_value storage = mktemporary(ctx, subtype, ".%d");
struct qbe_value qstor = mklval(ctx, &storage);
struct qbe_value offs = constl(to->align);
pushi(ctx->current, &qstor, Q_ADD, &qout, &offs, NULL);
@@ -1323,9 +1323,9 @@ gen_expr_cast_array_at(struct gen_context *ctx,
struct qbe_value base = mkqval(ctx, &out);
struct qbe_value offs = constl((typein->array.length - 1) * membtype->size);
- struct gen_value next = mktemp(ctx, membtype, ".%d");
+ struct gen_value next = mktemporary(ctx, membtype, ".%d");
struct qbe_value ptr = mklval(ctx, &next);
- struct gen_value item = mktemp(ctx, membtype, "item.%d");
+ struct gen_value item = mktemporary(ctx, membtype, "item.%d");
struct qbe_value qitem = mklval(ctx, &item);
pushi(ctx->current, &qitem, Q_ADD, &base, &offs, NULL);
@@ -1404,7 +1404,7 @@ gen_expr_cast(struct gen_context *ctx, const struct expression *expr)
}
if (cast_prefers_at(expr)) {
- struct gen_value out = mktemp(ctx, expr->result, "object.%d");
+ struct gen_value out = mktemporary(ctx, expr->result, "object.%d");
struct qbe_value base = mkqval(ctx, &out);
struct qbe_value sz = constl(expr->result->size);
enum qbe_instr alloc = alloc_for_align(expr->result->align);
@@ -1437,7 +1437,7 @@ gen_expr_cast(struct gen_context *ctx, const struct expression *expr)
struct qbe_value qval = mkqval(ctx, &val);
if (expr->cast.kind == C_TEST) {
struct gen_value out =
- mktemp(ctx, &builtin_type_bool, ".%d");
+ mktemporary(ctx, &builtin_type_bool, ".%d");
struct qbe_value qout = mkqval(ctx, &out);
struct qbe_value zero = constl(0);
@@ -1507,7 +1507,7 @@ gen_expr_cast(struct gen_context *ctx, const struct expression *expr)
struct gen_value value = gen_expr(ctx, expr->cast.value);
struct qbe_value qvalue = mkqval(ctx, &value);
- struct gen_value result = mktemp(ctx, expr->result, "cast.%d");
+ struct gen_value result = mktemporary(ctx, expr->result, "cast.%d");
struct qbe_value qresult = mkqval(ctx, &result);
struct gen_value intermediate;
struct qbe_value qintermediate;
@@ -1580,7 +1580,7 @@ gen_expr_cast(struct gen_context *ctx, const struct expression *expr)
switch (from->size) {
case 1:
case 2:
- intermediate = mktemp(ctx,
+ intermediate = mktemporary(ctx,
&builtin_type_i32, "cast.%d");
qintermediate = mkqval(ctx, &intermediate);
pushi(ctx->current, &qintermediate,
@@ -1600,7 +1600,7 @@ gen_expr_cast(struct gen_context *ctx, const struct expression *expr)
switch (from->size) {
case 1:
case 2:
- intermediate = mktemp(ctx,
+ intermediate = mktemporary(ctx,
&builtin_type_i32, "cast.%d");
qintermediate = mkqval(ctx, &intermediate);
pushi(ctx->current, &qintermediate,
@@ -1665,7 +1665,7 @@ gen_expr_compound_with(struct gen_context *ctx,
struct gen_value gvout = gv_void;
if (!out) {
- gvout = mktemp(ctx, expr->result, ".%d");
+ gvout = mktemporary(ctx, expr->result, ".%d");
}
scope->out = out;
scope->result = gvout;
@@ -1692,7 +1692,7 @@ gen_const_array_at(struct gen_context *ctx,
size_t n = 0;
const struct type *atype = type_dealias(expr->result);
- struct gen_value item = mktemp(ctx, atype->array.members, "item.%d");
+ struct gen_value item = mktemporary(ctx, atype->array.members, "item.%d");
for (const struct array_constant *ac = aexpr; ac; ac = ac->next) {
struct qbe_value offs = constl(n * atype->array.members->size);
struct qbe_value ptr = mklval(ctx, &item);
@@ -1768,7 +1768,7 @@ static struct gen_value
gen_expr_const(struct gen_context *ctx, const struct expression *expr)
{
if (type_is_aggregate(type_dealias(expr->result))) {
- struct gen_value out = mktemp(ctx, expr->result, "object.%d");
+ struct gen_value out = mktemporary(ctx, expr->result, "object.%d");
struct qbe_value base = mkqval(ctx, &out);
struct qbe_value sz = constl(expr->result->size);
enum qbe_instr alloc = alloc_for_align(expr->result->align);
@@ -1987,7 +1987,7 @@ gen_expr_if_with(struct gen_context *ctx,
{
struct gen_value gvout = gv_void;
if (!out) {
- gvout = mktemp(ctx, expr->result, ".%d");
+ gvout = mktemporary(ctx, expr->result, ".%d");
}
struct qbe_statement ltrue, lfalse, lend;
@@ -2194,7 +2194,7 @@ gen_nested_match_tests(struct gen_context *ctx, struct gen_value object,
// tag of the foo object for int.
struct qbe_value *subtag = &tag;
struct qbe_value subval = mkcopy(ctx, &object, "subval.%d");
- struct gen_value match = mktemp(ctx, &builtin_type_bool, ".%d");
+ struct gen_value match = mktemporary(ctx, &builtin_type_bool, ".%d");
struct qbe_value qmatch = mkqval(ctx, &match);
struct qbe_value temp = mkqtmp(ctx, &qbe_word, ".%d");
const struct type *subtype = object.type;
@@ -2244,7 +2244,7 @@ gen_subset_match_tests(struct gen_context *ctx,
//
// In this situation, we test the match object's tag against each type
// ID of the case type.
- struct gen_value match = mktemp(ctx, &builtin_type_bool, ".%d");
+ struct gen_value match = mktemporary(ctx, &builtin_type_bool, ".%d");
for (const struct type_tagged_union *tu = &type->tagged; tu; tu = tu->next) {
struct qbe_statement lnexttag;
struct qbe_value bnexttag = mklabel(ctx, &lnexttag, ".%d");
@@ -2265,7 +2265,7 @@ gen_match_with_tagged(struct gen_context *ctx,
{
struct gen_value gvout = gv_void;
if (!out) {
- gvout = mktemp(ctx, expr->result, ".%d");
+ gvout = mktemporary(ctx, expr->result, ".%d");
}
const struct type *objtype = expr->match.value->result;
@@ -2397,7 +2397,7 @@ gen_match_with_nullable(struct gen_context *ctx,
{
struct gen_value gvout = gv_void;
if (!out) {
- gvout = mktemp(ctx, expr->result, ".%d");
+ gvout = mktemporary(ctx, expr->result, ".%d");
}
struct qbe_statement lout;
@@ -2433,7 +2433,7 @@ gen_match_with_nullable(struct gen_context *ctx,
}
struct gen_binding *gb = xcalloc(1, sizeof(struct gen_binding));
- gb->value = mktemp(ctx, _case->type, "binding.%d");
+ gb->value = mktemporary(ctx, _case->type, "binding.%d");
gb->object = _case->object;
gb->next = ctx->bindings;
ctx->bindings = gb;
@@ -2509,7 +2509,7 @@ gen_expr_measure(struct gen_context *ctx, const struct expression *expr)
case STORAGE_STRING:
gv = gen_expr(ctx, value);
gv = gen_autoderef(ctx, gv);
- temp = mktemp(ctx, &builtin_type_size, ".%d");
+ temp = mktemporary(ctx, &builtin_type_size, ".%d");
struct qbe_value qv = mkqval(ctx, &gv),
qtemp = mkqval(ctx, &temp),
offs = constl(builtin_type_size.size);
@@ -2580,7 +2580,7 @@ gen_expr_struct_at(struct gen_context *ctx,
&base, &zero, &size, NULL);
}
- struct gen_value ftemp = mktemp(ctx, &builtin_type_void, "field.%d");
+ struct gen_value ftemp = mktemporary(ctx, &builtin_type_void, "field.%d");
for (const struct expr_struct_field *field = expr->_struct.fields;
field; field = field->next) {
if (!field->value) {
@@ -2603,7 +2603,7 @@ gen_expr_switch_with(struct gen_context *ctx,
{
struct gen_value gvout = gv_void;
if (!out) {
- gvout = mktemp(ctx, expr->result, ".%d");
+ gvout = mktemporary(ctx, expr->result, ".%d");
}
struct qbe_statement lout;
@@ -2714,7 +2714,7 @@ gen_expr_slice_at(struct gen_context *ctx,
qbase = mkqtmp(ctx, ctx->arch.sz, "base.%d");
enum qbe_instr load = load_for_type(ctx, &builtin_type_size);
pushi(ctx->current, &qbase, load, &qobject, NULL);
- length = mktemp(ctx, &builtin_type_size, "len.%d");
+ length = mktemporary(ctx, &builtin_type_size, "len.%d");
qlength = mkqval(ctx, &length);
pushi(ctx->current, &qptr, Q_ADD, &qobject, &offset, NULL);
pushi(ctx->current, &qlength, load, &qptr, NULL);
@@ -2795,7 +2795,7 @@ gen_expr_tuple_at(struct gen_context *ctx,
struct qbe_value base = mkqval(ctx, &out);
const struct type *type = type_dealias(expr->result);
- struct gen_value vtemp = mktemp(ctx, &builtin_type_void, "value.%d");
+ struct gen_value vtemp = mktemporary(ctx, &builtin_type_void, "value.%d");
const struct expression_tuple *value = &expr->tuple;
for (const struct type_tuple *tuple = &type->tuple;
tuple; tuple = tuple->next) {
@@ -2822,7 +2822,7 @@ gen_expr_unarithm(struct gen_context *ctx,
val.type = expr->result;
return val;
}
- struct gen_value val = mktemp(ctx, operand->result, ".%d");
+ struct gen_value val = mktemporary(ctx, operand->result, ".%d");
struct qbe_value qv = mklval(ctx, &val);
struct qbe_value sz = constl(val.type->size);
enum qbe_instr alloc = alloc_for_align(val.type->align);
@@ -2837,21 +2837,21 @@ gen_expr_unarithm(struct gen_context *ctx,
return gen_load(ctx, val);
case UN_BNOT:
val = gen_expr(ctx, operand);
- temp = mktemp(ctx, operand->result, ".%d");
+ temp = mktemporary(ctx, operand->result, ".%d");
qval = mkqval(ctx, &val), qtmp = mkqval(ctx, &temp);
struct qbe_value ones = constl((uint64_t)-1);
pushi(ctx->current, &qtmp, Q_XOR, &qval, &ones, NULL);
return temp;
case UN_LNOT:
val = gen_expr(ctx, operand);
- temp = mktemp(ctx, operand->result, ".%d");
+ temp = mktemporary(ctx, operand->result, ".%d");
qval = mkqval(ctx, &val), qtmp = mkqval(ctx, &temp);
struct qbe_value zerow = constw(0);
pushi(ctx->current, &qtmp, Q_CEQW, &qval, &zerow, NULL);
return temp;
case UN_MINUS:
val = gen_expr(ctx, operand);
- temp = mktemp(ctx, operand->result, ".%d");
+ temp = mktemporary(ctx, operand->result, ".%d");
qval = mkqval(ctx, &val), qtmp = mkqval(ctx, &temp);
pushi(ctx->current, &qtmp, Q_NEG, &qval, NULL);
return temp;
@@ -2866,7 +2866,7 @@ gen_expr_vaarg(struct gen_context *ctx,
const struct expression *expr)
{
// XXX: qbe only supports variadic base types, should check for this
- struct gen_value result = mktemp(ctx, expr->result, ".%d");
+ struct gen_value result = mktemporary(ctx, expr->result, ".%d");
struct qbe_value qresult = mkqval(ctx, &result);
struct gen_value ap = gen_expr(ctx, expr->vaarg.ap);
struct qbe_value qap = mkqval(ctx, &ap);
@@ -2951,7 +2951,7 @@ gen_expr(struct gen_context *ctx, const struct expression *expr)
return *(struct gen_value *)expr->user;
}
- struct gen_value out = mktemp(ctx, expr->result, "object.%d");
+ struct gen_value out = mktemporary(ctx, expr->result, "object.%d");
struct qbe_value base = mkqval(ctx, &out);
struct qbe_value sz = constl(expr->result->size);
enum qbe_instr alloc = alloc_for_align(expr->result->align);
diff --git a/src/genutil.c b/src/genutil.c
index 9ae16e3..934aa96 100644
--- a/src/genutil.c
+++ b/src/genutil.c
@@ -66,7 +66,7 @@ mkqtmp(struct gen_context *ctx, const struct qbe_type *qtype, const char *fmt)
}
struct gen_value
-mktemp(struct gen_context *ctx, const struct type *type, const char *fmt)
+mktemporary(struct gen_context *ctx, const struct type *type, const char *fmt)
{
return (struct gen_value){
.kind = GV_TEMP,
--
2.35.3