2016-08-03 18 views
-2

Wir haben ein GCC-Makefile-Projekt von Visual Studio. Ich habe vorher über Probleme mit visual studio not interpreting GCC errors and warnings here gepostet.Visual Studio äquivalent Fehler für "Array-Index außerhalb der Grenzen"

Wir möchten die -Werror Flag zu GCC hinzufügen, um sicherzustellen, dass keine Warnungen zu unserem Code eingeführt werden. Leider gibt es immer noch einige ausstehende Warnungen, so dass unser Build fehlschlägt. Ein Beispiel dafür ist der folgende:

In GCC erhalten wir folgendes:

error: array subscript is above array bounds

Aus diesem Grund, wenn in Visual Studio am Ende wir diese bekommen gebaut:

1> stl_vector.h: In constructor 'RobotController()': 
1> stl_vector.h(1043,1) : error: array subscript is above array bounds 
1> stl_vector.h: In constructor 'RobotController()': 
... 
1> make[1]: *** [exe/obj/controller.o] Error 1 
1> make: *** [compilation] Error 2 
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ========== 

, die anzeigt, zu Alle Post-Build-Ereignisse, die der Build erfolgreich war.

Gibt es eine äquivalente Visual Studio Warnung oder einen Fehler für "Array Index Out of Bound", dass ich dies konvertieren kann?

Ziel ist es, einen Fehler zu melden, der für den Benutzer sinnvoll ist. Hinweis: Die Warnung selbst ist hier kein Problem und wird separat behoben, wir wollen einfach Fehler dieser Art korrekt und in einer Art und Weise melden, die Visual Studio versteht.

+3

Könnten Sie eine [mcve] posten? – juanchopanza

+2

Der veröffentlichte Code ist übrigens korrekt und sollte diese Warnung nicht selbst erzeugen. Ich nehme an, es gibt Interferenzen von etwas anderem, das die Warnung erzeugt. Ich weiß das, weil dieser Code keine Array-Indices enthält. –

+0

Könnten Sie den RobotController() - Konstruktor posten? – ZDF

Antwort

1

https://msdn.microsoft.com/en-us/library/ms182089.aspx

warning C6386: buffer overrun: accessing <buffer name> , the writable size is <size1> bytes, but <size2> bytes may be written: Lines: x, y

Beachten Sie, dass dies nur durch Aktivierung der statischen Code-Analyse-Tool gefangen werden.

Verwandte Themen