| author | |
| committer | |
| log | 535d4195907de8a7e494b0480c394634d4c6034a |
| tree | f2e1043578df233191c860212d88222e33019ff2 |
| parent | 712274997e80a93bdfe204f2238c4cfaac72a5b8 |
| signature | Commit is signed but in an unrecognized format. |
See #19643 files changed, 27 insertions(+), 2 deletions(-)
src-self-hosted/clang.zig+8| ... | @@ -959,3 +959,11 @@ pub const Stage2ErrorMsg = extern struct { | ... | @@ -959,3 +959,11 @@ pub const Stage2ErrorMsg = extern struct { |
| 959 | offset: c_uint, | 959 | offset: c_uint, |
| 960 | }; | 960 | }; |
| 961 | pub extern fn ZigClangErrorMsg_delete(ptr: [*c]Stage2ErrorMsg, len: usize) void; | 961 | pub extern fn ZigClangErrorMsg_delete(ptr: [*c]Stage2ErrorMsg, len: usize) void; |
| 962 | |||
| 963 | pub extern fn ZigClangLoadFromCommandLine( | ||
| 964 | args_begin: [*]?[*]const u8, | ||
| 965 | args_end: [*]?[*]const u8, | ||
| 966 | errors_ptr: *[*]Stage2ErrorMsg, | ||
| 967 | errors_len: *usize, | ||
| 968 | resources_path: [*c]const u8, | ||
| 969 | ) ?*ZigClangASTUnit; |
src-self-hosted/stage1.zig+7-2| ... | @@ -88,10 +88,15 @@ export fn stage2_translate_c( | ... | @@ -88,10 +88,15 @@ export fn stage2_translate_c( |
| 88 | out_ast.* = translate_c.translate(args_begin, args_end, switch (mode) { | 88 | out_ast.* = translate_c.translate(args_begin, args_end, switch (mode) { |
| 89 | .import => translate_c.Mode.import, | 89 | .import => translate_c.Mode.import, |
| 90 | .translate => translate_c.Mode.translate, | 90 | .translate => translate_c.Mode.translate, |
| 91 | }, &errors) catch |err| switch (err) { | 91 | }, &errors, resources_path) catch |err| switch (err) { |
| 92 | error.Unimplemented => return Error.Unimplemented, | 92 | error.Unimplemented => return Error.Unimplemented, |
| 93 | error.SemanticAnalyzeFail => { | ||
| 94 | out_errors_ptr.* = errors.ptr; | ||
| 95 | out_errors_len.* = errors.len; | ||
| 96 | return Error.CCompileErrors; | ||
| 97 | }, | ||
| 98 | error.OutOfMemory => return Error.OutOfMemory, | ||
| 93 | }; | 99 | }; |
| 94 | |||
| 95 | return Error.None; | 100 | return Error.None; |
| 96 | } | 101 | } |
| 97 | 102 |
src-self-hosted/translate_c.zig+12| ... | @@ -17,7 +17,19 @@ pub fn translate( | ... | @@ -17,7 +17,19 @@ pub fn translate( |
| 17 | args_end: [*]?[*]const u8, | 17 | args_end: [*]?[*]const u8, |
| 18 | mode: Mode, | 18 | mode: Mode, |
| 19 | errors: *[]ClangErrMsg, | 19 | errors: *[]ClangErrMsg, |
| 20 | resources_path: [*]const u8, | ||
| 20 | ) !*ast.Tree { | 21 | ) !*ast.Tree { |
| 22 | const ast_unit = ZigClangLoadFromCommandLine( | ||
| 23 | args_begin, | ||
| 24 | args_end, | ||
| 25 | &errors.ptr, | ||
| 26 | &errors.len, | ||
| 27 | resources_path, | ||
| 28 | ) orelse { | ||
| 29 | if (errors.len == 0) return error.OutOfMemory; | ||
| 30 | return error.SemanticAnalyzeFail; | ||
| 31 | }; | ||
| 32 | |||
| 21 | return error.Unimplemented; | 33 | return error.Unimplemented; |
| 22 | } | 34 | } |
| 23 | 35 |