diff options
author | David Robillard <d@drobilla.net> | 2012-12-15 21:48:21 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2012-12-15 21:48:21 +0000 |
commit | d3708205163f784343733661d9fa01ff14f8b751 (patch) | |
tree | a771a4956753c66cd2c8b7c5eb9f1e4a0b30834a /src/flatten.cpp | |
parent | 10174ffc7ea08b7845dbe409a11811e820536468 (diff) | |
download | resp-d3708205163f784343733661d9fa01ff14f8b751.tar.gz resp-d3708205163f784343733661d9fa01ff14f8b751.tar.bz2 resp-d3708205163f784343733661d9fa01ff14f8b751.zip |
Write forward declarations for all types and functions for mutual and/or nested recursion.
git-svn-id: http://svn.drobilla.net/resp/trunk@440 ad02d1e2-f140-0410-9f75-f8b11f17cedd
Diffstat (limited to 'src/flatten.cpp')
-rw-r--r-- | src/flatten.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/flatten.cpp b/src/flatten.cpp index 8d92ff9..424e5a6 100644 --- a/src/flatten.cpp +++ b/src/flatten.cpp @@ -65,6 +65,10 @@ static const AST* flatten_def_type(CEnv& cenv, Code& code, const ATuple* def) throw() { const ASymbol* name = def->frst()->to_symbol(); + if (!def->rrst()) { // Forward declaration + code.push_back(def); + return NULL; + } if (name) { cenv.tenv.def(name, def->frrst()); } else { |