Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
  • 723 commits
  • 168 files changed
  • 0 comments
  • 35 contributors
This comparison is big! We're only showing the most recent 250 commits
Nov 28, 2011
Chandler Carruth We now have text (or comment stubs for others) for these...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145299 91177308-0d34-0410-b5e6-96231b3b80d8
21480b7
Argyrios Kyrtzidis [libclang] Protect against the declaration's SourceRange being invalid
before passing to RangeCompare.

Though no idea how this can occur with the decls returned from
findFileRegionDecls().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145301 91177308-0d34-0410-b5e6-96231b3b80d8
ed8bef4
Chandler Carruth Pull out the libclang section and try to clean it up some. This one
feels a bit spartan currently.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145302 91177308-0d34-0410-b5e6-96231b3b80d8
9a16712
Richard Smith Add a release notes section for C1X language features supported by cl…
…ang 3.0.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145305 91177308-0d34-0410-b5e6-96231b3b80d8
62d730f
Chandler Carruth Remove some features that don't really seem major enough or widely used
enough to merit space in the release notes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145306 91177308-0d34-0410-b5e6-96231b3b80d8
3030b74
Chandler Carruth Pull the uninitialized values rewrite into the diagnostics section, and
add a bit to that section about the many bug-finding warnings that Clang
has grown since 2.9 as this is one of the more visible new additions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145307 91177308-0d34-0410-b5e6-96231b3b80d8
2f37685
Chandler Carruth Create a stub for Nick to hack on, nuking another of my rough notes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145308 91177308-0d34-0410-b5e6-96231b3b80d8
9c35304
Chandler Carruth Extract a Windows section in the release notes. Hopefully this is more
accurate than my original notes were based on IRC conversations. Windows
folks, please edit as needed to make this closer to the truth if I've
still got it wrong.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145309 91177308-0d34-0410-b5e6-96231b3b80d8
185e930
When attempting to load a module that is not in the module cache,
return the module itself (in the module map) rather than returning the
umbrella header used to build the module. While doing this, make sure
that we're inferring modules for frameworks to build that module.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145310 91177308-0d34-0410-b5e6-96231b3b80d8
a4d36a6
Richard Smith Release notes: fix up formatting of diagnostic example.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145311 91177308-0d34-0410-b5e6-96231b3b80d8
ad5459a
Correct the code generation for function arguments of vec3 types on x…
…86_64 when they are greater than 128 bits. This was incorrectly coercing things like long3 into a double2.

Add test case.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145312 91177308-0d34-0410-b5e6-96231b3b80d8
ce27567
Francois Pichet Update release notes with information on MSVC mode.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145315 91177308-0d34-0410-b5e6-96231b3b80d8
551988f
Richard Smith Release notes: add link to ISO C++ 2011 standard from the C++11 section.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145317 91177308-0d34-0410-b5e6-96231b3b80d8
4793138
Francois Pichet Update release notes with 2 features now supported in -fms-extensions…
… mode.

I think that's enough for my release notes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145320 91177308-0d34-0410-b5e6-96231b3b80d8
0c2198a
A couple driver fixes for PPC Linux. Patches by Michael Kostylev. PR1…
…1444/PR11445.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145321 91177308-0d34-0410-b5e6-96231b3b80d8
7972c88
Rafael Ávila de Espíndola CFI is mentioned on the LLVM releases as the clang bits are relativel…
…y small.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145325 91177308-0d34-0410-b5e6-96231b3b80d8
a5c502c
Add a couple more GCC versions to C++ search paths for MinGW. Patch b…
…y Ruben Van Boxem.

(We should probably start doing some sort of autodetection like we do on Linux at some point.)



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145326 91177308-0d34-0410-b5e6-96231b3b80d8
a74ec5c
Nov 29, 2011
Bill Wendling The _setjmp builtin library function should have the "returns twice"
attribute. This prevents the stack slot allocator from coming along and using a
stack which it thinks is available but isn't.
<rdar://problem/10492556>


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145332 91177308-0d34-0410-b5e6-96231b3b80d8
a9e269e
Chandler Carruth Flesh out the Objective-C section a bit. This may well need some love
from the Objective-C experts, but the basic stuff is there now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145333 91177308-0d34-0410-b5e6-96231b3b80d8
4d58212
Chandler Carruth And sink the GNU runtime bit into this section as a stub.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145334 91177308-0d34-0410-b5e6-96231b3b80d8
52e375e
Chandler Carruth Last major chunk of features. This covers a couple of language
extensions and one infrastructure feature addition that has a direct
impact on other projects which use Clang.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145335 91177308-0d34-0410-b5e6-96231b3b80d8
45901b3
Chandler Carruth Remove the last of my notes. I don't think these really need to be in
the release notes despite their awesomeness. If we had a thorough
discussion of the performance of Clang in 2.9 vs. 3.0, the first would
be more relevant, but we don't. The serialization stuff hopefully isn't
terribly visible to end users.

Objections to these omissions are of course welcome. =]

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145336 91177308-0d34-0410-b5e6-96231b3b80d8
f9e2e18
Chandler Carruth Fix a spelling error pointed out by Sebastien, and tidy up the
formatting here a bit... mostly to my preferred bikeshed-blue.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145337 91177308-0d34-0410-b5e6-96231b3b80d8
ee77d3d
Ted Kremenek Fix serialized diagnostics to handle FixIts that only remove text. Fi…
…xes <rdar://problem/10473903>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145339 91177308-0d34-0410-b5e6-96231b3b80d8
952538d
objc: warn if NSObject attribute appears other than in a typedef.
// rdar://10453342


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145358 91177308-0d34-0410-b5e6-96231b3b80d8
9b2eb7b
pcc Fix URL typo.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145359 91177308-0d34-0410-b5e6-96231b3b80d8
5cc989e
pcc Add Clang release notes for OpenCL C support.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145360 91177308-0d34-0410-b5e6-96231b3b80d8
375f7c4
Argyrios Kyrtzidis [libclang] Make clang_findReferencesInFile also work on macros (find …
…all expansions/definition

of a macro in a file).

As a bonus, also make searching for declarations more efficient by ignoring
preprocessing entities when we know that we are looking for a declaration.

Fixes rdar://10427411.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145369 91177308-0d34-0410-b5e6-96231b3b80d8
b49e728
Richard Smith PR10101: Recover better from a common copy-paste error: if a function
declaration at namespace scope is followed by a semicolon and an open-brace
(or in C++, a 'try', ':' or '='), then the error is probably a function
definition with a spurious ';', rather than a mysterious '{'.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145372 91177308-0d34-0410-b5e6-96231b3b80d8
874d253
Argyrios Kyrtzidis [libclang] Make the test portable.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145377 91177308-0d34-0410-b5e6-96231b3b80d8
b8cb21c
NAKAMURA Takumi [Win32] Catch exceptions (eg. segfault) on waiting for invoked clang …
…from the driver.

clang/lib/Driver/Driver.cpp: Don't pass through negative exit status, or parent would be confused.

