diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/CodeGen/DwarfWriter.cpp | 6 | ||||
-rw-r--r-- | lib/Target/TargetData.cpp | 6 | ||||
-rw-r--r-- | lib/VMCore/Verifier.cpp | 10 |
3 files changed, 16 insertions, 6 deletions
diff --git a/lib/CodeGen/DwarfWriter.cpp b/lib/CodeGen/DwarfWriter.cpp index 9d54d42960..0ade7a25d5 100644 --- a/lib/CodeGen/DwarfWriter.cpp +++ b/lib/CodeGen/DwarfWriter.cpp @@ -58,9 +58,9 @@ class DIEValue; //===----------------------------------------------------------------------===// /// DWLabel - Labels are used to track locations in the assembler file. -/// Labels appear in the form <prefix><Tag><Number>, where the tag is a -/// category of label (Ex. location) and number is a value unique in that -/// category. +/// Labels appear in the form @verbatim <prefix><Tag><Number> @endverbatim, +/// where the tag is a category of label (Ex. location) and number is a value +/// unique in that category. class DWLabel { public: /// Tag - Label category tag. Should always be a staticly declared C string. diff --git a/lib/Target/TargetData.cpp b/lib/Target/TargetData.cpp index bb1ad3271b..bb1fff5de5 100644 --- a/lib/Target/TargetData.cpp +++ b/lib/Target/TargetData.cpp @@ -146,10 +146,10 @@ const TargetAlignElem TargetData::InvalidAlignmentElem = <i>[E|e]</i>: Endianness. "E" specifies a big-endian target data model, "e" specifies a little-endian target data model. <br><br> - <i>p:<size>:<abi_align>:<pref_align></i>: Pointer size, ABI and preferred - alignment. + <i>p:@verbatim<size>:<abi_align>:<pref_align>@endverbatim</i>: Pointer size, + ABI and preferred alignment. <br><br> - <i><type><size>:<abi_align>:<pref_align></i>: Numeric type alignment. Type is + <i>@verbatim<type><size>:<abi_align>:<pref_align>@endverbatim</i>: Numeric type alignment. Type is one of <i>i|f|v|a</i>, corresponding to integer, floating point, vector (aka packed) or aggregate. Size indicates the size, e.g., 32 or 64 bits. \p diff --git a/lib/VMCore/Verifier.cpp b/lib/VMCore/Verifier.cpp index 86a72c44fe..c01f0fe9cc 100644 --- a/lib/VMCore/Verifier.cpp +++ b/lib/VMCore/Verifier.cpp @@ -370,6 +370,9 @@ void Verifier::visitFunction(Function &F) { ParamAttr::ByVal | ParamAttr::InReg | ParamAttr::Nest | ParamAttr::StructRet; + const uint16_t MutuallyIncompatible2 = + ParamAttr::ZExt | ParamAttr::SExt; + const uint16_t IntegerTypeOnly = ParamAttr::SExt | ParamAttr::ZExt; @@ -386,6 +389,9 @@ void Verifier::visitFunction(Function &F) { uint16_t RetI = Attrs->getParamAttrs(0) & ReturnIncompatible; Assert1(!RetI, "Attribute " + Attrs->getParamAttrsText(RetI) + "should not apply to functions!", &F); + uint16_t MutI = Attrs->getParamAttrs(0) & MutuallyIncompatible2; + Assert1(MutI != MutuallyIncompatible2, "Attributes" + + Attrs->getParamAttrsText(MutI) + "are incompatible!", &F); for (FunctionType::param_iterator I = FT->param_begin(), E = FT->param_end(); I != E; ++I, ++Idx) { @@ -400,6 +406,10 @@ void Verifier::visitFunction(Function &F) { Assert1(!(MutI & (MutI - 1)), "Attributes " + Attrs->getParamAttrsText(MutI) + "are incompatible!", &F); + uint16_t MutI2 = Attr & MutuallyIncompatible2; + Assert1(MutI2 != MutuallyIncompatible2, "Attributes" + + Attrs->getParamAttrsText(MutI2) + "are incompatible!", &F); + uint16_t IType = Attr & IntegerTypeOnly; Assert1(!IType || FT->getParamType(Idx-1)->isInteger(), "Attribute " + Attrs->getParamAttrsText(IType) + |