diff options
author | Bernhard Schommer <bernhardschommer@gmail.com> | 2015-07-14 22:43:13 +0200 |
---|---|---|
committer | Bernhard Schommer <bernhardschommer@gmail.com> | 2015-07-14 22:43:13 +0200 |
commit | cc8d02d23cc70c42612a37f4cac8452514e9d873 (patch) | |
tree | 3004b1409c5dd0dbf06f5dd3a46511a78a78af3a /cparser | |
parent | cfdf756faa342378b7befd78d8288213f76c86e1 (diff) | |
parent | c51f48cc760389a67a729b7b977502eb21c33e50 (diff) | |
download | compcert-cc8d02d23cc70c42612a37f4cac8452514e9d873.tar.gz compcert-cc8d02d23cc70c42612a37f4cac8452514e9d873.zip |
Merge branch 'master' into asmexpand
Diffstat (limited to 'cparser')
-rw-r--r-- | cparser/Elab.ml | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/cparser/Elab.ml b/cparser/Elab.ml index 9ff7823f..de24871f 100644 --- a/cparser/Elab.ml +++ b/cparser/Elab.ml @@ -1884,7 +1884,10 @@ let elab_fundef env spec name body loc = (* Extract info from type *) let (ty_ret, params, vararg, attr) = match ty with - | TFun(ty_ret, Some params, vararg, attr) -> (ty_ret, params, vararg, attr) + | TFun(ty_ret, Some params, vararg, attr) -> + if wrap incomplete_type loc env1 ty_ret && not (is_void_type env ty_ret) then + fatal_error loc "return type is an incomplete type"; + (ty_ret, params, vararg, attr) | _ -> fatal_error loc "wrong type for function definition" in (* Enter function in the environment, for recursive references *) let (fun_id, sto1, env1,ty) = enter_or_refine_ident false loc env1 s sto ty in |