Argyrios Kyrtzidis
2b9b5bb697
[libclang] Introduce new C functions that provide information about modules:
...
clang_Cursor_getModule
clang_Module_getParent
clang_Module_getName
clang_Module_getFullName
clang_Module_getNumTopLevelHeaders
clang_Module_getTopLevelHeader
llvm-svn: 165280
2012-10-05 00:22:37 +00:00
Argyrios Kyrtzidis
c597c8c48b
[Modules] Introduce Module::TopHeaders which is a set of top-level headers
...
that are associated with a (sub)module.
llvm-svn: 165279
2012-10-05 00:22:33 +00:00
Argyrios Kyrtzidis
abc721ab4d
[preprocessing record] Have PPEntityID be independent of the size of the
...
loaded entities vector, otherwise its meaning will change when a module
is imported and the vector size changes.
llvm-svn: 165278
2012-10-05 00:22:28 +00:00
Argyrios Kyrtzidis
50e5b1dab3
[libclang] Introduce CXCursor_ModuleImportDecl cursor kind, used for a module
...
import declaration.
llvm-svn: 165277
2012-10-05 00:22:24 +00:00
Richard Smith
45bb8855e0
Egriegious hack to support libstdc++4.6's broken <atomic> header, which defines
...
a non-inline namespace, then reopens it as inline to try to add its symbols to
the surrounding namespace. In this one special case, permit the namespace to be
reopened as inline, and patch up the name lookup tables to match.
llvm-svn: 165263
2012-10-04 22:13:39 +00:00
Abramo Bagnara
aeeb989cc4
Fixed FunctionTypeLoc source range.
...
llvm-svn: 165259
2012-10-04 21:42:10 +00:00
Abramo Bagnara
856c4076a4
Fixed friend decl source range.
...
llvm-svn: 165257
2012-10-04 21:39:47 +00:00
Benjamin Kramer
058666a8d0
Driver: Link crtfastmath.o if it's available and -ffast-math is specified.
...
crtfastmath.o contains routines to set the floating point flags to a faster,
unsafe mode. Linking it in speeds up code dealing with denormals significantly
(PR14024).
For now this is only enabled on linux where I can test it and crtfastmath.o is
widely available. We may want to provide a similar file with compiler-rt
eventually and/or enable it on other platforms too.
llvm-svn: 165240
2012-10-04 19:42:20 +00:00
Eli Friedman
68be1649ee
Permanently end the whole "pragma got handled by the parser too early"
...
mess by handling all pragmas which the parser touches uniformly.
<rdar://problem/12248901>, etc.
llvm-svn: 165195
2012-10-04 02:36:51 +00:00
Fariborz Jahanian
8061f92c6b
use ';' instead of '-' in the note part of my last patch.
...
llvm-svn: 165177
2012-10-03 22:39:32 +00:00
Argyrios Kyrtzidis
f484b139db
[libclang] When indexing, invoke the importedASTFile for PCH files as well.
...
llvm-svn: 165161
2012-10-03 21:05:51 +00:00
Argyrios Kyrtzidis
184b14428e
[libclang] Simplify indexing of module imports by handling implicit
...
imports via ImportDecls.
llvm-svn: 165160
2012-10-03 21:05:44 +00:00
Michael J. Spencer
bfdde7cb60
[Options] Store the owning OptTable in Option so it can construct Group and Alias.
...
llvm-svn: 165150
2012-10-03 19:58:10 +00:00
Simon Atanasyan
b16488c9fb
Remove useless parameter "WantFile" from Driver::GetProgramPath().
...
This parameter is useless because nowhere used explicitly and always
gets its default value - "false".
The patch reviewed by Rafael Espindola.
llvm-svn: 165149
2012-10-03 19:52:37 +00:00
Fariborz Jahanian
e0e4bd3c76
Fix a typo in my last patch reported by Erik Schwiebert.
...
llvm-svn: 165142
2012-10-03 19:05:41 +00:00
Douglas Gregor
e96037923f
Remove ASTReader::needPendingInstantiation(), introduced in r164993,
...
which is neither correct nor necessary. The use of this routine was
eliminated by r165137.
llvm-svn: 165139
2012-10-03 18:38:43 +00:00
Douglas Gregor
559458c830
Revert most of the functionality in r165001. Instead, make sure that
...
the ASTReader doesn't attach a body to a function that is already
defined elsewhere.
llvm-svn: 165137
2012-10-03 18:34:48 +00:00
Fariborz Jahanian
4a67508685
objective-C arc: Warn under arc about a use of an ivar inside a block
...
that doesn't have a 'self' as this implicitly captures 'self' and could
create retain cycles. Provide fixit. // rdar://11194874
llvm-svn: 165133
2012-10-03 17:55:29 +00:00
Argyrios Kyrtzidis
aedf7144d1
Set the file entry for a Module* that was created during deserialization
...
of a module file.
llvm-svn: 165086
2012-10-03 01:58:42 +00:00
Argyrios Kyrtzidis
842ffe8806
Add a FIXME.
...
llvm-svn: 165085
2012-10-03 01:58:39 +00:00
Argyrios Kyrtzidis
72d1aa3cff
Introduce ASTConsumer::HandleImplicitImportDecl() callback that is invoked
...
when an ImportDecl that was implicitly created due to an inclusion directive.
llvm-svn: 165084
2012-10-03 01:58:37 +00:00
Argyrios Kyrtzidis
e514b200aa
Some renames to use the 'visitor' nomenclature, no functionality change.
...
llvm-svn: 165083
2012-10-03 01:58:28 +00:00
Michael Han
23214e5046
Improve C++11 attribute parsing.
...
- General C++11 attributes were previously parsed and ignored. Now they are parsed and stored in AST.
- Add support to parse arguments of attributes that in 'gnu' namespace.
- Differentiate unknown attributes and known attributes that can't be applied to statements when emitting diagnostic.
llvm-svn: 165082
2012-10-03 01:56:22 +00:00
Jordan Rose
9aa9980217
[analyzer] Push evalDynamicCast and evalDerivedToBase up to Store.
...
These functions are store-agnostic, and would benefit from information in
DynamicTypeInfo but gain nothing from the store type.
No intended functionality change.
llvm-svn: 165078
2012-10-03 01:08:32 +00:00
Jordan Rose
7bb2611400
Teach getCXXRecordDeclForPointerType about references.
...
Then, rename it getPointeeCXXRecordDecl and give it a nice doc comment,
and actually use it.
No intended functionality change.
llvm-svn: 165077
2012-10-03 01:08:28 +00:00
Argyrios Kyrtzidis
4db774a8ef
[PCH/Module] Change the map of file-level DeclIDs to use a FileID
...
as key instead of a SLocEntry pointer. This allows the array of
file sorted declarations in a PCH/module to be deterministic.
llvm-svn: 165047
2012-10-02 21:09:17 +00:00
Argyrios Kyrtzidis
10e7846abf
[libclang] When indexing an AST file, only deserialize the file level
...
declarations of the current primary module.
llvm-svn: 165046
2012-10-02 21:09:13 +00:00
Ted Kremenek
4924a0161b
Refactor clients of AnalyzerOptions::getBooleanOption() to have
...
an intermediate helper method to query and populate the Optional value.
llvm-svn: 165043
2012-10-02 20:42:16 +00:00
Ted Kremenek
3c6932922e
Tweak AnalyzerOptions::getOptionAsInteger() to populate the string
...
table, making it printable with the ConfigDump checker. Along the
way, fix a really serious bug where the value was getting parsed
from the string in code that was in an assert() call. This means
in a Release-Asserts build this code wouldn't work as expected.
llvm-svn: 165041
2012-10-02 20:31:56 +00:00
Ted Kremenek
5faa5e04a3
Change AnalyzerOptions::mayInlineCXXMemberFunction to default populate
...
the config string table. Also setup a test for dumping the analyzer
configuration for C++.
llvm-svn: 165040
2012-10-02 20:31:52 +00:00
Argyrios Kyrtzidis
d4fcf58070
[libclang] When indexing an AST file, only deserialize the preprocessing record
...
entities of the current primary module.
llvm-svn: 165023
2012-10-02 16:10:51 +00:00
Argyrios Kyrtzidis
f590e094ad
Add info in the preprocessing record whether an inclusion directive
...
resulted in an automatic module import.
llvm-svn: 165022
2012-10-02 16:10:46 +00:00
Argyrios Kyrtzidis
472eda06b0
[libclang] Implement the importedASTFile indexing callback to provide
...
info about imported modules.
llvm-svn: 165020
2012-10-02 16:10:38 +00:00
Aaron Ballman
e91c6be01e
Allowing individual targets to determine whether a given calling convention is allowed or ignored with warning. This allows for correct name mangling for x64 targets on Windows, which in turn allows for linking against the Win32 APIs.
...
Fixes PR13782
llvm-svn: 165015
2012-10-02 14:26:08 +00:00
Axel Naumann
2bd39fd2de
Enable programmatic provisioning of virtual module.map files (instead of writing out actual module.map files).
...
Opens up the wonders of clang::Modules to tools - though they remain as experimental as before.
llvm-svn: 165002
2012-10-02 12:26:36 +00:00
Axel Naumann
d9a25b3c17
Only those InterestingDecls that got added to the AST should be passed to the ASTConsumer.
...
llvm-svn: 165001
2012-10-02 12:18:46 +00:00
Axel Naumann
63469422c4
Merge pending instantiations instead of overwriting existing ones.
...
Check whether a pending instantiation needs to be instantiated (or whether an instantiation already exists).
Verify the size of the PendingInstantiations record (was only checking size of existing PendingInstantiations).
Migrate Obj-C++ part of redecl-merge into separate test, now that this is growing.
templates.mm: test that CodeGen has seen exactly one definition of template instantiations.
redecl-merge.m: use "@" specifier for expected-diagnostics.
llvm-svn: 164993
2012-10-02 09:09:43 +00:00
Ted Kremenek
2f88c40ded
Tweak diagnostic text to indicate that __weak on a local variable is only allowed
...
for ARC. Fixes <rdar://problem/12407705>
llvm-svn: 164990
2012-10-02 05:36:02 +00:00
Lang Hames
5de91cc35f
Add FP_CONTRACT support for clang.
...
Clang will now honor the FP_CONTRACT pragma and emit LLVM
fmuladd intrinsics for expressions of the form A * B + C (when they occur in a
single statement).
llvm-svn: 164989
2012-10-02 04:45:10 +00:00
Anna Zaks
97c7ce3368
Move isObjCSelf into Expr.
...
llvm-svn: 164966
2012-10-01 20:34:04 +00:00
Fariborz Jahanian
c491c3f27a
availability in structured documents. Takes
...
care of comments by Dimitri and Doug.
llvm-svn: 164957
2012-10-01 18:42:25 +00:00
Ted Kremenek
4a5b35eeec
Have AnalyzerOptions::getBooleanOption() stick the matching config
...
string in the config table so that it can be dumped as part of the
config dumper. Add a test to show that these options are sticking
and can be cross-checked using FileCheck.
llvm-svn: 164954
2012-10-01 18:28:19 +00:00
Richard Trieu
3267347cca
Cleaning up the self initialization checker.
...
-Allow Sema to do more processing on the initial Expr before checking it.
-Remove the special conditions in HandleExpr()
-Move the code so that only one call site is needed.
-Removed the function from Sema and only call it locally.
-Warn on potentially evaluated reference variables, not just casts to r-values.
-Update tests.
llvm-svn: 164951
2012-10-01 17:39:51 +00:00
Jordan Rose
d63f04d8a7
[analyzer] Make ProgramStateManager's SubEngine parameter optional.
...
It is possible and valid to have a state manager and associated objects
without having a SubEngine or checkers.
Patch by Olaf Krzikalla!
llvm-svn: 164947
2012-10-01 16:53:40 +00:00
Daniel Jasper
5901e47e8f
Add matchers for selected C++11 features.
...
Patch by Gábor Horváth.
Review: http://llvm-reviews.chandlerc.com/D46
llvm-svn: 164943
2012-10-01 13:40:41 +00:00
Bob Wilson
2afa011e0b
Add Clang support for iOS6.
...
llvm-svn: 164907
2012-09-29 23:52:58 +00:00
Bob Wilson
39d8a132df
Add an FMA intrinsic for ARM Neon.
...
llvm-svn: 164904
2012-09-29 23:52:48 +00:00
Bob Wilson
f001a9293d
Whitespace.
...
llvm-svn: 164900
2012-09-29 22:08:54 +00:00
Daniel Jasper
0c30337f6b
Fix refersToDeclaration()-matcher and add missing test case. This was
...
broken as of r164656 as TemplateArgument::getAsDecl() now asserts
instead of returning NULL for other template arugment kinds.
llvm-svn: 164896
2012-09-29 15:55:18 +00:00
Dmitri Gribenko
6743e04699
Move the 'find macro by spelling' infrastructure to the Preprocessor class and
...
use it to suggest appropriate macro for __attribute__((deprecated)) in
-Wdocumentation-deprecated-sync.
llvm-svn: 164892
2012-09-29 11:40:46 +00:00