diff options
-rw-r--r-- | arch/x86/tools/test_get_len.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/arch/x86/tools/test_get_len.c b/arch/x86/tools/test_get_len.c index af75e07217ba..d8214dc03fa7 100644 --- a/arch/x86/tools/test_get_len.c +++ b/arch/x86/tools/test_get_len.c | |||
@@ -114,6 +114,7 @@ int main(int argc, char **argv) | |||
114 | unsigned char insn_buf[16]; | 114 | unsigned char insn_buf[16]; |
115 | struct insn insn; | 115 | struct insn insn; |
116 | int insns = 0, c; | 116 | int insns = 0, c; |
117 | int warnings = 0; | ||
117 | 118 | ||
118 | parse_args(argc, argv); | 119 | parse_args(argc, argv); |
119 | 120 | ||
@@ -151,18 +152,22 @@ int main(int argc, char **argv) | |||
151 | insn_init(&insn, insn_buf, x86_64); | 152 | insn_init(&insn, insn_buf, x86_64); |
152 | insn_get_length(&insn); | 153 | insn_get_length(&insn); |
153 | if (insn.length != nb) { | 154 | if (insn.length != nb) { |
154 | fprintf(stderr, "Error: %s found a difference at %s\n", | 155 | warnings++; |
156 | fprintf(stderr, "Warning: %s found difference at %s\n", | ||
155 | prog, sym); | 157 | prog, sym); |
156 | fprintf(stderr, "Error: %s", line); | 158 | fprintf(stderr, "Warning: %s", line); |
157 | fprintf(stderr, "Error: objdump says %d bytes, but " | 159 | fprintf(stderr, "Warning: objdump says %d bytes, but " |
158 | "insn_get_length() says %d\n", nb, | 160 | "insn_get_length() says %d\n", nb, |
159 | insn.length); | 161 | insn.length); |
160 | if (verbose) | 162 | if (verbose) |
161 | dump_insn(stderr, &insn); | 163 | dump_insn(stderr, &insn); |
162 | exit(2); | ||
163 | } | 164 | } |
164 | } | 165 | } |
165 | fprintf(stderr, "Succeed: decoded and checked %d instructions\n", | 166 | if (warnings) |
166 | insns); | 167 | fprintf(stderr, "Warning: decoded and checked %d" |
168 | " instructions with %d warnings\n", insns, warnings); | ||
169 | else | ||
170 | fprintf(stderr, "Succeed: decoded and checked %d" | ||
171 | " instructions\n", insns); | ||
167 | return 0; | 172 | return 0; |
168 | } | 173 | } |