diff --git a/src/compiler/codegen/GenInvoke.cc b/src/compiler/codegen/GenInvoke.cc
index a904419..b986e78 100644
--- a/src/compiler/codegen/GenInvoke.cc
+++ b/src/compiler/codegen/GenInvoke.cc
@@ -884,7 +884,7 @@
      * method.  By doing this during basic block construction, we can also
      * take advantage of/generate new useful dataflow info.
      */
-    std::string tgtMethod = PrettyMethod(mir->dalvikInsn.vB, *cUnit->dex_file);
+    std::string tgtMethod(PrettyMethod(mir->dalvikInsn.vB, *cUnit->dex_file));
     if (tgtMethod.compare("char java.lang.String.charAt(int)") == 0) {
         return genInlinedCharAt(cUnit, bb, mir, type, isRange);
     }
diff --git a/src/compiler/codegen/Optimizer.h b/src/compiler/codegen/Optimizer.h
index 06c7732..94b1907 100644
--- a/src/compiler/codegen/Optimizer.h
+++ b/src/compiler/codegen/Optimizer.h
@@ -25,8 +25,7 @@
 struct CompilationUnit;
 struct LIR;
 
-void oatApplyLocalOptimizations(struct CompilationUnit* cUnit,
-                                struct LIR* head, struct LIR* tail);
+void oatApplyLocalOptimizations(CompilationUnit* cUnit, LIR* head, LIR* tail);
 
 }  // namespace art
 
diff --git a/src/compiler/codegen/Ralloc.h b/src/compiler/codegen/Ralloc.h
index 2169082..671dffe 100644
--- a/src/compiler/codegen/Ralloc.h
+++ b/src/compiler/codegen/Ralloc.h
@@ -95,7 +95,7 @@
 extern void oatResetDefLoc(CompilationUnit* cUnit, RegLocation rl);
 
 /* Set up temp & preserved register pools specialized by target */
-extern void oatInitPool(struct RegisterInfo* regs, int* regNums, int num);
+extern void oatInitPool(RegisterInfo* regs, int* regNums, int num);
 
 /*
  * Mark the beginning and end LIR of a def sequence.  Note that
