clang API Documentation
#include "clang/Sema/SemaInternal.h"
#include "clang/AST/RecordLayout.h"
#include "clang/AST/TypeLoc.h"
#include "clang/Basic/TargetInfo.h"
#include "clang/Lex/Preprocessor.h"
#include "clang/Sema/Initialization.h"
#include "clang/Sema/Lookup.h"
#include "clang/Sema/Scope.h"
#include "clang/Sema/ScopeInfo.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/BitVector.h"
#include "llvm/MC/MCParser/MCAsmParser.h"
Go to the source code of this file.
Functions | |
static bool | CheckAsmLValue (const Expr *E, Sema &S) |
static bool | isOperandMentioned (unsigned OpNo, ArrayRef< GCCAsmStmt::AsmStringPiece > AsmStrPieces) |
static bool | CheckNakedParmReference (Expr *E, Sema &S) |
static bool CheckAsmLValue | ( | const Expr * | E, |
Sema & | S | ||
) | [static] |
CheckAsmLValue - GNU C has an extremely ugly extension whereby they silently ignore "noop" casts in places where an lvalue is required by an inline asm. We emulate this behavior when -fheinous-gnu-extensions is specified, but provide a strong guidance to not use it.
This method checks to see if the argument is an acceptable l-value and returns false if it is a case we can handle.
Definition at line 36 of file SemaStmtAsm.cpp.
References clang::Sema::Context, clang::Sema::Diag(), clang::Sema::getLangOpts(), clang::Stmt::getLocStart(), clang::Stmt::getSourceRange(), clang::Expr::IgnoreParenNoopCasts(), clang::Expr::isLValue(), and clang::Expr::isTypeDependent().
Referenced by clang::Sema::ActOnGCCAsmStmt().
static bool CheckNakedParmReference | ( | Expr * | E, |
Sema & | S | ||
) | [static] |
Definition at line 78 of file SemaStmtAsm.cpp.
References clang::Stmt::children(), clang::Sema::CurContext, clang::Sema::Diag(), Func, clang::Decl::getAttr(), and clang::Decl::hasAttr().
Referenced by clang::Sema::ActOnGCCAsmStmt(), and clang::Sema::LookupInlineAsmIdentifier().
static bool isOperandMentioned | ( | unsigned | OpNo, |
ArrayRef< GCCAsmStmt::AsmStringPiece > | AsmStrPieces | ||
) | [static] |
isOperandMentioned - Return true if the specified operand # is mentioned anywhere in the decomposed asm string.
Definition at line 64 of file SemaStmtAsm.cpp.
References clang::GCCAsmStmt::AsmStringPiece::getOperandNo(), and clang::GCCAsmStmt::AsmStringPiece::isOperand().
Referenced by clang::Sema::ActOnGCCAsmStmt().