Ignore:
Timestamp:
May 24, 2024, 2:22:10 PM (4 months ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
master
Children:
bfcd3af
Parents:
cad8c88 (diff), 2c8946b (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' of plg.uwaterloo.ca:software/cfa/cfa-cc

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/AST/StorageClasses.hpp

    rcad8c88 rdc74231  
    2222namespace Storage {
    2323
    24         /// Bitflags for storage classes
    25         enum {
    26                 Extern         = 1 << 0,
    27                 Static         = 1 << 1,
    28                 Auto           = 1 << 2,
    29                 Register       = 1 << 3,
    30                 ThreadLocalGcc = 1 << 4,
    31                 ThreadLocalC11 = 1 << 5,
    32                 NumClasses          = 6
     24/// Bitflags for storage classes
     25enum {
     26        Extern         = 1 << 0,
     27        Static         = 1 << 1,
     28        Auto           = 1 << 2,
     29        Register       = 1 << 3,
     30        ThreadLocalGcc = 1 << 4,
     31        ThreadLocalC11 = 1 << 5,
     32};
     33
     34/// Bitflag type for storage classes
     35struct class_flags {
     36        union {
     37                unsigned int val;
     38                struct {
     39                        bool is_extern         : 1;
     40                        bool is_static         : 1;
     41                        bool is_auto           : 1;
     42                        bool is_register       : 1;
     43                        bool is_threadlocalGcc : 1;
     44                        bool is_threadlocalC11 : 1;
     45                };
    3346        };
    3447
    35         /// Bitflag type for storage classes
    36         struct class_flags {
    37                 union {
    38                         unsigned int val;
    39                         struct {
    40                                 bool is_extern         : 1;
    41                                 bool is_static         : 1;
    42                                 bool is_auto           : 1;
    43                                 bool is_register       : 1;
    44                                 bool is_threadlocalGcc : 1;
    45                                 bool is_threadlocalC11 : 1;
    46                         };
     48        constexpr class_flags( unsigned int val = 0 ) : val(val) {}
    4749
    48                         // MakeBitfieldPrint( NumClasses )
    49                 };
     50        bool is_threadlocal_any() { return this->is_threadlocalC11 || this->is_threadlocalGcc; }
     51};
    5052
    51                 constexpr class_flags( unsigned int val = 0 ) : val(val) {}
     53using Classes = bitfield<class_flags>;
    5254
    53                 bool is_threadlocal_any() { return this->is_threadlocalC11 || this->is_threadlocalGcc; }
    54         };
     55}
    5556
    56         using Classes = bitfield<class_flags>;
    57 }
    5857}
    5958
Note: See TracChangeset for help on using the changeset viewer.