diff --git a/src/flash/cfi.c b/src/flash/cfi.c
index f4968a8bb2f3d7887dd633f9e72243a6f6d3482b..904de9cc6a68365a9be488d6ce75a0b165b135ec 100644
--- a/src/flash/cfi.c
+++ b/src/flash/cfi.c
@@ -1729,7 +1729,9 @@ int cfi_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
 		if (retval == ERROR_TARGET_RESOURCE_NOT_AVAILABLE)
 		{
 			u32 buffersize = 1UL << cfi_info->max_buf_write_size;
+#if 0
 			u32 buffermask = buffersize-1;
+#endif
 			u32 bufferwsize;
 
 			switch(bank->chip_width)
diff --git a/src/flash/ecos.c b/src/flash/ecos.c
index 6a312ced29585d21e4a3be4247bb3110ce0b67a3..4127cf5304d41faa33790383b54c4e3b417a2817 100644
--- a/src/flash/ecos.c
+++ b/src/flash/ecos.c
@@ -21,6 +21,8 @@
 #include "config.h"
 #endif
 
+#include <string.h>
+
 #include "replacements.h"
 
 
@@ -342,7 +344,7 @@ int eCosBoard_flash(ecosflash_flash_bank_t *info, void *data, u32 address, u32 l
 		}
 		
 		int retval;
-    	retval=target_write_buffer(target, buffer, t, ((char *)data)+i);
+    	retval=target_write_buffer(target, buffer, t, ((u8 *)data)+i);
     	if (retval != ERROR_OK)
     		return retval;
     	
diff --git a/src/flash/stellaris.c b/src/flash/stellaris.c
index 2f91e564e2d6d4f1138f7338efc18e4e342a84ac..1d93b178583115e1c127622e0547c268dd2bbeeb 100644
--- a/src/flash/stellaris.c
+++ b/src/flash/stellaris.c
@@ -271,12 +271,12 @@ int stellaris_info(struct flash_bank_s *bank, char *buf, int buf_size)
 	}	
 	printed = snprintf(buf, buf_size, "\nLMI Stellaris information: Chip is class %i(%s) %s v%c.%i\n",
 	  device_class, StellarisClassname[device_class], stellaris_info->target_name,
-	  'A' + (stellaris_info->did0>>8)&0xFF, (stellaris_info->did0)&0xFF);
+	  'A' + ((stellaris_info->did0>>8)&0xFF), (stellaris_info->did0)&0xFF);
 	buf += printed;
 	buf_size -= printed;
 
 	printed = snprintf(buf, buf_size, "did1: 0x%8.8x, arch: 0x%4.4x, eproc: %s, ramsize:%ik,  flashsize: %ik\n", 
-	 stellaris_info->did1, stellaris_info->did1, "ARMV7M", (1+(stellaris_info->dc0>>16)&0xFFFF)/4, (1+stellaris_info->dc0&0xFFFF)*2);
+	 stellaris_info->did1, stellaris_info->did1, "ARMV7M", (1+((stellaris_info->dc0>>16)&0xFFFF))/4, (1+(stellaris_info->dc0&0xFFFF))*2);
 	buf += printed;
 	buf_size -= printed;
 
@@ -341,6 +341,10 @@ void stellaris_read_clock_info(flash_bank_t *bank)
 			WARNING("Invalid oscsrc (3) in rcc register");
 			mainfreq = 6000000;
 			break;
+
+		default: /* NOTREACHED */
+			mainfreq = 0;
+			break;
 	}
 	
 	if (!bypass)
@@ -448,8 +452,8 @@ int stellaris_read_part_info(struct flash_bank_s *bank)
 	stellaris_info->did0 = did0;
 	stellaris_info->did1 = did1;
 
-	stellaris_info->num_lockbits = 1+stellaris_info->dc0&0xFFFF;
-	stellaris_info->num_pages = 2*(1+stellaris_info->dc0&0xFFFF);
+	stellaris_info->num_lockbits = 1+(stellaris_info->dc0&0xFFFF);
+	stellaris_info->num_pages = 2*(1+(stellaris_info->dc0&0xFFFF));
 	stellaris_info->pagesize = 1024;
 	bank->size = 1024*stellaris_info->num_pages;
 	stellaris_info->pages_in_lockregion = 2;
