svn commit: r266947 - head/bin/sh

Jilles Tjoelker jilles at FreeBSD.org
Sun Jun 1 11:25:34 UTC 2014


Author: jilles
Date: Sun Jun  1 11:25:34 2014
New Revision: 266947
URL: http://svnweb.freebsd.org/changeset/base/266947

Log:
  sh: Avoid undefined behaviour shifting negative values left in arithmetic.
  
  With i386 base clang, arith_yacc.o remains unchanged.

Modified:
  head/bin/sh/arith_yacc.c

Modified: head/bin/sh/arith_yacc.c
==============================================================================
--- head/bin/sh/arith_yacc.c	Sun Jun  1 10:22:18 2014	(r266946)
+++ head/bin/sh/arith_yacc.c	Sun Jun  1 11:25:34 2014	(r266947)
@@ -139,7 +139,7 @@ static arith_t do_binop(int op, arith_t 
 	case ARITH_SUB:
 		return (uintmax_t)a - (uintmax_t)b;
 	case ARITH_LSHIFT:
-		return a << b;
+		return (uintmax_t)a << b;
 	case ARITH_RSHIFT:
 		return a >> b;
 	case ARITH_LT:


More information about the svn-src-all mailing list