libctf: do not print array declarators backwards
The CTF declarator stack code (used by ctf_type_aname() and thus ultimately by ctf-dump.c and objdump --ctf etc) contains careful code to prepend array declarators to the stack it's building up on the grounds that array declarators are ordered inside out: only they're not, they're ordered outside in. This has led to our (non-upstreamed) compiler emitting array declarators backwards for years, because it looks backwards in the dumper unless it's actually emitted backwards into the CTF so the dumper can wrongly reverse it again: but int[5][6] should be an array of 6 int[5]s, not an array of 5 int[6]'s, so even if the dumper gets it right, actual users calling ctf_array_info are going to see a completely wrong type graph with the wrong bounds in it. Fix trivial. libctf/ChangeLog 2021-01-05 Nick Alcock <nick.alcock@oracle.com> * ctf-decl.c (ctf_decl_push): Don't print array decls backwards.
parent
55195361
Please register or sign in to comment