@@ -722,8 +726,8 @@ int stellaris_write_block(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32
 	armv7m_algorithm_t armv7m_info;
 	int retval;
 	
-	DEBUG("(bank=%08X buffer=%08X offset=%08X wcount=%08X)",
-			(unsigned int)bank, (unsigned int)buffer, offset, wcount);
+	DEBUG("(bank=%p buffer=%p offset=%08X wcount=%08X)",
+			bank, buffer, offset, wcount);
 
 	/* flash write code */
 	if (target_alloc_working_area(target, sizeof(stellaris_write_code), &write_algorithm) != ERROR_OK)
@@ -737,8 +741,8 @@ int stellaris_write_block(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32
 	/* memory buffer */
 	while (target_alloc_working_area(target, buffer_size, &source) != ERROR_OK)
 	{
-		DEBUG("called target_alloc_working_area(target=%08X buffer_size=%08X source=%08X)",
-				(unsigned int)target, buffer_size, (unsigned int)source); 
+		DEBUG("called target_alloc_working_area(target=%p buffer_size=%08X source=%p)",
+				target, buffer_size, source); 
 		buffer_size /= 2;
 		if (buffer_size <= 256)
 		{
@@ -819,8 +823,8 @@ int stellaris_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count
 		return ERROR_TARGET_NOT_HALTED;
 	}
 
-	DEBUG("(bank=%08X buffer=%08X offset=%08X count=%08X)",
-			(unsigned int)bank, (unsigned int)buffer, offset, count);
+	DEBUG("(bank=%p buffer=%p offset=%08X count=%08X)",
+			bank, buffer, offset, count);
 
 	if (stellaris_info->did1 == 0)
 	{
diff --git a/src/flash/tms470.c b/src/flash/tms470.c
index cfbb072d789b48a437cce1610de1b437cfa81ff7..65e7016f99e04beeb49fdc04e112bf5a5317aa05 100644
--- a/src/flash/tms470.c
+++ b/src/flash/tms470.c
@@ -866,7 +866,6 @@ int tms470_protect(struct flash_bank_s *bank, int set, int first, int last)
 int tms470_write(struct flash_bank_s *bank, u8 * buffer, u32 offset, u32 count)
 {
 	target_t *target = bank->target;
-	tms470_flash_bank_t *tms470_info = bank->driver_priv;
 	u32 glbctrl, fmbac2, orig_fmregopt, fmbsea, fmbseb, fmmaxpp, fmmstat;
 	int i, result = ERROR_OK;
 
diff --git a/src/helper/fileio.c b/src/helper/fileio.c
index bb10dbd1331f6c9d3b5400d40c50c208fd39f84f..eaf8e0db3a6e757c16389b9472778d10443496e5 100644
--- a/src/helper/fileio.c
+++ b/src/helper/fileio.c
@@ -189,7 +189,7 @@ int fileio_read_u32(fileio_t *fileio, u32 *data)
 	return ERROR_OK;
 }
 
-int fileio_local_fgets(fileio_t *fileio, u32 size, u8 *buffer)
+int fileio_local_fgets(fileio_t *fileio, u32 size, char *buffer)
 {
 	if( fgets(buffer, size, fileio->file) == NULL)
 		return ERROR_FILEIO_OPERATION_FAILED;
@@ -197,7 +197,7 @@ int fileio_local_fgets(fileio_t *fileio, u32 size, u8 *buffer)
 	return ERROR_OK;
 }
 
-int fileio_fgets(fileio_t *fileio, u32 size, u8 *buffer)
+int fileio_fgets(fileio_t *fileio, u32 size, char *buffer)
 {
 	return fileio_local_fgets(fileio, size, buffer);
 }
diff --git a/src/helper/fileio.h b/src/helper/fileio.h
index 5f6241d0edb23b09bc10839680348ab7a72b28de..17fc40b311afe703c5ad1284fcd68dbd80dfcde6 100644
--- a/src/helper/fileio.h
+++ b/src/helper/fileio.h
@@ -59,7 +59,7 @@ typedef struct fileio_s
 
 extern int fileio_write(fileio_t *fileio, u32 size, u8 *buffer, u32 *size_written);
 extern int fileio_read(fileio_t *fileio, u32 size, u8 *buffer, u32 *size_read);
-extern int fileio_fgets(fileio_t *fileio, u32 size, u8 *buffer);
+extern int fileio_fgets(fileio_t *fileio, u32 size, char *buffer);
 extern int fileio_seek(fileio_t *fileio, u32 position);
 extern int fileio_close(fileio_t *fileio);
 extern int fileio_open(fileio_t *fileio, char *url, enum fileio_access access, enum fileio_type type);
diff --git a/src/jtag/jtag.c b/src/jtag/jtag.c
index c8f392862420c1d74b6bdba1072de32d9f3d38c6..430a6ff87b2071ba154f9326a628824bd698f475 100644
--- a/src/jtag/jtag.c
+++ b/src/jtag/jtag.c
@@ -709,7 +709,7 @@ void MINIDRIVER(interface_jtag_add_dr_out)(int device_num,
 #endif
 			for (j = 0; j < num_fields; j++)
 			{
-				char out_value[4];
+				u8 out_value[4];
 				scan_size = num_bits[j];
 				buf_set_u32(out_value, 0, scan_size, value[j]);
 				(*last_cmd)->cmd.scan->fields[field_count].num_bits = scan_size;
diff --git a/src/target/etm.c b/src/target/etm.c
index fc49c1d716507a5e9194dddeb297a3e105a01fc8..cc1ac7a65d45b3ec16a7bdf8353ccd8cc1367006 100644
--- a/src/target/etm.c
+++ b/src/target/etm.c
@@ -723,13 +723,18 @@ int etmv1_data(etm_context_t *ctx, int size, u32 *data)
 	}
 	
 	if (size == 8)
+	{
 		ERROR("TODO: add support for 64-bit values");
+		return -1;
+	}
 	else if (size == 4)
 		*data = target_buffer_get_u32(ctx->target, buf);
 	else if (size == 2)
 		*data = target_buffer_get_u16(ctx->target, buf);
 	else if (size == 1)
 		*data = buf[0];
+	else
+		return -1;
 		
 	return 0;
 }