Compile issue with lots of complaints about raw_ostreams

Every time I try to compile a file involving LLVM I get loads of compile errors, all revolving around raw_ostream and other printing related functions. I have attached the whole compile response (sorry its so long, couldn’t upload it as a file, its not all of it as it exceeds the character capacity), here is my CMakeLists.txt

cmake_minimum_required(VERSION 3.10)

# set the project name
project(blast)

# specify the C++ standard
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED True)

# find raylib
find_library(RAYLIB raylib ./lib)

# LLVM
find_package(LLVM REQUIRED CONFIG)

message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}")
message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}")

include_directories(${LLVM_INCLUDE_DIRS})
separate_arguments(LLVM_DEFINITIONS_LIST NATIVE_COMMAND ${LLVM_DEFINITIONS})
add_definitions(${LLVM_DEFINITIONS_LIST})
llvm_map_components_to_libnames(LLVM_LIBS support core irreader)

# add the executable
include_directories(./include)
add_executable(blast src/main.cpp)
target_link_libraries(blast ${RAYLIB} ${LLVM_LIBS})
In file included from /home/jack/Projects/blast/src/base.h:7,
                 from /home/jack/Projects/blast/src/node.h:3,
                 from /home/jack/Projects/blast/src/editor.h:3,
                 from /home/jack/Projects/blast/src/main.cpp:2:
