return false;
// No name mangling in a C linkage specification.
- if (isInCLinkageSpecification(FD))
+ if (!isa<CXXMethodDecl>(FD) && isInCLinkageSpecification(FD))
return false;
}
// ::= <substitution>
// FIXME: We only handle mangling of namespaces and classes at the moment.
+ while (isa<LinkageSpecDecl>(DC))
+ DC = DC->getParent();
+
if (DC->isTranslationUnit())
return;
int f(struct a *x) {
return x->b;
}
+
+// PR5017
+extern "C" {
+struct Debug {
+ const Debug& operator<< (unsigned a) const { }
+};
+Debug dbg;
+// CHECK: @_ZNK5DebuglsEj
+int main(void) { dbg << 32 ;}
+}