Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[internal] Provide interface for implementing vendor-specific pragmas #19463

Open
dlangBugzillaToGithub opened this issue Jul 22, 2018 · 0 comments

Comments

@dlangBugzillaToGithub
Copy link

Iain Buclaw (@ibuclaw) reported this on 2018-07-22T18:44:16Z

Transferred from https://issues.dlang.org/show_bug.cgi?id=19110

CC List

Description

The only way to add new vendor-specific pragmas is by modifying the front-end sources.

Proposed:

/**
 * Checks whether the target/compiler supports the given pragma.
 * Params:
 *  ident     = name of the pragma
 *  args      = arguments to pass to pragma
 *  statement = true if analysing a PragmaStatement.
 */
bool isPragmaSupported(Identifier ident, Expressions* args, bool statement)
{
    // Implemented in Target::isPragmaSupported().
    return false;
}


Example usage:

In dsymbolsem.d / statementsem.d:

else if (Target.isPragmaSupported(pd.ident, pd.args, false))
{
    // Handled by backend.
}
else if (global.params.ignoreUnsupportedPragmas)
{
    // Ignored on command-line.
}
else
    pd.error("unrecognized pragma %s", pd.ident.toChars());
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant