Bug #347
closedAspectator fails with extern functions calls processing
0%
Description
I notice during 0008 model processing that aspectator doesn't deal with calls to functions declared as extern and that has no body. So there may be conflicts when due to configurations both static inline and extern module_put function will be encountered (however current toolset fails in case of such configurations).
Workaround is make definitions for extern functions. Sometimes (don't know when) all works good.
Updated by Evgeny Novikov almost 14 years ago
- Priority changed from Normal to Urgent
As I have seen this is related with incorrectly obtained 'extern' storage class specifier (in fact it's in kept in gcc internal representation in the good way). I removed it but encountered the another problem in the given area: aspectator generates returns for functions returning void that leads to compilation problems:
void ldv_module_put_2 (struct module *ldv_func_arg1) { typedef void ldv_func_ret_type; typedef struct module *ldv_func_arg_type1; ldv_func_ret_type ldv_func_res = module_put(ldv_func_arg1); ldv_module_put() return ldv_func_res; }
error: variable or field ldv_func_res declared void error: void value not ignored as it ought to be error: expected ; before return
(also there is some misprint in the model ldv_module_put() is called without ';').
I'm going to fix all problems and test them extensively.
Updated by Evgeny Novikov almost 14 years ago
The same issue is also for 37_1 model!
Updated by Evgeny Novikov almost 14 years ago
- Status changed from Open to Resolved
- Published in build set to master
Fix is in master now. See comments for related issues!
Updated by Evgeny Novikov about 12 years ago
- Project changed from Linux Driver Verification to C Instrumentation Framework
- Category deleted (
15)