// Test that we don't revert trigraphs and line splicing when a raw string
// literal is formed by token pasting.
// { dg-options "-std=gnu99 -trigraphs" { target c } }
// { dg-options "-std=c++0x" { target c++ } }
// { dg-do run }

#define PASTE(X,Y) X##Y

const char a[] = PASTE(R,"(??>\
)");

#define TEST(str, val) \
  if (sizeof (str) != sizeof (val) \
      || __builtin_memcmp (str, val, sizeof (str)) != 0) \
    __builtin_abort ()

int main()
{
  TEST (a, "}");
}