Why Code Prover cannot detect Out of bound array index?
이 질문을 팔로우합니다.
- 팔로우하는 게시물 피드에서 업데이트를 확인할 수 있습니다.
- 정보 수신 기본 설정에 따라 이메일을 받을 수 있습니다.
오류 발생
페이지가 변경되었기 때문에 동작을 완료할 수 없습니다. 업데이트된 상태를 보려면 페이지를 다시 불러오십시오.
이전 댓글 표시
0 개 추천
Global variable u1g_icsin_EmVari = [0.. 8]
=> This maybe a Out of bounds array index but Code Prover didn't show any warning related to this problem. why?
(There is a Green warning: Non initialized variable u1g_icsin_EmVari, but not any warning related to Out of bound array index)

채택된 답변
Hi Hong,
Please contact MathWorks Technical Support with a reproduction so that they can give you a specific diagnosis of the issue.
One possible explanation can be that this is a C++ project and the global array is "external" to the project. In other words, the file that defines the array (along with its size) has not been provided for the Polyspace analysis. For such "external" C++ arrays, since Code Prover does not know the size, by default, it does not show an Out of bounds array index (OBAI) check. You can use the option -consider-external-array-accesses-unsafe to see an orange OBAI check on this issue.
There can be many other reasons. Without some kind of a reproduction, it is difficult to tell.
PS. A more accurate answer is given in the last entry in this thread. Copying it here:
The Out of Bounds Array Index warning occurs when you read the memory location that is out of bounds (or possibly out of bounds). Just taking the address is not an issue per se.
댓글 수: 8
Thanks for answering.
I added that option in my options-file. But, Polyspace said that: "Option -consider-external-array-accesses-unsafe is unknown".
I try to change Cpp, also C-Cpp but this error still shows up.

Which release of the product do you have?
Polyspace R2019a
This option is available from R2020a onwards. If this is indeed a C++ project, please contact MathWorks Technical Support for possible solutions for your release. First, a diagnosis needs to be made that indeed that the global array definition is not visible to the analysis. In a big project, many things could be happening. The reason does not seem to be clear from the code snippet itself.
My project is C project and I updated to Polyspace R2020a but CodeProver still didn't show any OBAI check with the array above.

Here is my CodeProver configuration. Is anything wrong?
Hi Hong,
At this point, maybe Technical Support can help better. But let me try one more thing. I looked at the code more carefully and might have an idea. Sorry for not suggesting this earlier.
In your example, you are just taking the address of an array element. Can you try to dereference that address? You should get an Illegally Dereferenced Pointer warning. Alternatively, instead of taking the address, try reading the value directly. You should get an Out of Bounds Array Index warning.
The Out of Bounds Array Index warning occurs when you read the memory location that is out of bounds (or possibly out of bounds). Just taking the address is not an issue per se.
Thank you very much.
추가 답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Run Settings에 대해 자세히 알아보기
태그
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
