aboutsummaryrefslogtreecommitdiff
path: root/src/ir.cpp
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2017-10-27 01:28:08 -0400
committerAndrew Kelley <superjoe30@gmail.com>2017-10-27 01:28:08 -0400
commit540bac09280dc9511145f44fda49d3a84b699820 (patch)
tree1443e18d6e54093366615789ae36e1e0f3fb04bd /src/ir.cpp
parent4f4da3c10c56eb1d60fdb2a98a46634d4dc608fe (diff)
parent4c306af4eb79071c966b99e877970f0a4582d891 (diff)
downloadzig-540bac09280dc9511145f44fda49d3a84b699820.tar.gz
zig-540bac09280dc9511145f44fda49d3a84b699820.zip
Merge branch 'master' into self-hosted
Diffstat (limited to 'src/ir.cpp')
-rw-r--r--src/ir.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/ir.cpp b/src/ir.cpp
index 0879942b3e..6c6ce676f6 100644
--- a/src/ir.cpp
+++ b/src/ir.cpp
@@ -7849,7 +7849,7 @@ IrInstruction *ir_eval_const_value(CodeGen *codegen, Scope *scope, AstNode *node
if (ir_executable.invalid)
return codegen->invalid_instruction;
- if (codegen->verbose) {
+ if (codegen->verbose_ir) {
fprintf(stderr, "\nSource: ");
ast_render(codegen, stderr, node, 4);
fprintf(stderr, "\n{ // (IR)\n");
@@ -7870,7 +7870,7 @@ IrInstruction *ir_eval_const_value(CodeGen *codegen, Scope *scope, AstNode *node
if (type_is_invalid(result_type))
return codegen->invalid_instruction;
- if (codegen->verbose) {
+ if (codegen->verbose_ir) {
fprintf(stderr, "{ // (analyzed)\n");
ir_print(codegen, stderr, &analyzed_executable, 4);
fprintf(stderr, "}\n");
@@ -13514,7 +13514,7 @@ static TypeTableEntry *ir_analyze_instruction_c_import(IrAnalyze *ira, IrInstruc
return ira->codegen->builtin_types.entry_invalid;
}
- if (ira->codegen->verbose) {
+ if (ira->codegen->verbose_cimport) {
fprintf(stderr, "\nC imports:\n");
fprintf(stderr, "-----------\n");
ast_render(ira->codegen, stderr, child_import->root, 4);
@@ -15312,6 +15312,11 @@ static TypeTableEntry *ir_analyze_instruction_set_align_stack(IrAnalyze *ira, Ir
if (!ir_resolve_align(ira, align_bytes_inst, &align_bytes))
return ira->codegen->builtin_types.entry_invalid;
+ if (align_bytes > 256) {
+ ir_add_error(ira, &instruction->base, buf_sprintf("attempt to @setAlignStack(%" PRIu32 "); maximum is 256", align_bytes));
+ return ira->codegen->builtin_types.entry_invalid;
+ }
+
FnTableEntry *fn_entry = exec_fn_entry(ira->new_irb.exec);
if (fn_entry == nullptr) {
ir_add_error(ira, &instruction->base, buf_sprintf("@setAlignStack outside function"));