Peter Maydell <peter.mayd...@linaro.org> writes: > On 10 March 2014 12:21, Markus Armbruster <arm...@redhat.com> wrote: >> My local clang doesn't complain. May I have your clang version, exact >> invocation and output? > > clang version 3.3 (tags/RELEASE_33/final) > > mkdir build/clang > (cd build/clang && '../../configure' '--cc=clang' '--cxx=clang++' > '--enable-gtk' '--target-list=arm-softmmu' > '--extra-cflags=-fsanitize=undefined') > make -C build/clang -j4 > cd build/clang > tests/test-qmp-input-strict > > Output is: > > /visitor/input-strict/pass/struct: OK > /visitor/input-strict/pass/struct-nested: OK > /visitor/input-strict/pass/list: OK > /visitor/input-strict/pass/union: OK > /visitor/input-strict/pass/union-flat: OK > /visitor/input-strict/pass/union-anon: OK > /visitor/input-strict/fail/struct: OK > /visitor/input-strict/fail/struct-nested: OK > /visitor/input-strict/fail/list: OK > /visitor/input-strict/fail/union: OK > /visitor/input-strict/fail/union-flat: tests/test-qapi-visit.c:462:33: > runtime error: member access within null pointer of type 'UserDefA' > (aka 'struct UserDefA') > OK > /visitor/input-strict/fail/union-anon: OK
Turns out my clang installation doesn't support -fsanitize=undefined: it lacks libclang_rt.san-x86_64.a. Test works fine without -fsanitize=undefined. I set a breakpoint on visit_type_UserDefA_fields, and there's no null pointer to be found. Looks like I have to upgrade clang before I can make progress.