diff --git a/contrib/pg_upgrade/pg_upgrade.c b/contrib/pg_upgrade/pg_upgrade.c
index 25d732b247..3f09f793d2 100644
--- a/contrib/pg_upgrade/pg_upgrade.c
+++ b/contrib/pg_upgrade/pg_upgrade.c
@@ -254,7 +254,7 @@ copy_clog_xlog_xid(void)
 
 	snprintf(old_clog_path, sizeof(old_clog_path), "%s/pg_clog", old_cluster.pgdata);
 	snprintf(new_clog_path, sizeof(new_clog_path), "%s/pg_clog", new_cluster.pgdata);
-	if (rmtree(new_clog_path, true) != true)
+	if (!rmtree(new_clog_path, true))
 		pg_log(PG_FATAL, "Unable to delete directory %s\n", new_clog_path);
 	check_ok();
 
diff --git a/src/backend/access/gin/ginget.c b/src/backend/access/gin/ginget.c
index 064ac94129..34a6cd9cfd 100644
--- a/src/backend/access/gin/ginget.c
+++ b/src/backend/access/gin/ginget.c
@@ -1361,7 +1361,7 @@ scanGetItem(IndexScanDesc scan, ItemPointer advancePast,
 }
 
 #define GinIsNewKey(s)		( ((GinScanOpaque) scan->opaque)->keys == NULL )
-#define GinIsVoidRes(s)		( ((GinScanOpaque) scan->opaque)->isVoidRes == true )
+#define GinIsVoidRes(s)		( ((GinScanOpaque) scan->opaque)->isVoidRes )
 
 Datum
 gingetbitmap(PG_FUNCTION_ARGS)
