Douglas Gregor
84febf4a4d
Migrate a few more modules tests over to -emit-module-from-map.
...
llvm-svn: 144779
2011-11-16 05:16:30 +00:00
Douglas Gregor
1735f4e752
For modules, use a hash of the compiler version, language options, and
...
target triple to separate modules built under different
conditions. The hash is used to create a subdirectory in the module
cache path where other invocations of the compiler (with the same
version, language options, etc.) can find the precompiled modules.
llvm-svn: 139662
2011-09-13 23:15:45 +00:00
Douglas Gregor
a057a58048
Add a struct-size check for modules when dealing with module-private fields
...
llvm-svn: 139597
2011-09-13 15:37:05 +00:00
Douglas Gregor
1e44e02292
Introduce a cc1-level option to provide the path to the module cache,
...
where the compiler will look for module files. Eliminates the
egregious hack where we looked into the header search paths for
modules.
llvm-svn: 139538
2011-09-12 20:41:59 +00:00
Douglas Gregor
41866816ce
Diagnose attempt to mark function-local declarations as __module_private__.
...
llvm-svn: 139519
2011-09-12 18:37:38 +00:00
Douglas Gregor
3baa6702ab
Allow __module_private__ on fields
...
llvm-svn: 139499
2011-09-12 16:11:24 +00:00
Douglas Gregor
fc33bcfc4a
Remove the restriction on module-private friends. Since the friend
...
declaration may be the first declaration, we want the ability to that
declaration to be marked module-private.
llvm-svn: 139497
2011-09-12 15:48:15 +00:00
Douglas Gregor
6422642a1d
Friends cannot be declared module-private
...
llvm-svn: 139411
2011-09-09 21:14:29 +00:00
Douglas Gregor
3c7cd6a0c4
Specializations cannot be module-hidden. Diagnose attempts to do so.
...
llvm-svn: 139406
2011-09-09 20:53:38 +00:00
Douglas Gregor
2820e6923a
__module_private__ is inherited by redeclarations of an entity, and
...
must also be present of the first declaration of that entity.
llvm-svn: 139384
2011-09-09 19:05:14 +00:00
Douglas Gregor
ef15bdbe1a
Propagate __module_private__ from previous declarations to later
...
declarations.
llvm-svn: 139380
2011-09-09 18:32:39 +00:00
Douglas Gregor
26701a4371
Modules: introduce the __module_private__ declaration specifier, which
...
indicates that a declaration is only visible within the module it is
declared in.
llvm-svn: 139348
2011-09-09 02:06:17 +00:00