typedef struct { int x, y; } MyCoords; int getX(MyCoords *coords); void MyCoordsTest(int pos) { MyCoords coords = {0}; coords.x = coords.y = pos + 1; coords.x = getX(&coords); } void CStyleCast(void *src) { char *dst = (char*)src; } void ExRaiseAccessViolation(int); #define EXCEPTION_EXECUTE_HANDLER 1 int TryExceptTest(int x) { int *localPtr; __try { ExRaiseAccessViolation(x); } __except(EXCEPTION_EXECUTE_HANDLER) { return 1; } return 0; } void unexplained_loop_regression() { __try { ExRaiseAccessViolation(0); } __except (EXCEPTION_EXECUTE_HANDLER) { ExRaiseAccessViolation(1); } } void try_with_finally() { int x = 0; __try { x = 1; } __finally { x = 2; } } void throw_in_try_with_finally() { int x = 0; __try { ExRaiseAccessViolation(0); } __finally { x = 1; } } void throw_in_try_with_throw_in_finally() { __try { ExRaiseAccessViolation(0); } __finally { ExRaiseAccessViolation(0); } } void raise_access_violation() { ExRaiseAccessViolation(1); } void branch_on_integral_in_c(int x1, int x2) { if (x1) {} if(!x1) {} int y = !x1; if(y) {} if(!y) {} if(x1 && x2) {} if(!x1 && x2) {} if(x1 && !x2) {} if(!x1 && !x2) {} if(x1 || x2) {} if(!x1 || x2) {} if(x1 || !x2) {} if(!x1 || !x2) {} int x_1_and_2 = x1 && x2; if(x_1_and_2) {} if(!x_1_and_2) {} int double_negation = !!x1; } // semmle-extractor-options: --microsoft