llvm::sys::Program::Wait(): Suppose 0x8000XXXX and 0xC000XXXX as abnormal exit code and pass it as negative value.

Win32 Exception Handler: Exit with ExceptionCode on an unhandle exception.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145389 91177308-0d34-0410-b5e6-96231b3b80d8
573ea96
Argyrios Kyrtzidis [libclang] Fix leak in clang_indexSourceFile_Impl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145393 91177308-0d34-0410-b5e6-96231b3b80d8
7383550
Argyrios Kyrtzidis Fix leaking of LexedMethod objects created for caching objc method de…
…finitions tokens

for late parsing.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145394 91177308-0d34-0410-b5e6-96231b3b80d8
2fea224
Richard Smith Add fix-it to remove 'typedef' from function template definitions. Su…
…ch a token

was probably meant to be 'typename', which we will have already suggested if it
is appropriate.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145395 91177308-0d34-0410-b5e6-96231b3b80d8
6e1fd33
Benjamin Kramer Silence GCC warnings, RefCountedBase is meant to be default-initializ…
…ed here.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145396 91177308-0d34-0410-b5e6-96231b3b80d8
85224ae
Benjamin Kramer Preserve constness.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145397 91177308-0d34-0410-b5e6-96231b3b80d8
3267e11
Benjamin Kramer The cheap version of getName() is sufficient here.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145399 91177308-0d34-0410-b5e6-96231b3b80d8
7a71524
Expose the printing of module maps as part of the ModuleMap::Module
interface. No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145411 91177308-0d34-0410-b5e6-96231b3b80d8
804c3bf
Argyrios Kyrtzidis Initialize NumWarningsInPreamble in ASTUnit's constructor, for safety.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145412 91177308-0d34-0410-b5e6-96231b3b80d8
9870401
Start refactoring to use module maps when rebuilding a module
on-the-fly. No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145414 91177308-0d34-0410-b5e6-96231b3b80d8
933e7a6
Teach the module import mechanism how to rebuild modules expressed via
module map, rather than assuming that there is an umbrella
header. This allows us to automatically build umbrella-less modules. 


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145415 91177308-0d34-0410-b5e6-96231b3b80d8
f9e357d
Ted Kremenek Place "use @dynamic or provide a method implementation" warnings unde…
…r a -W flag.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145418 91177308-0d34-0410-b5e6-96231b3b80d8
2cbe84d
Merge branch 'yo-dawg-i-herd-u-like-arrays'
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145421 91177308-0d34-0410-b5e6-96231b3b80d8
cfbc5b5
Ted Kremenek Relax RegionStore to allow loads from CodeTextRegions. Apparently you…
… can actually write code that does this. This seems worthy of a checker, but the StoreManager should handle the memory abstraction without crashing. Fixes PR 11450.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145424 91177308-0d34-0410-b5e6-96231b3b80d8
214323b
Switch on-demand module building over to use module maps, always. When
we infer the module map, we'll just print the module map to a
temporary file and generate the module using that.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145436 91177308-0d34-0410-b5e6-96231b3b80d8
18ee547
Escape strings when printing module maps, for silly operating systems
that use \ as a separator.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145439 91177308-0d34-0410-b5e6-96231b3b80d8
213d1be
Test isa<FunctionDecl> to exclude objective-C methods. This ensures t…
…he following cast will never fail.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145441 91177308-0d34-0410-b5e6-96231b3b80d8
36ef702
Eliminate the -emit-module option, which emitted a module by parsing a
source file (e.g., a header). Immediately steal this useful option
name for building modules from a module map file.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145444 91177308-0d34-0410-b5e6-96231b3b80d8
6649014
Suppress -Warray-bounds for classes (not just structs) where the last…
… field is

a 1-length character array.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145445 91177308-0d34-0410-b5e6-96231b3b80d8
381711c
Richard Smith Revert r145244. It causes us to create broken ASTs with missing type …
…information

for some cast expressions.

Original commit message:

Removed useless ImplicitCast nodes in explicit cstyle and static casts


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145447 91177308-0d34-0410-b5e6-96231b3b80d8
c8d7f58
Change processor names. Patch by Simon Atanasyan.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145453 91177308-0d34-0410-b5e6-96231b3b80d8
592d26e
Argyrios Kyrtzidis [libclang] Do the ConcurrencyCheck at the beginning of clang_findRefe…
…rencesInFile.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145455 91177308-0d34-0410-b5e6-96231b3b80d8
5c2a1f7
Make sure that forward declarations are marked as such in the debug info
for the structure type.

rdar://10499337

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145461 91177308-0d34-0410-b5e6-96231b3b80d8
d5a3b78
Nov 30, 2011
Switch the module-loading interfaces and parser from a simple
top-level module name to a module path (e.g., std.vector). We're still
missing a number of pieces for this actually to do something.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145462 91177308-0d34-0410-b5e6-96231b3b80d8
3d3589d
when -faddress-sanitizer is present, add required flags to the linker…
… command (linux-only)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145467 91177308-0d34-0410-b5e6-96231b3b80d8
dff466c
Add bigger method type encodings to protocol objects. <rdar://problem…
…/10492418>

The new metadata are method @encode strings with additional data.

1. Each Objective-C object is marked with its class name and protocol names.
The same is done for property @encode already.

2. Each block object is marked with its function prototype's @encoding. For
example, a method parameter that is a block object that itself returns void
and takes an int would look like:
    @?<v@?i>

These new method @encode strings are stored in a single array pointed to by structs protocol_t and objc_protocol_ext.

Patch provided by Greg Parker!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145469 91177308-0d34-0410-b5e6-96231b3b80d8
dc8dab6
When loading a module that involves submodules (e.g., std.vector),
check whether the named submodules themselves are actually
valid, and drill down to the named submodule (although we don't do
anything with it yet). Perform typo correction on the submodule names
when possible.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145477 91177308-0d34-0410-b5e6-96231b3b80d8
49009ec
Teach the preprocessor how to handle module import declarations that
involve submodules (e.g., importing std.vector), rather than always
importing the top-level module.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145478 91177308-0d34-0410-b5e6-96231b3b80d8
b514c79
When writing a module file, pass the module through to the AST
writer. No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145479 91177308-0d34-0410-b5e6-96231b3b80d8
a8cc6ce
rjmccall Fix the instantiation of pseudo-object expressions. This is a
really bad way to go about this, but I'm not sure there's a better
choice without substantial changes to TreeTransform --- most
notably, preserving implicit semantic nodes instead of discarding
and rebuilding them.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145480 91177308-0d34-0410-b5e6-96231b3b80d8
01e19be
Add preprocessor-only test for submodule imports
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145490 91177308-0d34-0410-b5e6-96231b3b80d8
6eb47da
Switch the module map printer over to
raw_ostream::write_escaped. Thanks, Benjamin!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145491 91177308-0d34-0410-b5e6-96231b3b80d8
7f5fd8e
Benjamin Kramer Use raw_ostream::indent.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145492 91177308-0d34-0410-b5e6-96231b3b80d8
c55edcf
[analyzer] Add checker callback documentation.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145495 91177308-0d34-0410-b5e6-96231b3b80d8
d699ade
Implement (de-)serialization of the description of a module and its
submodules. This information will eventually be used for name hiding
when dealing with submodules. For now, we only use it to ensure that
the module "key" returned when loading a module will always be a
module (rather than occasionally being a FileEntry).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145497 91177308-0d34-0410-b5e6-96231b3b80d8
392ed2b
Introduce an opt-in warning indicating when the compiler is treating
an #include/#import as a module import.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145500 91177308-0d34-0410-b5e6-96231b3b80d8
e3a8256
Trivial indentation fix for the code I just committed
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145501 91177308-0d34-0410-b5e6-96231b3b80d8
edee969
Move the module auto-import logic after the logic that allows a
callback client to suggest an alternative search path and after we
complain when the included file can't be found. The former can't be
tested in isolation, the latter doesn't actually matter (because we
won't make a module suggestion if no header is available). However,
the flow is better this way.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145502 91177308-0d34-0410-b5e6-96231b3b80d8
8cfbe6a
Benjamin Kramer Update CMake build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145506 91177308-0d34-0410-b5e6-96231b3b80d8
90735f7
Get the -march argument based on the target MIPS architecture or cpu …
…and pass

it to GNU assembler. In addition, change function getMipsArchFromCPU() so that
it can be reused in ConstructJob(). 

Patch by Simon Atanasyan.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145509 91177308-0d34-0410-b5e6-96231b3b80d8
c85900f
Note that we'll need to handle __include_macros specially in the modu…
…le loader

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145514 91177308-0d34-0410-b5e6-96231b3b80d8
4b7cac5
Don't collide loop variable names (to appease GCC)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145515 91177308-0d34-0410-b5e6-96231b3b80d8
e25633f
Ted Kremenek Don't run -Wunreachable-code on template instantiations. Different in…
…stantiations may produce different unreachable code results, and it is very difficult for us to prove that ALL instantiations of a template have specific unreachable code. If we come up with a better solution, then we can revisit this, but this approach will at least greatly reduce the noise of this warning for code that makes use of templates.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145520 91177308-0d34-0410-b5e6-96231b3b80d8
5dfee06
Ted Kremenek Per an offline conversation with John McCall, have StmtPrinter actual…
…ly print out the source expression for OpaqueValueExpr.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145524 91177308-0d34-0410-b5e6-96231b3b80d8
381c066
make asan work at -O0, clang part. Patch by glider@google.com
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145531 91177308-0d34-0410-b5e6-96231b3b80d8
e5dd2ea
Test case for fix committed in r145441.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145534 91177308-0d34-0410-b5e6-96231b3b80d8
436bd50
Argyrios Kyrtzidis [PCH] In ASTReader::FinishedDeserializing, after we do PassInterestin…
…gDeclsToConsumer

we may end up having added more pending stuff to do, so go in a loop until everything
is cleared out.

This fixes the error in rdar://10278815 which has a certain David Lynch-esque quality..

  error: unknown type name 'BOOL'; did you mean 'BOOL'?

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145536 91177308-0d34-0410-b5e6-96231b3b80d8
8d39c3d
Promote ModuleMap::Module to a namespace-scope class in the Basic
library, since modules cut across all of the libraries. Rename
serialization::Module to serialization::ModuleFile to side-step the
annoying naming conflict. Prune a bunch of ModuleMap.h includes that
are no longer needed (most files only needed the Module type).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145538 91177308-0d34-0410-b5e6-96231b3b80d8
1a4761e
Unbreak build with GCC. Clang is too lame to diagnose this particular…
… ill-formedness

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145539 91177308-0d34-0410-b5e6-96231b3b80d8
863eb53
Richard Smith Revert most of r145372 for now. Lookahead beyond the ';' in a function
declaration tickles a bug in the way we handle visibility pragmas.

The improvement to error recovery for template function definitions declared
with the 'typedef' specifier in r145372 is unrelated and not reverted here.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145541 91177308-0d34-0410-b5e6-96231b3b80d8
58196dc
Another GCC fix
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145542 91177308-0d34-0410-b5e6-96231b3b80d8
8374eda
Dec 01, 2011
Fix MSVC class layout for empty classes. Patch by Dmitry Sokolov.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145544 91177308-0d34-0410-b5e6-96231b3b80d8
901dd66
Ted Kremenek Further tweak -Wurneachable-code and templates by allowing the warnin…
…g to run on

explicit template specializations (which represent actual functions somebody wrote).

Along the way, refactor some other code which similarly cares about whether or
not they are looking at a template instantiation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145547 91177308-0d34-0410-b5e6-96231b3b80d8
75df4ee
Ted Kremenek Specially whitelist the selector 'addOperationWithBlock:' for the ret…
…ain-cycle checking in -Warc-retain-cycles. This commonly

is hit by users using NSOperationQueue.  Fixes <rdar://problem/10465721>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145548 91177308-0d34-0410-b5e6-96231b3b80d8
968a0ee
Switch the ID numbers used for submodule IDs in the AST reader over to
a standard global/local scheme, so that submodule definitions will
eventually be able to refer to submodules in other top-level
modules. We'll need this functionality soonish.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145549 91177308-0d34-0410-b5e6-96231b3b80d8
26ced12
Argyrios Kyrtzidis ParmVarDecls have no linkage. Previously we would report that parameters
in type signatures have external linkage.

Fixes rdar://10058317.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145551 91177308-0d34-0410-b5e6-96231b3b80d8
f8d34ed
When sending a message to a receiver that has "unknown any" type,
force the unknown any type to "id" so that the message send can be
completed without requiring a case. Fixes <rdar://problem/10506646>.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145552 91177308-0d34-0410-b5e6-96231b3b80d8
f1d1ca5
Infer the submodule ID for a given declaration based on the location
of that declaration, and encode the submodule ID in each declaration
stored in an AST file.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145555 91177308-0d34-0410-b5e6-96231b3b80d8
185dbd7
Argyrios Kyrtzidis [libclang] Create a diagnostic set to pass at the end of indexing.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145557 91177308-0d34-0410-b5e6-96231b3b80d8
996e6e5
Don't use a varargs convention for calls unprototyped functions where…
… one of the arguments is an AVX vector.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145574 91177308-0d34-0410-b5e6-96231b3b80d8
3ed7903
Ted Kremenek When analyzing a C++ method (without a specific caller), assume 'this…
…' is non-null. Fixes <rdar://problem/10508787>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145575 91177308-0d34-0410-b5e6-96231b3b80d8
a078ecf
[analyzer] Refactor checkers to use helper function for getting calle…
…e Decl and name.

We are getting name of the called function or it's declaration in a few checkers. Refactor them to use the helper function in the CheckerContext. 

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145576 91177308-0d34-0410-b5e6-96231b3b80d8
b805c8f
Ted Kremenek Fix typo.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145577 91177308-0d34-0410-b5e6-96231b3b80d8
60a4481
Francois Pichet Change the Microsoft __interface keyword to be an alias for struct (n…
…ot class) since members are public by default.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145580 91177308-0d34-0410-b5e6-96231b3b80d8
2aba711
Michael Spencer Add Microsoft mangling of constructors and destructors. Patch by Dmitry!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145581 91177308-0d34-0410-b5e6-96231b3b80d8
50118da
When typo-correction an Objective-C superclass name, don't
typo-correct to ourselves.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145583 91177308-0d34-0410-b5e6-96231b3b80d8
a38c473
[analyzer] Make KeychainAPI checker less aggressive. radar://10508828
We trigger an error if free is called after a possibly failed allocation. Do not trigger the error if we know that the buffer is not null.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145584 91177308-0d34-0410-b5e6-96231b3b80d8
ee5a21f
Introduce the notion of name visibility into modules. For a given
(sub)module, all of the names may be hidden, just the macro names may
be exposed (for example, after the preprocessor has seen the import of
the module but the parser has not), or all of the names may be
exposed. Importing a module makes its names, and the names in any of
its non-explicit submodules, visible to name lookup (transitively).

This commit only introduces the notion of name visible and marks
modules and submodules as visible when they are imported. The actual
name-hiding logic in the AST reader will follow (along with test cases).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145586 91177308-0d34-0410-b5e6-96231b3b80d8
5e35693
Benjamin Kramer Add support for AMD's bulldozer.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145606 91177308-0d34-0410-b5e6-96231b3b80d8
61ea4fe
Fix -forwardingTargetForSelector: (GNUstep runtime) which was broken …
…for the

old dispatch mechanism when I introduced the new one.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145609 91177308-0d34-0410-b5e6-96231b3b80d8
403bc3f
Implement name hiding for declarations deserialized from a non-visible
module. When that module becomes visible, so do those declarations.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145640 91177308-0d34-0410-b5e6-96231b3b80d8
ecc2c09
Daniel Dunbar Driver/Darwin: Add ASAN runtime library link support.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145651 91177308-0d34-0410-b5e6-96231b3b80d8
94b54ea
Dec 02, 2011
When we're passing a vector with an illegal type through memory on x8…
…6-64, use byval so we're sure the backend does the right thing. Fixes va_arg with illegal vectors and an obscure ABI mismatch with __m64 vectors.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145652 91177308-0d34-0410-b5e6-96231b3b80d8
ee1ad99
[asan] update docs to allow, but discourage, -O0
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145653 91177308-0d34-0410-b5e6-96231b3b80d8
b876993
Richard Smith Fix wrong-code bug when a const automatic variable of struct type has…
… both a

mutable member and a constant initializer. We'd previously promoted such
variables to global constants, resulting in nasal demons if the mutable member
was modified.

This is only a temporary fix. The subtle interplay between isConstantInitializer
and CGExprConstant is very bug-prone; there are some other issues in this area
which I will be addressing in subsequent, more major reworking of this code.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145654 91177308-0d34-0410-b5e6-96231b3b80d8
4bb6686
Ted Kremenek Diagnose use of wide string literal in 'asm' instead of crashing. Fix…
…es <rdar://problem/10465079>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145656 91177308-0d34-0410-b5e6-96231b3b80d8
7f42228
Ted Kremenek Fix test regression introduced by r145656. When seeing a string liter…
…al that isn't accepted by 'asm', skip to the enclosing ')'.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145662 91177308-0d34-0410-b5e6-96231b3b80d8
320fa4b
Implementing parsing and resolution of module export declarations
within module maps, which will (eventually) be used to re-export a
module from another module. There are still some pieces missing,
however.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145665 91177308-0d34-0410-b5e6-96231b3b80d8
90db260
Rename function.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145669 91177308-0d34-0410-b5e6-96231b3b80d8
867a379
Clean up some oddly gratuitous vertical whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145670 91177308-0d34-0410-b5e6-96231b3b80d8
93bfd79
Add support for AVX registers to clang inline asm. Add a small testcase
and update the Sema testcase with a register that we won't hit for a while
I hope.

Fixes rdar://10510405

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145671 91177308-0d34-0410-b5e6-96231b3b80d8
c5f9a01
Daniel Dunbar runtime/Linux: Initial support for tying compiler-rt build into Clang…
… build on

Linux.
 - Currently just builds a full library, and only on x86, and only for the
   target arch.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145672 91177308-0d34-0410-b5e6-96231b3b80d8
ff98652
Fix bitfield handling for record layout with #pragma pack. <rdar://pr…
…oblem/10494810> and PR9560.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145673 91177308-0d34-0410-b5e6-96231b3b80d8
bff22ac
Implement name hiding for macro definitions within modules, such that
only the macro definitions from visible (sub)modules will actually be
visible. This provides the same behavior for macros that r145640
provided for declarations.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145683 91177308-0d34-0410-b5e6-96231b3b80d8
1329264
Notify the AST writer (via ASTDeserializationListener) when a
(sub)module is read from an AST file. This makes sure that the AST
writer knows how to map all modules to their global IDs.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145685 91177308-0d34-0410-b5e6-96231b3b80d8
a015cab
Implement (de-)serialization of the set of exported modules in a
module map. 


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145695 91177308-0d34-0410-b5e6-96231b3b80d8
af13bfc
When making a module visible, also make any of its exported modules
visible, allowing one to create modules that import (and then
re-export) other modules.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145696 91177308-0d34-0410-b5e6-96231b3b80d8
07165b9
zmodem Make conversion specifier warning refer to typedef if possible.
For example, the warning for printf("%zu", 42.0);
changes from "conversion specifies type 'unsigned long'" to "conversion
specifies type 'size_t' (aka 'unsigned long')"

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145697 91177308-0d34-0410-b5e6-96231b3b80d8
5fdc1b9
Make sure that name lookup in C checks whether a name is hidden.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145700 91177308-0d34-0410-b5e6-96231b3b80d8
10ce932
zmodem Make r145697 actually work.
Use the canonical type of the typedef to compare with the underlying type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145702 91177308-0d34-0410-b5e6-96231b3b80d8
377cc6e
Only perform checking of the predefines buffer when loading a
precompiled header. Previously, we were trying to gather predefines
buffers from all kinds of AST files (which doesn't make sense) and
were performing some validation when AST files were loaded as main
files. 

With these tweaks, using PCH files that import modules no longer fails
immediately (due to mismatched predefines buffers). However, module
visibility is lost, so this feature does not yet work.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145709 91177308-0d34-0410-b5e6-96231b3b80d8
6236a29
Add missing test header
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145710 91177308-0d34-0410-b5e6-96231b3b80d8
8c366c4
nlewycky Update for change to LLVM TargetMachine API in r145714.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145715 91177308-0d34-0410-b5e6-96231b3b80d8
3aaeccc
nlewycky Revert r145697 and dependent patch r145702. It added a dependency from
lib/Analysis to lib/Sema which is cyclical.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145724 91177308-0d34-0410-b5e6-96231b3b80d8
687b5df
Introduce a module import declaration, so that we properly represent,…
… e.g.,

  __import_module__ std.vector;

in the AST.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145725 91177308-0d34-0410-b5e6-96231b3b80d8
15de72c
When we treat an #include or #import as a module import, create an
implicit ImportDecl in the translation unit to record the presence of
the import.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145727 91177308-0d34-0410-b5e6-96231b3b80d8
93ebfa6
Dec 03, 2011
Keep track of all of the import declarations that are parsed or
implicitly generated in a translation unit. Modules will need this
information to identify the actual imports that occurred.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145734 91177308-0d34-0410-b5e6-96231b3b80d8
e664977
Track alignment in AggValueSlot. No functional change in this patch, …
…but I'll be introducing uses of the specified alignment soon.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145736 91177308-0d34-0410-b5e6-96231b3b80d8
f394078
Implement support for precompiled headers, preambles, and serialized
"main" files that import modules. When loading any of these kinds of
AST files, we make the modules that were imported visible into the
translation unit that loaded the PCH file or preamble.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145737 91177308-0d34-0410-b5e6-96231b3b80d8
f6137e4
Module files representing actual modules don't need to know the set o…
…f modules they import, since that information isn't actually used. Drop it from the AST file

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145738 91177308-0d34-0410-b5e6-96231b3b80d8
c5e0f9b
Switch the Alignment argument on AggValueSlot over to CharUnits, per …
…John's review comment.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145741 91177308-0d34-0410-b5e6-96231b3b80d8
d7722d9
Add a utility to get a RValue for a given LValue for an aggregate; sw…
…itch a few places over to it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145747 91177308-0d34-0410-b5e6-96231b3b80d8
51f5120
Argyrios Kyrtzidis [libclang] Allow indexing/get-cursor/etc. for the exception variable …
…in a C++ catch.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145750 91177308-0d34-0410-b5e6-96231b3b80d8
dcbb2fb
Argyrios Kyrtzidis [libclang] Fix infinite loop when doing visitation of an OpaqueValueE…
…xpr.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145751 91177308-0d34-0410-b5e6-96231b3b80d8
d977e6b
Argyrios Kyrtzidis [PCH] Make sure that the SourceExpr of a OpaqueValueExpr is always in…
…itialized

when deserialized, fixing random crashes in libclang.

Also simplifies how OpaqueValueExprs are [de]serialized.
The reader/writer automatically retains pointer equality of sub-statements (when a
statement node is referenced in multiple nodes), so no need to manually handle it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145752 91177308-0d34-0410-b5e6-96231b3b80d8
8bc2782
Switch LValue so that it exposes alignment in CharUnits. (No function…
…al change.)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145753 91177308-0d34-0410-b5e6-96231b3b80d8
6da2c71
CornedBee Implement overload resolution for reference-typed parameters supplied…
… with initializer lists.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145769 91177308-0d34-0410-b5e6-96231b3b80d8
1cdb70b
Francois Pichet In Microsoft mode, don't perform typo correction in a template member…
… function dependent context because it interferes with the "lookup into dependent bases of class templates" feature.

Basically typo correction will try to offer a correction instead of looking into type dependent base classes.

I found this problem while parsing Microsoft ATL code with clang.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145772 91177308-0d34-0410-b5e6-96231b3b80d8
4d604d6
If block literal return type is not specified, return type of the blo…
…ck is

inferred from return types. All the return statements have to agree about the type.
// rdar://10466373


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145774 91177308-0d34-0410-b5e6-96231b3b80d8
0586520
Implement support for the __is_final type trait, to determine whether
a class is marked 'final', from Alberto Ganesh Barbati! Fixes
PR11462.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145775 91177308-0d34-0410-b5e6-96231b3b80d8
5e9392b
Fix mangling substitutions for address-space-qualified class
types. Patch from Dmitri Rubinstein!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145776 91177308-0d34-0410-b5e6-96231b3b80d8
14795c8
Move block return type inference diagnostic to a common place where
Function or array lvalue conversions happens.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145782 91177308-0d34-0410-b5e6-96231b3b80d8
649657e
Dec 04, 2011
Support decltype in nested-name-specifiers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145785 91177308-0d34-0410-b5e6-96231b3b80d8
42d6d0c
Dec 05, 2011
NAKAMURA Takumi include/clang*/Makefile: Tweak installation to work with CLANG_SRCDIR.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145800 91177308-0d34-0410-b5e6-96231b3b80d8
5460ff3
When writing a module file, keep track of the set of (sub)modules that
it imports, establishing dependencies at the (sub)module
granularity. This is not a user-visible change (yet).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145808 91177308-0d34-0410-b5e6-96231b3b80d8
5598868
Actually add a useful bit to the comment pre-FIXME
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145809 91177308-0d34-0410-b5e6-96231b3b80d8
4bc8738
Implement support for wildcard exports in modules, allowing a module
to re-export anything that it imports. This opt-in feature makes a
module behave more like a header, because it can be used to re-export
the transitive closure of a (sub)module's dependencies.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145811 91177308-0d34-0410-b5e6-96231b3b80d8
0adaa88
Fix printing of wildcard exports.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145812 91177308-0d34-0410-b5e6-96231b3b80d8
f4ac17e
Inferred framework modules automatically export anything they import
(i.e., 'export *'), to better match the semantics of headers.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145813 91177308-0d34-0410-b5e6-96231b3b80d8
209977c
we got badgered into supporting multi-alternative constraints.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145822 91177308-0d34-0410-b5e6-96231b3b80d8
c9577f3
[asan] don't require libstdc++ for asan on linux. Mac fix will go sep…
…arately

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145823 91177308-0d34-0410-b5e6-96231b3b80d8
8179aa7
Some early refactoring of objective-c rewriter.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145824 91177308-0d34-0410-b5e6-96231b3b80d8
5845717
[analyzer] Add a debug checker to test for tainted data.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145827 91177308-0d34-0410-b5e6-96231b3b80d8
a50b7ab
[analyzer] Add ability to do a simple ProgramState dump() without
requiring CFG.

Adding more ugly code; the evnvironment printing should be moved to
envirnment at some point.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145828 91177308-0d34-0410-b5e6-96231b3b80d8
d016785
[analyzer] Change RetainCountChecker to use symbol dump method instead
of relying on SymbolID.

This way any expression can be printed (not only SymbolData).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145829 91177308-0d34-0410-b5e6-96231b3b80d8
f62ceec
[analyzer] Minor improvements on RangeConstraint pretty-printing.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145830 91177308-0d34-0410-b5e6-96231b3b80d8
1a00eef
[analyzer] First step toward removing
ConstraintManager::canReasonAbout() from the ExprEngine.

ExprEngine should not care if the constraint solver can reason about
something or not. The solver should be able to handle all the SymExprs.

To do this, the solver should be able to keep track of not only the
SymbolData but of all SymExprs. This is why we change SymbolRef to be an
alias of SymExpr*. When encountering an expression it cannot simplify,
the solver should just add the constraints to it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145831 91177308-0d34-0410-b5e6-96231b3b80d8
3cdf584
[analyzer] Remove all uses of ConstraintManager::canResonAbout() from
ExprEngine.

Teach SimpleConstraintManager::assumeSymRel() to propagate constraints
to symbolic expressions.

+ One extra warning (real bug) is now generated due to enhanced
assumeSymRel().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145832 91177308-0d34-0410-b5e6-96231b3b80d8
76462f0
[analyzer] Unify SymbolVal and SymExprVal under a single SymbolVal
class.

We are going into the direction of handling SymbolData and other SymExpr
uniformly, so it makes less sense to keep two different SVal classes.
For example, the checkers would have to take an extra step to reason
about each type separately.

The classes have the same members, we were just using the SVal kind
field for easy differentiation in 3 switch statements. The switch
statements look more ugly now, but we can make the code more readable in
other ways, for example, moving some code into separate functions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145833 91177308-0d34-0410-b5e6-96231b3b80d8
5344baa
[analyzer] Add a missing taint tester warning.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145834 91177308-0d34-0410-b5e6-96231b3b80d8
bea728b
More objc rewriter refactoring.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145841 91177308-0d34-0410-b5e6-96231b3b80d8
dd8079c
Make isWeakDecl available as a method on ValueDecl.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145845 91177308-0d34-0410-b5e6-96231b3b80d8
0dd7a25
Add a warning for implicit conversion from function literals (and static
methods) to bool. E.g.

void foo() {}
if (f) { ... // <- Warns here.
}

Only applies to non-weak functions, and does not apply if the function address
is taken explicitly with the addr-of operator.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145849 91177308-0d34-0410-b5e6-96231b3b80d8
e14ca9f
[analyzer] Simplify the expected-warning statement.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145855 91177308-0d34-0410-b5e6-96231b3b80d8
4473755
[analyzer] Simplify the condition.
This is a fixup for r145832.

The extra clauses do not matter after we remove the dependency on canReasonAbout(InitVal) in r145832.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145856 91177308-0d34-0410-b5e6-96231b3b80d8
084842d
[analyzer] Mark ConstraintManager::canReasonAbout as protected.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145857 91177308-0d34-0410-b5e6-96231b3b80d8
eca4e6e
[analyzer] Rely on LLVM Dominators in Clang dominator computation.
(Previously, Clang used it's implementation of dominators.)

The patch is contributed by Guoping Long!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145858 91177308-0d34-0410-b5e6-96231b3b80d8
02f34c5
Argyrios Kyrtzidis [libclang] When indexing a field in a C++ class, return an entity
of kind CXIdxEntity_CXXInstanceVariable. rdar://10522503.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145859 91177308-0d34-0410-b5e6-96231b3b80d8
da5f2d2
Make EmitAggregateCopy take an alignment argument. Make EmitFinalDest…
…Copy pass in the correct alignment when known.

The test includes a FIXME for a related case involving calls; it's a bit more complicated to fix because the RValue class doesn't keep track of alignment.

<rdar://problem/10463337>
  


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145862 91177308-0d34-0410-b5e6-96231b3b80d8
bd7d828
Parse inferred submodules in module maps, track their contents in
Module, and (de-)serialize this information. Semantics of inferred
submodules to follow.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145864 91177308-0d34-0410-b5e6-96231b3b80d8
1e12368
More refactoring of objc rewriter.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145867 91177308-0d34-0410-b5e6-96231b3b80d8
02f8396
Joerg Sonnenberger Add -mstack-alignment=X and fix -mstackrealign handling now that the
backend options are gone.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145868 91177308-0d34-0410-b5e6-96231b3b80d8
e9d11db
Dec 06, 2011
objc: put out more coherent warning when method definition
attributes don't match its declaration. // rdar://10529259.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145872 91177308-0d34-0410-b5e6-96231b3b80d8
ec23678
Make sure we perform lvalue-to-rvalue conversions for enum initialize…
…rs. PR11484.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145874 91177308-0d34-0410-b5e6-96231b3b80d8
19efa3e
Implement inferred submodules support, which (when requested)
implicitly generates submodules corresponding to the headers that fall
within a module.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145887 91177308-0d34-0410-b5e6-96231b3b80d8
e209e50
rjmccall Fix an extremely stupid bug causing terrible miscompilations
of &= on pseudo-objects.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145904 91177308-0d34-0410-b5e6-96231b3b80d8
b92e5d0
Minor comment update.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145905 91177308-0d34-0410-b5e6-96231b3b80d8
68805fe
nlewycky Stack realignment is a tristate. Add -mno-stackrealign to turn off al…
…l stack

realignment, even with locals with alignment exceeding the ABI guarantee.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145909 91177308-0d34-0410-b5e6-96231b3b80d8
4e785c9
nlewycky Fix test for unrelated changes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145915 91177308-0d34-0410-b5e6-96231b3b80d8
55e983c
Switch a cast to a dyn_cast and check the pointer before using. Fixes…
… a crash

in the following code:

void test4(bool (&x)(void)) {
  while (x);
}



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145918 91177308-0d34-0410-b5e6-96231b3b80d8
26b45d8
Extend warnings for missing '@end'.
Fixes PR2709.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145928 91177308-0d34-0410-b5e6-96231b3b80d8
d64251f
zmodem Suggest typo corrections for implicit function declarations.
A mistyped function call becomes an inmplicit function declaration in C.
Suggest typo correction when one can be found.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145930 91177308-0d34-0410-b5e6-96231b3b80d8
122de3e
Rafael Ávila de Espíndola Install cpuid.h when building with cmake too.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145935 91177308-0d34-0410-b5e6-96231b3b80d8
82e11cd
Minor tweak to prepare for submodules with umbrella headers. No actual
functionality change yet.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145938 91177308-0d34-0410-b5e6-96231b3b80d8
9f74f4f
Daniel Dunbar Headers: wmmintrin.h only needs xmmintrin.h.
 - Fixes <rdar://problem/10261246> clang -maes option is not sufficient to
   include <wmmintrin.h>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145939 91177308-0d34-0410-b5e6-96231b3b80d8
dd023bc
When building the main file to parse given a module map, don't skip
explicit submodules or umbrella headers from submodules. Instead,
build the entire module at once, and let the name-hiding mechanisms
hide the contents of explicit submodules at load time.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145940 91177308-0d34-0410-b5e6-96231b3b80d8
8075ce6
Implement modules support for subframeworks (aka embedded
frameworks). A submodule can now be labeled as a "framework", and
header search will look into the appropriate Headers/PrivateHeaders
subdirectories for named headers.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145941 91177308-0d34-0410-b5e6-96231b3b80d8
d620a84
When suggesting a module import for a #include or #import, suggest the
most specific (sub)module based on the actual file we find, rather
than always importing the top-level module. This means
that #include'ing <Foo/Blah.h> should give us the submodule Foo.Blah.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145942 91177308-0d34-0410-b5e6-96231b3b80d8
0983392
Allow inferred submodules for any (sub)module that has an umbrella he…
…ader

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145945 91177308-0d34-0410-b5e6-96231b3b80d8
ef85b56
jpbonn Changed DataLayout to match LLVM and make aggregates byte aligned by …
…default.
62b9e27
[asan] Mac: do not link dynamic libs with the asan-rt, use -undefined…
… dynamic_lookup for dynamic libs. Style fixes. Patch by glider@google.com

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145955 91177308-0d34-0410-b5e6-96231b3b80d8
7b5f101
Benjamin Kramer Remove unused member to appease valgrind.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145956 91177308-0d34-0410-b5e6-96231b3b80d8
b80a386
When inferring a module map for a framework, infer subframework
modules for each of its subframeworks.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145957 91177308-0d34-0410-b5e6-96231b3b80d8
ac252a3
Remove misleading error message
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145958 91177308-0d34-0410-b5e6-96231b3b80d8
e6fb987
Rename Objective-C-only tests to .m
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145959 91177308-0d34-0410-b5e6-96231b3b80d8
e487f42
Argyrios Kyrtzidis [libclang] API enhancements by Joe Groff!
- Exposes a CXType_Vector type kind for vector types.
- Adds generalized versions of the clang_getArrayElementType and clang_getArraySize functions, named clang_getElementType and clang_getNumElements, which work on array, vector, or complex types.
- Adds additional functions for querying function types. clang_isFunctionTypeVariadic returns true if a function type is variadic. clang_getFunctionCallingConv returns an enumeration value indicating the calling convention of the function type. clang_getNumArgTypes returns the number of static argument types, and clang_getArgType gets the type of an argument.
- Adds a clang_getTypedefDeclUnderlyingType function to get the underlying type from a TypedefDecl cursor.
- Adds a clang_getEnumDeclIntegerType function to get the integer type from an EnumDecl cursor.
- Adds clang_getEnumConstantDeclValue and clang_getEnumConstantDeclUnsignedValue functions to get the value of an EnumConstantDecl as a signed or unsigned long long, respectively.
- Exposes a CXCursor_AsmLabelAttr cursor kind for __asm__("label") attributes.
- Alters clang_getCursorSpelling to return the label value for AsmLabelAttr-kind cursors.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145972 91177308-0d34-0410-b5e6-96231b3b80d8
84b7964
Use absolute paths for temporary module map files
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145973 91177308-0d34-0410-b5e6-96231b3b80d8
1e821e9
Richard Smith Move vector bitcast handling in constant expressions from the expression
evaluator into constant initializer handling / IRGen. The practical consequence
of this is that the bitcast now lives in the constant's definition, rather than
in its uses.

The code in the constant expression evaluator was producing vectors of the wrong
type and size (and possibly of the wrong value for a big-endian int-to-vector
bitcast). We were getting away with this only because we don't yet support
constant-folding of any expressions which inspect vector values.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145981 91177308-0d34-0410-b5e6-96231b3b80d8
d62ca37
Add a FIXME to provide a sensible error message here
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145983 91177308-0d34-0410-b5e6-96231b3b80d8
e912029
[analyzer] Remove an unnecessary check.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145984 91177308-0d34-0410-b5e6-96231b3b80d8
e5ee70d
[analyzer] Propagate taint through NonLoc to NonLoc casts.
 - Created a new SymExpr type - SymbolCast.
 - SymbolCast is created when we don't know how to simplify a NonLoc to
NonLoc casts.
 - A bit of code refactoring: introduced dispatchCast to have better
code reuse, remove a goto.
 - Updated the test case to showcase the new taint flow.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145985 91177308-0d34-0410-b5e6-96231b3b80d8
aace9ef
[analyzer] Refactor: Move symbol_iterator from SVal to SymExpr, use it
for finding dependent symbols for taint.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145986 91177308-0d34-0410-b5e6-96231b3b80d8
1d1d515
[analyzer] Add comments related to symbol_iterator
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145987 91177308-0d34-0410-b5e6-96231b3b80d8
a91efb1
Richard Smith DeadStoresChecker: when whitelisting dead initializations with consta…
…nts, look

for a foldable constant rather than an IR-level constant. This is still far too
liberal, but is a step in the right direction.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145990 91177308-0d34-0410-b5e6-96231b3b80d8
0e35b4e
Dec 07, 2011
objc: issue deprecated/unavailable diagnostic when
methods with these attributes are sent to receivers
of 'id' type too. // rdar://10459930


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145999 91177308-0d34-0410-b5e6-96231b3b80d8
b76a97e
Richard Smith When folding the size of a global scope VLA to a constant, require th…
…e array

bound to not have side effects(!). Add constant-folding support for expressions
of void type, to ensure that we can still fold ((void)0, 1) as an array bound.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146000 91177308-0d34-0410-b5e6-96231b3b80d8
aa9c350
If we can't write the temporary module map file when compiling a
module, at least have the decency to complain about it.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146002 91177308-0d34-0410-b5e6-96231b3b80d8
f64114b
[analyzer] Propagate taint through MemRegions.
SVal can be not only a symbol, but a MemRegion. Add support for such
cases.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146006 91177308-0d34-0410-b5e6-96231b3b80d8
dcf06fa
Make sure we correctly zero-initialize unions containing a pointer to…
… data member as the first field. PR11487.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146009 91177308-0d34-0410-b5e6-96231b3b80d8
26e80cd
Ted Kremenek Tweak serialized diagnostics to support errors with no categories. Fi…
…xes <rdar://problem/10538300>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146011 91177308-0d34-0410-b5e6-96231b3b80d8
13eee19
Implement basic support for private headers in frameworks. In essence,
when we load a module map (module.map) from a directory, also load a
private module map (module_private.map) for that directory, if
present. That private module map can inject a new submodule that
captures private headers.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146012 91177308-0d34-0410-b5e6-96231b3b80d8
587986e
nlewycky Initialize these values, fixing the build in cases where stack realig…
…nment

actually occurs.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146013 91177308-0d34-0410-b5e6-96231b3b80d8
2e23fd5
Daniel Dunbar www: Update getting started to encourage people to check out compielr…
…-rt.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146014 91177308-0d34-0410-b5e6-96231b3b80d8
078f859
Fix multilib library paths on ppc64 Linux. Patch by Michael Kostylev.…
… PR11472.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146016 91177308-0d34-0410-b5e6-96231b3b80d8
1c636df
Argyrios Kyrtzidis [libclang] Index C++ namespaces.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146019 91177308-0d34-0410-b5e6-96231b3b80d8
68478b0
Argyrios Kyrtzidis Make changes to SDiagsWriter to make it work in combination with the …
…ARC migrator:

-Allow it to be used with multiple BeginSourceFile/EndSourceFile calls; for this introduce
 a "finish" callback method in the DiagnosticConsumer. SDiagsWriter finishes up the serialization
 file inside this method.
-Make it independent of any particular DiagnosticsEngine; make it use the SourceManager of the
 Diagnostic object.
-Ignore null source ranges.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146020 91177308-0d34-0410-b5e6-96231b3b80d8
29f2787
zmodem Make printf warnings refer to intmax_t et al. by name
in addition to underlying type.

For example, the warning for printf("%zu", 42.0);
changes from "conversion specifies type 'unsigned long'" to "conversion
specifies type 'size_t' (aka 'unsigned long')"

(This is a second attempt after r145697, which got reverted.)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146032 91177308-0d34-0410-b5e6-96231b3b80d8
a792aff
Benjamin Kramer Remove unused-but-set variable.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146034 91177308-0d34-0410-b5e6-96231b3b80d8
84fa05e
[analyzer] Update the checker writer manual with explanation of SVals
and the link to checker callback documentation.

SVal, SymExpr, MemRegion description is a slightly edited version of
Ted's reply to a question on cfe-dev list.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146048 91177308-0d34-0410-b5e6-96231b3b80d8
22d4fb9
[analyzer] More www; document ProgramState->dump().
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146049 91177308-0d34-0410-b5e6-96231b3b80d8
b78229c
Daniel Dunbar runtime/Linux: Include the profile and ASAN libs on x86.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146051 91177308-0d34-0410-b5e6-96231b3b80d8
7df67e6
[analyzer] Cleanup: use the variable.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146056 91177308-0d34-0410-b5e6-96231b3b80d8
b39c5b4
Argyrios Kyrtzidis [libclang] Introduce CXIdxEntityLanguage that indicates the language
of an indexed entity.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146067 91177308-0d34-0410-b5e6-96231b3b80d8
838d3c2
Argyrios Kyrtzidis [libclang] Fix indexing of C++ bases in a C++ class.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146068 91177308-0d34-0410-b5e6-96231b3b80d8
b526a87
Argyrios Kyrtzidis [libclang] Indexing API: provide both the semantic and the lexical co…
…ntainer.

They are generally the same except in C++ cases like out-of-line member functions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146069 91177308-0d34-0410-b5e6-96231b3b80d8
b1febb6
Make sure we pick up module_private.map when loading a module.map file.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146074 91177308-0d34-0410-b5e6-96231b3b80d8
4813442
jpbonn Merge branch 'master' of http://llvm.org/git/clang 3784ff3
Implement inference for the "Private" submodule corresponding to
private headers in a framework.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146082 91177308-0d34-0410-b5e6-96231b3b80d8
23af6d5
Daniel Dunbar Driver: Add a --rtlib={compiler-rt,libgcc} argument which I plan to u…
…se to allow

dual support for compiler-rt on Linux, during bringup.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146094 91177308-0d34-0410-b5e6-96231b3b80d8
c24767c
Daniel Dunbar Driver/Linux: Fix the ASAN library path to match current compiler-rt
integration.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146098 91177308-0d34-0410-b5e6-96231b3b80d8
8cd0d25
Dec 08, 2011
Argyrios Kyrtzidis [libclang] Remove IndexingContext's getScopedContext(), it's not useful
now that client containers can be set via function calls.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146117 91177308-0d34-0410-b5e6-96231b3b80d8
bb7f542
Minor cleanup. Avoid redundant getTriple() calls.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146122 91177308-0d34-0410-b5e6-96231b3b80d8
4ce83eb
Argyrios Kyrtzidis [libclang] When doing clang_findReferencesInFile, make sure we don't …
…crash

if we come up against a null Decl.

No test case unfortunately. rdar://10457799.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146127 91177308-0d34-0410-b5e6-96231b3b80d8
e368a64
Use the real end of the decltype expression.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146138 91177308-0d34-0410-b5e6-96231b3b80d8
b577757
Rafael Ávila de Espíndola Add a minimal unwind.h that knows how to forward to the system one in…
… systems

that have it in /usr/include (only OS X Lion so far).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146140 91177308-0d34-0410-b5e6-96231b3b80d8
d85c1e9
Hal Finkel Allow clang to find gcc libs on suse ppc64
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146142 91177308-0d34-0410-b5e6-96231b3b80d8
2e55df4
pcc Add an experimental MallocSizeofChecker, which reports inconsistencies
between the casted type of the return value of a malloc/calloc/realloc
call and the operand of any sizeof expressions contained within
its argument(s).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146144 91177308-0d34-0410-b5e6-96231b3b80d8
dc30967
Francois Pichet Remove unused parameter from the LateParsedTemplatedFunction construc…
…tor.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146145 91177308-0d34-0410-b5e6-96231b3b80d8
e1fca50
Francois Pichet Unbreak MSVC build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146146 91177308-0d34-0410-b5e6-96231b3b80d8
f4e8a12
Fix: allow @protocol forward declarations inside @implementation-s.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146147 91177308-0d34-0410-b5e6-96231b3b80d8
90ec96f
zmodem Only do typo correction for implicit function decls when
they are treated as errors.

Doing typo correction when these are just warnings slows down the
compilation of source which deliberately uses implicit function
declarations.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146153 91177308-0d34-0410-b5e6-96231b3b80d8
e3ca33a
Convert paths to native format before constructing a
directory_iterator for them.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146154 91177308-0d34-0410-b5e6-96231b3b80d8
52b1ed3
Decltype in non-pseudo (& non-dependent) dtor calls.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146155 91177308-0d34-0410-b5e6-96231b3b80d8
53a75c0
Keep track of import dependencies between submodules within the module
that's currently being built. This is important for supporting
transitive dependencies ("export *" in the module map) completely.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146156 91177308-0d34-0410-b5e6-96231b3b80d8
5e3f922
Within the module representation, generalize the notion of an umbrella
header to also support umbrella directories. The umbrella directory
for an umbrella header is the directory in which the umbrella header
resides.

No functionality change yet, but it's coming.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146158 91177308-0d34-0410-b5e6-96231b3b80d8
10694ce
Tweak the syntax of umbrella headers, so that "umbrella" is treated as
a modifier for a header declarartion, e.g.,

  umbrella header "headername"

Collapse the umbrella-handling code in the parser into the
header-handling code, so we don't duplicate the header-search logic.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146159 91177308-0d34-0410-b5e6-96231b3b80d8
489ad43
More refactoring of objective-C rewriter.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146160 91177308-0d34-0410-b5e6-96231b3b80d8
d5c3fa2
Implement umbrella directories for modules, which are similar to
umbrella headers in the sense that all of the headers within that
directory (and eventually its subdirectories) are considered to be
part of the module with that umbrella directory. However, unlike
umbrella headers, which are expected to include all of the headers
within their subdirectories, Clang will automatically include all of
the headers it finds in the named subdirectory.

The intent here is to allow a module map to trivially turn a
subdirectory into a module, where the module's structure can mimic the
directory structure.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146165 91177308-0d34-0410-b5e6-96231b3b80d8
77d029f
Added missing testcase from r145849. Thanks to Dave Blaikie for catch…
…ing this.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146169 91177308-0d34-0410-b5e6-96231b3b80d8
2cad9e3
jpbonn Merge branch 'master' of http://llvm.org/git/clang 84db6ff