24TEST(AttributeConversionTests, TestAttributeListConversion)
27 llvm::LLVMContext context;
28 llvm::AttrBuilder functionAttributeBuilder(context);
29 functionAttributeBuilder.addAttribute(llvm::Attribute::NoUnwind);
31 llvm::AttrBuilder returnAttributeBuilder(context);
32 returnAttributeBuilder.addAttribute(llvm::Attribute::NoReturn);
34 llvm::AttrBuilder parameter0AttributeBuilder(context);
35 parameter0AttributeBuilder.addAttribute(llvm::Attribute::ZExt);
37 llvm::AttrBuilder parameter1AttributeBuilder(context);
38 parameter1AttributeBuilder.addAttribute(llvm::Attribute::NoUndef);
40 auto llvmFunctionAttributes = llvm::AttributeSet::get(context, functionAttributeBuilder);
41 auto llvmReturnAttributes = llvm::AttributeSet::get(context, returnAttributeBuilder);
42 auto llvmParameter0Attributes = llvm::AttributeSet::get(context, parameter0AttributeBuilder);
43 auto llvmParameter1Attributes = llvm::AttributeSet::get(context, parameter1AttributeBuilder);
45 auto llvmAttributeList = llvm::AttributeList::get(
47 llvmFunctionAttributes,
49 { llvmParameter0Attributes, llvmParameter1Attributes });
56 auto jlmFunctionAttributes = jlmAttributeList.getFunctionAttributes();
57 EXPECT_EQ(jlmFunctionAttributes.numAttributes(), 1u);
59 *jlmFunctionAttributes.EnumAttributes().begin(),
62 auto jlmReturnAttributes = jlmAttributeList.getReturnAttributes();
63 EXPECT_EQ(jlmReturnAttributes.numAttributes(), 1u);
65 *jlmReturnAttributes.EnumAttributes().begin(),
68 EXPECT_EQ(jlmAttributeList.getParameterAttributes().size(), 2u);
69 auto jlmParameter0Attributes = jlmAttributeList.getParameterAttributes()[0];
70 auto jlmParameter1Attributes = jlmAttributeList.getParameterAttributes()[1];
72 EXPECT_EQ(jlmParameter0Attributes.numAttributes(), 1u);
74 *jlmParameter0Attributes.EnumAttributes().begin(),
77 EXPECT_EQ(jlmParameter1Attributes.numAttributes(), 1u);
79 *jlmParameter1Attributes.EnumAttributes().begin(),