Add mangling for externally inlineable specializations

An upcoming change has the SIL Optimizer drop the [fragile]
attribute from the specialized callee, unless the caller
is itself [fragile].

Since we need to distinguish specializations from fragile
and non-fragile contexts, add a new mangling node to
represent this concept.
This commit is contained in:
Slava Pestov
2016-04-07 19:17:05 -07:00
parent d280d31e9a
commit a3d5d5cc2c
4 changed files with 43 additions and 5 deletions

View File

@@ -485,6 +485,10 @@ void Remangler::mangleSpecializationPassID(Node *node) {
Out << node->getIndex();
}
void Remangler::mangleSpecializationIsFragile(Node *node) {
Out << "q";
}
void Remangler::mangleFunctionSignatureSpecializationParam(Node *node) {
if (!node->hasChildren()) {
Out << "n_";