]> granicus.if.org Git - clang/log
clang
11 years agoImplement CodeGen for C++11 thread_local, following the Itanium ABI specification...
Richard Smith [Fri, 19 Apr 2013 16:42:07 +0000 (16:42 +0000)]
Implement CodeGen for C++11 thread_local, following the Itanium ABI specification as discussed on cxx-abi-dev.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179858 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[analyzer] Call proper callback for const regions escaped other then on call.
Anton Yartsev [Fri, 19 Apr 2013 09:39:51 +0000 (09:39 +0000)]
[analyzer] Call proper callback for const regions escaped other then on call.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179846 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRevert "PR14606: Debug info for using directives/DW_TAG_imported_module"
Eric Christopher [Fri, 19 Apr 2013 07:46:36 +0000 (07:46 +0000)]
Revert "PR14606: Debug info for using directives/DW_TAG_imported_module"

This reverts commit r179837 as it seems to be causing test failures.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179839 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoPR14606: Debug info for using directives/DW_TAG_imported_module
David Blaikie [Fri, 19 Apr 2013 07:04:02 +0000 (07:04 +0000)]
PR14606: Debug info for using directives/DW_TAG_imported_module

More changes later for using declarations/DW_TAG_imported_declaration.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179837 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoGive CGDebugInfo::getContextDescriptor a more specific return type
David Blaikie [Fri, 19 Apr 2013 06:56:38 +0000 (06:56 +0000)]
Give CGDebugInfo::getContextDescriptor a more specific return type

Not that the DI* hierarchy is terribly type safe, but this makes the contract a
little clearer I think.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179835 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[libclang] Fix copy-paste error in comment.
Argyrios Kyrtzidis [Fri, 19 Apr 2013 00:51:52 +0000 (00:51 +0000)]
[libclang] Fix copy-paste error in comment.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179823 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[libclang] Introduce clang_Cursor_isVariadic, which returns non-zero if the given...
Argyrios Kyrtzidis [Thu, 18 Apr 2013 23:53:05 +0000 (23:53 +0000)]
[libclang] Introduce clang_Cursor_isVariadic, which returns non-zero if the given cursor is a variadic function or method.

rdar://13667150

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179819 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoObjective-C++: Enable passing of modern C++11 style
Fariborz Jahanian [Thu, 18 Apr 2013 23:43:21 +0000 (23:43 +0000)]
Objective-C++: Enable passing of modern C++11 style
initialized temporaries to objc++ methods.
// rdar://12788429

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179818 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[libclang] Introduce clang_Cursor_getObjCDeclQualifiers, to query for 'ObjC Qualifier...
Argyrios Kyrtzidis [Thu, 18 Apr 2013 23:29:12 +0000 (23:29 +0000)]
[libclang] Introduce clang_Cursor_getObjCDeclQualifiers, to query for 'ObjC Qualifiers' written next to the return and
parameter types in an ObjC method declarations.

rdar://13676977

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179816 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoFix typo.
Chad Rosier [Thu, 18 Apr 2013 23:12:05 +0000 (23:12 +0000)]
Fix typo.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179811 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdd comment to describe cleverness.
Benjamin Kramer [Thu, 18 Apr 2013 22:49:48 +0000 (22:49 +0000)]
Add comment to describe cleverness.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179806 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[libclang] Introduce clang_Cursor_getObjCPropertyAttributes to query the written...
Argyrios Kyrtzidis [Thu, 18 Apr 2013 22:15:49 +0000 (22:15 +0000)]
[libclang] Introduce clang_Cursor_getObjCPropertyAttributes to query the written attributes in a property declaration.

rdar://13684512

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179803 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoComment parsing: simplify code. As a side effect, this also silences GCC's
Dmitri Gribenko [Thu, 18 Apr 2013 20:50:35 +0000 (20:50 +0000)]
Comment parsing: simplify code.  As a side effect, this also silences GCC's
-Wunitnitialized warning.

Patch by Rui Ueyama.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179794 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoObjective-C parsing [qoi]: Provide good recovery when
Fariborz Jahanian [Thu, 18 Apr 2013 19:37:43 +0000 (19:37 +0000)]
Objective-C parsing [qoi]: Provide good recovery when
Objective-C dictionary literals has bad syntax for the
separator. // rdar://10679157

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179784 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[CMake] Create the directory before creating the link to the clang headers.
Argyrios Kyrtzidis [Thu, 18 Apr 2013 18:54:03 +0000 (18:54 +0000)]
[CMake] Create the directory before creating the link to the clang headers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179782 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agosome more tests for r179743.
Argyrios Kyrtzidis [Thu, 18 Apr 2013 18:32:48 +0000 (18:32 +0000)]
some more tests for r179743.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179781 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdd IRGen test case for r179743.
Argyrios Kyrtzidis [Thu, 18 Apr 2013 17:52:10 +0000 (17:52 +0000)]
Add IRGen test case for r179743.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179777 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[analyzer] Refine 'nil receiver' diagnostics to mention the name of the method not...
Ted Kremenek [Thu, 18 Apr 2013 17:44:15 +0000 (17:44 +0000)]
[analyzer] Refine 'nil receiver' diagnostics to mention the name of the method not called.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179776 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoDropped the parentheses for #pragma message and its kin in the -E output generator.
Andy Gibbs [Thu, 18 Apr 2013 16:49:37 +0000 (16:49 +0000)]
Dropped the parentheses for #pragma message and its kin in the -E output generator.

