Addition of structs

One test on ./driver.py fails, pointing to the main current issue with struct typing (see TODOs in resolvetyping)
I think if it’s declared it should be fine. I’m not sure how to declare the struct only. Should add a test to find out.

> On Dec 1, 2014, at 1:46 AM, Kurt Mueller <notifications@github.com> wrote:
> 
> In src/codegen/codegen.cpp:
> 
> > @@ -477,6 +506,10 @@ void codegen_top(std::shared_ptr<CodegenCtx> ctx, std::shared_ptr<ASTDeclNode> n
> >      else if (std::shared_ptr<ASTTypeDecl> typeDefn = std::dynamic_pointer_cast<ASTTypeDecl>(node)) {
> >          // Skip it
> >      }
> > +    else if (std::shared_ptr<ASTRecordDecl> rcdDecl = std::dynamic_pointer_cast<ASTRecordDecl>(node)) {
> > +        if (rcdDecl->isDefn())
> This should be fine, because all uses of a struct before it is defined are agnostic to the struct's definition.
> 
> A related issue is I don't know if LLVM needs to know the type of the struct if we pass in to a function a pointer to a struct and don't ever dereference the pointer.
> 
> If it does, we would need to work around this, since there may be no definition for the struct at all.
> 
> —
> Reply to this email directly or view it on GitHub <https://github.com/seanjames777/cudacomp/pull/2/files#r21072556>.
>