diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2e9810c374fc949eaaa546c1eea21b3311b9beea..58b4b087a946819267d1ca20d856aee104c6621d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
+
+        * config/rs6000/altivec.h (vec_addc): Type check.
+
 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
 
 	PR target/6303
diff --git a/gcc/config/rs6000/altivec.h b/gcc/config/rs6000/altivec.h
index 589587ed67b7ef30edf9da7bd1c03d26e4b4f0b9..b7076b8138f11d05c90779a62fe9433938375bf9 100644
--- a/gcc/config/rs6000/altivec.h
+++ b/gcc/config/rs6000/altivec.h
@@ -4248,7 +4248,10 @@ __ch (__bin_args_eq (vector float, a1, vector float, a2), \
       ((vector float) __builtin_altivec_vaddfp ((vector float) a1, (vector float) a2)), \
     __altivec_link_error_invalid_argument ())))))))))))))
 
-#define vec_addc(a1, a2) ((vector unsigned int) __builtin_altivec_vaddcuw ((vector signed int) a1, (vector signed int) a2))
+#define vec_addc(a1, a2) \
+__ch (__bin_args_eq (vector unsigned int, a1, vector unsigned int, a2), \
+  ((vector unsigned int) __builtin_altivec_vaddcuw ((vector signed int) a1, (vector signed int) a2)), \
+  __altivec_link_error_invalid_argument ())
 
 #define vec_adds(a1, a2) \
 __ch (__bin_args_eq (vector signed char, a1, vector unsigned char, a2), \