Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/ControlStruct/LabelGeneratorNew.cpp

    r400b8be rfde0a58  
    55// file "LICENCE" distributed with Cforall.
    66//
    7 // LabelGeneratorNew.cpp --
     7// LabelGenerator.cc --
    88//
    99// Author           : Peter A. Buhr
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Andrew Beach
    12 // Last Modified On : Mon Mar 28 10:03:00 2022
    13 // Update Count     : 73
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed Feb  2 09:11:17 2022
     13// Update Count     : 72
    1414//
    1515
     
    2525namespace ControlStruct {
    2626
    27 enum { size = 128 };
    28 
    29 static int newLabelPre( char buf[size], const string & suffix ) {
     27Label newLabel( const string & suffix, const Stmt * stmt ) {
    3028        static int current = 0;
    3129
     30        assertf( stmt, "CFA internal error: parameter statement cannot be null pointer" );
     31
     32        enum { size = 128 };
     33        char buf[size];                                                                         // space to build label
    3234        int len = snprintf( buf, size, "__L%d__%s", current++, suffix.c_str() );
    3335        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 );
    4936
    5037        // What does this do?
     
    5441        } // if
    5542
    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 );
     43        Label ret_label( stmt->location, buf );
     44        ret_label.attributes.push_back( new Attribute( "unused" ) );
     45        return ret_label;
    6546}
    6647
Note: See TracChangeset for help on using the changeset viewer.