| author | |
| committer | |
| log | 516b5e649fa5f6c4043275b3dbe8e38273d79344 |
| tree | 7b37a2cc9f9ab82bbd57f850910f3a5236922c9f |
| parent | 3c914c63a5bd060fa15cf73985097da779b7403e |
| signature | Commit is signed but in an unrecognized format. |
2 files changed, 19 insertions(+), 7 deletions(-)
src/main.cpp+14-2| ... | ... | @@ -913,8 +913,20 @@ int main(int argc, char **argv) { |
| 913 | 913 | get_native_target(&target); |
| 914 | 914 | } else { |
| 915 | 915 | if ((err = target_parse_triple(&target, target_string))) { |
| 916 | fprintf(stderr, "invalid target: %s\n", err_str(err)); | |
| 917 | return print_error_usage(arg0); | |
| 916 | if (err == ErrorUnknownArchitecture && target.arch != ZigLLVM_UnknownArch) { | |
| 917 | fprintf(stderr, "'%s' requires a sub-architecture. Try one of these:\n", | |
| 918 | target_arch_name(target.arch)); | |
| 919 | SubArchList sub_arch_list = target_subarch_list(target.arch); | |
| 920 | size_t subarch_count = target_subarch_count(sub_arch_list); | |
| 921 | for (size_t sub_i = 0; sub_i < subarch_count; sub_i += 1) { | |
| 922 | ZigLLVM_SubArchType sub = target_subarch_enum(sub_arch_list, sub_i); | |
| 923 | fprintf(stderr, " %s%s\n", target_arch_name(target.arch), target_subarch_name(sub)); | |
| 924 | } | |
| 925 | return print_error_usage(arg0); | |
| 926 | } else { | |
| 927 | fprintf(stderr, "invalid target: %s\n", err_str(err)); | |
| 928 | return print_error_usage(arg0); | |
| 929 | } | |
| 918 | 930 | } |
| 919 | 931 | } |
| 920 | 932 |
src/target.cpp+5-5| ... | ... | @@ -486,17 +486,17 @@ void get_native_target(ZigTarget *target) { |
| 486 | 486 | Error target_parse_archsub(ZigLLVM_ArchType *out_arch, ZigLLVM_SubArchType *out_sub, |
| 487 | 487 | const char *archsub_ptr, size_t archsub_len) |
| 488 | 488 | { |
| 489 | *out_arch = ZigLLVM_UnknownArch; | |
| 490 | *out_sub = ZigLLVM_NoSubArch; | |
| 489 | 491 | for (size_t arch_i = 0; arch_i < array_length(arch_list); arch_i += 1) { |
| 490 | 492 | ZigLLVM_ArchType arch = arch_list[arch_i]; |
| 491 | 493 | SubArchList sub_arch_list = target_subarch_list(arch); |
| 492 | 494 | size_t subarch_count = target_subarch_count(sub_arch_list); |
| 493 | if (subarch_count == 0) { | |
| 494 | if (mem_eql_str(archsub_ptr, archsub_len, target_arch_name(arch))) { | |
| 495 | *out_arch = arch; | |
| 496 | *out_sub = ZigLLVM_NoSubArch; | |
| 495 | if (mem_eql_str(archsub_ptr, archsub_len, target_arch_name(arch))) { | |
| 496 | *out_arch = arch; | |
| 497 | if (subarch_count == 0) { | |
| 497 | 498 | return ErrorNone; |
| 498 | 499 | } |
| 499 | continue; | |
| 500 | 500 | } |
| 501 | 501 | for (size_t sub_i = 0; sub_i < subarch_count; sub_i += 1) { |
| 502 | 502 | ZigLLVM_SubArchType sub = target_subarch_enum(sub_arch_list, sub_i); |