Changeset 2e9b59b for src/ControlStruct/LabelGeneratorNew.cpp
- Timestamp:
- Apr 19, 2022, 3:00:04 PM (3 years ago)
- Branches:
- ADT, ast-experimental, master, pthread-emulation, qualifiedEnum
- Children:
- 5b84a321
- Parents:
- ba897d21 (diff), bb7c77d (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. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/ControlStruct/LabelGeneratorNew.cpp
rba897d21 r2e9b59b 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // LabelGenerator .cc--7 // LabelGeneratorNew.cpp -- 8 8 // 9 9 // Author : Peter A. Buhr 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Wed Feb 2 09:11:17202213 // Update Count : 7 211 // Last Modified By : Andrew Beach 12 // Last Modified On : Mon Mar 28 10:03:00 2022 13 // Update Count : 73 14 14 // 15 15 … … 25 25 namespace ControlStruct { 26 26 27 Label newLabel( const string & suffix, const Stmt * stmt ) { 27 enum { size = 128 }; 28 29 static int newLabelPre( char buf[size], const string & suffix ) { 28 30 static int current = 0; 29 31 30 assertf( stmt, "CFA internal error: parameter statement cannot be null pointer" );31 32 enum { size = 128 };33 char buf[size]; // space to build label34 32 int len = snprintf( buf, size, "__L%d__%s", current++, suffix.c_str() ); 35 33 assertf( len < size, "CFA Internal error: buffer overflow creating label" ); 34 return len; 35 } 36 37 static Label newLabelPost( char buf[size], const CodeLocation & location ) { 38 Label ret_label( location, buf ); 39 ret_label.attributes.push_back( new Attribute( "unused" ) ); 40 return ret_label; 41 } 42 43 Label newLabel( const string & suffix, const Stmt * stmt ) { 44 // Buffer for string manipulation. 45 char buf[size]; 46 47 assertf( stmt, "CFA internal error: parameter statement cannot be null pointer" ); 48 int len = newLabelPre( buf, suffix ); 36 49 37 50 // What does this do? … … 41 54 } // if 42 55 43 Label ret_label( stmt->location, buf ); 44 ret_label.attributes.push_back( new Attribute( "unused" ) ); 45 return ret_label; 56 return newLabelPost( buf, stmt->location ); 57 } 58 59 Label newLabel( const string & suffix, const CodeLocation & location ) { 60 // Buffer for string manipulation. 61 char buf[size]; 62 63 newLabelPre( buf, suffix ); 64 return newLabelPost( buf, location ); 46 65 } 47 66
Note:
See TracChangeset
for help on using the changeset viewer.