patch 8.0.0068
Problem:    Checking did_throw after executing autocommands is wrong. (Daniel
            Hahler)
Solution:   Call aborting() instead, and only when autocommands were executed.
diff --git a/src/if_cscope.c b/src/if_cscope.c
index 086c829..9e7a362 100644
--- a/src/if_cscope.c
+++ b/src/if_cscope.c
@@ -1178,12 +1178,12 @@
 	}
 
 # ifdef FEAT_AUTOCMD
-	if (*qfpos != '0')
+	if (*qfpos != '0'
+		&& apply_autocmds(EVENT_QUICKFIXCMDPRE, (char_u *)"cscope",
+					       curbuf->b_fname, TRUE, curbuf))
 	{
-	    apply_autocmds(EVENT_QUICKFIXCMDPRE, (char_u *)"cscope",
-					       curbuf->b_fname, TRUE, curbuf);
 #  ifdef FEAT_EVAL
-	    if (did_throw || force_abort)
+	    if (aborting())
 		return FALSE;
 #  endif
 	}