This was a suggestion by Jordan Rose since the documented format for these pragmas is without the parentheses.  At the same time, I've increased test coverage too for the preprocessed output.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179771 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdds a new doxygen tag needed. // rdar://12379053
Fariborz Jahanian [Thu, 18 Apr 2013 16:45:57 +0000 (16:45 +0000)]
Adds a new doxygen tag needed. // rdar://12379053

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179770 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[libclang] Report parameter array types as written in source, not decayed to pointer...
Argyrios Kyrtzidis [Thu, 18 Apr 2013 16:41:15 +0000 (16:41 +0000)]
[libclang] Report parameter array types as written in source, not decayed to pointer types.

Patch by Doug.
rdar://13684618

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179769 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[analyzer] "Force" LazyCompoundVals on bind when they are simple enough.
Jordan Rose [Thu, 18 Apr 2013 16:33:46 +0000 (16:33 +0000)]
[analyzer] "Force" LazyCompoundVals on bind when they are simple enough.

The analyzer uses LazyCompoundVals to represent rvalues of aggregate types,
most importantly structs and arrays. This allows us to efficiently copy
around an entire struct, rather than doing a memberwise load every time a
struct rvalue is encountered. This can also keep memory usage down by
allowing several structs to "share" the same snapshotted bindings.

However, /lookup/ through LazyCompoundVals can be expensive, especially
since they can end up chaining back to the original value. While we try
to reuse LazyCompoundVals whenever it's safe, and cache information about
this transitivity, the fact is it's sometimes just not a good idea to
perpetuate LazyCompoundVals -- the tradeoffs just aren't worth it.

This commit changes RegionStore so that binding a LazyCompoundVal to struct
will do a memberwise copy if the struct is simple enough. Today's definition
of "simple enough" is "up to N scalar members" (see below), but that could
easily be changed in the future. This is enough to bring the test case in
PR15697 back down to a manageable analysis time (within 20% of its original
time, in an unfair test where the new analyzer is not compiled with LTO).

The actual value of "N" is controlled by a new -analyzer-config option,
'region-store-small-struct-limit'. It defaults to "2", meaning structs with
zero, one, or two scalar members will be considered "simple enough" for
this code path.

It's worth noting that a more straightforward implementation would do this
on load, not on bind, and make use of the structure we already have for this:
CompoundVal. A long time ago, this was actually how RegionStore modeled
aggregate-to-aggregate copies, but today it's only used for compound literals.
Unfortunately, it seems that we've special-cased LazyCompoundVal in certain
places (such as liveness checks) but failed to similarly special-case
CompoundVal in all of them. Until we're confident that CompoundVal is
handled properly everywhere, this solution is safer, since the entire
optimization is just an implementation detail of RegionStore.

<rdar://problem/13599304>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179767 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[analyzer] Don't crash if we cache out after making a temporary region.
Jordan Rose [Thu, 18 Apr 2013 16:33:40 +0000 (16:33 +0000)]
[analyzer] Don't crash if we cache out after making a temporary region.

A C++ overloaded operator may be implemented as an instance method, and
that instance method may be called on an rvalue object, which has no
associated region. The analyzer handles this by creating a temporary region
just for the evaluation of this call; however, it is possible that /by
creating the region/, the analyzer ends up in a previously-explored state.
In this case we don't need to continue along this path.

This doesn't actually show any behavioral change now, but it starts being
used with the next commit and prevents an assertion failure there.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179766 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoSpecify that we're parsing ms-style inline assembly.
Chad Rosier [Thu, 18 Apr 2013 15:45:31 +0000 (15:45 +0000)]
Specify that we're parsing ms-style inline assembly.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179762 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoMultiple improvements to the AST matcher tutorial.
Manuel Klimek [Thu, 18 Apr 2013 14:30:45 +0000 (14:30 +0000)]
Multiple improvements to the AST matcher tutorial.

Patch by Jochen Eisinger.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179758 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoReject asm output constraints that consist of modifiers only.
Benjamin Kramer [Thu, 18 Apr 2013 13:23:23 +0000 (13:23 +0000)]
Reject asm output constraints that consist of modifiers only.

