| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
| |
representation.
Add a type (ObjCObjectPointerType) and remove a type (ObjCQualifiedIdType).
This large/tedious patch is just a first step. Next step is to remove ObjCQualifiedInterfaceType. After that, I will remove the magic TypedefType for 'id' (installed by Sema). This work will enable various simplifications throughout clang (when dealing with ObjC types).
No functionality change.
llvm-svn: 73649
|
| |
|
|
| |
llvm-svn: 73648
|
| |
|
|
|
|
|
|
| |
GRState object has a direct reference to its GRStateManager, making
the functionality of GRStateRef redunandant. This will lead to some
nice API cleanup and code shrinking across libAnalysis.
llvm-svn: 73644
|
| |
|
|
|
|
| |
thereof. Patch by Anders Johnsen!
llvm-svn: 73641
|
| |
|
|
| |
llvm-svn: 73637
|
| |
|
|
| |
llvm-svn: 73626
|
| |
|
|
| |
llvm-svn: 73604
|
| |
|
|
|
|
| |
- Turns out libstdcxx greps for this in configure.
llvm-svn: 73582
|
| |
|
|
|
|
|
| |
- I think we will eventually need to support this for realz, and some build
processes seem to depend on these options.
llvm-svn: 73581
|
| |
|
|
|
|
| |
an extra pass to set the right APSInt bit width/signedness.
llvm-svn: 73580
|
| |
|
|
| |
llvm-svn: 73574
|
| |
|
|
|
|
|
|
|
|
| |
- Add "sections" to RegionStoreManager.cpp to delineate functionality.
- Add new function "CreateFieldsOnlyRegionStoreManager" that uses the new
RegionStoreFeatures class to use a reduced set of features from
RegionStoreManager (in this case, only field-sensitivity). This isn't
completely hooked up yet.
llvm-svn: 73572
|
| |
|
|
| |
llvm-svn: 73556
|
| |
|
|
|
|
| |
tool chain.
llvm-svn: 73555
|
| |
|
|
|
|
|
| |
InitializeAllAsmPrinters LLVM headers. Also includes some minor fixes
for the CMake-based build with Xcode.
llvm-svn: 73544
|
| |
|
|
|
|
|
|
| |
info. To handle this edge case, always create main compile unit first.
This fixes PR 4228.
llvm-svn: 73520
|
| |
|
|
|
|
|
| |
have target-specific builtins, and do not set the count.
Just default to 0 for these targets.
llvm-svn: 73510
|
| |
|
|
| |
llvm-svn: 73495
|
| |
|
|
|
|
|
|
|
| |
registered when PCH wasn't being used. We should always install (in BuiltinInfo)
information about target-specific builtins, but we shouldn't register any builtin
identifier infos. This fixes the build of apps that use PCH and target specific
builtins together.
llvm-svn: 73492
|
| |
|
|
|
|
| |
be unique.
llvm-svn: 73482
|
| |
|
|
| |
llvm-svn: 73474
|
| |
|
|
| |
llvm-svn: 73462
|
| |
|
|
| |
llvm-svn: 73452
|
| |
|
|
| |
llvm-svn: 73450
|
| |
|
|
|
|
| |
misinterpreted by clang scan-build
llvm-svn: 73415
|
| |
|
|
|
|
| |
retain/release checker
llvm-svn: 73411
|
| |
|
|
|
|
| |
C++-specific tokens.
llvm-svn: 73408
|
| |
|
|
| |
llvm-svn: 73402
|
| |
|
|
| |
llvm-svn: 73395
|
| |
|
|
| |
llvm-svn: 73391
|
| |
|
|
|
|
| |
its (possibly-remapped) diagnostics. Thanks, Chris!
llvm-svn: 73390
|
| |
|
|
|
|
|
| |
unnecessary, this was causing issues for assembler-with-cpp mode, which
doesn't process the directive.
llvm-svn: 73382
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ranges more similar to the console output. Consider:
#define FOO(X, Y) X/ Y
void foo(int *P, int *Q) {
FOO(P, Q);
}
Before we emitted:
t.c:4:3:{4:3-4:6}{4:3-4:6}: error: invalid operands to binary expression ('int *' and 'int *')
FOO(P, Q);
^~~~~~~~~
...
Note that while we underline the macro args that the range info just includes FOO
without its macros. This change teaches the printed ranges to include macro args
also so that we get:
t.c:4:3:{4:3-4:12}{4:3-4:12}: error: invalid operands to binary expression ('int *' and 'int *')
FOO(P, Q);
^~~~~~~~~
...
This fixes rdar://6939599
llvm-svn: 73378
|
| |
|
|
|
|
|
| |
the file at the point of the pragma. This allows clang to know that all
sourcelocations after the pragma are in a system header.
llvm-svn: 73376
|
| |
|
|
|
|
|
|
| |
like:
fatal error: could not find file '1.h' referenced by PCH file
instead of aborting with an assertion failure, PR4219
llvm-svn: 73371
|
| |
|
|
|
|
| |
Curfman!
llvm-svn: 73370
|
| |
|
|
| |
llvm-svn: 73367
|
| |
|
|
|
|
| |
can occur in the middle of comment tokens.
llvm-svn: 73365
|
| |
|
|
|
|
|
|
| |
corresponding reference to this symbol for every compilation unit that references the class. This causes linker errors when you try linking a program which references some classes but doesn't define them. The attached patch implements this support in clang, so you can compile a class with clang, reference it in a file compiled with GCC, and have it all work correctly."
Patch by David Chisnall!
llvm-svn: 73364
|
| |
|
|
|
|
| |
like "int x = + +3;".
llvm-svn: 73356
|
| |
|
|
|
|
| |
static intializers for structs.
llvm-svn: 73349
|
| |
|
|
|
|
|
|
|
|
| |
that were suppressed due to SFINAE. By checking whether any errors
occur at the end of template argument deduction, we avoid the
possibility of suppressing an error (due to SFINAE) and then
recovering so well that template argument deduction never detects that
there was a problem. Thanks to Eli for the push in this direction.
llvm-svn: 73336
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implement support for C++ Substitution Failure Is Not An Error
(SFINAE), which says that errors that occur during template argument
deduction do *not* produce diagnostics and do not necessarily make a
program ill-formed. Instead, template argument deduction silently
fails. This is currently implemented for template argument deduction
during matching of class template partial specializations, although
the mechanism will also apply to template argument deduction for
function templates. The scheme is simple:
- If we are in a template argument deduction context, any diagnostic
that is considered a SFINAE error (or warning) will be
suppressed. The error will be propagated up the call stack via the
normal means.
- By default, all warnings and errors are SFINAE errors. Add the
NoSFINAE class to a diagnostic in the .td file to make it a hard
error (e.g., for access-control violations).
Note that, to make this fully work, every place in Sema that emits an
error *and then immediately recovers* will need to check
Sema::isSFINAEContext() to determine whether it must immediately
return an error rather than recovering.
llvm-svn: 73332
|
| |
|
|
|
|
| |
foo has a constant address.
llvm-svn: 73321
|
| |
|
|
|
|
|
|
| |
preprocessor and initialize it early in clang-cc. This
ensures that __has_builtin works in all modes, not just
when ASTContext is around.
llvm-svn: 73319
|
| |
|
|
|
|
| |
fixes a layering violation in lib/Basic/Targets.cpp.
llvm-svn: 73318
|
| |
|
|
| |
llvm-svn: 73317
|
| |
|
|
| |
llvm-svn: 73316
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ExpectAndConsume instead of custom diag logic. This gets us an
insertion hint and positions the ; at the end of the line
instead of on the next token. Before:
t.c:5:1: error: expected ';' after return statement
}
^
after:
t.c:4:11: error: expected ';' after return statement
return 4
^
;
llvm-svn: 73315
|
| |
|
|
|
|
| |
diagnostics in some cases.
llvm-svn: 73314
|