Custom Query (147 matches)

Filters
 
Or
 
  
 
Columns

Show under each result:


Results (28 - 30 of 147)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Ticket
#63
Description
union fred {
  forall(otype T) struct george {
    int i;
    T j;
  };
};

Results in:

CFA Version 1.0.0 (debug)
test.c:5:1 error: Too few type arguments in generic type instance of struct george with body 1

Notice that this error is on line 5 (the end of the struct definition). Even if you declare a field of type "george(int)" afterwards, the same error will occur:

union fred {
  forall(otype T) struct george {
    int i;
    T j;
  };
  george(int) g;
};

This will result in the same error.

(posted by Sunjay (s5varma) on behalf of pabuhr)

#68
Description
#include <thread>
forall( otype T )
thread cons {
    T i;
};
cfa test.c
CFA Version 1.0.0 (debug)
test.c:6:1 error: Attempt to provide non-type parameter: nullptr for type parameter __T_generic_: sized object type
... with assertions
  ?=?: function
  ... with parameters
    reference to instance of type __T_generic_ (not function type) 
    instance of type __T_generic_ (not function type) 
  ... returning 
    _retval__operator_assign: instance of type __T_generic_ (not function type) 
    ... with attributes: 
      Attribute with name: unused


  ?{}: function
  ... with parameters
    reference to instance of type __T_generic_ (not function type) 
  ... returning nothing 

  ?{}: function
  ... with parameters
    reference to instance of type __T_generic_ (not function type) 
    instance of type __T_generic_ (not function type) 
  ... returning nothing 

  ^?{}: function
  ... with parameters
    reference to instance of type __T_generic_ (not function type) 
  ... returning nothing 
#70
Description

Selects wrong routine to call.

forall( dtype T | sized(T) ) T * foo( void ) {
	printf( "foo1\n" );
	return (T *)0;
}
forall( dtype T | sized(T) ) T & foo( void ) {
	printf( "foo2\n" );
	return (T &)*(T *)0;
}
int main( void ) {
    int * i = foo(); // correctly calls foo1
    int & j = foo(); // correctly calls foo2

    i = foo();  // correctly calls foo1
    &j = foo();  // incorrectly calls foo1 instead of foo2
}
@plg2[1]% a.out
foo1
foo2
foo1
foo1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Note: See TracQuery for help on using queries.