protected variable not visible in contract in subclass
ID0002032:
**This issue was created automatically from Mantis Issue 2032. Further discussion may take place here.**
---
| **Id** | **Project** | **Category** | **View** | **Due Date** | **Updated** |
| --- | --- | --- | --- | --- | --- |
| ID0002032 | Frama-Clang | Plug-in > clang | public | 2014-12-15 | 2015-02-15 |
| | | | | | |
| --- | --- | --- | --- | --- | --- |
| **Reporter** | Jochen | **Assigned To** | virgile | **Resolution** | duplicate |
| **Priority** | normal | **Severity** | minor | **Reproducibility** | always |
| **Platform** | frama-c-Neon-20140301+dev-stance | **OS** | - | **OS Version** | xubuntu-cfe13.10 |
| **Product Version** | - | **Target Version** | - | **Fixed in Version** | - |
### Description :
output:
Now output intermediate result
405.cpp:6:[kernel] user error: Cannot find field salary
The error message remains even if "salary" is made "public" in line 2.
It disappears if the assigns clause in line 5 is deleted.
If "salary" is changed to "Employee::salary" in line 5 (contract), Frama-C aborts with the output:
framaCIRGen: SemaLookup.cpp:1622: bool clang::Sema::LookupQualifiedName(clang::LookupResult &, clang::DeclContext *, bool): Assertion `(!isa<TagDecl>(LookupCtx) || LookupCtx->isDependentContext() || cast<TagDecl>(LookupCtx)->isCompleteDefinition() || cast<TagDecl>(LookupCtx)->isBeingDefined()) && "Declaration context must already be complete!"' failed.
Aborted (core dumped)
## Attachments
- [405.cpp](/uploads/2604415c974ca132ad21fa0bfb2e0f9a/405.cpp)
- [406.cpp](/uploads/8f70ac40f88399771a698c999ed6a392/406.cpp)
- [408a.c](/uploads/0b0359c6a4713e4d26344413bba10744/408a.c)
- [408b.c](/uploads/2f8a39a246fa56a8f647e4698a807cf2/408b.c)
issue