digraph "ABI diff" { "0" [shape=rectangle, label="'interface'"] "1" [color=red, label="removed(int bar_1(const volatile struct foo*))"] "0" -> "1" [label=""] "2" [color=red, label="added(int bar_2(struct foo*))"] "0" -> "2" [label=""] "3" [label="'int bar(struct foo)' → 'int bar(const volatile struct foo*)'"] "4" [label="'int(struct foo)' → 'int(const volatile struct foo*)'"] "5" [color=red, label="'struct foo' → 'const volatile struct foo*'"] "4" -> "5" [label="parameter 1"] "3" -> "4" [label=""] "0" -> "3" [label=""] "6" [label="'int baz(int(*)(struct foo))' → 'int baz(int(*)(const volatile struct foo*))'"] "7" [label="'int(int(*)(struct foo))' → 'int(int(*)(const volatile struct foo*))'"] "8" [label="'int(*)(struct foo)' → 'int(*)(const volatile struct foo*)'"] "9" [label="'int(struct foo)' → 'int(const volatile struct foo*)'"] "9" -> "5" [label="parameter 1"] "8" -> "9" [label="pointed-to"] "7" -> "8" [label="parameter 1"] "6" -> "7" [label=""] "0" -> "6" [label=""] "10" [label="'int(* quux)(struct foo)' → 'int(* volatile const quux)(const volatile struct foo*)'"] "11" [color=red, label="'int(*)(struct foo)' → 'int(* volatile const)(const volatile struct foo*)'"] "11" -> "11:0" "11:0" [color=red, label="qualifier const added"] "11" -> "11:1" "11:1" [color=red, label="qualifier volatile added"] "11" -> "8" [label="underlying"] "10" -> "11" [label=""] "0" -> "10" [label=""] }