File shadow.diff of Package colm

---
 src/bytecode.c  |   15 ++++++++-------
 src/loadcolm.cc |    2 ++
 src/parsetree.h |    4 ++++
 3 files changed, 14 insertions(+), 7 deletions(-)

Index: colm-0.13.0.5/src/bytecode.c
===================================================================
--- colm-0.13.0.5.orig/src/bytecode.c
+++ colm-0.13.0.5/src/bytecode.c
@@ -28,6 +28,7 @@
 #include <string.h>
 #include <stdbool.h>
 #include <stdio.h>
+#include <stdint.h>
 #include <stdlib.h>
 #include <signal.h>
 
@@ -54,12 +55,12 @@
 #if SIZEOF_LONG == 4
 
 	#define read_type( type, i ) do { \
-		word_t w; \
-		w = ((word_t) *instr++); \
-		w |= ((word_t) *instr++) << 8; \
-		w |= ((word_t) *instr++) << 16; \
-		w |= ((word_t) *instr++) << 24; \
-		i = (type) w; \
+		word_t _w; \
+		_w = ((word_t) *instr++); \
+		_w |= ((word_t) *instr++) << 8; \
+		_w |= ((word_t) *instr++) << 16; \
+		_w |= ((word_t) *instr++) << 24; \
+		i = (type)(uintptr_t) _w; \
 	} while(0)
 
 	#define read_type_p( Type, i, p ) do { \
@@ -83,7 +84,7 @@
 		_w |= ((word_t) *instr++) << 40; \
 		_w |= ((word_t) *instr++) << 48; \
 		_w |= ((word_t) *instr++) << 56; \
-		i = (type) _w; \
+		i = (type)(uintptr_t) _w; \
 	} while(0)
 
 	#define read_type_p( type, i, p ) do { \
Index: colm-0.13.0.5/src/loadcolm.cc
===================================================================
--- colm-0.13.0.5.orig/src/loadcolm.cc
+++ colm-0.13.0.5/src/loadcolm.cc
@@ -2219,6 +2219,8 @@ struct LoadColm
 			typeRef = walkReferenceTypeRef( paramVarDef.reference_type_ref() );
 			type = ObjectField::ParamRefType;
 			break;
+		default:
+			throw int(43);
 		}
 		
 		return addParam( paramVarDef.id().loc(), type, typeRef, id );
Index: colm-0.13.0.5/src/parsetree.h
===================================================================
--- colm-0.13.0.5.orig/src/parsetree.h
+++ colm-0.13.0.5/src/parsetree.h
@@ -2456,6 +2456,10 @@ struct ObjectMethod
 		generic(0)
 	{
 		this->paramUTs = new UniqueType*[numParams];
+		if (types == NULL) {
+			memset(this->paramUTs, 0, sizeof(UniqueType*)*numParams );
+			return;
+		}
 		memcpy( this->paramUTs, types, sizeof(UniqueType*)*numParams );
 	}
 
openSUSE Build Service is sponsored by