Browse Source

Add assignment statement to `#no_bounds_check` etc rules. Correct `os_linux.odin` usage.

gingerBill 4 years ago
parent
commit
19aefa6a40
2 changed files with 3 additions and 2 deletions
  1. 1 1
      core/os/os_linux.odin
  2. 2 1
      src/parser.cpp

+ 1 - 1
core/os/os_linux.odin

@@ -569,7 +569,7 @@ get_current_directory :: proc() -> string {
 	page_size := get_page_size();
 	buf := make([dynamic]u8, page_size);
 	for {
-		cwd := _unix_getcwd(cstring(#no_bounds_check &buf[0]), c.size_t(len(buf)));
+		#no_bounds_check cwd := _unix_getcwd(cstring(&buf[0]), c.size_t(len(buf)));
 		if cwd != nil {
 			return string(cwd);
 		}

+ 2 - 1
src/parser.cpp

@@ -1980,6 +1980,7 @@ Ast *parse_check_directive_for_statement(Ast *s, Token const &tag_token, u16 sta
 		case Ast_TypeSwitchStmt:
 		case Ast_ReturnStmt:
 		case Ast_DeferStmt:
+		case Ast_AssignStmt:
 			// Okay
 			break;
 
@@ -1989,7 +1990,7 @@ Ast *parse_check_directive_for_statement(Ast *s, Token const &tag_token, u16 sta
 			}
 			break;
 		default:
-			syntax_error(tag_token, "#%.*s may only be applied to the following statements: '{}', 'if', 'when', 'for', 'switch', 'return', 'defer', variable declaration", LIT(name));
+			syntax_error(tag_token, "#%.*s may only be applied to the following statements: '{}', 'if', 'when', 'for', 'switch', 'return', 'defer', assignment, variable declaration", LIT(name));
 			break;
 		}
 		break;