// RUN: clang %s -fsyntax-only -verify
// rdar://6587766

int fn1() __attribute__ ((warn_unused_result));
int fn2() __attribute__ ((pure));
int fn3() __attribute__ ((const));

int foo() {
  if (fn1() < 0 || fn2(2,1) < 0 || fn3(2) < 0)  // no warnings
    return -1;
  
  fn1();  // expected-warning {{expression result unused}}
  fn2(92, 21);  // expected-warning {{expression result unused}}
  fn3(42);  // expected-warning {{expression result unused}}
  return 0;
}

int bar __attribute__ ((warn_unused_result)); // expected-warning {{warning: 'warn_unused_result' attribute only applies to function types}}

