Mercurial > projects > ldc
comparison gen/elem.c @ 40:8b0e809563df trunk
[svn r44] Lots of bug fixes.
New array literal support
New array ~= operator support (for single element)
New with statement support
More...
author | lindquist |
---|---|
date | Fri, 19 Oct 2007 07:43:21 +0200 |
parents | 4648206ca213 |
children | 0c77619e803b |
comparison
equal
deleted
inserted
replaced
39:fd5e8bbfcb25 | 40:8b0e809563df |
---|---|
1 #include <iostream> | 1 #include <iostream> |
2 | 2 |
3 #include "llvm/Instructions.h" | 3 #include "gen/llvm.h" |
4 | 4 |
5 #include "gen/elem.h" | 5 #include "gen/elem.h" |
6 #include "gen/irstate.h" | 6 #include "gen/irstate.h" |
7 #include "gen/logger.h" | 7 #include "gen/logger.h" |
8 | 8 |
48 const llvm::PointerType* pt = llvm::cast<llvm::PointerType>(mem->getType()); | 48 const llvm::PointerType* pt = llvm::cast<llvm::PointerType>(mem->getType()); |
49 if (!pt->getElementType()->isFirstClassType()) { | 49 if (!pt->getElementType()->isFirstClassType()) { |
50 return mem; | 50 return mem; |
51 } | 51 } |
52 else { | 52 else { |
53 return new llvm::LoadInst(mem, "tmp", gIR->scopebb()); | 53 return gIR->ir->CreateLoad(mem, "tmp"); |
54 } | 54 } |
55 } | 55 } |
56 | 56 |
57 case VAL: | 57 case VAL: |
58 case NUL: | 58 case NUL: |