diff --git a/src/backend/access/gist/gistproc.c b/src/backend/access/gist/gistproc.c
index 9f6fb34280..681ffd27d4 100644
--- a/src/backend/access/gist/gistproc.c
+++ b/src/backend/access/gist/gistproc.c
@@ -380,12 +380,12 @@ gist_box_picksplit(PG_FUNCTION_ARGS)
 	for (i = OffsetNumberNext(FirstOffsetNumber); i <= maxoff; i = OffsetNumberNext(i))
 	{
 		cur = DatumGetBoxP(entryvec->vector[i].key);
-		if (allisequal == true && (
-								   pageunion.high.x != cur->high.x ||
-								   pageunion.high.y != cur->high.y ||
-								   pageunion.low.x != cur->low.x ||
-								   pageunion.low.y != cur->low.y
-								   ))
+		if (allisequal && (
+						   pageunion.high.x != cur->high.x ||
+						   pageunion.high.y != cur->high.y ||
+						   pageunion.low.x != cur->low.x ||
+						   pageunion.low.y != cur->low.y
+						   ))
 			allisequal = false;
 
 		adjustBox(&pageunion, cur);
diff --git a/src/backend/commands/sequence.c b/src/backend/commands/sequence.c
index 04b0c71c53..62d1fbfb0e 100644
--- a/src/backend/commands/sequence.c
+++ b/src/backend/commands/sequence.c
@@ -1104,7 +1104,7 @@ init_params(List *options, bool isInit,
 	if (is_cycled != NULL)
 	{
 		new->is_cycled = intVal(is_cycled->arg);
-		Assert(new->is_cycled == false || new->is_cycled == true);
+		Assert(BoolIsValid(new->is_cycled));
 	}
 	else if (isInit)
 		new->is_cycled = false;
diff --git a/src/backend/tsearch/regis.c b/src/backend/tsearch/regis.c
index c3114e7bb7..93e2cfd209 100644
--- a/src/backend/tsearch/regis.c
+++ b/src/backend/tsearch/regis.c
@@ -244,11 +244,11 @@ RS_execute(Regis *r, char *str)
 		switch (ptr->type)
 		{
 			case RSF_ONEOF:
-				if (mb_strchr((char *) ptr->data, c) != true)
+				if (!mb_strchr((char *) ptr->data, c))
 					return false;
 				break;
 			case RSF_NONEOF:
-				if (mb_strchr((char *) ptr->data, c) == true)
+				if (mb_strchr((char *) ptr->data, c))
 					return false;
 				break;
 			default:
diff --git a/src/backend/utils/adt/geo_ops.c b/src/backend/utils/adt/geo_ops.c
index 8a99df1356..006023a07e 100644
--- a/src/backend/utils/adt/geo_ops.c
+++ b/src/backend/utils/adt/geo_ops.c
@@ -3903,7 +3903,7 @@ lseg_inside_poly(Point *a, Point *b, POLYGON *poly, int start)
 	t.p[1] = *b;
 	s.p[0] = poly->p[(start == 0) ? (poly->npts - 1) : (start - 1)];
 
-	for (i = start; i < poly->npts && res == true; i++)
+	for (i = start; i < poly->npts && res; i++)
 	{
 		Point	   *interpt;
 
@@ -3979,7 +3979,7 @@ poly_contain(PG_FUNCTION_ARGS)
 		s.p[0] = polyb->p[polyb->npts - 1];
 		result = true;
 
-		for (i = 0; i < polyb->npts && result == true; i++)
+		for (i = 0; i < polyb->npts && result; i++)
 		{
 			s.p[1] = polyb->p[i];
 			result = lseg_inside_poly(s.p, s.p + 1, polya, 0);
diff --git a/src/backend/utils/adt/tsrank.c b/src/backend/utils/adt/tsrank.c
index b0417de126..4b9e938329 100644
--- a/src/backend/utils/adt/tsrank.c
+++ b/src/backend/utils/adt/tsrank.c
@@ -109,7 +109,7 @@ find_wordentry(TSVector t, TSQuery q, QueryOperand *item, int32 *nitem)
 			StopHigh = StopMiddle;
 	}
 
-	if (item->prefix == true)
+	if (item->prefix)
 	{
 		if (StopLow >= StopHigh)
 			StopMiddle = StopHigh;
diff --git a/src/backend/utils/adt/tsvector_op.c b/src/backend/utils/adt/tsvector_op.c
index 769509772a..1920f2ad26 100644
--- a/src/backend/utils/adt/tsvector_op.c
+++ b/src/backend/utils/adt/tsvector_op.c
@@ -625,7 +625,7 @@ checkcondition_str(void *checkval, QueryOperand *val)
 			StopHigh = StopMiddle;
 	}
 
-	if (res == false && val->prefix == true)
+	if (!res && val->prefix)
 	{
 		/*
 		 * there was a failed exact search, so we should scan further to find
diff --git a/src/bin/psql/print.c b/src/bin/psql/print.c
index a5007da09e..c94607644a 100644
--- a/src/bin/psql/print.c
+++ b/src/bin/psql/print.c
@@ -808,7 +808,7 @@ print_aligned_text(const printTableContent *cont, FILE *fout)
 					unsigned int nbspace;
 
 					if (opt_border != 0 ||
-						(format->wrap_right_border == false && i > 0))
+						(!format->wrap_right_border && i > 0))
 						fputs(curr_nl_line ? format->header_nl_left : " ",
 							  fout);
 
@@ -829,7 +829,7 @@ print_aligned_text(const printTableContent *cont, FILE *fout)
 					else
 						fprintf(fout, "%*s", width_wrap[i], "");
 
-					if (opt_border != 0 || format->wrap_right_border == true)
+					if (opt_border != 0 || format->wrap_right_border)
 						fputs(!header_done[i] ? format->header_nl_right : " ",
 							  fout);
 
diff --git a/src/interfaces/ecpg/ecpglib/connect.c b/src/interfaces/ecpg/ecpglib/connect.c
index 3bd6614e72..1f91878395 100644
--- a/src/interfaces/ecpg/ecpglib/connect.c
+++ b/src/interfaces/ecpg/ecpglib/connect.c
@@ -165,7 +165,7 @@ ECPGsetcommit(int lineno, const char *mode, const char *connection_name)
 
 	ecpg_log("ECPGsetcommit on line %d: action \"%s\"; connection \"%s\"\n", lineno, mode, con->name);
 
-	if (con->autocommit == true && strncmp(mode, "off", strlen("off")) == 0)
+	if (con->autocommit && strncmp(mode, "off", strlen("off")) == 0)
 	{
 		if (PQtransactionStatus(con->connection) == PQTRANS_IDLE)
 		{
@@ -176,7 +176,7 @@ ECPGsetcommit(int lineno, const char *mode, const char *connection_name)
 		}
 		con->autocommit = false;
 	}
-	else if (con->autocommit == false && strncmp(mode, "on", strlen("on")) == 0)
+	else if (!con->autocommit && strncmp(mode, "on", strlen("on")) == 0)
 	{
 		if (PQtransactionStatus(con->connection) != PQTRANS_IDLE)
 		{
diff --git a/src/interfaces/ecpg/preproc/ecpg.addons b/src/interfaces/ecpg/preproc/ecpg.addons
index c39b13c6fb..3b74ba0a4e 100644
--- a/src/interfaces/ecpg/preproc/ecpg.addons
+++ b/src/interfaces/ecpg/preproc/ecpg.addons
@@ -353,7 +353,7 @@ ECPG: ClosePortalStmtCLOSEcursor_name block
 	}
 ECPG: opt_hold block
 	{
-		if (compat == ECPG_COMPAT_INFORMIX_SE && autocommit == true)
+		if (compat == ECPG_COMPAT_INFORMIX_SE && autocommit)
 			$$ = make_str("with hold");
 		else
 			$$ = EMPTY;