/home/jack/Projects/blast/./include/raylib.h:171:35: error: expected ‘}’ before ‘{’ token
  171 | #define BLACK      CLITERAL(Color){ 0, 0, 0, 255 }         // Black
      |                                   ^
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:98:5: note: in expansion of macro ‘BLACK’
   98 |     BLACK = 0,
      |     ^~~~~
In file included from /media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/ADT/FloatingPointMode.h:17,
                 from /media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/ADT/APFloat.h:21,
                 from /media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/IR/Constants.h:23,
                 from /media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/IR/ConstantFolder.h:20,
                 from /media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/IR/IRBuilder.h:25,
                 from /home/jack/Projects/blast/src/codegen.h:4,
                 from /home/jack/Projects/blast/src/node.h:4,
                 from /home/jack/Projects/blast/src/editor.h:3,
                 from /home/jack/Projects/blast/src/main.cpp:2:
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:97:21: note: to match this ‘{’
   97 |   enum class Colors {
      |                     ^
In file included from /home/jack/Projects/blast/src/base.h:7,
                 from /home/jack/Projects/blast/src/node.h:3,
                 from /home/jack/Projects/blast/src/editor.h:3,
                 from /home/jack/Projects/blast/src/main.cpp:2:
/home/jack/Projects/blast/./include/raylib.h:171:35: error: expected unqualified-id before ‘{’ token
  171 | #define BLACK      CLITERAL(Color){ 0, 0, 0, 255 }         // Black
      |                                   ^
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:98:5: note: in expansion of macro ‘BLACK’
   98 |     BLACK = 0,
      |     ^~~~~
In file included from /media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/ADT/FloatingPointMode.h:17,
                 from /media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/ADT/APFloat.h:21,
                 from /media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/IR/Constants.h:23,
                 from /media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/IR/ConstantFolder.h:20,
                 from /media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/IR/IRBuilder.h:25,
                 from /home/jack/Projects/blast/src/codegen.h:4,
                 from /home/jack/Projects/blast/src/node.h:4,
                 from /home/jack/Projects/blast/src/editor.h:3,
                 from /home/jack/Projects/blast/src/main.cpp:2:
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:98:11: error: expected unqualified-id before ‘=’ token
   98 |     BLACK = 0,
      |           ^
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:99:8: error: expected unqualified-id before ‘,’ token
   99 |     RED,
      |        ^
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:100:10: error: expected unqualified-id before ‘,’ token
  100 |     GREEN,
      |          ^
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:101:11: error: expected unqualified-id before ‘,’ token
  101 |     YELLOW,
      |           ^
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:102:9: error: expected unqualified-id before ‘,’ token
  102 |     BLUE,
      |         ^
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:103:12: error: expected unqualified-id before ‘,’ token
  103 |     MAGENTA,
      |            ^
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:105:10: error: expected unqualified-id before ‘,’ token
  105 |     WHITE,
      |          ^
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:110:20: error: ‘Colors’ does not name a type; did you mean ‘Color’?
  110 |   static constexpr Colors BLACK = Colors::BLACK;
      |                    ^~~~~~
      |                    Color
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:110:33: error: expected unqualified-id before ‘=’ token
  110 |   static constexpr Colors BLACK = Colors::BLACK;
      |                                 ^
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:111:20: error: ‘Colors’ does not name a type; did you mean ‘Color’?
  111 |   static constexpr Colors RED = Colors::RED;
      |                    ^~~~~~
      |                    Color
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:111:31: error: expected unqualified-id before ‘=’ token
  111 |   static constexpr Colors RED = Colors::RED;
      |                               ^
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:112:20: error: ‘Colors’ does not name a type; did you mean ‘Color’?
  112 |   static constexpr Colors GREEN = Colors::GREEN;
      |                    ^~~~~~
      |                    Color
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:112:33: error: expected unqualified-id before ‘=’ token
  112 |   static constexpr Colors GREEN = Colors::GREEN;
      |                                 ^
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:113:20: error: ‘Colors’ does not name a type; did you mean ‘Color’?
  113 |   static constexpr Colors YELLOW = Colors::YELLOW;
      |                    ^~~~~~
      |                    Color
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:113:34: error: expected unqualified-id before ‘=’ token
  113 |   static constexpr Colors YELLOW = Colors::YELLOW;
      |                                  ^
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:114:20: error: ‘Colors’ does not name a type; did you mean ‘Color’?
  114 |   static constexpr Colors BLUE = Colors::BLUE;
      |                    ^~~~~~
      |                    Color
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:114:32: error: expected unqualified-id before ‘=’ token
  114 |   static constexpr Colors BLUE = Colors::BLUE;
      |                                ^
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:115:20: error: ‘Colors’ does not name a type; did you mean ‘Color’?
  115 |   static constexpr Colors MAGENTA = Colors::MAGENTA;
      |                    ^~~~~~
      |                    Color
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:115:35: error: expected unqualified-id before ‘=’ token
  115 |   static constexpr Colors MAGENTA = Colors::MAGENTA;
      |                                   ^
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:116:20: error: ‘Colors’ does not name a type; did you mean ‘Color’?
  116 |   static constexpr Colors CYAN = Colors::CYAN;
      |                    ^~~~~~
      |                    Color
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:117:20: error: ‘Colors’ does not name a type; did you mean ‘Color’?
  117 |   static constexpr Colors WHITE = Colors::WHITE;
      |                    ^~~~~~
      |                    Color
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:117:33: error: expected unqualified-id before ‘=’ token
  117 |   static constexpr Colors WHITE = Colors::WHITE;
      |                                 ^
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:118:20: error: ‘Colors’ does not name a type; did you mean ‘Color’?
  118 |   static constexpr Colors SAVEDCOLOR = Colors::SAVEDCOLOR;
      |                    ^~~~~~
      |                    Color
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:119:20: error: ‘Colors’ does not name a type; did you mean ‘Color’?
  119 |   static constexpr Colors RESET = Colors::RESET;
      |                    ^~~~~~
      |                    Color
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:122:24: error: ‘OStreamKind’ has not been declared
  122 |                        OStreamKind K = OStreamKind::OK_OStream)
      |                        ^~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:122:40: error: ‘OStreamKind’ has not been declared
  122 |                        OStreamKind K = OStreamKind::OK_OStream)
      |                                        ^~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:122:63: error: ISO C++ forbids declaration of ‘raw_ostream’ with no type [-fpermissive]
  122 |                        OStreamKind K = OStreamKind::OK_OStream)
      |                                                               ^
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:121:3: error: ‘explicit’ outside class declaration
  121 |   explicit raw_ostream(bool unbuffered = false,
      |   ^~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h: In function ‘int llvm::raw_ostream(bool, int)’:
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:123:9: error: only constructors take member initializers
  123 |       : Kind(K), BufferMode(unbuffered ? BufferKind::Unbuffered
      |         ^~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:123:42: error: ‘BufferKind’ has not been declared
  123 |       : Kind(K), BufferMode(unbuffered ? BufferKind::Unbuffered
      |                                          ^~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:124:42: error: ‘BufferKind’ has not been declared
  124 |                                        : BufferKind::InternalBuffer) {
      |                                          ^~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:126:5: error: ‘OutBufStart’ was not declared in this scope
  126 |     OutBufStart = OutBufEnd = OutBufCur = nullptr;
      |     ^~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:126:19: error: ‘OutBufEnd’ was not declared in this scope
  126 |     OutBufStart = OutBufEnd = OutBufCur = nullptr;
      |                   ^~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:126:31: error: ‘OutBufCur’ was not declared in this scope
  126 |     OutBufStart = OutBufEnd = OutBufCur = nullptr;
      |                               ^~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:127:3: warning: no return statement in function returning non-void [-Wreturn-type]
  127 |   }
      |   ^
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h: At global scope:
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:129:21: error: ‘raw_ostream’ does not name a type
  129 |   raw_ostream(const raw_ostream &) = delete;
      |                     ^~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:129:36: error: expected constructor, destructor, or type conversion before ‘=’ token
  129 |   raw_ostream(const raw_ostream &) = delete;
      |                                    ^
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:130:24: error: ‘raw_ostream’ does not name a type
  130 |   void operator=(const raw_ostream &) = delete;
      |                        ^~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:130:8: error: ‘void llvm::operator=(const int&)’ must be a nonstatic member function
  130 |   void operator=(const raw_ostream &) = delete;
      |        ^~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:132:24: error: declaration of ‘~llvm::raw_ostream’ as non-member
  132 |   virtual ~raw_ostream();
      |                        ^
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:135:19: error: non-member function ‘uint64_t llvm::tell()’ cannot have cv-qualifier
  135 |   uint64_t tell() const { return current_pos() + GetNumBytesInBuffer(); }
      |                   ^~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h: In function ‘uint64_t llvm::tell()’:
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:135:34: error: ‘current_pos’ was not declared in this scope
  135 |   uint64_t tell() const { return current_pos() + GetNumBytesInBuffer(); }
      |                                  ^~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:135:50: error: ‘GetNumBytesInBuffer’ was not declared in this scope
  135 |   uint64_t tell() const { return current_pos() + GetNumBytesInBuffer(); }
      |                                                  ^~~~~~~~~~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h: At global scope:
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:137:3: error: ‘OStreamKind’ does not name a type
  137 |   OStreamKind get_kind() const { return Kind; }
      |   ^~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:148:3: error: ‘virtual’ outside class declaration
  148 |   virtual void reserveExtraSpace(uint64_t ExtraSize) {}
      |   ^~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h: In function ‘void llvm::SetBufferSize(size_t)’:
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:156:5: error: ‘flush’ was not declared in this scope; did you mean ‘std::flush’?
  156 |     flush();
      |     ^~~~~
      |     std::flush
In file included from /usr/include/c++/9/iostream:39,
                 from /home/jack/Projects/blast/src/main.cpp:1:
/usr/include/c++/9/ostream:621:5: note: ‘std::flush’ declared here
  621 |     flush(basic_ostream<_CharT, _Traits>& __os)
      |     ^~~~~
In file included from /media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/ADT/FloatingPointMode.h:17,
                 from /media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/ADT/APFloat.h:21,
                 from /media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/IR/Constants.h:23,
                 from /media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/IR/ConstantFolder.h:20,
                 from /media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/IR/IRBuilder.h:25,
                 from /home/jack/Projects/blast/src/codegen.h:4,
                 from /home/jack/Projects/blast/src/node.h:4,
                 from /home/jack/Projects/blast/src/editor.h:3,
                 from /home/jack/Projects/blast/src/main.cpp:2:
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:157:44: error: ‘BufferKind’ has not been declared
  157 |     SetBufferAndMode(new char[Size], Size, BufferKind::InternalBuffer);
      |                                            ^~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:157:5: error: ‘SetBufferAndMode’ was not declared in this scope; did you mean ‘SetBufferSize’?
  157 |     SetBufferAndMode(new char[Size], Size, BufferKind::InternalBuffer);
      |     ^~~~~~~~~~~~~~~~
      |     SetBufferSize
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h: At global scope:
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:160:26: error: non-member function ‘size_t llvm::GetBufferSize()’ cannot have cv-qualifier
  160 |   size_t GetBufferSize() const {
      |                          ^~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h: In function ‘size_t llvm::GetBufferSize()’:
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:163:9: error: ‘BufferMode’ was not declared in this scope
  163 |     if (BufferMode != BufferKind::Unbuffered && OutBufStart == nullptr)
      |         ^~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:163:23: error: ‘BufferKind’ has not been declared
  163 |     if (BufferMode != BufferKind::Unbuffered && OutBufStart == nullptr)
      |                       ^~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:163:49: error: ‘OutBufStart’ was not declared in this scope
  163 |     if (BufferMode != BufferKind::Unbuffered && OutBufStart == nullptr)
      |                                                 ^~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:164:14: error: ‘preferred_buffer_size’ was not declared in this scope
  164 |       return preferred_buffer_size();
      |              ^~~~~~~~~~~~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:167:12: error: ‘OutBufEnd’ was not declared in this scope
  167 |     return OutBufEnd - OutBufStart;
      |            ^~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:167:24: error: ‘OutBufStart’ was not declared in this scope
  167 |     return OutBufEnd - OutBufStart;
      |                        ^~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h: In function ‘void llvm::SetUnbuffered()’:
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:174:5: error: ‘flush’ was not declared in this scope; did you mean ‘std::flush’?
  174 |     flush();
      |     ^~~~~
      |     std::flush
In file included from /usr/include/c++/9/iostream:39,
                 from /home/jack/Projects/blast/src/main.cpp:1:
/usr/include/c++/9/ostream:621:5: note: ‘std::flush’ declared here
  621 |     flush(basic_ostream<_CharT, _Traits>& __os)
      |     ^~~~~
In file included from /media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/ADT/FloatingPointMode.h:17,
                 from /media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/ADT/APFloat.h:21,
                 from /media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/IR/Constants.h:23,
                 from /media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/IR/ConstantFolder.h:20,
                 from /media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/IR/IRBuilder.h:25,
                 from /home/jack/Projects/blast/src/codegen.h:4,
                 from /home/jack/Projects/blast/src/node.h:4,
                 from /home/jack/Projects/blast/src/editor.h:3,
                 from /home/jack/Projects/blast/src/main.cpp:2:
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:175:34: error: ‘BufferKind’ has not been declared
  175 |     SetBufferAndMode(nullptr, 0, BufferKind::Unbuffered);
      |                                  ^~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:175:5: error: ‘SetBufferAndMode’ was not declared in this scope; did you mean ‘SetBufferSize’?
  175 |     SetBufferAndMode(nullptr, 0, BufferKind::Unbuffered);
      |     ^~~~~~~~~~~~~~~~
      |     SetBufferSize
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h: At global scope:
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:178:32: error: non-member function ‘size_t llvm::GetNumBytesInBuffer()’ cannot have cv-qualifier
  178 |   size_t GetNumBytesInBuffer() const {
      |                                ^~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h: In function ‘size_t llvm::GetNumBytesInBuffer()’:
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:179:12: error: ‘OutBufCur’ was not declared in this scope
  179 |     return OutBufCur - OutBufStart;
      |            ^~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:179:24: error: ‘OutBufStart’ was not declared in this scope
  179 |     return OutBufCur - OutBufStart;
      |                        ^~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h: In function ‘void llvm::flush()’:
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:187:9: error: ‘OutBufCur’ was not declared in this scope
  187 |     if (OutBufCur != OutBufStart)
      |         ^~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:187:22: error: ‘OutBufStart’ was not declared in this scope
  187 |     if (OutBufCur != OutBufStart)
      |                      ^~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:188:7: error: ‘flush_nonempty’ was not declared in this scope
  188 |       flush_nonempty();
      |       ^~~~~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h: At global scope:
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:191:3: error: ‘raw_ostream’ does not name a type
  191 |   raw_ostream &operator<<(char C) {
      |   ^~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:198:3: error: ‘raw_ostream’ does not name a type
  198 |   raw_ostream &operator<<(unsigned char C) {
      |   ^~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:205:3: error: ‘raw_ostream’ does not name a type
  205 |   raw_ostream &operator<<(signed char C) {
      |   ^~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:212:3: error: ‘raw_ostream’ does not name a type
  212 |   raw_ostream &operator<<(StringRef Str) {
      |   ^~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:227:3: error: ‘raw_ostream’ does not name a type
  227 |   raw_ostream &operator<<(const char *Str) {
      |   ^~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:234:3: error: ‘raw_ostream’ does not name a type
  234 |   raw_ostream &operator<<(const std::string &Str) {
      |   ^~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:240:3: error: ‘raw_ostream’ does not name a type
  240 |   raw_ostream &operator<<(const std::string_view &Str) {
      |   ^~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:245:3: error: ‘raw_ostream’ does not name a type
  245 |   raw_ostream &operator<<(const SmallVectorImpl<char> &Str) {
      |   ^~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:249:3: error: ‘raw_ostream’ does not name a type
  249 |   raw_ostream &operator<<(unsigned long N);
      |   ^~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:250:3: error: ‘raw_ostream’ does not name a type
  250 |   raw_ostream &operator<<(long N);
      |   ^~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:251:3: error: ‘raw_ostream’ does not name a type
  251 |   raw_ostream &operator<<(unsigned long long N);
      |   ^~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:252:3: error: ‘raw_ostream’ does not name a type
  252 |   raw_ostream &operator<<(long long N);
      |   ^~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:253:3: error: ‘raw_ostream’ does not name a type
  253 |   raw_ostream &operator<<(const void *P);
      |   ^~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:255:3: error: ‘raw_ostream’ does not name a type
  255 |   raw_ostream &operator<<(unsigned int N) {
      |   ^~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:259:3: error: ‘raw_ostream’ does not name a type
  259 |   raw_ostream &operator<<(int N) {
      |   ^~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:263:3: error: ‘raw_ostream’ does not name a type
  263 |   raw_ostream &operator<<(double N);
      |   ^~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:266:3: error: ‘raw_ostream’ does not name a type
  266 |   raw_ostream &write_hex(unsigned long long N);
      |   ^~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:269:3: error: ‘raw_ostream’ does not name a type
  269 |   raw_ostream &operator<<(Colors C);
      |   ^~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:273:3: error: ‘raw_ostream’ does not name a type
  273 |   raw_ostream &write_uuid(const uuid_t UUID);
      |   ^~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:277:3: error: ‘raw_ostream’ does not name a type
  277 |   raw_ostream &write_escaped(StringRef Str, bool UseHexEscapes = false);
      |   ^~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:279:3: error: ‘raw_ostream’ does not name a type
  279 |   raw_ostream &write(unsigned char C);
      |   ^~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:280:3: error: ‘raw_ostream’ does not name a type
  280 |   raw_ostream &write(const char *Ptr, size_t Size);
      |   ^~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:283:3: error: ‘raw_ostream’ does not name a type
  283 |   raw_ostream &operator<<(const format_object_base &Fmt);
      |   ^~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:286:3: error: ‘raw_ostream’ does not name a type
  286 |   raw_ostream &operator<<(const FormattedString &);
      |   ^~~~~~~~~~~
/media/jack/32A07C604A5709A8/Jack/Programs/llvm/include/llvm/Support/raw_ostream.h:289:3: error: ‘raw_ostream’ does not name a type
  289 |   raw_ostream &operator<<(const FormattedNumber &);
      |   ^~~~~~~~~~~

Looks like you should fix the first issue first - the error about } in raylib.h - it might be confusing the nesting/parsing of the rest of the code.

Or are you saying you only get this raylib.h error /if/ you include some llvm header before that?

It seems that raylib.h is defining a BLACK macro which expands then the definition of the BLACK enum in LLVM. I don’t think there is an error in raylib.h in isolation.
So:

  • Avoid defining macros in headers
  • If you define a macro, use a very specific prefix that will make it not expand other projects token.

Yep its raylib defining a macro that conflicts with one defined in LLVM, removing the raylib one, I don’t use it anyways. Compile error msg was too long and couldn’t see all of it till I wrote it to a file. Thanks for the quick response! IT WORKS!