diff options
author | Bernhard Schommer <bernhardschommer@gmail.com> | 2015-01-12 14:20:31 +0100 |
---|---|---|
committer | Bernhard Schommer <bernhardschommer@gmail.com> | 2015-01-12 14:20:31 +0100 |
commit | 81e91f965e7b1afbea8d1630015e75f11f0a3afd (patch) | |
tree | 270a85299f33d783e33745c917796f080f7300e1 /cparser/Env.ml | |
parent | 3304820b870e4524c7d1f14fcd62506634f7922b (diff) | |
parent | 06841a5bb7ca27bc436e87e7991d0d05dbf5267c (diff) | |
download | compcert-81e91f965e7b1afbea8d1630015e75f11f0a3afd.tar.gz compcert-81e91f965e7b1afbea8d1630015e75f11f0a3afd.zip |
Merge branch 'master' into dwarf
Conflicts:
powerpc/PrintAsm.ml
Diffstat (limited to 'cparser/Env.ml')
-rw-r--r-- | cparser/Env.ml | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/cparser/Env.ml b/cparser/Env.ml index 355a9960..6610c159 100644 --- a/cparser/Env.ml +++ b/cparser/Env.ml @@ -266,16 +266,24 @@ let add_enum env id info = open Printf +let composite_tag_name name = + if name = "" then "<anonymous>" else name + let error_message = function | Unbound_identifier name -> sprintf "Unbound identifier '%s'" name | Unbound_tag(name, kind) -> - sprintf "Unbound %s '%s'" kind name + sprintf "Unbound %s '%s'" kind (composite_tag_name name) | Tag_mismatch(name, expected, actual) -> sprintf "'%s' was declared as a %s but is used as a %s" - name actual expected + (composite_tag_name name) actual expected | Unbound_typedef name -> sprintf "Unbound typedef '%s'" name | No_member(compname, compkind, memname) -> sprintf "%s '%s' has no member named '%s'" - compkind compname memname + compkind (composite_tag_name compname) memname + +let _ = + Printexc.register_printer + (function Error e -> Some (sprintf "Env.Error \"%s\"" (error_message e)) + | _ -> None) |