blob: b64a696c528108e43672b869a93e176428988456 [file] [log] [blame]
Bjorn Steinbrinka09ac002015-01-28 16:35:59 +00001/*===-- object.c - tool for testing libLLVM and llvm-c API ----------------===*\
2|* *|
3|* The LLVM Compiler Infrastructure *|
4|* *|
5|* This file is distributed under the University of Illinois Open Source *|
6|* License. See LICENSE.TXT for details. *|
7|* *|
8|*===----------------------------------------------------------------------===*|
9|* *|
10|* This file implements the --add-named-metadata-operand and --set-metadata *|
11|* commands in llvm-c-test. *|
12|* *|
13\*===----------------------------------------------------------------------===*/
14
15#include "llvm-c-test.h"
16#include "llvm-c/Core.h"
17
18int add_named_metadata_operand(void) {
19 LLVMModuleRef m = LLVMModuleCreateWithName("Mod");
20 LLVMValueRef values[] = { LLVMConstInt(LLVMInt32Type(), 0, 0) };
21
22 // This used to trigger an assertion
23 LLVMAddNamedMetadataOperand(m, "name", LLVMMDNode(values, 1));
24
Bjorn Steinbrink88b2b572015-01-28 18:32:31 +000025 LLVMDisposeModule(m);
26
Bjorn Steinbrinka09ac002015-01-28 16:35:59 +000027 return 0;
28}
29
30int set_metadata(void) {
31 LLVMBuilderRef b = LLVMCreateBuilder();
32 LLVMValueRef values[] = { LLVMConstInt(LLVMInt32Type(), 0, 0) };
33
34 // This used to trigger an assertion
35 LLVMSetMetadata(
36 LLVMBuildRetVoid(b),
37 LLVMGetMDKindID("kind", 4),
38 LLVMMDNode(values, 1));
39
Bjorn Steinbrink88b2b572015-01-28 18:32:31 +000040 LLVMDisposeBuilder(b);
41
Bjorn Steinbrinka09ac002015-01-28 16:35:59 +000042 return 0;
43}