Changeset 142cf5d


Ignore:
Timestamp:
Mar 21, 2017, 12:21:04 PM (7 years ago)
Author:
Rob Schluntz <rschlunt@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
94a8123
Parents:
2c4bc81
Message:

change type of string literal from char[] to const char[]

Location:
src
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/ExpressionNode.cc

    r2c4bc81 r142cf5d  
    163163ConstantExpr *build_constantStr( const std::string & str ) {
    164164        // string should probably be a primitive type
    165         ArrayType *at = new ArrayType( emptyQualifiers, new BasicType( emptyQualifiers, BasicType::Char ),
     165        ArrayType *at = new ArrayType( emptyQualifiers, new BasicType( Type::Qualifiers( Type::Const ), BasicType::Char ),
    166166                                new ConstantExpr( Constant( new BasicType( emptyQualifiers, BasicType::UnsignedInt ),
    167167                                                                                        toString( str.size()+1-2 ) ) ),  // +1 for '\0' and -2 for '"'
  • src/SynTree/Type.h

    r2c4bc81 r142cf5d  
    155155        virtual Type * getComponent( unsigned i ) { assertf( size() == 1 && i == 0, "Type::getComponent was called with size %d and index %d\n", size(), i ); return this; }
    156156
     157        /// return type without outer pointers and arrays
    157158        Type *stripDeclarator();
    158159
  • src/tests/avltree/avl.h

    r2c4bc81 r142cf5d  
    6161void ?{}(tree(K, V) *t, K key, V value);
    6262
    63 forall(otype K | Comparable(K), otype V)
     63forall(otype K, otype V)
    6464void ^?{}(tree(K, V) * t);
    6565
  • src/tests/avltree/avl1.c

    r2c4bc81 r142cf5d  
    1212}
    1313
    14 forall(otype K | Comparable(K), otype V)
     14forall(otype K, otype V)
    1515void ^?{}(tree(K, V) * t){
    1616  delete(t->left);
  • src/tests/avltree/avl_test.c

    r2c4bc81 r142cf5d  
    2525
    2626  // int -> char *
    27   tree(int, char *) * smap = create(-1, "baz");
     27  tree(int, const char *) * smap = create(-1, "baz");
    2828  insert(&smap, 12, "bar");
    2929  insert(&smap, 2, "foo");
     
    3535  delete(smap);
    3636
    37   // char* -> char*
    38   struct c_str { char *str; };  // wraps a C string
    39   int ?<?(c_str a, c_str b) {
    40     return strcmp(a.str,b.str) < 0;
     37  // const char* -> const char*
     38  int ?<?(const char * a, const char * b) {
     39    return strcmp(a, b) < 0;
    4140  }
    42   tree(c_str, char *) * ssmap = create((c_str){"queso"}, "cheese");
    43   insert(&ssmap, (c_str){"foo"}, "bar");
    44   insert(&ssmap, (c_str){"hello"}, "world");
     41
     42  tree(const char *, const char *) * ssmap = create("queso", "cheese");
     43  insert(&ssmap, "foo", "bar");
     44  insert(&ssmap, "hello", "world");
    4545  assert( height(ssmap) == 2 );
    4646
    47   printf("%s %s %s\n", *find(ssmap, (c_str){"hello"}), *find(ssmap, (c_str){"foo"}), *find(ssmap, (c_str){"queso"}));
     47  printf("%s %s %s\n", *find(ssmap, "hello"), *find(ssmap, "foo"), *find(ssmap, "queso"));
    4848
    49   remove(&ssmap, (c_str){"foo"});
     49  remove(&ssmap, "foo");
    5050  delete(ssmap);
    5151}
  • src/tests/completeTypeError.c

    r2c4bc81 r142cf5d  
    6262
    6363forall(dtype T | sized(T))
    64 void qux(T * z) {
     64void quux(T * z) {
    6565        // okay
    6666        bar(z);
  • src/tests/dtor-early-exit.c

    r2c4bc81 r142cf5d  
    2828// don't want these called
    2929void ?{}(A * a) { assert( false ); }
    30 void ?{}(A * a, char * name) { a->name = name; sout | "construct " | name | endl; a->x = (int*)malloc(); }
    31 void ?{}(A * a, char * name, int * ptr) { assert( false ); }
     30void ?{}(A * a, const char * name) { a->name = name; sout | "construct " | name | endl; a->x = (int*)malloc(); }
     31void ?{}(A * a, const char * name, int * ptr) { assert( false ); }
    3232
    3333A ?=?(A * a, A a) {  sout | "assign " | a->name | " " | a.name; return a; }
Note: See TracChangeset for help on using the changeset viewer.