diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 69b4b597f1e8270fa0ef2c866b8c2abd99aa6ad2..ad25e759afc60bb27cfe3905d162b1ca28aa0c76 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
+
+	* opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
+	* system.h (DEFAULT_SHORT_ENUMS): Poison.
+	* config/cris/cris.h: Remove a comment about
+	DEFAULT_SHORT_ENUMS.
+	* config/ip2k/ip2k.h: Likewise.
+	* doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
+
 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
 
 	* config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
diff --git a/gcc/config/cris/cris.h b/gcc/config/cris/cris.h
index 5110f9adbfb92484e923f0a43c5988160da6912d..10147b272590f46371d25c86398e760bf70bbe17 100644
--- a/gcc/config/cris/cris.h
+++ b/gcc/config/cris/cris.h
@@ -567,8 +567,6 @@ extern int target_flags;
 /* For compatibility and historical reasons, a char should be signed.  */
 #define DEFAULT_SIGNED_CHAR 1
 
-/* No DEFAULT_SHORT_ENUMS, please.  */
-
 /* Note that WCHAR_TYPE_SIZE is used in cexp.y,
    where TARGET_SHORT is not available.  */
 #undef WCHAR_TYPE
diff --git a/gcc/config/ip2k/ip2k.h b/gcc/config/ip2k/ip2k.h
index 6457e8bb3eff5965702fdf1353b1179ce5c4cbde..4685d030c1c0fa5edb0d5f1d77e91c3d90d6d8e0 100644
--- a/gcc/config/ip2k/ip2k.h
+++ b/gcc/config/ip2k/ip2k.h
@@ -108,12 +108,6 @@ extern int target_flags;
 
 #define DEFAULT_SIGNED_CHAR 1
 
-/* #define DEFAULT_SHORT_ENUMS	1
-   This was the default for the IP2k but gcc has a bug (as of 17th May
-   2001) in the way that library calls to the memory checker functions
-   are issues that screws things up if an enum is not equivalent to
-   an int.  */
-
 #define SIZE_TYPE "unsigned int"
 
 #define PTRDIFF_TYPE "int"
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
index 395eec808933dbaa1a5cc31402f5b610a40c00e8..f8e39a7dda122d0114c714128cc1d71c964fbe72 100644
--- a/gcc/doc/tm.texi
+++ b/gcc/doc/tm.texi
@@ -1605,15 +1605,6 @@ always override this default with the options @option{-fsigned-char}
 and @option{-funsigned-char}.
 @end defmac
 
-@defmac DEFAULT_SHORT_ENUMS
-A C expression to determine whether to give an @code{enum} type
-only as many bytes as it takes to represent the range of possible values
-of that type.  A nonzero value means to do that; a zero value means all
-@code{enum} types should be allocated like @code{int}.
-
-If you don't define the macro, the default is 0.
-@end defmac
-
 @defmac SIZE_TYPE
 A C expression for a string describing the name of the data type to use
 for size values.  The typedef name @code{size_t} is defined using the
diff --git a/gcc/opts.c b/gcc/opts.c
index 45acba3c4f765aae6a22c75ca0614ef67f3a5b5a..b25ba430f18761d7548d58feed989f8e93d15aaa 100644
--- a/gcc/opts.c
+++ b/gcc/opts.c
@@ -594,10 +594,6 @@ decode_options (unsigned int argc, const char **argv)
 
   /* Initialize whether `char' is signed.  */
   flag_signed_char = DEFAULT_SIGNED_CHAR;
-#ifdef DEFAULT_SHORT_ENUMS
-  /* Initialize how much space enums occupy, by default.  */
-  flag_short_enums = DEFAULT_SHORT_ENUMS;
-#endif
 
   /* Initialize target_flags before OPTIMIZATION_OPTIONS so the latter can
      modify it.  */
diff --git a/gcc/system.h b/gcc/system.h
index 31a1b92357f4ce343038ca2ed7159720b3413740..644dfe9edf8bb3c8aed3a232ab8b4c63e63b72f3 100644
--- a/gcc/system.h
+++ b/gcc/system.h
@@ -636,7 +636,8 @@ typedef char _Bool;
 	PROMOTED_MODE EXPAND_BUILTIN_VA_END				   \
 	LINKER_DOES_NOT_WORK_WITH_DWARF2 FUNCTION_ARG_KEEP_AS_REFERENCE	   \
 	GIV_SORT_CRITERION MAX_LONG_TYPE_SIZE MAX_LONG_DOUBLE_TYPE_SIZE	   \
-	MAX_WCHAR_TYPE_SIZE GCOV_TYPE_SIZE SHARED_SECTION_ASM_OP
+	MAX_WCHAR_TYPE_SIZE GCOV_TYPE_SIZE SHARED_SECTION_ASM_OP	   \
+	DEFAULT_SHORT_ENUMS
 
 /* Hooks that are no longer used.  */
  #pragma GCC poison LANG_HOOKS_FUNCTION_MARK LANG_HOOKS_FUNCTION_FREE	\