use of "CLASSNAME::VARIABLENAME" in assigns clase causes abort
ID0002074: This issue was created automatically from Mantis Issue 2074. Further discussion may take place here.
Id | Project | Category | View | Due Date | Updated |
---|---|---|---|---|---|
ID0002074 | Frama-Clang | Plug-in > clang | public | 2015-02-05 | 2015-04-09 |
Reporter | Jochen | Assigned To | virgile | Resolution | open |
Priority | normal | Severity | minor | Reproducibility | always |
Platform | Neon-20140301+dev-STANCE-Jan2015 | OS | - | OS Version | xubuntu-cfe13.10 |
Product Version | - | Target Version | - | Fixed in Version | - |
Description :
output:
[kernel] Parsing FRAMAC_SHARE/libc/__fc_builtin_for_normalization.i (no preprocessing) [kernel] Parsing 455.cpp (external front-end) framaCIRGen: SemaLookup.cpp:1622: bool clang::Sema::LookupQualifiedName(clang::LookupResult &, clang::DeclContext *, bool): Assertion `(!isa(LookupCtx) || LookupCtx->isDependentContext() || cast(LookupCtx)->isCompleteDefinition() || cast(LookupCtx)->isBeingDefined()) && "Declaration context must already be complete!"' failed. Aborted (core dumped) [kernel] user error: Failed to parse C++ file. See Clang messages for more information
Cf. #1944 (closed) for a similar problem in an "ensures" clause. If the prefix "Employee::" is deleted in the assigns clause in line 11, a warning is issued instead:
[kernel] Parsing FRAMAC_SHARE/libc/__fc_builtin_for_normalization.i (no preprocessing) [kernel] Parsing 455.cpp (external front-end) Now output intermediate result 455.cpp:12:[kernel] user error: Cannot find field dept [kernel] user error: stopping on file "455.cpp" that has errors.
As a consequence of both behaviors, it is impossible to write an "assigns" clause for a subclass method that refers to a member of a superclass.