Fixes PR15759.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179756 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdd llvm_unreachable at end of fully covered switch to pacify GCC.
Benjamin Kramer [Thu, 18 Apr 2013 10:44:27 +0000 (10:44 +0000)]
Add llvm_unreachable at end of fully covered switch to pacify GCC.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179753 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[Parser] Handle #pragma pack/align inside C structs.
Argyrios Kyrtzidis [Thu, 18 Apr 2013 01:42:35 +0000 (01:42 +0000)]
[Parser] Handle #pragma pack/align inside C structs.

Fixes PR13580. Patch by Serge Pavlov!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179743 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoSwitch the note order for -Woverloaded-shift-op-parentheses so that the note
Richard Trieu [Thu, 18 Apr 2013 01:04:37 +0000 (01:04 +0000)]
Switch the note order for -Woverloaded-shift-op-parentheses so that the note
with the silence fix-it comes first.  This is more consistent with the rest
of the warnings in -Wparentheses.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179742 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoUpdate the -Wparentheses tests to check that fix-its are in the correct place.
Richard Trieu [Thu, 18 Apr 2013 00:56:23 +0000 (00:56 +0000)]
Update the -Wparentheses tests to check that fix-its are in the correct place.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179740 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[analyzer] Tweak getDerefExpr more to track DeclRefExprs to references.
Anna Zaks [Thu, 18 Apr 2013 00:15:15 +0000 (00:15 +0000)]
[analyzer] Tweak getDerefExpr more to track DeclRefExprs to references.

In the committed example, we now see a note that tells us when the pointer
was assumed to be null.

This is the only case in which getDerefExpr returned null (failed to get
the dereferenced expr) throughout our regression tests. (There were multiple
occurrences of this one.)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179736 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[analyzer] Improve dereferenced expression tracking for MemberExpr with a dot and...
Anna Zaks [Wed, 17 Apr 2013 23:17:43 +0000 (23:17 +0000)]
[analyzer] Improve dereferenced expression tracking for MemberExpr with a dot and non-reference base

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179734 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdd description of -Ofast optimization option to the man page. <rdar://13660458>
Bob Wilson [Wed, 17 Apr 2013 22:32:43 +0000 (22:32 +0000)]
Add description of -Ofast optimization option to the man page. <rdar://13660458>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179733 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[analyzer] Gain more precision retrieving the right SVal by specifying the type of...
Anna Zaks [Wed, 17 Apr 2013 22:29:51 +0000 (22:29 +0000)]
[analyzer] Gain more precision retrieving the right SVal by specifying the type of the expression.

Thanks to Jordan for suggesting the fix.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179732 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[analyzer] Allow TrackConstraintBRVisitor to work when the value it’s tracking is...
Anna Zaks [Wed, 17 Apr 2013 22:29:47 +0000 (22:29 +0000)]
[analyzer] Allow TrackConstraintBRVisitor to work when the value it’s tracking is not live in the last node of the path

We always register the visitor on a node in which the value we are tracking is live and constrained. However,
the visitation can restart at a node, later on the path, in which the value is under constrained because
it is no longer live. Previously, we just silently stopped tracking in that case.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179731 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[Modules] Use global index to improve typo correction performance
Argyrios Kyrtzidis [Wed, 17 Apr 2013 22:10:55 +0000 (22:10 +0000)]
[Modules] Use global index to improve typo correction performance

Typo correction for an unqualified name needs to walk through all of the identifier tables of all modules.
When we have a global index, just walk its identifier table only.

rdar://13425732

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179730 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdd support for gcc's spelling of -fcolor-diagnostics.
Nico Weber [Wed, 17 Apr 2013 21:52:44 +0000 (21:52 +0000)]
Add support for gcc's spelling of -fcolor-diagnostics.

See http://gcc.gnu.org/onlinedocs/gcc/Language-Independent-Options.html

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179728 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[tests] Only include stdint.h if we are in freestanding mode.
Daniel Dunbar [Wed, 17 Apr 2013 21:11:07 +0000 (21:11 +0000)]
[tests] Only include stdint.h if we are in freestanding mode.

 - We shouldn't even try to include stdint.h in hosted mode, as the dependency
   on even parsing a platforms stdint.h might fail for some targets.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179723 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[document parsing]: When tag declaration (but not definition!)
Fariborz Jahanian [Wed, 17 Apr 2013 21:05:20 +0000 (21:05 +0000)]
[document parsing]: When tag declaration (but not definition!)
is part of the decl-specifier-seq of some other declaration,
it doesn't get comment. // rdar://12390371

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179722 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoTest cases for r179719.
Chad Rosier [Wed, 17 Apr 2013 21:02:39 +0000 (21:02 +0000)]
Test cases for r179719.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179720 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoFix off-by-one error in #pragma clang system_header.
Jordan Rose [Wed, 17 Apr 2013 19:09:18 +0000 (19:09 +0000)]
Fix off-by-one error in #pragma clang system_header.

