Static Analysis (SAL) - überschreiben von _In_ Parameter erlaubt???
- 
					
					
					
					
 Ich versuche gerade ein Projekt mit SAL Annotations zu versehen. Dabei ist mir aufgefallen dass ich keine Meldung bekomme wenn ich Parameter als _In_markiere, wo die Funktion aber reinschreibt. Ala:void Test(_In_ int* p) { *p = 123; }Läuft ohne Fehler durch (mit allen Regeln aktiviert). 
 Krasserweise bekomme ich nichtmal eine Meldung beivoid Test(_In_ int const* p) { *((int*)p) = 123; }Das Projekt ist C und dummerweise nicht so trivial was die ganze const-correctness angeht. Ich hätte gehofft dass ich da SAL verwenden kann um sicherzugehen dass mir keiner in _In_Parameter reinschreibt.Kann man irgendwie erreichen dass man ne Meldung wenn übergebene Zeiger schreibend dereferenziert werden? 
 
- 
					
					
					
					
 @hustbaer sagte in Static Analysis (SAL) - überschreiben von _In_ Parameter erlaubt???: In int const Naja. SAL führt meines Wissens nach nur eine Prüfung der aufrufenden Funktionen durch. 
 Auf der Funktionsseite verlässt sich SAL einfach auf die Compilerregeln und der C cast bügelt eben alles platt, was der Compiler prüfen kann.Soweit meine beschränktes Verständnis. 
 
- 
					
					
					
					
 @Martin-Richter Ja, C Casts sind doof. Aber in C halt schwer vermeidbar (und es handelt sich um ein C Projekt). Ansonsten: SAL checkt schon auch die Funktion selbst. z.B. wenn man bei einem _Out_writes_(N)Parameter auf Index N (oder höher) schreibt, bekomm man meist ne Warning (vermutlich abhängig von der Komplexität der Funktion). Bei_In_Parametern in die man reinschreibt bekommt man aber nix, ganz egal wie einfach man den Code macht.Aber gut, ich schätze das wird sich dann wohl nicht ändern lassen. 
 
 
			
			
		