// FIXME: Check IR rather than asm, then triple is not needed.
// RUN: %clang -Xclang -triple=%itanium_abi_triple -g -S %s -o - | FileCheck %s
// Test to check presence of debug info for byval parameter.
// Radar 8350436.
class DAG {
public:
  int i;
  int j;
};

class EVT {
public:
  int a;
  int b;
  int c;
};

class VAL {
public:
  int x;
  int y;
};
void foo(EVT e);
EVT bar();

void get(int *i, unsigned dl, VAL v, VAL *p, unsigned n, EVT missing_arg) {
//CHECK: .{{asciz|string}} "missing_arg"
  EVT e = bar();
  if (dl == n)
    foo(missing_arg);
}

