Bug #920
closedBLAST fails with Exception in Simplemem.simplemem
0%
Description
In bug #429, comment #3 (link), Alexey reports the following error:
Now, I have another example of uninformative Errormsg.Error descriptor coming from the following BLAST trace:
...32_7/drivers/isdn/hisax/config.c:1988: Warning: .../32_7/drivers/isdn/hisax/config.c:1988: CIL only supports attribute((alias)) for functions. Bug: Visitor's instruction queue is not empty. You should only use queueInstr inside a function body! Exception in Simplemem.simplemem: Errormsg.Error Timings: TOTAL 0.960 s (1) Parse: 0.960 s (1) Ack! The gremlins again!: Errormsg.Error Ack! The gremlins again!: Errormsg.Error Fatal error: exception Errormsg.Error
It may be a problem in the interaction between rerouter and "simplemem" functionality (unrolling complex assignments with derefs).
Updated by Pavel Shved over 13 years ago
- Due date set to 08/10/2011
- Status changed from New to Open
It is a bug in simplemem. Here's a sample code that causes the problem:
static struct acpi_offsets extended_info_offsets[] = { {__builtin_offsetof(struct acpi_battery,power_unit), 0}, };
If such an initialization happens inside a function, then it's OK, since CIL knows how to add auxiliary variables assignments to a function. But if it happens at the global variables level, it fails with the error given above.
Will try either to fix it, or to shut the warnings off.
Updated by Pavel Shved over 13 years ago
- Status changed from Open to Resolved
Fixed in commit:3929577. These expressions are left untouched, and we just go for an assumption that they aren't used anyway (actually, any result would be better than a parsing error).
Updated by Pavel Shved about 13 years ago
- Status changed from Resolved to Closed
Updated by Pavel Shved about 13 years ago
- Project changed from Linux Driver Verification to BLAST
- Category deleted (
BLAST)