Dynamic view with a field matching a role of User in Drupal 7
Add field_role in view and hide it. 

Now create a custom php filter using Views PHP Filter

Get the current user role and compare it with field_role value. Following is the sample code.

&lt;?php
  global $user
  $account = $user-&gt;uid;
  $roles = $account-&gt;roles;
  $field_role = $data[field_role]
  //$data is available in php views filter
  if(find user_role in field_role) {
    return false;
  else {
    return true;
  }
?&gt;