The system_header pragma (from GCC) is implemented using line notes in the
source manager. However, a line note's line number specifies the number
not for the current line, but for the next line. This was making all
line numbers appear off by one after the pragma.

Reported by Andy Gibbs, uncovered during r179677.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179709 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoPR15755: don't drop parameter packs when dropping parameters with default
Richard Smith [Wed, 17 Apr 2013 19:00:52 +0000 (19:00 +0000)]
PR15755: don't drop parameter packs when dropping parameters with default
arguments in the formation of a candidate set of inheriting constructors.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179708 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoSema: Remove unused variable.
Benjamin Kramer [Wed, 17 Apr 2013 18:05:23 +0000 (18:05 +0000)]
Sema: Remove unused variable.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179701 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[analyzer] Don't warn for returning void expressions in void blocks.
Jordan Rose [Wed, 17 Apr 2013 18:03:48 +0000 (18:03 +0000)]
[analyzer] Don't warn for returning void expressions in void blocks.

This was slightly tricky because BlockDecls don't currently store an
inferred return type. However, we can rely on the fact that blocks with
inferred return types will have return statements that match the inferred
type.

<rdar://problem/13665798>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179699 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoUnified token breaking logic: support for line comments.
Alexander Kornienko [Wed, 17 Apr 2013 17:34:05 +0000 (17:34 +0000)]
Unified token breaking logic: support for line comments.

Summary:
Added BreakableLineComment, moved common code from
BreakableBlockComment to newly added BreakableComment. As a side-effect of the
rewrite, found another problem with escaped newlines and had to change
code which removes trailing whitespace from line comments not to break after
this patch.

Reviewers: klimek, djasper

Reviewed By: klimek

CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D682

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179693 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRevert r179671 and just pass a triple to the test for a platform with known
Eric Christopher [Wed, 17 Apr 2013 17:27:51 +0000 (17:27 +0000)]
Revert r179671 and just pass a triple to the test for a platform with known
TLS support.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179692 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoDR974: Lambdas can have default arguments.
Richard Smith [Wed, 17 Apr 2013 16:25:20 +0000 (16:25 +0000)]
DR974: Lambdas can have default arguments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179688 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoImplemented #pragma GCC warning/error in the same mould as #pragma message.
Andy Gibbs [Wed, 17 Apr 2013 16:16:16 +0000 (16:16 +0000)]
Implemented #pragma GCC warning/error in the same mould as #pragma message.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179687 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoThis corrects problems in the LibASTMatchers tutorial.
Manuel Klimek [Wed, 17 Apr 2013 15:02:12 +0000 (15:02 +0000)]
This corrects problems in the LibASTMatchers tutorial.

Patch by Jochen Eisinger.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179683 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoSet SRet flags properly in '-cxx-abi microsoft'.
Timur Iskhodzhanov [Wed, 17 Apr 2013 12:54:10 +0000 (12:54 +0000)]
Set SRet flags properly in '-cxx-abi microsoft'.

Also,
- abstract out the indirect/in memory/in registers decisions into the CGCXXABI
- fix handling of empty struct arguments for '-cxx-abi microsoft'
- add/fix tests

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179681 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoFix PR15291: noreturn adjustment in overload resolution for function templates, from...
Douglas Gregor [Wed, 17 Apr 2013 08:45:07 +0000 (08:45 +0000)]
Fix PR15291: noreturn adjustment in overload resolution for function templates, from Alexander Zinenko!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179680 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoExtended VerifyDiagnosticConsumer to also verify source file for diagnostic.
Andy Gibbs [Wed, 17 Apr 2013 08:06:46 +0000 (08:06 +0000)]
Extended VerifyDiagnosticConsumer to also verify source file for diagnostic.

VerifyDiagnosticConsumer previously would not check that the diagnostic and
its matching directive referenced the same source file.  Common practice was
to create directives that referenced other files but only by line number,
and this led to problems such as when the file containing the directive
didn't have enough lines to match the location of the diagnostic in the
other file, leading to bizarre file formatting and other oddities.

This patch causes VerifyDiagnosticConsumer to match source files as well as
line numbers.  Therefore, a new syntax is made available for directives, for
example:

// expected-error@file:line {{diagnostic message}}

This extends the @line feature where "file" is the file where the diagnostic
is generated.  The @line syntax is still available and uses the current file
for the diagnostic.  "file" can be specified either as a relative or absolute
path - although the latter has less usefulness, I think!  The #include search
paths will be used to locate the file and if it is not found an error will be
generated.

