aboutsummaryrefslogtreecommitdiff
path: root/sim
diff options
context:
space:
mode:
authorTsukasa OI <research_trasio@irq.a4lg.com>2022-09-24 09:54:32 +0000
committerTsukasa OI <research_trasio@irq.a4lg.com>2022-10-29 08:13:15 +0000
commit57e3eee069a54ca09d89055bf6eccff710f87ed8 (patch)
tree7bcceac8c592c3158ebaebd0bb774ddfe5abfa4b /sim
parente47530f72f587550b1ff2f2adcfa4f64ec702d82 (diff)
downloadgdb-57e3eee069a54ca09d89055bf6eccff710f87ed8.zip
gdb-57e3eee069a54ca09d89055bf6eccff710f87ed8.tar.gz
gdb-57e3eee069a54ca09d89055bf6eccff710f87ed8.tar.bz2
sim/erc32: Use int32_t as IRQ callback argument
Clang generates a warning if an argument is passed to a function without prototype (zero arguments, even without (void)). Such calls are deprecated forms of indefinite arguments passing ("-Wdeprecated-non-prototype"). On the default configuration, it (somehow) doesn't cause a build failure but a warning is generated. But because the cause is the same as the issue the author fixed in "sim/erc32: Use int32_t as event callback argument", it would be better to fix it now to prevent problems in the future. To fix the issue, this commit makes struct irqcall to use int32_t as a callback (callback) argument of an IRQ.
Diffstat (limited to 'sim')
-rw-r--r--sim/erc32/README.sis6
-rw-r--r--sim/erc32/func.c2
-rw-r--r--sim/erc32/sis.h4
3 files changed, 6 insertions, 6 deletions
diff --git a/sim/erc32/README.sis b/sim/erc32/README.sis
index b85479e..f10fad9 100644
--- a/sim/erc32/README.sis
+++ b/sim/erc32/README.sis
@@ -246,9 +246,9 @@ int32_t arg;
unsigned int delta;
set_int(level,callback,arg)
-int level;
-void (*callback)();
-int arg;
+int32_t level;
+void (*callback)(int32_t);
+int32_t arg;
clear_int(level)
int level;
diff --git a/sim/erc32/func.c b/sim/erc32/func.c
index 85d3c0c..86a395f 100644
--- a/sim/erc32/func.c
+++ b/sim/erc32/func.c
@@ -874,7 +874,7 @@ init_event(void)
}
void
-set_int(int32_t level, void (*callback) (), int32_t arg)
+set_int(int32_t level, void (*callback) (int32_t), int32_t arg)
{
irqarr[level & 0x0f].callback = callback;
irqarr[level & 0x0f].arg = arg;
diff --git a/sim/erc32/sis.h b/sim/erc32/sis.h
index 36346ca..df6b22c 100644
--- a/sim/erc32/sis.h
+++ b/sim/erc32/sis.h
@@ -137,7 +137,7 @@ struct estate {
};
struct irqcell {
- void (*callback) ();
+ void (*callback) (int32_t);
int32_t arg;
};
@@ -184,7 +184,7 @@ struct disassemble_info;
extern void dis_mem (uint32_t addr, uint32_t len,
struct disassemble_info *info);
extern void event (void (*cfunc) (int32_t), int32_t arg, uint64_t delta);
-extern void set_int (int32_t level, void (*callback) (), int32_t arg);
+extern void set_int (int32_t level, void (*callback) (int32_t), int32_t arg);
extern void advance_time (struct pstate *sregs);
extern uint32_t now (void);
extern int wait_for_irq (void);