porting to llvm 3.4