The new check is not optional: if the directive is in a different file to the
diagnostic, the file must be specified.  Therefore, a number of test-cases
have been updated with regard to this.

This closes out PR15613.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179677 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoSmall improvements to clang-format documentation and integration
Daniel Jasper [Wed, 17 Apr 2013 07:55:02 +0000 (07:55 +0000)]
Small improvements to clang-format documentation and integration
scripts.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179676 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdd a bit of a hack to deal with a failing testcase on darwin10 bots.
Eric Christopher [Wed, 17 Apr 2013 07:19:56 +0000 (07:19 +0000)]
Add a bit of a hack to deal with a failing testcase on darwin10 bots.

We currently emit an error message when you try to use thread local
storage on targets that don't support it and testing C++11 thread
locals will trip this. We don't want to xfail the test for all darwin
hosts so add a quick hack to check for darwin10 and disable the
test based on that. Only checking darwin10 because anything earlier
is really old and I don't have a list of what other hosts don't
support tls handy.

Alternate suggestions welcome!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179671 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRemove dead option.
Eric Christopher [Wed, 17 Apr 2013 07:19:52 +0000 (07:19 +0000)]
Remove dead option.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179670 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdd warning group -Woverloaded-shift-op-parentheses to -Wparentheses. This
Richard Trieu [Wed, 17 Apr 2013 02:12:45 +0000 (02:12 +0000)]
Add warning group -Woverloaded-shift-op-parentheses to -Wparentheses.  This
will fire on code such as:

  cout << x == 0;

which the compiler will intrepret as

  (cout << x) == 0;

This warning comes with two fixits attached to notes, one for parentheses to
silence the warning, and another to evaluate the comparison first.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179662 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoCorrect the range returned by ParmVarDecl::getSourceRange(), for parameters in ObjC...
Argyrios Kyrtzidis [Wed, 17 Apr 2013 01:56:48 +0000 (01:56 +0000)]
Correct the range returned by ParmVarDecl::getSourceRange(), for parameters in ObjC methods with postfix types.

For a parameter in a method like this:

-(int)methodWithFn:(void (*)(int *p))fn;

we would return the source range of the type and not include the parameter name.

Fixes rdar://13668626.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179660 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[analyzer] Merge C++ status page into Open Projects.
Jordan Rose [Wed, 17 Apr 2013 00:57:39 +0000 (00:57 +0000)]
[analyzer] Merge C++ status page into Open Projects.

Also, add a few random extra open projects.

Most of C++ support is done; we don't need the status page anymore. We're
hoping that the C++-related open projects are the only major pieces of
functionality we don't model at this point.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179659 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[analyzer] Open Projects: grammar, phrasing, formatting
Jordan Rose [Wed, 17 Apr 2013 00:57:24 +0000 (00:57 +0000)]
[analyzer] Open Projects: grammar, phrasing, formatting

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179658 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoTest cases for r179655.
Chad Rosier [Wed, 17 Apr 2013 00:12:09 +0000 (00:12 +0000)]
Test cases for r179655.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179656 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoUse the extra info in global method pool to speed up looking for ObjC overridden...
Argyrios Kyrtzidis [Wed, 17 Apr 2013 00:09:08 +0000 (00:09 +0000)]
Use the extra info in global method pool to speed up looking for ObjC overridden methods.

When we are in a implementation, we check the global method pool whether there were category
methods with the same selector. If there were none (common case) we don't need to do lookups for
overridden methods again.

Note that for an interface method (if we don't encounter its implementation), it is considered that
it overrides methods that were declared before it, not for category methods introduced after it.

This is tradeoff in favor of performance, since it is expensive to do lookups in case there was a
category, and moving the global method pool to ASTContext (so we can check it) would increase complexity.

rdar://13508196

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179654 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoIn ASTContext::getOverriddenMethods, call overridden_methods_begin/overridden_methods...
Argyrios Kyrtzidis [Wed, 17 Apr 2013 00:09:03 +0000 (00:09 +0000)]
In ASTContext::getOverriddenMethods, call overridden_methods_begin/overridden_methods_end directly.

This avoids unnecessary Decl::getASTContext() invocations.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179653 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoEnhance the ObjC global method pool to record whether there were 0, 1, or >= 2 method...
Argyrios Kyrtzidis [Wed, 17 Apr 2013 00:08:58 +0000 (00:08 +0000)]
Enhance the ObjC global method pool to record whether there were 0, 1, or >= 2 methods (with a particular selector) inside categories.

This is done by extending ObjCMethodList (which is only used by the global method pool) to have 2 extra bits of information.
We will later take advantage of this info in global method pool for the overridden methods calculation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179652 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[6/6] ARM Neon Intrinsic Tablegen Test Generator.
Michael Gottesman [Tue, 16 Apr 2013 23:00:26 +0000 (23:00 +0000)]
[6/6] ARM Neon Intrinsic Tablegen Test Generator.

Added GenerateChecksForIntrinsic method to generate FileCheck patterns
for generated arm neon tests.

Reviewed by Bob Wilson.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179644 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[5/6] ARM Neon Intrinsic Tablegen Test Generator.
Michael Gottesman [Tue, 16 Apr 2013 22:55:01 +0000 (22:55 +0000)]
[5/6] ARM Neon Intrinsic Tablegen Test Generator.

Changed the test generation target cpu type from cortex-a9 to swift.

Reviewed by Bob Wilson.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179642 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[4/6] ARM Neon Intrinsic Tablegen Test Generator.
Michael Gottesman [Tue, 16 Apr 2013 22:48:52 +0000 (22:48 +0000)]
[4/6] ARM Neon Intrinsic Tablegen Test Generator.

Added code to NeonEmitter::runTests so that GenTest gets all of the needed
arguments to invoke the neon test generation methods.

Reviewed by Bob Wilson.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179640 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoDon't propagate around TargetOptions in IR-gen; we don't use it.
John McCall [Tue, 16 Apr 2013 22:48:20 +0000 (22:48 +0000)]
Don't propagate around TargetOptions in IR-gen; we don't use it.

Patch by Stephen Lin!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179639 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoStandardize accesses to the TargetInfo in IR-gen.
John McCall [Tue, 16 Apr 2013 22:48:15 +0000 (22:48 +0000)]
Standardize accesses to the TargetInfo in IR-gen.

Patch by Stephen Lin!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179638 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoDon't put too much thought into whether or not to capture a
John McCall [Tue, 16 Apr 2013 22:32:04 +0000 (22:32 +0000)]
Don't put too much thought into whether or not to capture a
type-dependent intermediate result in a postfix ++ pseudo-
object operation.

Test case by Tong Shen.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179637 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[3/6] ARM Neon Intrinsic Tablegen Test Generator.
Michael Gottesman [Tue, 16 Apr 2013 22:07:30 +0000 (22:07 +0000)]
[3/6] ARM Neon Intrinsic Tablegen Test Generator.

Refactored out the method InstructionTypeCode from MangleName for use in
further patches which perform neon tablegen test generation.

Reviewed by Bob Wilson.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179636 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoMake test portable.
Ted Kremenek [Tue, 16 Apr 2013 21:59:21 +0000 (21:59 +0000)]
Make test portable.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179635 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[analyzer] Add experimental option "leak-diagnostics-reference-allocation".
Ted Kremenek [Tue, 16 Apr 2013 21:44:22 +0000 (21:44 +0000)]
[analyzer] Add experimental option "leak-diagnostics-reference-allocation".

This is an opt-in tweak for leak diagnostics to reference the allocation
site if the diagnostic consumer only wants a pithy amount of information,
and not the entire path.

This is a strawman enhancement that I expect to see some experimentation
with over the next week, and can go away if we don't want it.

Currently it is only used by RetainCountChecker, but could be used
by MallocChecker if and when we decide this should stay in.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179634 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[analyzer] Add Open Projects page to the analyzer website
Anna Zaks [Tue, 16 Apr 2013 21:37:04 +0000 (21:37 +0000)]
[analyzer] Add Open Projects page to the analyzer website

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179631 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoobjc_autoreleasePoolPop() can throw if a -dealloc does.
John McCall [Tue, 16 Apr 2013 21:29:40 +0000 (21:29 +0000)]
objc_autoreleasePoolPop() can throw if a -dealloc does.
Model it as throwing so that the exception can be caught.

This is generally not expected to have significant code-size
impact because the contents of the @autoreleasepool block
are very likely to contain a call, very likely at the same
cleanup level as the @autoreleasepool itself.

rdar://13660038

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179630 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoTrying fixing test to make buildbot happy again.
Fariborz Jahanian [Tue, 16 Apr 2013 21:19:17 +0000 (21:19 +0000)]
Trying fixing test to make buildbot happy again.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179629 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[2/6] ARM Neon Intrinsic Tablegen Test Generator.
Michael Gottesman [Tue, 16 Apr 2013 21:18:42 +0000 (21:18 +0000)]
[2/6] ARM Neon Intrinsic Tablegen Test Generator.

This patch causes OpInst records to be silently identified with their Non-Op
inst counterparts so that the same test generation infrastructure can be used to
generate tests.

Reviewed by Bob Wilson.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179628 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoProperly sort list.
Ted Kremenek [Tue, 16 Apr 2013 21:10:09 +0000 (21:10 +0000)]
Properly sort list.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179627 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoFactor CheckerManager to be able to pass AnalyzerOptions to checkers
Ted Kremenek [Tue, 16 Apr 2013 21:10:05 +0000 (21:10 +0000)]
Factor CheckerManager to be able to pass AnalyzerOptions to checkers
during checker registration.  There are no immediate clients of this,
but this provides a way for checkers to query the options table
at startup instead.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179626 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRemove unused "getConfig()" method. A new way is to have high-level
Ted Kremenek [Tue, 16 Apr 2013 21:10:02 +0000 (21:10 +0000)]
Remove unused "getConfig()" method.  A new way is to have high-level
APIs that access the configuration table without clients reasoning
about the string table.  The string table is an implementation
detail.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179625 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[1/6] ARM Neon Intrinsic Tablegen Test Generator.
Michael Gottesman [Tue, 16 Apr 2013 21:08:04 +0000 (21:08 +0000)]
[1/6] ARM Neon Intrinsic Tablegen Test Generator.

Changes necessary to arm_neon.td for the generation of Neon tests.

This is the first of six patches to add to the arm neon tablegen
generator the capability of generating tests to verify that the various
ARM intrinsics are implemented properly.

The changes include such items as:
  1. Adding attributes to the Inst record so that additional metadata that is only
     needed for the tests can be specified in TableGen.
  2. Adding wrapper classes for operator (i.e. ``Op'') intrinsics which before
     were simply notates as Inst. This allows us to classify what sort of test
     to generate for said intrinsic and further since the classes do not effect
     the behavior of the Inst base class, allow for normal functioning.

Reviewed by Bob Wilson.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179624 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoSema for Captured Statements
Tareq A. Siraj [Tue, 16 Apr 2013 19:37:38 +0000 (19:37 +0000)]
Sema for Captured Statements

Add CapturedDecl to be the DeclContext for CapturedStmt, and perform semantic
analysis. Currently captures all variables by reference.

TODO: templates

Author: Ben Langmuir <ben.langmuir@intel.com>

Differential Revision: http://llvm-reviews.chandlerc.com/D433

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179618 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agorewrite-includes: Rewrite __has_include(_next) to get rid of a host dependency.
Benjamin Kramer [Tue, 16 Apr 2013 19:08:41 +0000 (19:08 +0000)]
rewrite-includes: Rewrite __has_include(_next) to get rid of a host dependency.

This broke e.g. compiling a crash report from a glibc system on Darwin. Sadly,
the implementation had to game the lexer a lot as we're not using a real
preprocessor here. It also doesn't handle special cases like arbitrary macros in
__has_include, but since this macro isn't common outside of clang's headers we
can get away with that.

Fixes PR14422.

Differential Revision: http://llvm-reviews.chandlerc.com/D594

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179616 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoImplement CapturedStmt AST
Tareq A. Siraj [Tue, 16 Apr 2013 18:53:08 +0000 (18:53 +0000)]
Implement CapturedStmt AST

CapturedStmt can be used to implement generic function outlining as described in
http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-January/027540.html.

CapturedStmt is not exposed to the C api.

Serialization and template support are pending.

Author: Wei Pan <wei.pan@intel.com>

Differential Revision: http://llvm-reviews.chandlerc.com/D370

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179615 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoParser support for #pragma clang __debug captured
Tareq A. Siraj [Tue, 16 Apr 2013 18:41:26 +0000 (18:41 +0000)]
Parser support for #pragma clang __debug captured

This patch implements parsing ‘#pragma clang __debug’ as a first step for
implementing captured statements. Captured statements are a mechanism for
doing outlining in the AST.
see http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-January/027540.html.

Currently returns StmtEmpty

Author: Andy Zhang <andy.zhang@intel.com>

Differential Revision: http://llvm-reviews.chandlerc.com/D369

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179614 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[Modules] Convert module specific -fno-modules-autolink into -fno-autolink.
Daniel Dunbar [Tue, 16 Apr 2013 18:21:19 +0000 (18:21 +0000)]
[Modules] Convert module specific -fno-modules-autolink into -fno-autolink.

 - There is no reason to have a modules specific flag for disabling
   autolinking. Instead, convert the existing flag into -fno-autolink (which
   should cover other autolinking code generation paths like #pragmas if and
   when we support them).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179612 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agomodify test to try to make buildbot happy.
Fariborz Jahanian [Tue, 16 Apr 2013 17:18:37 +0000 (17:18 +0000)]
modify test to try to make buildbot happy.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179606 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRemove setjmp.h header file from Sema/return.c test and include necessary
Jyotsna Verma [Tue, 16 Apr 2013 16:10:38 +0000 (16:10 +0000)]
Remove setjmp.h header file from Sema/return.c test and include necessary
declarations explicitly in the test.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179604 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoFix PR4296: Add parser detection/error recovery for nested functions, from Serve...
Douglas Gregor [Tue, 16 Apr 2013 16:01:32 +0000 (16:01 +0000)]
Fix PR4296: Add parser detection/error recovery for nested functions, from Serve Pavlov!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179603 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoUse -emit-llvm for the following tests to stop them from failing for Hexagon:
Jyotsna Verma [Tue, 16 Apr 2013 15:55:41 +0000 (15:55 +0000)]
Use -emit-llvm for the following tests to stop them from failing for Hexagon:

CodeGenCXX/vtable-debug-info.cpp
Driver/objc++-cpp-output.mm
Driver/objc-cpp-output.m

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179602 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoFix handling of atomic shift operations, from Serge Pavlov.
Douglas Gregor [Tue, 16 Apr 2013 15:41:08 +0000 (15:41 +0000)]
Fix handling of atomic shift operations, from Serge Pavlov.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179600 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoObjective-C IRGen. Use llvm::WeakVH
Fariborz Jahanian [Tue, 16 Apr 2013 15:25:39 +0000 (15:25 +0000)]
Objective-C IRGen. Use llvm::WeakVH
for caching couple of global symbols used
for generation of CF/NS string meta-data
so they are not released prematuely in certain
corner cases. // rdar:// 13598026.
Reviewed by John M.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179599 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoSuppress unused warning on static inline function template specializations.
Rafael Espindola [Tue, 16 Apr 2013 15:21:30 +0000 (15:21 +0000)]
Suppress unused warning on static inline function template specializations.

Patch by Halfdan Ingvarsson!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179598 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdd support for sparcv9 targets.
Jakob Stoklund Olesen [Tue, 16 Apr 2013 15:17:49 +0000 (15:17 +0000)]
Add support for sparcv9 targets.

The SPARC v8 and SPARC v8 architectures are very similar, so use a base
class to share most information between them.

Include operating systems with known SPARC v9 ports.

Also fix two issues with the SPARC v8 data layout string: SPARC v8 is a
big endian target with a 64-bit aligned stack.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179596 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoBasic support for Microsoft property declarations and
John McCall [Tue, 16 Apr 2013 07:28:30 +0000 (07:28 +0000)]
Basic support for Microsoft property declarations and
references thereto.

Patch by Tong Shen!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179585 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoCorrectly propagate the storage class to function template instantiations.
Rafael Espindola [Tue, 16 Apr 2013 02:29:15 +0000 (02:29 +0000)]
Correctly propagate the storage class to function template instantiations.

This fixes pr15753. This is another case of the fuzzy definition of the
"as written" storage class of an instantiation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179581 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[analyzer] Improve the malloc checker stack hint message
Anna Zaks [Tue, 16 Apr 2013 00:22:55 +0000 (00:22 +0000)]
[analyzer] Improve the malloc checker stack hint message

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179580 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[analyzer] Do not crash when processing binary "?:" in C++
Anna Zaks [Mon, 15 Apr 2013 22:38:07 +0000 (22:38 +0000)]
[analyzer] Do not crash when processing binary "?:" in C++

When computing the value of ?: expression, we rely on the last expression in
the previous basic block to be the resulting value of the expression. This is
not the case for binary "?:" operator (GNU extension) in C++. As the last
basic block has the expression for the condition subexpression, which is an
R-value, whereas the true subexpression is the L-value.

Note the operator evaluation just happens to work in C since the true
subexpression is an R-value (like the condition subexpression). CFG is the
same in C and C++ case, but the AST nodes are different, which the LValue to
Rvalue conversion happening after the BinaryConditionalOperator evaluation.

Changed the logic to only use the last expression from the predecessor only
if it matches either true or false subexpression. Note, the logic needed
fortification anyway: L and R were passed but not even used by the function.

Also, change the conjureSymbolVal to correctly compute the type, when the
expression is an LG-value.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179574 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[analyzer] Add pretty printing to CXXBaseObjectRegion.
Anna Zaks [Mon, 15 Apr 2013 22:38:04 +0000 (22:38 +0000)]
[analyzer] Add pretty printing to CXXBaseObjectRegion.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179573 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[analyzer] Address code review for r179395
Anna Zaks [Mon, 15 Apr 2013 22:37:59 +0000 (22:37 +0000)]
[analyzer] Address code review for r179395

Mostly refactoring + handle the nested fields by printing the innermost field only.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179572 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[analyzer] Add more specialized error messages for corner cases as per Jordan's code...
Anna Zaks [Mon, 15 Apr 2013 22:37:53 +0000 (22:37 +0000)]
[analyzer] Add more specialized error messages for corner cases as per Jordan's code review for r179396

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179571 91177308-0d34-0410-b5e6-96231b3b80d8