var-tracking doesn't track structures and arrays as a whole because it cannot track values for multiple-part variables, but it has a special provision for Ada fat pointer types, which are structures with integral mode containing a pair of pointers and are pervasive in the language (see param-[123].c in the guality testsuite). This works fine e.g. on x86 or x86-64, but not on SPARC or Visium which pass these structures indirectly as per their ABI. Tested on x86_64-suse-linux and visium-elf, applied on mainline as obvious. 2017-05-24 Eric Botcazou * var-tracking.c (track_expr_p): Do not return 0 for tracked record parameters passed indirectly. -- Eric Botcazou