diff --git a/src/kernel_services/ast_queries/ast_diff.ml b/src/kernel_services/ast_queries/ast_diff.ml index be7053cfa7faddef913e890f762e7cf83a154ba9..e8173fb6c8e31d4466e521ae18d9782b50903745 100644 --- a/src/kernel_services/ast_queries/ast_diff.ml +++ b/src/kernel_services/ast_queries/ast_diff.ml @@ -362,12 +362,12 @@ let find_candidate_compinfo ?loc:_loc ci = let find_candidate_enuminfo ?loc:_loc ei = if Globals.Types.mem_type Logic_typing.Enum ei.ename then begin - match Globals.Types.global Logic_typing.Enum ei.ename with - | GEnumTag(ei,_) | GEnumTagDecl(ei,_) -> Some ei - | g -> + match Globals.Types.find_type Logic_typing.Enum ei.ename with + | TEnum(ei,_) -> Some ei + | t -> Kernel.fatal - "Expected enumeration definition instead of %a" - Cil_datatype.Global.pretty g + "Expected enuminfo instead of %a" + Printer.pp_typ t end else None let find_candidate_varinfo ?loc:_loc vi where = diff --git a/tests/syntax/ast_diff_1.i b/tests/syntax/ast_diff_1.i index 80d699482c562658c4907a72cf1fa75231b51b15..aada6a5b26af8f3cfbb669bd6b3c7a2719a38d00 100644 --- a/tests/syntax/ast_diff_1.i +++ b/tests/syntax/ast_diff_1.i @@ -77,4 +77,6 @@ struct s; extern struct s s; -struct s* use_s() { return &s; } +enum e; + +struct s* use_s() { enum e* x; return &s; } diff --git a/tests/syntax/ast_diff_2.i b/tests/syntax/ast_diff_2.i index bd8d7e8f1f8ef79a9f1afdf589422c4952c9086d..c0935612c3deadc32cc3d0d9f3f2a985a8d478c1 100644 --- a/tests/syntax/ast_diff_2.i +++ b/tests/syntax/ast_diff_2.i @@ -70,4 +70,6 @@ void local_var_use(int w, int q[][w]) { extern struct s s; -struct s* use_s() { return &s; } +enum e; + +struct s* use_s() { enum e* x; return &s; } diff --git a/tests/syntax/oracle/ast_diff_1.res.oracle b/tests/syntax/oracle/ast_diff_1.res.oracle index 1286ff511f93304970ca6c5a858245ecc9a84d17..d0b45c4af63ae96e0d1515eadaca1fdb193685ca 100644 --- a/tests/syntax/oracle/ast_diff_1.res.oracle +++ b/tests/syntax/oracle/ast_diff_1.res.oracle @@ -9,6 +9,7 @@ [AST diff test] Variable y: => t [AST diff test] Variable s: => s [AST diff test] Variable use_s: => use_s +[AST diff test] Variable x: => x [AST diff test] Variable has_static_local_x: => has_static_local_y [AST diff test] Variable X: => X [AST diff test] Variable Y: N/A