Skip to content

missing warning - requires _Opt #387

@thradams

Description

@thradams

This should requires void delete_x(_Opt struct X* _Owner _Opt p)

#pragma safety enable

char * _Opt _Owner strdup(const char * src);  
void * _Opt _Owner calloc(unsigned int n, unsigned int sz);
void free(void* _Owner _Opt ptr);

struct X {  char * _Owner text; };  

void delete_x(struct X* _Owner _Opt p){
    if (p)
    {
        free(p->text);
        free(p);
    }
}

void f() {     
   struct X * _Owner _Opt pX = calloc(1, sizeof * pX);
   if (pX)
   {
      char * _Opt _Owner s = strdup("a");
      if (s != nullptr){
        pX->text = s; //ok
      }     
      
      delete_x(pX); //missing warning
   }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions