]>
granicus.if.org Git - clang/log
Chandler Carruth [Fri, 9 Dec 2011 01:33:57 +0000 (01:33 +0000)]
Move a free function from the Frontend library into the Lex library as
part of HeaderSearch. This function just normalizes filenames for use
inside of a synthetic include directive, but it is used in both the
Frontend and Serialization libraries so it needs a common home.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146227
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Fri, 9 Dec 2011 01:15:54 +0000 (01:15 +0000)]
deprecated enum should not warn when used initializing another deprecated enumerator.
// rdar://
10535640
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146218
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Fri, 9 Dec 2011 00:31:40 +0000 (00:31 +0000)]
Save category name loc in ObjCCategoryImplDecl, patch by Jason Haslam!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146213
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Fri, 9 Dec 2011 00:17:49 +0000 (00:17 +0000)]
[libclang] Make sure we don't try to handle a CXCursor_NoDeclFound
passed to clang_findReferencesInFile.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146211
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Fri, 9 Dec 2011 00:17:47 +0000 (00:17 +0000)]
[arcmt] Un-XFAIL a test.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146210
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Fri, 9 Dec 2011 00:09:20 +0000 (00:09 +0000)]
Teach the Makefile build about the new diagnostic file from r146207.
Amazingly this is all that's required.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146209
91177308 -0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 9 Dec 2011 00:08:01 +0000 (00:08 +0000)]
Use default visibility in the the symbols declared in unwind.h. This matches
the behavior of gcc's unwind.h.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146208
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Fri, 9 Dec 2011 00:02:23 +0000 (00:02 +0000)]
Separate the serialization library's diagnostics from the frontend's
diagnostics. Conflating them was highly confusing and makes it harder to
establish a firm layering separation between these two libraries.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146207
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 8 Dec 2011 23:54:21 +0000 (23:54 +0000)]
Misc Minix-specific changes to clang:
. move compiler-rt to a separate directory so the -L argument only includes compiler-rt (thanks joerg)
. build all clang subdirs
. switches the Minix platform to ELF
. normalizes toolchain invocation
Patch by Ben Gras.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146206
91177308 -0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 8 Dec 2011 23:21:26 +0000 (23:21 +0000)]
Don't get the exception obj from the slot more than once.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146202
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anna Zaks [Thu, 8 Dec 2011 22:38:43 +0000 (22:38 +0000)]
[analyzer] If memory region is tainted mark data as tainted.
+ random comments
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146199
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 8 Dec 2011 22:01:56 +0000 (22:01 +0000)]
Fix an edge case in IRGen for conditionals. PR11509.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146189
91177308 -0d34-0410-b5e6-
96231b3b80d8
Hal Finkel [Thu, 8 Dec 2011 20:36:19 +0000 (20:36 +0000)]
add tree test for suse on ppc64 (r146142)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146176
91177308 -0d34-0410-b5e6-
96231b3b80d8
DeLesley Hutchins [Thu, 8 Dec 2011 20:23:06 +0000 (20:23 +0000)]
This patch extends thread safety analysis with support for the scoped_lockable attribute.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146174
91177308 -0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Thu, 8 Dec 2011 19:26:24 +0000 (19:26 +0000)]
Added missing testcase from r145849. Thanks to Dave Blaikie for catching this.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146169
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Thu, 8 Dec 2011 19:11:24 +0000 (19:11 +0000)]
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
Fariborz Jahanian [Thu, 8 Dec 2011 18:25:15 +0000 (18:25 +0000)]
More refactoring of objective-C rewriter.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146160
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Thu, 8 Dec 2011 18:00:48 +0000 (18:00 +0000)]
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
Douglas Gregor [Thu, 8 Dec 2011 17:39:04 +0000 (17:39 +0000)]
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
Douglas Gregor [Thu, 8 Dec 2011 17:01:29 +0000 (17:01 +0000)]
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
David Blaikie [Thu, 8 Dec 2011 16:13:53 +0000 (16:13 +0000)]
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
Douglas Gregor [Thu, 8 Dec 2011 16:13:24 +0000 (16:13 +0000)]
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
Hans Wennborg [Thu, 8 Dec 2011 15:56:07 +0000 (15:56 +0000)]
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
Erik Verbruggen [Thu, 8 Dec 2011 09:58:43 +0000 (09:58 +0000)]
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
Francois Pichet [Thu, 8 Dec 2011 09:32:22 +0000 (09:32 +0000)]
Unbreak MSVC build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146146
91177308 -0d34-0410-b5e6-
96231b3b80d8
Francois Pichet [Thu, 8 Dec 2011 09:11:52 +0000 (09:11 +0000)]
Remove unused parameter from the LateParsedTemplatedFunction constructor.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146145
91177308 -0d34-0410-b5e6-
96231b3b80d8
Peter Collingbourne [Thu, 8 Dec 2011 08:31:14 +0000 (08:31 +0000)]
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
Hal Finkel [Thu, 8 Dec 2011 05:50:03 +0000 (05:50 +0000)]
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
Rafael Espindola [Thu, 8 Dec 2011 05:01:39 +0000 (05:01 +0000)]
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
David Blaikie [Thu, 8 Dec 2011 04:53:15 +0000 (04:53 +0000)]
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
Argyrios Kyrtzidis [Thu, 8 Dec 2011 01:56:07 +0000 (01:56 +0000)]
[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
Bob Wilson [Thu, 8 Dec 2011 01:10:19 +0000 (01:10 +0000)]
Minor cleanup. Avoid redundant getTriple() calls.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146122
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Thu, 8 Dec 2011 00:54:07 +0000 (00:54 +0000)]
[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
Daniel Dunbar [Wed, 7 Dec 2011 23:22:17 +0000 (23:22 +0000)]
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
Daniel Dunbar [Wed, 7 Dec 2011 23:03:15 +0000 (23:03 +0000)]
Driver: Add a --rtlib={compiler-rt,libgcc} argument which I plan to use 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
Douglas Gregor [Wed, 7 Dec 2011 22:05:21 +0000 (22:05 +0000)]
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
Douglas Gregor [Wed, 7 Dec 2011 21:25:07 +0000 (21:25 +0000)]
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
Argyrios Kyrtzidis [Wed, 7 Dec 2011 20:44:19 +0000 (20:44 +0000)]
[libclang] Indexing API: provide both the semantic and the lexical container.
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
Argyrios Kyrtzidis [Wed, 7 Dec 2011 20:44:15 +0000 (20:44 +0000)]
[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
Argyrios Kyrtzidis [Wed, 7 Dec 2011 20:44:12 +0000 (20:44 +0000)]
[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
Anna Zaks [Wed, 7 Dec 2011 19:56:13 +0000 (19:56 +0000)]
[analyzer] Cleanup: use the variable.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146056
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 7 Dec 2011 19:35:10 +0000 (19:35 +0000)]
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
Anna Zaks [Wed, 7 Dec 2011 19:04:27 +0000 (19:04 +0000)]
[analyzer] More www; document ProgramState->dump().
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146049
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anna Zaks [Wed, 7 Dec 2011 19:04:24 +0000 (19:04 +0000)]
[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
Benjamin Kramer [Wed, 7 Dec 2011 12:50:05 +0000 (12:50 +0000)]
Remove unused-but-set variable.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146034
91177308 -0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Wed, 7 Dec 2011 10:33:11 +0000 (10:33 +0000)]
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
Argyrios Kyrtzidis [Wed, 7 Dec 2011 05:52:12 +0000 (05:52 +0000)]
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
Argyrios Kyrtzidis [Wed, 7 Dec 2011 05:52:06 +0000 (05:52 +0000)]
[libclang] Index C++ namespaces.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146019
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Wed, 7 Dec 2011 04:00:53 +0000 (04:00 +0000)]
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
Daniel Dunbar [Wed, 7 Dec 2011 03:04:42 +0000 (03:04 +0000)]
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
Nick Lewycky [Wed, 7 Dec 2011 02:33:23 +0000 (02:33 +0000)]
Initialize these values, fixing the build in cases where stack realignment
actually occurs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146013
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 7 Dec 2011 02:23:45 +0000 (02:23 +0000)]
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
Ted Kremenek [Wed, 7 Dec 2011 02:08:00 +0000 (02:08 +0000)]
Tweak serialized diagnostics to support errors with no categories. Fixes <rdar://problem/
10538300 >.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146011
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Wed, 7 Dec 2011 01:30:11 +0000 (01:30 +0000)]
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
Anna Zaks [Wed, 7 Dec 2011 01:09:52 +0000 (01:09 +0000)]
[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
Douglas Gregor [Wed, 7 Dec 2011 00:54:14 +0000 (00:54 +0000)]
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
Richard Smith [Wed, 7 Dec 2011 00:43:50 +0000 (00:43 +0000)]
When folding the size of a global scope VLA to a constant, require the 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
Fariborz Jahanian [Wed, 7 Dec 2011 00:30:00 +0000 (00:30 +0000)]
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
Richard Smith [Tue, 6 Dec 2011 23:25:15 +0000 (23:25 +0000)]
DeadStoresChecker: when whitelisting dead initializations with constants, 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
Anna Zaks [Tue, 6 Dec 2011 23:12:38 +0000 (23:12 +0000)]
[analyzer] Add comments related to symbol_iterator
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145987
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anna Zaks [Tue, 6 Dec 2011 23:12:33 +0000 (23:12 +0000)]
[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
Anna Zaks [Tue, 6 Dec 2011 23:12:27 +0000 (23:12 +0000)]
[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
Anna Zaks [Tue, 6 Dec 2011 23:12:17 +0000 (23:12 +0000)]
[analyzer] Remove an unnecessary check.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145984
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 6 Dec 2011 23:04:08 +0000 (23:04 +0000)]
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
Richard Smith [Tue, 6 Dec 2011 22:44:34 +0000 (22:44 +0000)]
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
Douglas Gregor [Tue, 6 Dec 2011 22:05:29 +0000 (22:05 +0000)]
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
Argyrios Kyrtzidis [Tue, 6 Dec 2011 22:05:01 +0000 (22:05 +0000)]
[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
Douglas Gregor [Tue, 6 Dec 2011 20:51:42 +0000 (20:51 +0000)]
Rename Objective-C-only tests to .m
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145959
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 6 Dec 2011 19:57:48 +0000 (19:57 +0000)]
Remove misleading error message
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145958
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 6 Dec 2011 19:39:29 +0000 (19:39 +0000)]
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
Benjamin Kramer [Tue, 6 Dec 2011 19:26:57 +0000 (19:26 +0000)]
Remove unused member to appease valgrind.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145956
91177308 -0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Tue, 6 Dec 2011 19:18:44 +0000 (19:18 +0000)]
[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
Douglas Gregor [Tue, 6 Dec 2011 17:34:58 +0000 (17:34 +0000)]
Allow inferred submodules for any (sub)module that has an umbrella header
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145945
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 6 Dec 2011 17:31:28 +0000 (17:31 +0000)]
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
Douglas Gregor [Tue, 6 Dec 2011 17:16:41 +0000 (17:16 +0000)]
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
Douglas Gregor [Tue, 6 Dec 2011 17:15:11 +0000 (17:15 +0000)]
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
Daniel Dunbar [Tue, 6 Dec 2011 16:17:54 +0000 (16:17 +0000)]
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
Douglas Gregor [Tue, 6 Dec 2011 16:17:15 +0000 (16:17 +0000)]
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
Rafael Espindola [Tue, 6 Dec 2011 15:46:47 +0000 (15:46 +0000)]
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
Hans Wennborg [Tue, 6 Dec 2011 09:46:12 +0000 (09:46 +0000)]
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
Erik Verbruggen [Tue, 6 Dec 2011 09:25:23 +0000 (09:25 +0000)]
Extend warnings for missing '@end'.
Fixes PR2709.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145928
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Trieu [Tue, 6 Dec 2011 04:48:01 +0000 (04:48 +0000)]
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
Nick Lewycky [Tue, 6 Dec 2011 03:46:28 +0000 (03:46 +0000)]
Fix test for unrelated changes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145915
91177308 -0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Tue, 6 Dec 2011 03:33:03 +0000 (03:33 +0000)]
Stack realignment is a tristate. Add -mno-stackrealign to turn off all 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
Eli Friedman [Tue, 6 Dec 2011 03:08:26 +0000 (03:08 +0000)]
Minor comment update.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145905
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Tue, 6 Dec 2011 02:56:18 +0000 (02:56 +0000)]
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
Douglas Gregor [Tue, 6 Dec 2011 01:10:29 +0000 (01:10 +0000)]
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
Eli Friedman [Tue, 6 Dec 2011 00:10:34 +0000 (00:10 +0000)]
Make sure we perform lvalue-to-rvalue conversions for enum initializers. PR11484.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145874
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 6 Dec 2011 00:02:41 +0000 (00:02 +0000)]
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
Joerg Sonnenberger [Mon, 5 Dec 2011 23:05:23 +0000 (23:05 +0000)]
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
Fariborz Jahanian [Mon, 5 Dec 2011 22:59:54 +0000 (22:59 +0000)]
More refactoring of objc rewriter.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145867
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 5 Dec 2011 22:27:44 +0000 (22:27 +0000)]
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
Eli Friedman [Mon, 5 Dec 2011 22:23:28 +0000 (22:23 +0000)]
Make EmitAggregateCopy take an alignment argument. Make EmitFinalDestCopy 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
Argyrios Kyrtzidis [Mon, 5 Dec 2011 22:05:28 +0000 (22:05 +0000)]
[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
Anna Zaks [Mon, 5 Dec 2011 21:33:11 +0000 (21:33 +0000)]
[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
Anna Zaks [Mon, 5 Dec 2011 21:33:06 +0000 (21:33 +0000)]
[analyzer] Mark ConstraintManager::canReasonAbout as protected.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145857
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anna Zaks [Mon, 5 Dec 2011 21:33:01 +0000 (21:33 +0000)]
[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
Anna Zaks [Mon, 5 Dec 2011 21:32:58 +0000 (21:32 +0000)]
[analyzer] Simplify the expected-warning statement.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145855
91177308 -0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Mon, 5 Dec 2011 20:49:50 +0000 (20:49 +0000)]
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
Lang Hames [Mon, 5 Dec 2011 20:16:26 +0000 (20:16 +0000)]
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