brintos

brintos / llvm-project-archived public Read only

0
0
Text · 806 B · afe559e Raw
40 lines · c
1#include <stdint.h>2#include <stdio.h>3#include <stdlib.h>4 5int __llvm_profile_runtime = 0;6uint64_t __llvm_profile_get_size_for_buffer(void);7int __llvm_profile_write_buffer(char *);8void __llvm_profile_reset_counters(void);9int __llvm_profile_check_compatibility(const char *, uint64_t);10 11int gg = 0;12void bar(char c) {13  if (c == '1')14    gg++;15  else16    gg--;17}18 19/* Returns 0 (size) when an error occurs. */20uint64_t libEntry(char *Buffer, uint64_t MaxSize) {21 22  uint64_t Size = __llvm_profile_get_size_for_buffer();23  if (Size > MaxSize)24    return 0;25 26  __llvm_profile_reset_counters();27 28  bar('1');29 30  if (__llvm_profile_write_buffer(Buffer))31    return 0;32 33  /* Now check compatibility. Should return 0.  */34  if (__llvm_profile_check_compatibility(Buffer, Size))35    return 0;36 37  return Size;38}39 40