llvm-project/llvm
Chandler Carruth 3c57aa4111 [Modules] Fix a layering issue that is actually impacting the modules
selfhost.

The 'Core.h' C-API header is part of the IR LLVM library. (One might
even argue it should be called IR.h, but that's a separate point.) We
can't include it into a Support header without violating the layering,
and in a way that breaks modules. MemoryBuffer's opaque C type was being
defined in the Core.h C-API header despite being in the Support library,
and thus we ended up with this weird issue.

It turns out that there were other constructs from the Support library
in the Core.h header. This patch lifts all of them into Support.h and
then includes that into Core.h.

The only possible fallout is if someone was including Support.h and
relying on Core.h to be visible for their own uses. Considering the
narrow interface actually provided by the C-API for the Support library,
this seems a very, very unlikely mistake.

llvm-svn: 203071
2014-03-06 04:13:12 +00:00
..
autoconf Now that we don't use libtool, we don't need to upgrade it :-) 2014-03-05 22:45:14 +00:00
bindings [python-bindings] Remove some cruft that snuck in. 2014-02-23 04:43:26 +00:00
cmake [CMake] add_llvm_target(): No need to include TABLEGEN_OUTPUT in source list. 2014-03-04 17:05:28 +00:00
docs [LangRef] Improve llvm.mem.parallel_loop_access example 2014-03-05 13:36:04 +00:00
examples Use DataLayout from the module when easily available. 2014-02-25 23:25:17 +00:00
include [Modules] Fix a layering issue that is actually impacting the modules 2014-03-06 04:13:12 +00:00
lib [Layering] Move GVMaterializer.h into the IR library where its 2014-03-06 03:50:29 +00:00
projects Drop libtool from llvm. 2014-02-28 18:17:54 +00:00
test DebugInfo: Shrink pubnames/pubtypes in the presence of type units by only emitting pub sections for compile units 2014-03-06 01:42:00 +00:00
tools [Layering] Sink Linker.h into a Linker subdirectory to make it 2014-03-06 03:42:23 +00:00
unittests [Layering] Sink Linker.h into a Linker subdirectory to make it 2014-03-06 03:42:23 +00:00
utils [C++11] Replace OwningPtr::take() with OwningPtr::release(). 2014-03-05 10:19:29 +00:00
.arcconfig
.clang-format Test commit. 2014-03-02 13:08:46 +00:00
.gitignore Added .DS_Store entry in .gitignore for ignoring .DS_Store files in the source 2014-01-25 15:15:16 +00:00
CMakeLists.txt Cleaning up a bunch of pre-Visual C++ 2012 build hacks. 2014-03-04 09:23:33 +00:00
CODE_OWNERS.TXT Add myself as owner for libc++ 2014-02-18 14:03:17 +00:00
CREDITS.TXT Fix documentation typos 2013-12-20 00:33:39 +00:00
LICENSE.TXT Update the copyright credits -- Happy new year 2014! 2014-01-01 08:27:31 +00:00
LLVMBuild.txt
Makefile Provide CMake package modules in install tree 2014-02-09 16:37:02 +00:00
Makefile.common
Makefile.config.in Add patch level to llvm version in CMake and Autoconf 2014-03-03 15:22:00 +00:00
Makefile.rules Add patch level to llvm version in CMake and Autoconf 2014-03-03 15:22:00 +00:00
README.txt
configure Add patch level to llvm version in CMake and Autoconf 2014-03-03 15:22:00 +00:00
llvm.spec.in

README.txt

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for the Low Level
Virtual Machine, a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you're writing a package for LLVM, see docs/Packaging.rst for our
suggestions.