| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
to represent a fully-substituted non-type template parameter.
This should improve source fidelity, as well as being generically
useful for diagnostics and such.
llvm-svn: 135243
|
| |
|
|
| |
llvm-svn: 135220
|
| |
|
|
|
|
| |
macros in libclang.
llvm-svn: 135148
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is switches all the interfaces points (and most of the commenst
/ local variables I saw on my way through) regarding the
NestedMacroInstantiations bit.
The libclang enums corresponding to this state were renamed, but
a legacy enum was added with the old name, and the same value to keep
existing clients working. I've added a documentation blurb for it, but
let me know if there is a canonical way to document legacy elemenst of
the libclang interface.
No functionality changed here, even in tests.
llvm-svn: 135141
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
MacroInstantiation -> MacroExpansion rename. Internally, everything is
switched.
Introduce a new cursor kind enum with the new name, but retain the old
name as an alias so that we don't break backwards compatibility.
Also update the debug printing routine to use 'macro expansions' as its
explicitly not guaranteed to be stable, and mechanically switch the test
cases over to that.
llvm-svn: 135140
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
variants to 'expand'. This changed a couple of public APIs, including
one public type "MacroInstantiation" which is now "MacroExpansion". The
rest of the codebase was updated to reflect this, especially the
libclang code. Two of the C++ (and thus easily changed) libclang APIs
were updated as well because they pertained directly to the old
MacroInstantiation class.
No functionality changed.
llvm-svn: 135139
|
| |
|
|
| |
llvm-svn: 134918
|
| |
|
|
|
|
| |
prefix to 'clang_'.
llvm-svn: 134916
|
| |
|
|
| |
llvm-svn: 134885
|
| |
|
|
|
|
| |
Solution is to set output stdout to binary mode to prevent newline conversion (\n => \r\n).
llvm-svn: 134879
|
| |
|
|
| |
llvm-svn: 134877
|
| |
|
|
|
|
|
| |
USEDLIBS to satisfy linking on cygming.
FIXME: tools/c-*.exe should be linked to clang.dll on cygming. llvm/Makefile.rules is not aware of bin/clang.dll.
llvm-svn: 134871
|
| |
|
|
| |
llvm-svn: 134859
|
| |
|
|
| |
llvm-svn: 134849
|
| |
|
|
| |
llvm-svn: 134848
|
| |
|
|
| |
llvm-svn: 134847
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a new mode of migration, where we avoid modifying the original files but
we emit temporary files instead.
<path> will be used to keep migration process metadata. Currently the temporary files
that are produced are put in the system's temp directory but we can put them
in the <path> if is necessary.
Also introduce new ARC migration functions in libclang whose only purpose,
currently, is to accept <path> and provide pairs of original file/transformed file
to map from the originals to the files after transformations are applied.
Finally introduce the c-arcmt-test utility that exercises the new libclang functions,
update arcmt-test, and add tests for the whole process.
rdar://9735086.
llvm-svn: 134844
|
| |
|
|
|
|
| |
asm-errors.c
llvm-svn: 134811
|
| |
|
|
| |
llvm-svn: 134797
|
| |
|
|
| |
llvm-svn: 134680
|
| |
|
|
|
|
| |
fault if no arguments are given.
llvm-svn: 134618
|
| |
|
|
|
|
|
|
|
| |
clang_codeCompleteGetContexts(), that provides the client with
information about the context in which code completion has occurred
and what kinds of entities make sense as completions at that
point. Patch by Connor Wakamo!
llvm-svn: 134615
|
| |
|
|
| |
llvm-svn: 134550
|
| |
|
|
| |
llvm-svn: 134526
|
| |
|
|
|
|
|
| |
between different classes of errors. Addresses most of
<rdar://problem/9660328>.
llvm-svn: 134495
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bendersky. Specifically:
* Implemented a new function in libclang: clang_isAttribute
* Fixing TranslationUnit.get_includes to only go through the argument
* buffer when it contains something. This fixed a crash on Windows
* clang_getFileName returns CXString, not char*. Made appropriate
* fixes in cindex.py - now the relevant tests pass and we can see the
* full locations correctly again (previously there was garbage in
* place of the file name)
* Exposed clang_getCursorDisplayName to the python bindings
llvm-svn: 134460
|
| |
|
|
|
|
|
|
|
|
|
| |
for a template template parameter.
Uses to follow.
I've also made the uniquing of SubstTemplateTemplateParmPacks
use a ContextualFoldingSet as a minor space efficiency.
llvm-svn: 134137
|
| |
|
|
| |
llvm-svn: 134128
|
| |
|
|
|
|
|
|
| |
it at the appropriate place in CIndex.cpp
No functionality change.
llvm-svn: 134104
|
| |
|
|
|
|
| |
functionality change.
llvm-svn: 134103
|
| |
|
|
| |
llvm-svn: 133971
|
| |
|
|
|
|
| |
aren't completely off, roughly a 1% speedup on SingleSource/UnitTests/ObjC/trivial-interface.m .
llvm-svn: 133968
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
cursor
when the expression source range overlaps the declaration range.
This can happen for C++ constructor expressions whose range generally
include the variable declaration, e.g.:
MyCXXClass foo; // Make sure pointing at 'foo' returns a VarDecl cursor.
rdar://9124499.
llvm-svn: 133930
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
annotation of the
variable declaration that it belongs to.
This can happen for C++ constructor expressions whose range generally
include the variable declaration, e.g.:
MyCXXClass foo; // Make sure we don't annotate 'foo' as a CallExpr cursor.
rdar://9124499.
llvm-svn: 133929
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
MaterializeTemporaryExpr captures a reference binding to a temporary
value, making explicit that the temporary value (a prvalue) needs to
be materialized into memory so that its address can be used. The
intended AST invariant here is that a reference will always bind to a
glvalue, and MaterializeTemporaryExpr will be used to convert prvalues
into glvalues for that binding to happen. For example, given
const int& r = 1.0;
The initializer of "r" will be a MaterializeTemporaryExpr whose
subexpression is an implicit conversion from the double literal "1.0"
to an integer value.
IR generation benefits most from this new node, since it was
previously guessing (badly) when to materialize temporaries for the
purposes of reference binding. There are likely more refactoring and
cleanups we could perform there, but the introduction of
MaterializeTemporaryExpr fixes PR9565, a case where IR generation
would effectively bind a const reference directly to a bitfield in a
struct. Addresses <rdar://problem/9552231>.
llvm-svn: 133521
|
| |
|
|
|
|
| |
edge has been broken.
llvm-svn: 133343
|
| |
|
|
| |
llvm-svn: 133342
|
| |
|
|
|
|
|
|
| |
initialization of SourceManager
because it is going to modify the input file.
llvm-svn: 133323
|
| |
|
|
|
|
| |
layering problem has been addressed.
llvm-svn: 133217
|
| |
|
|
| |
llvm-svn: 133147
|
| |
|
|
|
|
| |
before it on the link line.
llvm-svn: 133145
|
| |
|
|
|
|
| |
linking unnecessarily into libclang.
llvm-svn: 133129
|
| |
|
|
|
|
| |
hopefully fix MSVC failures.
llvm-svn: 133119
|
| |
|
|
| |
llvm-svn: 133116
|
| |
|
|
|
|
| |
for this.
llvm-svn: 133104
|
| |
|
|
|
|
|
|
|
|
| |
Language-design credit goes to a lot of people, but I particularly want
to single out Blaine Garst and Patrick Beard for their contributions.
Compiler implementation credit goes to Argyrios, Doug, Fariborz, and myself,
in no particular order.
llvm-svn: 133103
|
| |
|
|
|
|
|
| |
__builtin_astype(): Used to reinterpreted as another data type of the same size using for both scalar and vector data types.
Added test case.
llvm-svn: 132612
|
| |
|
|
|
|
| |
libclang. Fixes <rdar://problem/9537904>.
llvm-svn: 132603
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
parameter types to be ill-formed. However, it relies on the
completeness of method parameter types when producing metadata, e.g.,
for a protocol, leading IR generating to crash in such cases.
Since there's no real way to tighten down the semantics of Objective-C
here without breaking existing code, do something safe but lame:
suppress the generation of metadata when this happens.
Fixes <rdar://problem/9123036>.
llvm-svn: 132171
|
| |
|
|
|
|
|
|
|
| |
Patch by Matthieu Monrocq with tweaks by me to avoid StringRefs in the static
diagnostic data structures, which resulted in a huge global-var-init function.
Depends on llvm commit r132046.
llvm-svn: 132047
|