Print this page
12259 CTF shouldn't assume enum size
        
*** 8,18 ****
   * source.  A copy of the CDDL is also available via the Internet at
   * http://www.illumos.org/license/CDDL.
   */
  
  /*
!  * Copyright (c) 2019, Joyent, Inc.
   */
  
  #include <stdint.h>
  
  /*
--- 8,18 ----
   * source.  A copy of the CDDL is also available via the Internet at
   * http://www.illumos.org/license/CDDL.
   */
  
  /*
!  * Copyright 2020 Joyent, Inc.
   */
  
  #include <stdint.h>
  
  /*
*** 70,74 ****
--- 70,104 ----
  } chrono_t;
  
  enum ff6 ff6;
  ff10_t ff10;
  chrono_t trigger;
+ 
+ /*
+  * Normally enums are integer-sized, but a packed enum is a counter-example, as
+  * is something like trace_alloc_type_t which can't fit in an int.
+  */
+ 
+ enum char_enum {
+         CE1,
+         CE2
+ } __attribute__((packed)) ce;
+ 
+ enum short_enum {
+         SE1,
+         SE2,
+         SE3 = 255,
+         SE4 = 256,
+         SE5 = 257
+ } __attribute__((packed)) se;
+ 
+ enum int_enum {
+         IE1,
+         IE2,
+         IE3 = 256,
+         IE4 = 257
+ } ie;
+ 
+ enum ll_enum {
+         LLE1 = -1ULL,
+         LLE2 = -2ULL,
+ } lle;