Squashed commit of the following:

commit af42246bdafd7145ef0f0daaddda7e8c41baf265
Author: Stephen Hines <srhines@google.com>
Date:   Mon Mar 18 18:02:52 2013 -0700

    Update Clang for merge to r177345.

    Change-Id: I375c37904c0ca05b7bad8fc0fec0e21cc497cafc

commit 15d68882f5fa4afae8333e75b2bfd5e2834c8aaf
Merge: 9e8bf2c abc0bea
Author: Stephen Hines <srhines@google.com>
Date:   Mon Mar 18 17:30:40 2013 -0700

    Merge branch 'upstream' into merge_2013_03_18

    Conflicts:
    	lib/Sema/SemaDeclAttr.cpp

    Change-Id: I05e70941163ec5a461eba43ef78f6738cd5a1e69

commit abc0bea57d4e659d5cde178a4bb426acc48f999e
Author: David Blaikie <dblaikie@gmail.com>
Date:   Mon Mar 18 23:22:28 2013 +0000

    PR15539: Record "evaluating if/elif condition" flag in the right place

    The previous implementation missed the case where the elif condition was
    evaluated from the context of an #ifdef that was false causing PR15539.

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

commit e4d6112a4eaf341afacd95c9585efc28ec2eac5a
Author: Bill Wendling <isanbard@gmail.com>
Date:   Mon Mar 18 23:11:54 2013 +0000

    Update testcase for r177340.

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

commit 62ba4ba4852b3dc3a8c1c77b34b58a06077387d8
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Mon Mar 18 22:55:24 2013 +0000

    [frontend] Initialize the diagnostic client before loading an ast file.

    Issue reported by Tom Honermann!
    http://llvm.org/bugs/show_bug.cgi?id=15377

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

commit c7f811638f8603fa373d2be724e8b1c8ba51ad75
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Mon Mar 18 22:52:47 2013 +0000

    Add missing diagnostic for a nested-name-specifier on a free-standing type definition. Bump some related diagnostics from warning to extension in C++, since they're errors there. Add some missing checks for function specifiers on non-function declarations.

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

commit 0378433dcdf9a5701207c2a592b10da71ad9ba5d
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Mon Mar 18 22:23:49 2013 +0000

    [PCH] Fix assertion hit related to enum decls inside templated funtions.

    Report and suggested fix by Tom Honermann!
    http://llvm.org/bugs/show_bug.cgi?id=13020

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

commit 4882fe02d8d453084da563b9c18eb5545f0783d4
Author: Reed Kotler <rkotler@mips.com>
Date:   Mon Mar 18 22:18:00 2013 +0000

    This code works around what appears to be a bug in another part of clang.
    I have filed http://llvm.org/bugs/show_bug.cgi?id=15538 against clang.
    This code is safer anyway because "cast" assumes you really know that
    it's okay to make the cast. In this case isa should not be false and
    dyn_cast should not return null as far as I understand. But everything
    else is valid so I did not want to revert my previous patch for attributes
    mips16/nomips16 or use an llvm_unreachable here which would make a number
    of our tests fail for mips.

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

commit f72663fc962c1c27a4793ebd3d2e3d81a4f4e984
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Mon Mar 18 21:57:52 2013 +0000

    Add a linebreak. Linebreaks are cool.

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

commit 71434a891dccd8c29f28eb93b2fb4551f3350675
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Mon Mar 18 21:44:56 2013 +0000

    C++11 status: mark 'extended integral types' as N/A, since we don't support
    any, and add a note that we cannot treat __int128 as an extended integral type.

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

commit 07b0fdcee8d64222b274779d02851cc53d18e0db
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Mon Mar 18 21:12:30 2013 +0000

    Bring inheriting constructor implementation up-to-date with current defect
    reports, and implement implicit definition of inheriting constructors.
    Remaining missing features: inheriting constructor templates, implicit
    exception specifications for inheriting constructors, inheriting constructors
    from dependent bases.

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

commit 5b222059399ec9cccba7a393dc470adfb8a3db0f
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Mon Mar 18 20:48:54 2013 +0000

    Centralize the recording of which tools have been constructed.

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

commit 4b94f4daa13118441b4cf53b7e57cae1b48dc427
Author: Anna Zaks <ganna@apple.com>
Date:   Mon Mar 18 20:46:56 2013 +0000

    [analyzer] Warn when a ‘nil’ object is added to NSArray or NSMutableArray.

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

commit 51be73daa9df0b9eab157318a9274ebe3e46c627
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Mon Mar 18 19:41:18 2013 +0000

    Objective-C modern translator. Don't put line info
    into the pre-preprocessed file to be passed to
    modern translator when compiling in no debug mode.
    // rdar://13138170

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

commit f3260565f46491a0d99e41d47a13767218242ce5
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Mon Mar 18 18:50:01 2013 +0000

    Use early returns when checking if we already constructed a tool and when
    delegating to Generic_GCC::SelectTool (it already updates the tool map).

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

commit 26adbe42d1fecd135dea6739ec2801f02473218f
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Mon Mar 18 18:19:46 2013 +0000

    Remove unused argument.

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

commit af370e6e051e505016637e23418354db625dc796
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Mon Mar 18 18:10:27 2013 +0000

    Pass an ArgList to every toolchain constructor. Remove the useIntegratedAs
    argument.

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

commit 7ce8d82c4182b8b98d4b5c44f5258b9e9b2c1350
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Mon Mar 18 17:58:22 2013 +0000

    Inline ShouldUseIntegratedAssembler and move the documentation to
    useIntegratedAs.

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

commit 5470cd27e47aea163daaa76dde36010753400663
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Mon Mar 18 17:52:57 2013 +0000

    Refactor a bit of duplicated code to useIntegratedAs.

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

commit e5dce308870cd7d6b5156640af3724433bc1c575
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Mon Mar 18 17:25:58 2013 +0000

    Remove unused argument.

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

commit d5320184367b681087e9ff74fc57ed2c5954c8ec
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Mon Mar 18 15:33:26 2013 +0000

    Remove unused argument.

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

commit cf6d76af806f7e1ba97be7b72b31bc78b919e0f0
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Mar 18 12:50:26 2013 +0000

    Fix clang-format segfault.

    When annotating "lines" starting with ":", clang-format would segfault.
    This could actually happen in valid code, e.g.
      #define A :

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

commit 74c8b794be93e73ffca42b1dcf70f26c92d9ccfd
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Mon Mar 18 12:41:25 2013 +0000

    ObjCDictionaryElements are pod-like.

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

commit b234e7484b8b678977e5c6a6088dee323c72d3ab
Author: Anton Korobeynikov <asl@math.spbu.ru>
Date:   Mon Mar 18 07:59:20 2013 +0000

    Make sure to use same EABI version for external assembler as for integrated as.
    Patch by Andrew Turner!

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

commit 367989b354d38e9993eb53811501d794b385e661
Author: David Blaikie <dblaikie@gmail.com>
Date:   Sun Mar 17 20:29:22 2013 +0000

    Generalize a few debug info test cases

    Checking for the annotation comment rather than the metadata values makes these
    tests resilient to a coming refactor that will pull these fields out into a
    separate metadata node.

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

commit 7cd84baa533ae337e3eb6b7951d94ce94093d521
Author: Manman Ren <mren@apple.com>
Date:   Sat Mar 16 04:47:38 2013 +0000

    revert r177211 due to its potential issues

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

commit a8d937e4bdd39cdf503f77454e9dc4c9c730a9f7
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Mar 16 02:14:06 2013 +0000

    [analyzer] Model trivial copy/move assignment operators with a bind as well.

    r175234 allowed the analyzer to model trivial copy/move constructors as
    an aggregate bind. This commit extends that to trivial assignment
    operators as well. Like the last commit, one of the motivating factors here
    is not warning when the right-hand object is partially-initialized, which
    can have legitimate uses.

    <rdar://problem/13405162>

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

commit 6aa240c03dd68ab413106d6af7a18af1c9b4e872
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Sat Mar 16 01:40:35 2013 +0000

    Remove -Wspellcheck and replace it with a diagnostic option.

    Thanks to Richard S. for pointing out that the warning would show up
    with -Weverything.

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

commit 1efffab67364f5afcc25f5f5f77e0f7ba5d41055
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Mar 16 01:07:58 2013 +0000

    [analyzer] Separate graph trimming from creating the single-path graph.

    When we generate a path diagnostic for a bug report, we have to take the
    full ExplodedGraph and limit it down to a single path. We do this in two
    steps: "trimming", which limits the graph to all the paths that lead to
    this particular bug, and "creating the report graph", which finds the
    shortest path in the trimmed path to any error node.

    With BugReporterVisitor false positive suppression, this becomes more
    expensive: it's possible for some paths through the trimmed graph to be
    invalid (i.e. likely false positives) but others to be valid. Therefore
    we have to run the visitors over each path in the graph until we find one
    that is valid, or until we've ruled them all out. This can become quite
    expensive.

    This commit separates out graph trimming from creating the report graph,
    performing the first only once per bug equivalence class and the second
    once per bug report. It also cleans up that portion of the code by
    introducing some wrapper classes.

    This seems to recover most of the performance regression described in my
    last commit.

    <rdar://problem/13433687>

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

commit c9963132736782d0c9178c744b3e2307cfb98a08
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Mar 16 01:07:53 2013 +0000

    [analyzer] Eliminate InterExplodedGraphMap class and NodeBackMap typedef.

    ...in favor of this typedef:

      typedef llvm::DenseMap<const ExplodedNode *, const ExplodedNode *>
              InterExplodedGraphMap;

    Use this everywhere the previous class and typedef were used.

    Took the opportunity to ArrayRef-ize ExplodedGraph::trim while I'm at it.

    No functionality change.

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

commit 9a9fe4068eed2fc72ec985e5ae393fb79a8fb9ad
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Mar 16 01:07:47 2013 +0000

    [analyzer] Don't repeat a bug equivalence class if every report is invalid.

    I removed this check in the recursion->iteration commit, but forgot that
    generatePathDiagnostic may be called multiple times if there are multiple
    PathDiagnosticConsumers.

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

commit 2710ed8fd997be04ff447b8be2190f8fb34ac22b
Author: Manman Ren <mren@apple.com>
Date:   Sat Mar 16 00:11:09 2013 +0000

    Exploit this-return of a callsite in a this-return function.

    For constructors/desctructors that return 'this', if there exists a callsite
    that returns 'this' and is immediately before the return instruction, make
    sure we are using the return value from the callsite.

    We don't need to keep 'this' alive through the callsite. It also enables
    optimizations in the backend, such as tail call optimization.

    rdar://12818789

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

commit 70e82dc7a254054f0de491493489da162e63c364
Author: Richard Trieu <rtrieu@google.com>
Date:   Fri Mar 15 23:55:09 2013 +0000

    Improve template diffing handling of default integer values.

    When the template argument is both default and value dependent, the expression
    retrieved for the default argument cannot be evaluated, thus never matching
    any argument value.  To get the proper value, get the template argument
    from the desugared template specialization.  Also, output the original
    expression to provide more information about the argument mismatch.

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

commit 0621c45dcd4c5f43df0de5a2febae525d3287b74
Author: Anna Zaks <ganna@apple.com>
Date:   Fri Mar 15 23:34:31 2013 +0000

    [analyzer] Address a TODO in the StreamChecker; otherwise the output is non-deterministic.

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

commit 74c0d6988462c2cb882e7a8b8050fe119a5af56f
Author: Anna Zaks <ganna@apple.com>
Date:   Fri Mar 15 23:34:29 2013 +0000

    [analyzer] Use isLiveRegion to determine when SymbolRegionValue is dead.

    Fixes a FIXME, improves dead symbol collection, suppresses a false positive,
    which resulted from reusing the same symbol twice for simulation of 2 calls to the same function.

    Fixing this lead to 2 possible false negatives in CString checker. Since the checker is still alpha and
    the solution will not require revert of this commit, move the tests to a FIXME section.

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

commit f510f5cd57fa9b7ea6f6e103c65c0df95a55d986
Author: Anna Zaks <ganna@apple.com>
Date:   Fri Mar 15 23:34:25 2013 +0000

    [analyzer] BugReporterVisitors: handle the case where a ternary operator is wrapped in a cast.

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

commit f8ba81e8bbc4d0d424c3b4c3581a9467e972c4de
Author: Anna Zaks <ganna@apple.com>
Date:   Fri Mar 15 23:34:22 2013 +0000

    [analyzer] Address Jordan’s review of r177138 (a micro optimization)

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

commit 316dd5467bed9242088149fe92f3316ef4f235e9
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Mar 15 23:09:37 2013 +0000

    Fix buffer underrun (invalid read) triggered during diagnostic rendering.  The test would overflow when computing '0 - 1'.

    I don't have a good testcase for this that does not depend on system headers.
    It did not trigger with preprocessed output, and I had trouble reducing the example.

    Fixes <rdar://problem/13324594>.

    Thanks to Michael Greiner for reporting this issue.

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

commit 9cc3ed4e4d7f25b1af8ba7b85d324a0bb8747640
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Mar 15 22:43:10 2013 +0000

    [modules] Don't record the macros from the predefines buffer.

    These will be available in the current translation unit anyway, for
    modules they only waste space and deserialization time.

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

commit 4a18c3b25a2d7eb7f770ce91ee5e14433b2a1cb6
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Mar 15 22:15:07 2013 +0000

    <rdar://problem/13426257> Introduce SDKSettings.plist as an input file dependency for PCH/modules.

    When we're building a precompiled header or module against an SDK on
    Darwin, there will be a file SDKSettings.plist in the sysroot. Since
    stat()'ing every system header on which a module or PCH file depends
    is performance suicide, we instead stat() just SDKSettings.plist. This
    hack works well on Darwin; it's unclear how we want to handle this on
    other platforms. If there is a canonical file, we should use it; if
    not, we either have to take the performance hit of stat()'ing system
    headers repeatedly or roll the dice by not checking anything.

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

commit 9de50947ba381561a5236b3c878c83e4bb8c1088
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Mar 15 22:02:46 2013 +0000

    Simplify print logic, per feedback from Jordan Rose.

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

commit 7adf3a9f84688f334a1cd977317bb42f9e06c9f4
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Mar 15 21:50:10 2013 +0000

    Enhance -Wtautological-constant-out-of-range-compare to include the name of the enum constant.

    This is QoI.  Fixes <rdar://problem/13076064>.

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

commit 2f13eb116e62161c5e4d198f7831f226e5cea9da
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Mar 15 21:41:55 2013 +0000

    [analyzer] Make GRBugReporter::generatePathDiagnostic iterative, not recursive.

    The previous generatePathDiagnostic() was intended to be tail-recursive,
    restarting and trying again if a report was marked invalid. However:
     (1) this leaked all the cloned visitors, which weren't being deleted, and
     (2) this wasn't actually tail-recursive because some local variables had
         non-trivial destructors.

    This was causing us to overflow the stack on inputs with large numbers of
    reports in the same equivalence class, such as sqlite3.c. Being iterative
    at least prevents us from blowing out the stack, but doesn't solve the
    performance issue: suppressing thousands (yes, thousands) of paths in the
    same equivalence class is expensive. I'm looking into that now.

    <rdar://problem/13423498>

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

commit cc08ca9b3cd2b715a699bcc772ce2e83a502915a
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Mar 15 21:41:53 2013 +0000

    [analyzer] Collect stats on the max # of bug reports in an equivalence class.

    We discovered that sqlite3.c currently has 2600 reports in a single
    equivalence class; it would be good to know if this is a recent
    development or what.

    (For the curious, the different reports in an equivalence class represent
    the same bug found along different paths. When we're suppressing false
    positives, we need to go through /every/ path to make sure there isn't a
    valid path to a bug. This is a flaw in our after-the-fact suppression,
    made worse by the fact that that function isn't particularly optimized.)

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

commit 05cb2eb0a79a05e6079106575fbf0dd58a388edf
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Mar 15 21:41:50 2013 +0000

    [analyzer] Include opcode in dumping a SymSymExpr.

    For debugging use only; no functionality change.

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

commit 6a15f39a6bfd7a30085c5fa8f67d0b64b74b132a
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Mar 15 21:41:46 2013 +0000

    [analyzer] Look through ExprWhenCleanups when trying to track a NULL.

    Silences a few false positives in LLVM.

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

commit 62bbe07f5aed5a2f9ae55ef480c4268cb4435d99
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Mar 15 21:41:35 2013 +0000

    Add some assertions to appease the static analyzer.

    No functionality change.

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

commit 454d5b3ab316331b621b37d7c8b86db9f7d33fcc
Author: David Blaikie <dblaikie@gmail.com>
Date:   Fri Mar 15 21:12:54 2013 +0000

    Remove unnecessary default in covered switch over enum

    This cleans up the Clang -Werror build that was broken by r177180.

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

commit e738fc5145984235a8f084077791271c4d266236
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Fri Mar 15 20:55:27 2013 +0000

    [AST] Add a fast path to ConstantArrayType::getNumAddressingBits().

     - This fast path is almost 100% effective on real code, and lets us avoid
       multiple allocations of 128-bit APSInt objects in the common case.

     - As with any overflow-check-skipping-code, I'd appreciate someone double
       checking my logic.

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

commit 1fd8d46d222fab7f17b91846e2c50bef640a60a0
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Mar 15 20:47:07 2013 +0000

    c: perform integer overflow check on all binary
    operations. // rdar://13423975

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

commit 8e694d21342d020551be688f63d7f77b83b27dd7
Author: Richard Trieu <rtrieu@google.com>
Date:   Fri Mar 15 20:35:18 2013 +0000

    Refactor template diffing to store an enum that records which type of
    difference is stored inside a DiffNode.  This should not change any
    diagnostic messages.

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

commit ad7e160e36a5010358ef33c4c81904297d62b9b2
Author: Edwin Vane <edwin.vane@intel.com>
Date:   Fri Mar 15 20:14:01 2013 +0000

    ClangTool output cleanup

    Information messages sent to stdout by ClangTool now only happen when the
    -debug flag is set.

    Error messages that used to go to stdout now go to stderr.

    Author: Ariel J Bernal <ariel.j.bernal@intel.com>

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

commit c90cc9374f18396251760b9fe6468fd1232e9f0e
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Fri Mar 15 17:12:43 2013 +0000

    Revert "Remove a pointless assertion."

    This reverts commit r177158.

    I'm blindly reverting this because it appears to be breaking numerous
    buildbots.  I'll reapply if it doesn't turn out to be the culprit.

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

commit 6b6a9b3f7b54e1df0976027ab623bafa3d769638
Author: Adrian Prantl <aprantl@apple.com>
Date:   Fri Mar 15 17:09:05 2013 +0000

    Force column info only for direct inlined functions. This should strike
    the balance between expected behavior and compatibility with the gdb
    testsuite.
    (GDB gets confused if we break an expression into multiple debug
    stmts so we enable this behavior only for inlined functions. For the
    full experience people can still use -gcolumn-info.)

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

commit a30bab4b5d421fb148a732da31621cffe51519ee
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Mar 15 17:03:56 2013 +0000

    c: Also chek for integer overflow for '%' operator.

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

commit 2cd889d6d97db0cf73930873871aa4a542e84b89
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Mar 15 16:36:04 2013 +0000

    c: add the missing binary operatory when checking
    for integer overflow. // rdar://13423975

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

commit b7e86be4412635d34b2bf161e1b8bbf00be055c9
Author: Sylvestre Ledru <sylvestre@debian.org>
Date:   Fri Mar 15 16:22:43 2013 +0000

    Take in account the triplet 'powerpc-linux-gnuspe' for PowerPC SPE. Done for the port of Debian on this arch. More information on: http://wiki.debian.org/PowerPCSPEPort Patch by Roland Stigge

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

commit 7e0786f08e5e14776c8a46a0534c254b3fdc14fe
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Fri Mar 15 15:02:37 2013 +0000

    Remove a pointless assertion.

    FindNodeOrInsertPos() is called 10 lines earlier already, and the function
    early-returns there if the result is != 0. InsertPos isn't recomputed after
    that check, so this assert is always trivially true. (And it has nothing to
    do with if T is canonical or not.)

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

commit 3af59ce065310fd3d0820a6e2644d4ca688be810
Author: Daniel Jasper <djasper@google.com>
Date:   Fri Mar 15 14:57:30 2013 +0000

    Improve formatting of chained calls.

    clang-format already prevented sequences like:
      ...
      SomeParameter).someFunction(
      ...

    as those are quite confusing. This failed on:
      ...
      SomeParameter).someFunction(otherFunction(
      ...

    Fixed in this patch.

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

commit 1fdd8b351e28ee175157e61dac1b3f62b79b7a62
Author: Alexander Kornienko <alexfh@google.com>
Date:   Fri Mar 15 13:42:02 2013 +0000

    Indent all lines in a multi-line comment by the same amount.

    Summary:
    Do this to avoid spoling nicely formatted multi-line comments (e.g.
    with code examples or similar stuff).

    Reviewers: djasper

    Reviewed By: djasper

    CC: cfe-commits, klimek

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

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

commit e310b1a770981900fd5e6e21d743bbcfbe8248bd
Author: Alexey Samsonov <samsonov@google.com>
Date:   Fri Mar 15 07:29:58 2013 +0000

    Fixup for r176934. More careful setup of path to llvm-symbolizer

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

commit 810169e7a1f858a787d2db050deebaee7e10c97f
Author: Anna Zaks <ganna@apple.com>
Date:   Fri Mar 15 01:15:14 2013 +0000

    [analyzer] Refactor checks in IDC visitor for consistency and speed

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

commit dc9c160dede7e2f5cc11755db6aaa57e7fccbcec
Author: Anna Zaks <ganna@apple.com>
Date:   Fri Mar 15 01:15:12 2013 +0000

    [analyzer] Teach trackNullOrUndef to look through ternary operators

    Allows the suppression visitors trigger more often.

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

commit d92277928eefcf958080707ed6e154f406a5d054
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Mar 15 00:41:52 2013 +0000

    PR15290: 'this' is not permitted in the declaration of a friend function,
    therefore references to members should not be transformed into implicit uses of
    'this'. Patch by Ismail Pazarbasi!

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

commit e462c60ac3365d3302b7d0a566c5cb7dbe0e5ae3
Author: Eric Christopher <echristo@gmail.com>
Date:   Fri Mar 15 00:32:52 2013 +0000

    Silence anonymous type in anonymous union warnings.

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

commit 96db329b3a982ac83c700c4469a3f618dc53cb42
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Mar 14 23:09:00 2013 +0000

    Diagnose about extern "C" functions returning c++ objects
    on first declaration only. // rdar://13364028

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

commit 57f8da506a0db208a936e26a8cb77267f638b26b
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Thu Mar 14 22:56:43 2013 +0000

    Don't try to typo-correct 'super' in an objc method.

    This created 2 issues:

    1) Performance issue, since typo-correction with PCH/modules is rather expensive.
    2) Correctness issue, since if it managed to "correct" 'super' then bogus compiler errors would
    be emitted, like this:

    3.m:8:3: error: unknown type name 'super'; did you mean 'super1'?
      super.x = 0;
      ^~~~~
      super1
    t3.m:5:13: note: 'super1' declared here
    typedef int super1;
                ^
    t3.m:8:8: error: expected identifier or '('
      super.x = 0;
           ^

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

commit 503836ae835fd27a4c1f1c1b6cbe72dfc5613976
Author: Adrian Prantl <aprantl@apple.com>
Date:   Thu Mar 14 22:49:05 2013 +0000

    Add a testcase for r177118.

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

commit a4bb4f6ca8dd31ad96cb9526a5abe1273f18ff40
Author: Anna Zaks <ganna@apple.com>
Date:   Thu Mar 14 22:31:56 2013 +0000

    [analyzer] Change the way in which IDC Visitor decides to kick in and make sure it attaches in the given edge case

    In the test case below, the value V is not constrained to 0 in ErrorNode but it is in node N.
    So we used to fail to register the Suppression visitor.

    We also need to change the way we determine that the Visitor should kick in because the node N belongs to
    the ExplodedGraph and might not be on the BugReporter path that the visitor sees. Instead of trying to match the node,
    turn on the visitor when we see the last node in which the symbol is ‘0’.

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

commit bea407c92780ded6ef9aabc9d8ebbe60d233f381
Author: Adrian Prantl <aprantl@apple.com>
Date:   Thu Mar 14 21:52:59 2013 +0000

    Always declare the .block_descriptor parameter, not just the local copy.
    Un-breaks gdb's invoke-block behavior.

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

commit 7f99d5c54135ae812a7cb7c86f135086d3d65031
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Mar 14 20:44:43 2013 +0000

    [PR15513/<rdar://problem/13409707>] Template arguments in diagnostics aren't always known at compile time.

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

commit 836e7c9357b312fd1ee5c90898ce2c81bb384997
Author: Adrian Prantl <aprantl@apple.com>
Date:   Thu Mar 14 17:53:33 2013 +0000

    Allocate stack storage for .block_descriptor and captured self at -O0.
    This way the register allocator will not optimize away the debug info
    for captured variables.

    Fixes rdar://problem/12767564

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

commit 4a374f9a58a5b350ec2e4123b20c9884ed1f5f15
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Mar 14 17:18:30 2013 +0000

    [analyzer] Fix scan-build's -stats mode.

    We were failing to match the output line, which led to us collecting no
    stats at all, which led to a divide-by-zero error.

    Fixes PR15510.

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

commit 374516c8ec4f0fcf5a8b65ef9cf029f862d11096
Author: Manuel Klimek <klimek@google.com>
Date:   Thu Mar 14 16:33:21 2013 +0000

    Implements memoization for ancestor matching.

    This yields a log(#ast_nodes) worst-case improvement with matchers like
    stmt(unless(hasAncestor(...))).

    Also made the order of visitation for ancestor matches BFS, as the most
    common use cases (for example finding the closest enclosing function
    definition) rely on that.

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

commit f753615897c86928517e48e4d106e669d59618c5
Author: Alexander Kornienko <alexfh@google.com>
Date:   Thu Mar 14 16:10:54 2013 +0000

    Multi-line comment alignment

    Summary:
    Aligns continuation lines of multi-line comments to the base
    indentation level +1:
    class A {
      /*
       * test
       */
      void f() {}
    };

    The first revision is work in progress. The implementation is not yet complete.

    Reviewers: djasper

    Reviewed By: djasper

    CC: cfe-commits, klimek

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

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

commit bfa1edd8247b80e951a570ff2486fe5fa9898c41
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Mar 14 14:00:17 2013 +0000

    Slightly improve formatting of longer pipe statements.

    The stronger binding of a string ending in :/= does not really make
    sense if it is the only character.

    Before:
    llvm::outs() << aaaaaaaaaaaaaaaaaaaaaaaa
                 << "=" << bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb;

    After:
    llvm::outs() << aaaaaaaaaaaaaaaaaaaaaaaa << "="
                 << bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb;

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

commit 923ebef120a37122ce50722a85cbe42c0c2dab53
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Mar 14 13:45:21 2013 +0000

    Basic support for formatting asm() statments.

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

commit 23219daa70d2e4735bc8660a86c80cac37824afe
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Thu Mar 14 12:53:46 2013 +0000

    Documentation: improve formatting

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

commit f37b1e2415806ba7644515edfeb5398e3be01553
Author: Alexey Samsonov <samsonov@google.com>
Date:   Thu Mar 14 12:26:21 2013 +0000

    [ASan] Update docs for -fsanitize=init-order option

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

commit 7ac415b489dd3b22b0335af60d874143c9fdf63a
Author: Alexey Samsonov <samsonov@google.com>
Date:   Thu Mar 14 12:13:27 2013 +0000

    [ASan] Make -fsanitize=address imply -fsanitize=init-order (if the latter is not explicitly disabled).

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

commit 8f0d1f053f3acadec28a2b1c0b6a714ad5a12aab
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Thu Mar 14 11:17:20 2013 +0000

    Fix an unused variable warning from Clang by sinking a dyn_cast into an
    isa and a cast inside the assert. The efficiency concern isn't really
    important here. The code should likely be cleaned up a bit more,
    especially getting a message into the assert.

    Please review Rafael.

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

commit d3cf17b5f1fed43dbd0cd35c43d15139803c9c84
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Mar 14 10:50:25 2013 +0000

    Fix dereference formatting in for-loops.

    Before: for (char **a = b; * a; ++a) {}
    After:  for (char **a = b; *a; ++a) {}

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

commit 96cead513761d287c88a4f05c712aee3b26b9d6f
Author: Joey Gouly <joey.gouly@arm.com>
Date:   Thu Mar 14 09:54:43 2013 +0000

    Add support for the 'endian' attribute for OpenCL.

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

commit 8ef19a22956defa392df46c79e2d499ab7b16647
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Mar 14 09:50:46 2013 +0000

    Improve formatting of trailing annotations.

    Before:
    bool aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa __attribute__((
        unused));

    After:
    bool aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
        __attribute__((unused));

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

commit c3ae583a9a2e0e5c862a94b678c7cdfaab46a981
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Thu Mar 14 05:14:01 2013 +0000

    Update GCOVProfiling pass creation for API change in r177002. No functionality change.

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

commit e34db6b3e772e9832e1f6de1f23457076ffbec88
Author: John McCall <rjmccall@apple.com>
Date:   Thu Mar 14 05:13:41 2013 +0000

    Flag that friend function definitions are "late parsed" so that
    template instantiation will still consider them to be definitions
    if we instantiate the containing class before we get around
    to parsing the friend.

    This seems like a legitimate use of "late template parsed" to me,
    but I'd appreciate it if someone responsible for the MS feature
    would look over this.

    This file already appears to access AST nodes directly, which
    is arguably not kosher in the parser, but the performance of this
    path matters enough that perpetuating the sin is justifiable.
    Probably we ought to reconsider this policy for very simple
    manipulations like this.

    The reason this entire thing is necessary is that
    function template instantiation plays some very gross games
    in order to not associate an instantiated function template
    with the class it came from unless it's a definition, and
    the reason *that's* necessary is that the AST currently
    cannot represent the instantiation history of individual
    function template declarations, but instead tracks it in
    common for the entire function template.  That probably
    prevents us from correctly reporting ill-formed calls to
    ambiguously instantiated friend function templates.

    rdar://12350696

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

commit faf01f02f6f3844cec6c2ddca297b4f33b361960
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Thu Mar 14 04:45:00 2013 +0000

    [modules] Don't write the UnusedFileScopedDecls vector to the module file.

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

commit 975d353997a13f7dfdaf4ec7a547fe1adb15f35e
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Thu Mar 14 04:44:56 2013 +0000

    [modules] Check for delegating constructor cycles when building a module and don't write them out to the module file.

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

commit 2d1b09641ecf2e754bf3fd244dc45dbf3e460c1b
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Thu Mar 14 03:07:35 2013 +0000

    Avoid computing the linkage too early. Don't invalidate it.

    Before this patch we would compute the linkage lazily and cache it. When the
    AST was modified in ways that could change the value, we would invalidate the
    cache.

    That was fairly brittle, since any code could ask for the a linkage before
    the correct value was available.

    We should change the API to one where the linkage is computed explicitly and
    trying to get it when it is not available asserts.

    This patch is a first step in that direction. We still compute the linkage
    lazily, but instead of invalidating a cache, we assert that the AST
    modifications didn't change the result.

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

commit aa778f1e4f024a38cd2085f69f36ab33b98862b0
Author: Bill Wendling <isanbard@gmail.com>
Date:   Wed Mar 13 22:44:19 2013 +0000

    Really fix the MIPS test.

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

commit 7c527e4f535faaee682f4c20ebf955dffd717163
Author: Bill Wendling <isanbard@gmail.com>
Date:   Wed Mar 13 22:29:26 2013 +0000

    Attempt to fix test.

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

commit 4159f05999914fc1d342131f64c1c37f00059288
Author: Bill Wendling <isanbard@gmail.com>
Date:   Wed Mar 13 22:24:33 2013 +0000

    Have these attriubtes set to 'true' or 'false'.

    The back-end cannot differentiate between functions that are from a .ll file and
    those generated from the front-end. We cannot then take the non-precense of
    these attributes as a "false" value. Have the front-end explicitly set the value
    to 'true' or 'false' depending upon what is actually set.

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

commit 55ea75bf61a5d76f6453513d937944ce68181c6a
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Mar 13 21:13:51 2013 +0000

    [Modules] Don't eagerly load and associate all the module header files.

    In a module-enabled Cocoa PCH file, we spend a lot of time stat'ing the headers
    in order to associate the FileEntries with their modules and support implicit
    module import.

    Use a more lazy scheme by enhancing HeaderInfoTable to store extra info about
    the module that a header belongs to, and associate it with its module only when
    there is a request for loading the header info for a particular file.

    Part of rdar://13391765

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

commit c1d22393628a145e54396c0ac66e9625d13a7658
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Mar 13 21:13:43 2013 +0000

    [Modules] Resolve top-headers of modules lazily.

    This allows resolving top-header filenames of modules to FileEntries when
    we need them, not eagerly.

    Note that that this breaks ABI for libclang functions
    clang_Module_getTopLevelHeader / clang_Module_getNumTopLevelHeaders
    but this is fine because they are experimental and not widely used yet.

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

commit ad4b8b43e66ebc2838fb314358017079665f058f
Author: Reed Kotler <rkotler@mips.com>
Date:   Wed Mar 13 20:40:30 2013 +0000

    Cause the mips16/nomips16 attribute to be passed to LLVM from Clang
    in the LLVM assembly language output.

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

commit 6022c4e17c0d2ad9c43ef6bc830d394b670a4705
Author: Anna Zaks <ganna@apple.com>
Date:   Wed Mar 13 20:20:14 2013 +0000

    [analyzer] BugReporter - more precise tracking of C++ references

    When BugReporter tracks C++ references involved in a null pointer violation, we
    want to differentiate between a null reference and a reference to a null pointer. In the
    first case, we want to track the region for the reference location; in the second, we want
    to track the null pointer.

    In addition, the core creates CXXTempObjectRegion to represent the location of the
    C++ reference, so teach FindLastStoreBRVisitor about it.

    This helps null pointer suppression to kick in.

    (Patch by Anna and Jordan.)

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

commit 1b125665bec87c85921c92ebec1d3f60404d1d86
Author: Ted Kremenek <kremenek@apple.com>
Date:   Wed Mar 13 20:05:52 2013 +0000

    Remove stray space.

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

commit c5b9c8bc6d77175f6d41d898511b1e7b1e2f86f8
Author: Ted Kremenek <kremenek@apple.com>
Date:   Wed Mar 13 20:03:31 2013 +0000

    [analyzer] Handle Objc Fast enumeration for "loop is executed 0 times".

    Fixes <rdar://problem/12322528>

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

commit 6a365aaa057a8c445d25344c0433726c752b3e7d
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Mar 13 17:13:53 2013 +0000

    Fix incorrect cast identification.

    Before: int a = sizeof(int *)+ b;"
    After:  int a = sizeof(int *) + b;

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

commit 3258d4b3fb5922027747217e5e6f81a11878600d
Author: Anton Yartsev <anton.yartsev@gmail.com>
Date:   Wed Mar 13 17:07:32 2013 +0000

    [analyzer] fixed the logic changed by r176949

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

commit b38b3cd64c24500cbea9e6dfe774407dd6ef4a79
Author: Adrian Prantl <aprantl@apple.com>
Date:   Wed Mar 13 16:14:44 2013 +0000

    relax check to allow for attributes (fix buildbot for elf-ppc64)

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

commit 6050a1e53aa3cd3b21d65d440413af5a5ac1d466
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Mar 13 15:53:12 2013 +0000

    Fix comment indentation before labels.

    Before:
    switch (x) {
      // if 1, do f()
    case 1:
      f();
    }

    After:
    switch (x) {
    // if 1, do f()
    case 1:
      f();
    }

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

commit 8d0d19aa33751d89390e6a2bb2c2b19def287abe
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Mar 13 15:37:48 2013 +0000

    Fix formatting issue with builder-type calls.

    Before:
    ->aaaaaa()->aaaaaaaaaaa(aaaaaaaa()->aaaaaa()->aaaaa() - aaaaaaaaa()->aaaaaa()
                                                                 ->aaaaa());

    After:
    a->aaaaaa()->aaaaaaaaaaa(aaaaaaaa()->aaaaaa()->aaaaa() -
                             aaaaaaaaa()->aaaaaa()->aaaaa());

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

commit e74de28ec3692986f3467a7f160a0e293277fa7e
Author: Alexander Kornienko <alexfh@google.com>
Date:   Wed Mar 13 14:41:29 2013 +0000

    Added AnnotatedToken::isOneOf + a few other refactorings

    Summary: <subj>

    Reviewers: djasper

    Reviewed By: djasper

    CC: cfe-commits, klimek

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

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

commit bb3699543e60594af7b5cbdb3b2e9acb816b3687
Author: Anton Yartsev <anton.yartsev@gmail.com>
Date:   Wed Mar 13 14:39:10 2013 +0000

    Refactoring:
    + Individual Report* method for each bug type
    + Comment improved: missing non-trivial alloca() case annotated
    + 'range' parameter of ReportBadFree() capitalized
    + 'SymbolRef Sym = State->getSVal(A, C.getLocationContext()).getAsSymbol();' shorten to 'SymbolRef Sym = C.getSVal(A).getAsSymbol();'

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

commit 8eb3022fa885a74ae4f03dfec7fb8b056c4d09d3
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Wed Mar 13 14:26:35 2013 +0000

    Documentation: formatting fixes

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

commit c45df068ee49f4b40802820b22d3cc4ba43ea627
Author: Edwin Vane <edwin.vane@intel.com>
Date:   Wed Mar 13 13:48:47 2013 +0000

    Reverting r176944 until Author fixes test failure.

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

commit eea6a13b8eb8c446f1803720cc5d3ce79b643404
Author: Edwin Vane <edwin.vane@intel.com>
Date:   Wed Mar 13 13:36:56 2013 +0000

    ClangTool output cleanup

    Information messages sent to stdout by ClangTool now only happen when the -debug
    flag is set.

    Error messages that used to go to stdout now go to stderr.

    Author: Ariel J Bernal <ariel.j.bernal@intel.com>

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

commit 1d5b1b37e0e2e0ee15020a228f29cfb1b46dd9c7
Author: Evgeniy Stepanov <eugeni.stepanov@gmail.com>
Date:   Wed Mar 13 09:36:02 2013 +0000

    Add llvm-symbolizer as test dependency.

    It is required when building tests with ASan or MSan.

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

commit 6f21a988990ff5872822dcb049bd8fc65ce3d236
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Mar 13 07:49:51 2013 +0000

    Fix formatting of new arrays of pointers.

    Before:
    A = new SomeType * [Length];
    A = new SomeType *[Length]();

    After:
    A = new SomeType *[Length];
    A = new SomeType *[Length]();

    Small formatting cleanups with clang-format.

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

commit e0d5c86687c4a449f5104306108aa365b20ba09d
Author: Evgeniy Stepanov <eugeni.stepanov@gmail.com>
Date:   Wed Mar 13 07:10:36 2013 +0000

    Set symbolizer path in the test environment.

    This is needed to get symbolized stack traces when running Clang tests under (A|M)San.

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

commit 99c6418e37380abbc7042ea82634bb4f7f674e15
Author: John McCall <rjmccall@apple.com>
Date:   Wed Mar 13 05:02:21 2013 +0000

    Remove trailing comma in enum list.

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

commit 5b07e8077a20b80fee90bd76c43c6150c676e4a8
Author: John McCall <rjmccall@apple.com>
Date:   Wed Mar 13 03:10:54 2013 +0000

    Tighten up the rules for precise lifetime and document
    the requirements on the ARC optimizer.

    rdar://13407451

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

commit 365bc037d67220dae412b45281f04a96140168da
Author: Matt Beaumont-Gay <matthewbg@google.com>
Date:   Tue Mar 12 23:56:16 2013 +0000

    Test for LLVM r176911

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

commit 1d0d2fe76496ee2f8da9f56cb7f7eb24c4ffba05
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Mar 12 22:22:38 2013 +0000

    Objective-C: In my last path, also check
    for existence of user setter before
    issuing the warning about non-synthesizable
    property. // rdar://13388503

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

commit 054d047c0bfe83e68c922df3766cf3f2674ddaed
Author: Ted Kremenek <kremenek@apple.com>
Date:   Tue Mar 12 21:49:29 2013 +0000

    Make modules.m test portable, now that autolinking is dependent on whether or not the target uses the integrated assembler.

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

commit 5ca58a0aca0320b8980921e8ee55112668817939
Author: Adrian Prantl <aprantl@apple.com>
Date:   Tue Mar 12 21:40:00 2013 +0000

    Eliminate backend dependency in CFE testcase.

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

commit 4c1adcc50df4f825150833ad36ef15a0dc1d8b1c
Author: Ted Kremenek <kremenek@apple.com>
Date:   Tue Mar 12 21:08:08 2013 +0000

    [driver] Only enable -fmodules-autolink if we are using the integrated assembler.

    Fixes <rdar://problem/13289240>

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

commit 2d9e8838712f3fcacedaf898fd85654cd2bb3600
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Mar 12 21:06:00 2013 +0000

    Whitespace cleanup.

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

commit 00df5eaa9f4f7cc0809fd47c95311b532fbe63c6
Author: Adrian Prantl <aprantl@apple.com>
Date:   Tue Mar 12 20:43:25 2013 +0000

    Force column info to be generated for call expressions so we can
    differentiate multiple inlined call sites on the same line
    in the debug info.

    Fixes rdar://problem/13036237

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

commit 61d16c1f491f5ad6d4a254dcca8868acb5f150cc
Author: Jim Grosbach <grosbach@apple.com>
Date:   Tue Mar 12 20:17:58 2013 +0000

    Driver: -ccc-install-dir should affect cc1 -resource-dir

    -ccc-install-dir is supposed to cause the compiler to behave as-if it
    were installed in the indicated location. It almost does, but misses
    anything that's relying on the resource directory (libc++ header search,
    in particular). The resource dir is resolved too early, before command
    line args are handled.

    The fix is simply to move handling of the resource dir until after we
    know if a -ccc-install-dir is present.

    rdar://13402696

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

commit 327a6d9cbeb8cad648084df1ee43f2e9d7dc8296
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Tue Mar 12 20:00:34 2013 +0000

    Revert "Revert r166370 and r166540 now that Xcode 4.6 has been available for a while."

    This reverts commit 176887.  Nico asked for more time to move to Xcode 4.6.

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

commit 896e42d231e8e5d4d90d7392ada089d771ca11d6
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Mar 12 19:56:09 2013 +0000

    Make C++11 status page more consistent: we mark entries as "done" if we
    implement correct functionality, even if it's not optimal. On this basis, mark
    "data dependency ordering" as done. Add footnotes for cases where our
    implementation is known to be suboptimal.

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

commit 82aaebeaad75456bc736ea1c474479bb6597305d
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Mar 12 19:50:10 2013 +0000

    Add an interesting testcase we already handle correctly.

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

commit 6114a3c9baf29b3db1e0853a829ae1278285aef4
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Mar 12 19:46:17 2013 +0000

    Objective-C: Issue warning in couple of obscure cases
    when property autosynthesis does not synthesize a property.
    When property is declared 'readonly' in a super class and
    is redeclared 'readwrite' in a subclass. When a property
    autosynthesis causes it to share 'ivar' with another property.
    // rdar://13388503

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

commit c812c3ae43e0608c9ccf7f4c5f71f376609eecae
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Mar 12 19:45:57 2013 +0000

    Move the extern "C" sema tests to a new file.

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

commit a29e0fafe7649131fb2d8eba3d719cdec92b236a
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Tue Mar 12 19:39:19 2013 +0000

    Revert r166370 and r166540 now that Xcode 4.6 has been available for a while.

    Those changes were added as a temporary workaround for Xcode 4.5 passing the
    -Wno-arc-abi option.  Xcode 4.6 does not pass that option so this should no
    longer be necessary.

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

commit 6d1cb5c62671b0ab4d9c023addf80562d7a45fd1
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Mar 12 17:43:00 2013 +0000

    Objective-C: Fixes a comment.

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

commit c06fcdfacc33ad4f8920bbdf43a0e45bc5e8ac4b
Author: Ted Kremenek <kremenek@apple.com>
Date:   Tue Mar 12 17:02:12 2013 +0000

    Revert "Disallow using -fmodules with -no-integrated-as."

    Per comment from Benjamin Kramer, this isn't portable (yet).  I'll come up
    with a better fix.

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

commit 024c1199fa9d28e00160d5f05ed7dc3d25264837
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Mar 12 16:45:13 2013 +0000

    We already reported an error for

    extern "C" {
      void test5_f() {
        extern int test5_b;
      }
    }
    static float test5_b;

    This patch makes us report one for

    extern "C" {
      void test6_f() {
        extern int test6_b;
      }
    }
    extern "C" {
      static float test6_b;
    }

    Not because we think the declaration would be extern C, but because of the rule:

    An entity with C language linkage shall not be declared with the same name as an entity in global scope...

    We were just not looking past the extern "C" to see if the decl was in global
    scope.

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

commit 3fd9ccdd9f8d259bcf518e7056cfd419d992e984
Author: Alexander Kornienko <alexfh@google.com>
Date:   Tue Mar 12 16:28:18 2013 +0000

    Implemented formatting of rvalue references

    Summary:
    Handle "&&" usage as rvalue reference, added tests and fixed incorrect
    tests that interfere with this feature.

    http://llvm.org/bugs/show_bug.cgi?id=15051

    Reviewers: djasper

    Reviewed By: djasper

    CC: cfe-commits, klimek

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

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

commit 4ad07bdc2cb8f48a8b7c0769dfab6916c9cfbfc3
Author: Sean Silva <silvas@purdue.edu>
Date:   Tue Mar 12 16:07:31 2013 +0000

    [docs] Add rtags to the external examples.

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

commit e96bc52119479e4fd4e2e2fb49fc2b1d6c2b5488
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Mar 12 15:53:46 2013 +0000

    Modify comment in user test.

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

commit 77e430df036060ba360a3e378deb4bbb3f691580
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Mar 12 15:22:39 2013 +0000

    Correctly compute linkage of decls forward declared extern C.

    This fixes a crash in

    namespace {
      struct X {};
    }
    extern "C" X test2_b;
    X test2_b

    before we would assign different linkages to each of the test2_b decls.

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

commit 10b1d1cf5ebb14b672d6b0c88f5160ad3cf1e988
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Mar 12 15:13:56 2013 +0000

    Error if an extern C declaration matches a previous hidden extern C declaration.

    Without this patch we produce an error for

    extern "C" {
      void f() {
        extern int b;
      }
    }
    extern "C" {
      extern float b;
    }

    but not for

    extern "C" {
      void f() {
        extern int b;
      }
    }
    extern "C" {
      float b;
    }

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

commit 6c18af24456000e4b7289bc024519efdb796229a
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Mar 12 15:06:22 2013 +0000

    Remove a bogus assert so we don't crash in

    namespace {
      struct X {};
    }
    extern "C" {
      X b = X();
    }

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

commit 4ba9bfd89d0ceb4eae161a4a21dd8e50be752754
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Mar 12 12:26:55 2013 +0000

    Remove bad space after "default".

    Before:
    switch (x) {
    default : {}
    }

    After:
    switch (x) {
    default: {}
    }

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

commit e8a1efcafbea9a40fe12454d27baa30488475862
Author: Matthew Curtis <mcurtis@codeaurora.org>
Date:   Tue Mar 12 11:52:09 2013 +0000

    Remove driver support for Hexagon V2 and V3

    Driver will now error when trying to compile for V2 or V3.

    Removal of V2 and V3 support will allow us to simplify the hexagon
    back-end.

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

commit 212d19a980a0ffaaff966546f67c20c2608ccbe1
Author: Sean Silva <silvas@purdue.edu>
Date:   Tue Mar 12 02:11:17 2013 +0000

    [docs] Add SourceWeb as external example.

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

commit 6fc9e7ad3576dcbee3028a42ef5dac931df8754c
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Mon Mar 11 22:26:33 2013 +0000

    Objective-C: When using super.prop, property should be
    looked up the current class's super class.
    // rdar://13349296

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

commit 77b72231a0316509cc939b052be35fafce606567
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Mon Mar 11 21:31:46 2013 +0000

    [analyzer] Look for calls along with lvalue nodes in trackNullOrUndefValue.

    r176737 fixed bugreporter::trackNullOrUndefValue to find nodes for an lvalue
    even if the rvalue node had already been collected. This commit extends that
    to call statement nodes as well, so that if a call is contained within
    implicit casts we can still track the return value.

    No test case because node reclamation is extremely finicky (dependent on
    how the AST and CFG are built, and then on our current reclamation rules,
    and /then/ on how many nodes were generated by the analyzer core and the
    current set of checkers). I consider this a low-risk change, though, and
    it will only happen in cases of reclamation when the rvalue node isn't
    available.

    <rdar://problem/13340764>

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

commit ebf0f43f07e2fdc0e35554afb38f41c8be314b02
Author: Ted Kremenek <kremenek@apple.com>
Date:   Mon Mar 11 20:51:52 2013 +0000

    Disallow using -fmodules with -no-integrated-as.

    Modules enables features such as auto-linking, and we simply do not want to
    support a matrix of subtly enabled/disabled features depending on whether or
    not a user is using the integrated assembler.

    It isn't clear if this is the best place to do this check.  For one thing,
    these kind of errors are not caught by the serialized diagnostics.

    Fixes <rdar://problem/13289240>

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

commit ebbd7e07aa0f22722da6ed8dd3a55beed9699171
Author: Adrian Prantl <aprantl@apple.com>
Date:   Mon Mar 11 18:33:46 2013 +0000

    Improve the caching of debuginfo Objective C interface types.
    Generate forward declarations that are RAUW'd by finalize().
    We thus avoid outputting the same type several times in multiple
    stages of completion.

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

commit d4bf760d057f1e8724ab7be340a2d42adae0900a
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Mon Mar 11 18:01:42 2013 +0000

    Add -Wc99-compat warning for C11 unicode string and character literals.

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

commit f96df9083937e198721f0e1dbd21d882bb4413ae
Author: Jan Wen Voung <jvoung@google.com>
Date:   Mon Mar 11 17:48:03 2013 +0000

    Partly revert "Move clang tests that depend on llvm/ADT/Statistic.h to a subdir".

    This reverts commit 176730, and uses "REQUIRES: asserts" instead.

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

commit 695bbea5daa69bccf79b46e21b7a78695ab7b9d8
Author: Sean Silva <silvas@purdue.edu>
Date:   Mon Mar 11 17:07:47 2013 +0000

    [docs] Add ellipsis.

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

commit 5256c1fd315104f7b1542bb231f16dbad8a8d64b
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Mon Mar 11 16:03:17 2013 +0000

    [libclang] Fix a test and a warning on windows.

    Patch by Guy Benyei!

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

commit 44abff72d800d2895c04ccb7f9240a60c90dd7e4
Author: Joey Gouly <joey.gouly@arm.com>
Date:   Mon Mar 11 12:38:45 2013 +0000

    Add a test case for the 'vec_type_hint' attribute that was introduced in
    r176686. I missed this file in the previous commit.

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

commit 3521c49fc4867ff9ac78d4ad6a9e3e5566ba8b83
Author: Anton Yartsev <anton.yartsev@gmail.com>
Date:   Sun Mar 10 16:25:43 2013 +0000

    PR15480: fixed second parameter types of vec_lde, vec_lvebx, vec_lvehx, and vec_lvewx according to AltiVec Programming Interface Manual

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

commit 035425386b3af7347fe1e777a404dbe1cf5409d2
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sun Mar 10 13:16:18 2013 +0000

    Driver: do not strip file extensions when printing diagnostics.

    Before: clang-3: error: no input files
    After:  clang-3.3: error: no input files

    This means that we'll also print clang.exe on windows, but I don't see a problem
    with that.

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

commit d436c99c47f7fca4e60077aa7e38cab7c1323f08
Author: Guy Benyei <guy.benyei@intel.com>
Date:   Sun Mar 10 12:59:00 2013 +0000

    Fix indirect byval passing of records in address spaced memory. Allocate memory on stack, and memcpy the actual value before the call.

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

commit 11fd5b17f16ef5413859ca3ea8c268aa239da782
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sun Mar 10 00:11:00 2013 +0000

    www tweaks to embiggen up our near-complete C++11 and C11 support.

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

commit 0093e12513c5c896434915d5e9126f51b780aa61
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sat Mar 9 23:56:02 2013 +0000

    When lexing in C11 mode, accept unicode character and string literals, per C11
    6.4.4.4/1 and 6.4.5/1.

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

commit 0b91cc47a5642de2e1f567fe0f29420acdcdebbe
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sat Mar 9 23:30:15 2013 +0000

    Handle _Pragma on a u8, u, or U string literal per the C11 specification. Also
    handle raw string literals here. C++11 doesn't yet specify how they will
    behave, but discussion on core suggests that we should just strip off
    everything but the r-char-sequence.

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

commit 7cb583d13f996ffde671ea617c97303cebadd649
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sat Mar 9 18:44:47 2013 +0000

    Remove unused diagnostic.

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

commit 2c39b0605fff0600714532d348d24aa42a55477f
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sat Mar 9 15:15:22 2013 +0000

    Make helper function static.

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

commit 0415998dd77986630efe8f1aed633519cc41e1f3
Author: Anna Zaks <ganna@apple.com>
Date:   Sat Mar 9 03:23:19 2013 +0000

    [analyzer] Make Suppress IDC checker aware that it might not start from the same node it was registered at

    The visitor used to assume that the value it’s tracking is null in the first node it examines. This is not true.
    If we are registering the Suppress Inlined Defensive checks visitor while traversing in another visitor
    (such as FindlastStoreVisitor). When we restart with the IDC visitor, the invariance of the visitor does
    not hold since the symbol we are tracking no longer exists at that point.

    I had to pass the ErrorNode when creating the IDC visitor, because, in some cases, node N is
    neither the error node nor will be visible along the path (we had not finalized the path at that point
    and are dealing with ExplodedGraph.)

    We should revisit the other visitors which might not be aware that they might get nodes, which are
    later in path than the trigger point.

    This suppresses a number of inline defensive checks in JavaScriptCore.

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

commit 80412c4e28c8247ad9c8d30d04c94938f01b21fb
Author: Anna Zaks <ganna@apple.com>
Date:   Sat Mar 9 03:23:14 2013 +0000

    [analyzer] Rename AttrNonNullChecker -> NonNullParamChecker

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

commit 6cc4e25e76981ae47019bc47911724eaaf2f9a3f
Author: Anna Zaks <ganna@apple.com>
Date:   Sat Mar 9 03:23:10 2013 +0000

    [analyzer] Add test case for reference to null pointer param check

    This tests that we track the original Expr if getDerefExpr fails.

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

commit 9fe09f30f76cb65ca2a5fcd8e649f5b2f0cf02bd
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Mar 9 00:59:10 2013 +0000

    [analyzer] Be more consistent about Objective-C methods that free memory.

    Previously, MallocChecker's pointer escape check and its post-call state
    update for Objective-C method calls had a fair amount duplicated logic
    and not-entirely-consistent checks. This commit restructures all this to
    be more consistent and possibly allow us to be more aggressive in warning
    about double-frees.

    New policy (applies to system header methods only):
    (1) If this is a method we know about, model it as taking/holding ownership
        of the passed-in buffer.
      (1a) ...unless there's a "freeWhenDone:" parameter with a zero (NO) value.
    (2) If there's a "freeWhenDone:" parameter (but it's not a method we know
        about), treat the buffer as escaping if the value is non-zero (YES) and
        non-escaping if it's zero (NO).
    (3) If the first selector piece ends with "NoCopy" (but it's not a method we
        know about and there's no "freeWhenDone:" parameter), treat the buffer
        as escaping.

    The reason that (2) and (3) don't explicitly model the ownership transfer is
    because we can't be sure that they will actually free the memory using free(),
    and we wouldn't want to emit a spurious "mismatched allocator" warning
    (coming in Anton's upcoming patch). In the future, we may have an idea of a
    "generic deallocation", i.e. we assume that the deallocator is correct but
    still continue tracking the region so that we can warn about double-frees.

    Patch by Anton Yartsev, with modifications from me.

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

commit 41d016454b48f25c93d4b3fb84cfc7e426a9bd73
Author: John McCall <rjmccall@apple.com>
Date:   Sat Mar 9 00:54:31 2013 +0000

    Adjust the special non-C++ enum block return type inference
    so that it looks through certain syntactic forms and applies
    even if normal inference would have succeeded.

    There is potential for source incompatibility from this
    change, but overall we feel that it produces a much
    cleaner and more defensible result, and the block
    compatibility rules should curb a lot of the potential
    for annoyance.

    rdar://13200889

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

commit 83972f128e9218c051692bf96361327a701aeb79
Author: John McCall <rjmccall@apple.com>
Date:   Sat Mar 9 00:54:27 2013 +0000

    Add TagDecl::hasNameForLinkage(), which is true if the tag
    is non-anonymous or is defined in a typedef of itself.

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

commit b421b56d5a83c5bcae576b714ebd9df7b745368d
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Mar 8 23:59:23 2013 +0000

    Documentation parsing. Some refactoring and code
    improvements per Dmtiri's comments. // rdar://12379114

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

commit 0183768813658d419e3124b576744b03ec8e9b55
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Mar 8 23:30:56 2013 +0000

    [analyzer] Look for lvalue nodes when tracking a null pointer.

    r176010 introduced the notion of "interesting" lvalue expressions, whose
    nodes are guaranteed never to be reclaimed by the ExplodedGraph. This was
    used in bugreporter::trackNullOrUndefValue to find the region that contains
    the null or undef value being tracked.

    However, the /rvalue/ nodes (i.e. the loads from these lvalues that produce
    a null or undef value) /are/ still being reclaimed, and if we couldn't
    find the node for the rvalue, we just give up. This patch changes that so
    that we look for the node for either the rvalue or the lvalue -- preferring
    the former, since it lets us fall back to value-only tracking in cases
    where we can't get a region, but allowing the latter as well.

    <rdar://problem/13342842>

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

commit 8c84707fd0fbe9f6f7d17fadd5a9fe162dff8445
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Mar 8 23:30:53 2013 +0000

    [analyzer] Don't rely on finding the correct return statement for suppression.

    Previously, ReturnVisitor waited to suppress a null return path until it
    had found the inlined "return" statement. Now, it checks up front whether
    the return value was NULL, and suppresses the warning right away if so.

    We still have to wait until generating the path notes to invalidate the bug
    report, or counter-suppression will never be triggered. (Counter-suppression
    happens while generating path notes, but the generation won't happen for
    reports already marked invalid.)

    This isn't actually an issue today because we never reclaim nodes for
    top-level statements (like return statements), but it could be an issue
    some day in the future. (But, no expected behavioral change and no new
    test case.)

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

commit 6f09c3d69f6272b101ff795562dffead1c0bd9de
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Mar 8 22:47:41 2013 +0000

    [libclang] Change clang_findReferencesInFile and clang_findIncludesInFile to return an enum,
    as suggested by Jordan.

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

commit e4743be8984f9544878aee88b435f6381590878d
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Mar 8 22:43:48 2013 +0000

    <rdar://problem/13170740> Be a little more careful when instantiating 'this' expressions.

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

commit 325de0ca0cdcde7b4ff9eef4796c48685572c60f
Author: Jan Wen Voung <jvoung@google.com>
Date:   Fri Mar 8 22:42:02 2013 +0000

    Move clang tests that depend on llvm/ADT/Statistic.h to a subdir.

    The subdirectory has a lit.local.cfg that marks the tests unsupported
    if llvm was built without Asserts.  There will be a patch in LLVM
    that disables statistics gathering when built without Asserts so
    that full Release builds can be faster.  Statistics can also
    be enabled by building with -DLLVM_ENABLE_STATS.

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

commit 0918989f0eed08870e50418df97d1486d977d773
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Mar 8 22:25:36 2013 +0000

    Sema: Preserve attributes on parameters in instantiated function templates.

    This was causing correctness issues for ARC and the static analyzer when a
    function template has "consumed" Objective-C object parameters (i.e.
    parameters that will be released by the function before returning).

    The fix is threefold:
    (1) Actually copy over the attributes from old ParmVarDecls to new ones.
    (2) Have Sema::BuildFunctionType only work for building FunctionProtoTypes,
        which it was doing anyway. This allows us to pass an ExtProtoInfo
        instead of a plain ExtInfo and several flags.
    (3) Drop param attributes as part of StripImplicitInstantiation, which is
        used when an implicit instantiation is followed by an explicit one.

    <rdar://problem/12685622>

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

commit c61361b102fcb9be7b64cc493fb797ea551eb8e7
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Mar 8 22:15:15 2013 +0000

    <rdar://problem/13094134> Don't try to wire up typedef names for invalid anonymous tag declarations encountered during template instantiation.

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

commit bea522ff43a3f11c7a2bc7949119dbb9fce19e39
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Mar 8 21:51:21 2013 +0000

    ArrayRef-ize ASTContext::getFunctionType and Sema::BuildFunctionType.

    No (intended) functionality change.

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

commit 303b96f255d61ae3dff913d777d3f40332786257
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Mar 8 21:25:01 2013 +0000

    <rdar://problem/13140795> Transform the scope type of a pseudo-destructor expression within the object scope.

    We were transforming the scope type of a pseudo-destructor expression
    (e.g., the first T in x->T::~T()) as a freestanding type, which meant
    that dependent template specialization types here would stay dependent
    even when no template parameters were named. This would eventually
    mean that a dependent expression would end up in what should be
    fully-instantiated ASTs, causing IRgen to assert.

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

commit f8f373f47210b88bdf71acb5579b129b665235ab
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Mar 8 20:42:38 2013 +0000

    [PCH] When complaining that a header from the PCH was modified, also mention
    the filename of the PCH file.

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

commit 389dc5603fa10b508a38f668a7830c6d877b6542
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Mar 8 20:42:33 2013 +0000

    [libclang] Modify clang_findReferencesInFile and clang_findIncludesInFile to return a value.

    Possible values are:
     1  : if a parameter was invalid
     -1 : if the callback returned CXVisit_Break,
     otherwise returns 0.

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

commit aa62d0c4fc9449d4c438fe200ef329b067c037c7
Author: Manuel Klimek <klimek@google.com>
Date:   Fri Mar 8 18:59:48 2013 +0000

    Fixes breaking of string literals.

    1. We now ignore all non-default string literals, including raw
    literals.
    2. We do not break inside escape sequences any more.

    FIXME: We still break in trigraphs.

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

commit c2ac68e09f4adf0f9fcfe53c1fcc5e87d069806a
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Fri Mar 8 17:04:47 2013 +0000

    Remove unused variable.

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

commit 37453b9580e293eef3bd60bd36047a93ac4515b1
Author: Joey Gouly <joey.gouly@arm.com>
Date:   Fri Mar 8 09:42:32 2013 +0000

    Add support for the OpenCL attribute 'vec_type_hint'.

    Patch by Murat Bolat!

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

commit ee2d5fd7a3bd42bce387db094d27a479617c3e67
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Mar 8 02:32:34 2013 +0000

    [libclang] Introduce clang_findIncludesInFile, that can be used to retrieve all #import/#include directives in a specific file.

    It passes to the visitor, that the caller provides, CXCursor_InclusionDirective cursors for
    all the include directives in a particular file.

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

commit 029c8f37e32b08bad4c757848a695d199fe5c813
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Mar 8 02:32:29 2013 +0000

    [libclang] When calling the function of CXCursorAndRangeVisitor, don't forget to
    stop visitation if it returns CXVisit_Break.

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

commit b70e7a83ee55e463d52d175bd68dece2bfd084f4
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Mar 8 02:32:26 2013 +0000

    [libclang] Add Logger::operator<< overloads for CXCursor and FileEntry.

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

commit 480760f8c7db7a1b77a73f4833bb99f657802775
Author: Chad Rosier <mcrosier@apple.com>
Date:   Fri Mar 8 00:05:21 2013 +0000

    [driver] If we're just linking, don't report --param X as unused option.
    PR15327
    rdar://13372628

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

commit 28c1cd2138f700742235e1e720c1f7e6dc75a11a
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Mar 7 23:33:11 2013 +0000

    HeaderDoc: Support more of HeaderDoc documentation
    commands; top level tags such as @interface and
    their 2nd level tags such as @coclass, etc.
    // rdar://12379114

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

commit 0689863f7b7fddf4a96e3036f3abe1d6f695ae51
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Mar 7 23:26:24 2013 +0000

    Add code completion for @import <rdar://problem/13344306>.

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

commit 1344e94cdf51cabb09d7b598323e54bbf333fcd5
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Mar 7 22:57:58 2013 +0000

    Improve LLDB's implicit cast-to-id to work with C++11 auto and any Objective-C object type <rdar://problem/13338107>.

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

commit 6cda3e604f2a2fa289cc9145719ba84461315e21
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Mar 7 22:38:24 2013 +0000

    When possible, move __block variables to the heap rather than copying them.

    Fixes <rdar://problem/13330126>.

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

commit 9eda3abe7e183b05834947391c0cdc291f4ee0d8
Author: John McCall <rjmccall@apple.com>
Date:   Thu Mar 7 21:37:17 2013 +0000

    Promote atomic type sizes up to a power of two, capped by
    MaxAtomicPromoteWidth.  Fix a ton of terrible bugs with
    _Atomic types and (non-intrinsic-mediated) loads and stores
    thereto.

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

commit fafaaef243322b1e598a72d7dbfaf2ca0c139174
Author: John McCall <rjmccall@apple.com>
Date:   Thu Mar 7 21:37:12 2013 +0000

    Move the atomics code into its own file.

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

commit 9d232c884ea9872d6555df0fd7359699819bc1f1
Author: John McCall <rjmccall@apple.com>
Date:   Thu Mar 7 21:37:08 2013 +0000

    Change hasAggregateLLVMType, which conflates complex and
    aggregate types in a profoundly wrong way that has to be
    worked around in every call site, to getEvaluationKind,
    which classifies and distinguishes between all of these
    cases.

    Also, normalize the API for loading and storing complexes.

    I'm working on a larger patch and wanted to pull these
    changes out, but it would have be annoying to detangle
    them from each other.

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

commit 372fe788f8ea815071d0ddffe46dd3abc397106e
Author: John McCall <rjmccall@apple.com>
Date:   Thu Mar 7 21:37:02 2013 +0000

    Add CharUnits::alignmentAtOffset.

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

commit 1723f6398ea8aa8d602a478f47695bf3b0374d35
Author: John McCall <rjmccall@apple.com>
Date:   Thu Mar 7 21:36:54 2013 +0000

    Evaluate compound literals directly into the result aggregate
    when that aggregate isn't potentially aliased.

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

commit 76ecdfc53778a8468b7177c556fdbfe797fdbb29
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Thu Mar 7 21:18:31 2013 +0000

    Remove temporary std::vectors that ca be replaced with ArrayRef's magic.

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

commit f302354a7d1a63186fb0d9aa600ce3257be1f690
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Mar 7 20:50:00 2013 +0000

    Remove unncessary whitespace when triggered on empty line.

    With the cursor located at "I", clang-format would not do anything to:

    int a;

       I

      int b;

    With this patch, it reduces the number of empty lines as necessary, and
    removes unnecessary whitespace. It does not change/reformat "int a;" or
    "int b;".

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

commit f4b48042724d2253d0426cadcb93e24eeb47e264
Author: Edwin Vane <edwin.vane@intel.com>
Date:   Thu Mar 7 15:44:40 2013 +0000

    Adding lvalue and rvalue reference type matchers

    Updated docs and tests.

    Reviewers: klimek, gribozavr

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

commit f3ddf639697d9be7f0429f3672a32c9fbac3653d
Author: Guy Benyei <guy.benyei@intel.com>
Date:   Thu Mar 7 13:06:10 2013 +0000

    Add 'e' to the SPIR data layout - SPIR is little endian for now.
    Add 32/64 bit specific target defines for SPIR.

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

commit b9aa6739700d10e99da64cfa9b58ba7ca1c248e2
Author: Matthew Curtis <mcurtis@codeaurora.org>
Date:   Thu Mar 7 12:32:26 2013 +0000

    Minor refactor of how we get compilation phases.

    There is now a single function to get the list of phases for a given
    output Type.

    No functionality change intended.

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

commit 9789d0d247d0bc1a06d1ea82c0630b427aa209c3
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Thu Mar 7 08:42:27 2013 +0000

    Fix build with clang, this was supposed to be part of r176617.

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

commit 0f815f1f91e5cf0726fd8296445038fec3bed80b
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Thu Mar 7 08:28:53 2013 +0000

    Add flags for additional control over coverage generation. Pick the version
    string to be emitted, and two properties about the files themselves.

    Use $PWD to absolut-ify the path to the coverage file. Yes, this is what GCC
    does. Reverts my own r175706.

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

commit 018e9aa033ff7363797c62fc3b14669d0558284b
Author: Anna Zaks <ganna@apple.com>
Date:   Thu Mar 7 03:02:36 2013 +0000

    [analyzer] Warn on passing a reference to null pointer as an argument in a call

    Warn about null pointer dereference earlier when a reference to a null pointer is
    passed in a call. The idea is that even though the standard might allow this, reporting
    the issue earlier is better for diagnostics (the error is reported closer to the place where
    the pointer was set to NULL). This also simplifies analyzer’s diagnostic logic, which has
    to track “where the null came from”. As a consequence, some of our null pointer
    warning suppression mechanisms started triggering more often.

    TODO: Change the name of the file and class to reflect the new check.

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

commit cf048a80ed610262fd634d421ea65ff936901b36
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Thu Mar 7 02:43:24 2013 +0000

    Don't duplicate function names. Thanks to Jordan Rose for pointing it out.

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

commit 531db82c6ecfb4772c6870731c06ad8718f1e0ce
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Thu Mar 7 02:00:27 2013 +0000

    Add a hasExternalLinkage helper. No functionality change.

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

commit 377830097aec41c0cd80ef5972b4e850b44afefd
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Thu Mar 7 01:42:44 2013 +0000

    Add a hasExternalStorageAsWritten helper. No functionality change.

    It is possible that some of the current uses of
    "getStorageClassAsWritten() == SC_Extern" should use this but I don't know
    enough about SC_PrivateExtern to change and test them.

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

commit 58bd77f6132e56dbf7659b1c436ba20b973e6ef9
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Thu Mar 7 01:34:57 2013 +0000

    Fix typo.

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

commit c236b7327f989c1e7fe6b08a188bfef86727513d
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Mar 7 01:23:25 2013 +0000

    [analyzer] Check for returning null references in ReturnUndefChecker.

    Officially in the C++ standard, a null reference cannot exist. However,
    it's still very easy to create one:

    int &getNullRef() {
      int *p = 0;
      return *p;
    }

    We already check that binds to reference regions don't create null references.
    This patch checks that we don't create null references by returning, either.

    <rdar://problem/13364378>

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

commit 962fbc46664f2486d6805549130fa6b310de6d60
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Mar 7 01:23:14 2013 +0000

    [analyzer] Clean up a few doc comments for ProgramState and CallEvent.

    No functionality change.

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

commit 4919de6a53a007487c6d6b173921b5e7152a2004
Author: Adrian Prantl <aprantl@apple.com>
Date:   Wed Mar 6 22:03:30 2013 +0000

    Ensure that DIType is regenerated after we visit an implementation
    that adds ivars to an interface.

    Fixes rdar://13175234

    This is an update to r176116 that performs a smart caching of interfaces.

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

commit 42773d64f98db0dd5cc80181c3b2d561851668f7
Author: Anna Zaks <ganna@apple.com>
Date:   Wed Mar 6 20:26:02 2013 +0000

    [analyzer] Pass the correct Expr to the bug reporter visitors when dealing with CompoundLiteralExpr

    This allows us to trigger the IDC visitor in the added test case.

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

commit 713e07591995d761f65c7132289dce003a29870f
Author: Anna Zaks <ganna@apple.com>
Date:   Wed Mar 6 20:25:59 2013 +0000

    [analyzer] IDC: Add config option; perform the idc check on first “null node” rather than last “non-null”.

    The second modification does not lead to any visible result, but, theoretically, is what we should
    have been looking at to begin with since we are checking if the node was assumed to be null in
    an inlined function.

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

commit 9e8bf2cb9ee4846aa1aaf0a24224d48910fcb621
Author: Tim Murray <timmurray@google.com>
Date:   Wed Mar 6 10:12:22 2013 -0800

    Only build libclang.so in bundled branches.

    Change-Id: I42a1f7e2826fea0cd7cd8fb0e00c4582501f0df5

commit 398253ab0e0dedc6f5ddb1bad2ac6a084d0d88a8
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Mar 6 18:12:50 2013 +0000

    [PCH] When pre-validating the headers from the PCH, only validate non-system headers.

    Stat'ing all the headers from the PCH to make sure they are up-to-date takes significant time.
    In a particular source file (whose PCH file included Cocoa.h) from total -fsyntax-only time
    12% was just stat calls. Change pre-validation to only check non-system headers.

    There are some notable disadvantages:

    -If a system header, that is not include-guarded, changes after the PCH was created, we will not
    find it in the header info table and we will #import it, effectively #importing it twice, thus
    we will emit some error due to a multiple definition and after that the "header was modified" error will likely
    be emitted, for example something like:

    NSDictionary.h:12:1: error: duplicate interface definition for class 'NSDictionary'
    @interface NSDictionary : NSObject <NSCopying, NSMutableCopying, NSSecureCoding, NSFastEnumeration>
    ^
    NSDictionary.h:12:12: note: previous definition is here
    @interface NSDictionary : NSObject <NSCopying, NSMutableCopying, NSSecureCoding, NSFastEnumeration>
               ^
    fatal error: file 'NSDictionary.h' has been modified since the precompiled header was built

    Though we get the "header was modified" error, this is a bit confusing.

    -Theoretically it is possible that such a system header will cause no errors but it will just cause an
    unfortunate semantic change, though I find this rather unlikely.

    The advantages:

    -Reduces compilation time when using a huge PCH like the Cocoa ones
    -System headers change very infrequent and when they do, users/build systems should be able to know that
    re-building from scratch is needed.

    Addresses rdar://13056262

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

commit ed3802e5da6e7d41975b1cb3d7ae3a3b9e855d10
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Mar 6 18:12:47 2013 +0000

    [PCH] For HeaderFileInfoTrait, hash the key using size & time of the file.

    Previously the hash would be the filename portion of the path, which could be
    different for a filename with different case or a symbolic link with a different
    name completely.
    This did not actually create any issue so far because by validating all headers
    in the PCH we created uniqued FileEntries based on inodes, so an #include of
    a symbolic link (refering to a file from the PCH) would end up with a FileEntry
    with filename same as the one recorded in the PCH.

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

commit 36592b1fa381a978b1b6d4b97c66fb274915fe50
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Mar 6 18:12:44 2013 +0000

    [PCH] We don't need to instantiate HeaderFileInfoTrait in ASTReader more than once.

    We can just re-use the one from HeaderFileInfoLookupTable.

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

commit 8bd50b169c567e5da12b1f8e91af4ab3840202f2
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Mar 6 18:12:41 2013 +0000

    [PCH] Remove a couple of fields from serialization::reader::HeaderFileInfoTrait that are not used for anything.

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

commit 26facface1884eeadf305277479fe020e9b5983c
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Mar 6 17:55:30 2013 +0000

    Spell Objective-C correctly.

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

commit 88f070f99f7f352e294eed212fdf7a23c0815fe2
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Mar 6 17:36:51 2013 +0000

    say objective-C in the warning and streamline
    several diagnostics into one. // rdar://13094352

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

commit f2e7c35ade3d28ef1c5ad91f757a7993b0006bbe
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Wed Mar 6 17:14:05 2013 +0000

    Driver: add support for new style multiarch in Ubuntu 13.04

    Patch by Sanne Wouda.

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

commit 6a19a97e57c8678adb0505a07c97d7ccadc8fe4e
Author: Edwin Vane <edwin.vane@intel.com>
Date:   Wed Mar 6 17:02:57 2013 +0000

    New ASTMatchers and enhancement to hasOverloadedOperatorName

    Added two new narrowing matchers:
    * hasMethod: aplies a matcher to a CXXRecordDecl's methods until a match is made
      or there are no more methods.
    * hasCanonicalType: applies a matcher to a QualType's canonicalType.

    Enhanced hasOverloadedOperatorName to work on CXXMethodDecl as well as
    CXXOperatorCallExpr.

    Updated tests and docs.

    Reviewers: klimek, gribozavr

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

commit 7e73f94c104070cf03c6f711a10f1928a550193f
Author: Alexey Samsonov <samsonov@google.com>
Date:   Wed Mar 6 10:54:18 2013 +0000

    [Sanitize] Don't emit function attribute sanitize_address/thread/memory if the function is blacklisted.

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

commit bd3aca04d304b9f31240b94af0aad818f6f932ab
Author: Stephen Hines <srhines@google.com>
Date:   Tue Mar 5 23:41:44 2013 -0800

    Update build rules for Clang merge to version 176138.

    Change-Id: Ib028329a591e6175998d969f11b5404bf3f19e81

commit 450b86c0c9ff8307f5145ced621914600196c500
Merge: f553c8d b58f810
Author: Stephen Hines <srhines@google.com>
Date:   Tue Mar 5 23:37:49 2013 -0800

    Merge commit 'b58f810669d9c17bcc025b7560de01d162856f34' into merge_20130226

    Conflicts:
    	include/clang/Basic/LangOptions.def
    	lib/Sema/SemaDeclAttr.cpp

    Change-Id: Ia10b4d3b2c949a72d328cb58b113f90237d4a5d5

commit 360355db57d15ce3c90051b05cca993a4c5ee8db
Author: Weiming Zhao <weimingz@codeaurora.org>
Date:   Wed Mar 6 02:08:54 2013 +0000

    revert r176531 due to clan-native-arm fails

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

commit 3cdbbdc53241907939486ba4a9b0c9b5655419c3
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Mar 6 01:37:38 2013 +0000

    PR15390: If a function returns a pointer to a function, that function type
    can't have default arguments even though it's a parameter-declaration-clause in
    a function declaration.

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

commit eed55e6061768c0faff62dda22c6edad9d286501
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Mar 6 00:46:00 2013 +0000

    After issuing a diagnostic for undefining or redefining a builtin macro,
    continue parsing the directive rather than silently discarding it.

    Allowing undef or redef of __TIME__ and __DATE__ is important to folks
    who want stable, reproducible builds.

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

commit 75525c4cce5e1e097d3fab4391b11619d87cedfd
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Mar 6 00:37:40 2013 +0000

    objective-C: don't crash after diagnosing
    using object subscripting without declaring objectForKeyedSubscript:
    // rdar://13333205

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

commit b4e82454b63558e13ff5491173619857f05599e2
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Mar 5 23:59:13 2013 +0000

    Remove unused static variable.

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

commit cf2c2e9588a12a716615850cc5bfacd9b20f68ef
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Tue Mar 5 23:54:55 2013 +0000

    Preprocessor: don't keep comments under -traditional-cpp.

    This patch is designed for minimal intrusion into normal preprocessing
    and compilation; under -E -traditional-cpp, the lexer will still
    generate tok::comment nodes since it is preserving all whitespace, but
    the output printer will then throw it away.

    <rdar://problem/13338680>

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

commit 46a2290c030597e26022fe2b535c8e4b0d30a765
Author: Weiming Zhao <weimingz@codeaurora.org>
Date:   Tue Mar 5 23:27:21 2013 +0000

    PR 11326: Lack diagnosic message when ABI conflicts on ARM

    When both Triple and -mabi are used, it may result into conflicting ABI value.

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

commit eb8f69f094e95d0132e4a6817a2111ad188ab087
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Mar 5 23:20:29 2013 +0000

    fix a missing check in my last patch.
    // rdar://13094352

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

commit 693fdfa069b74ffe1f79caa3c9ea8754555d29bd
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Tue Mar 5 22:51:04 2013 +0000

    Preprocessor: don't consider // to be a line comment in -E -std=c89 mode.

    It's beneficial when compiling to treat // as the start of a line
    comment even in -std=c89 mode, since it's not valid C code (with a few
    rare exceptions) and is usually intended as such. We emit a pedantic
    warning and then continue on as if line comments were enabled.
    This has been our behavior for quite some time.

    However, people use the preprocessor for things besides C source files.
    In today's prompting example, the input contains (unquoted) URLs, which
    contain // but should still be preserved.

    This change instructs the lexer to treat // as a plain token if Clang is
    in C90 mode and generating preprocessed output rather than actually compiling.

    <rdar://problem/13338743>

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

commit 99a7057098c56211e641705e1ff38d4b7c8b309d
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Mar 5 22:46:07 2013 +0000

    doc. parsing. Improve on diagnostics on my last patch.
    // rdar://13094352.

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

commit f32e11dcec10f5f52eded47c3c9e9608dbdc1a08
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Mar 5 21:49:52 2013 +0000

    Remove outdated claim that GCC builds without a C++ compiler from compilers comparison.

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

commit 23742cd8c6416c6c777904fb837b2021361c4f38
Author: Lang Hames <lhames@gmail.com>
Date:   Tue Mar 5 20:27:24 2013 +0000

    Use ASTContext::getDeclAlign(<Field Decl>) to get the alignment of the first
    field to be memcpy'd, rather instead of ASTContext::getTypeAlign(<Field Type>).
    For packed structs the alignment of a field may be less than the alignment of
    the field's type.

    <rdar://problem/13338585>

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

commit 44f65a587ee39c20e715c9df411c864d328c71b5
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Mar 5 20:21:14 2013 +0000

    [libclang] When logging a CXTranslationUnit that came from an AST file, print out the filename.

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

commit ca76bf8a935ef1da970fbc95869e899120883ba1
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Mar 5 19:52:24 2013 +0000

    Fix this checkin.

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

commit bca9788dbaf5fcf241efdc82ddcda712cb22214e
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Mar 5 19:40:47 2013 +0000

    doc parsing. Add @method and @callback for
    checkings and few other refactoring/cleanup.
    // rdar://13094352.

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

commit 971023066ce2a20aa693cc981412d015bac304b9
Author: Jack Carter <jack.carter@imgtec.com>
Date:   Tue Mar 5 19:10:54 2013 +0000

    Mips specific inline assembler constraint 'R'

    'R' An address that can be sued in a non-macro load or store.

    Including missing positive test case and fixed typo for r176453.

    Thanks to Richard Smith for catching this!

    Jack

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

commit 7e6f23a02d8f591d4d9b21328a1e973aa306ce49
Author: Edwin Vane <edwin.vane@intel.com>
Date:   Tue Mar 5 18:04:37 2013 +0000

    Make LibASTMatchersTutorial code match text

    Fixed code to match text. Slight adjustment for readability.

    Author: Béatrice Creusillet

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

commit ba6efd3419a93ccc13a0e07ad65aa6a524291bb7
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Tue Mar 5 13:05:56 2013 +0000

    Documentation: use code highlighting

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

commit ebed32cfd82aa48ac3cba034fc11f8602b2f7233
Author: David Chisnall <csdavec@swan.ac.uk>
Date:   Tue Mar 5 11:20:04 2013 +0000

    Add a test that we are passing the -fobjc-default-synthesize flag for Apple and
    non-Apple platforms.

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

commit 3c5cd15da59d084ee441ac1512907a73f0e1f2bd
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Mar 5 08:30:04 2013 +0000

    Don't emit calls to virtual [[noreturn]] functions as noreturn; overrides of a
    [[noreturn]] function are not required to also be [[noreturn]]. We still emit
    calls to virtual __attribute__((noreturn)) functions as noreturn; unlike GCC,
    we do require overriders to also be noreturn for that attribute.

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

commit 4b02dff7aebb98d2d60b2ff4d3fc86109213128c
Author: David Blaikie <dblaikie@gmail.com>
Date:   Tue Mar 5 06:21:38 2013 +0000

    Add quotation marks to template names in diagnostics.

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

commit e09b8c41d0eeb17f8cbe73affb213cb7ff8d0718
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Tue Mar 5 02:33:08 2013 +0000

    scan-build: explicitly say "No bugs found" if there are no reports.

    Patch by Martin Storsjo!

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

commit 41f3f3a4792f46787632fdb94f952f6b3ce3f4ae
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Tue Mar 5 01:27:54 2013 +0000

    Silence a number of static analyzer warnings with assertions and such.

    No functionality change.

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

commit 2a268f2629b49958427e8eb02f2c3d565be71acc
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Mar 5 01:05:07 2013 +0000

    doc parsing. We want to issue a strong warning when
    an @function comment is not followed by a function decl.
    // rdar://13094352

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

commit 5aff3f1e9a66fa72576a6b04c8c319c17e0360c6
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Mon Mar 4 23:21:32 2013 +0000

    [analyzer] Don't let cf_audited_transfer override CFRetain semantics.

    We weren't treating a cf_audited_transfer CFRetain as returning +1 because
    its name doesn't contain "Create" or "Copy". Oops! Fortunately, the
    standard definitions of these functions are not marked audited.

    <rdar://problem/13339601>

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

commit 808383d2d6d58a7c7db85f8c7618fb74d821309f
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Mon Mar 4 23:06:15 2013 +0000

    Comment parsing: refactor handling of command markers in AST

    * Use the term 'command marker', because the semantics of 'backslash' and 'at'
      commands are the same.  (Talking about 'at commands' makes them look like a
      special entity.)

    * Sink the flag down into bitfields, reducing the size of AST nodes.

    * Change the flag into an enum for clarity.  Boolean function parameters are
      not very clear.

    * Add unittests for new tok::at_command tokens.

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

commit 2503ebd2cf9b4d28319551debaacff8b38765698
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Mon Mar 4 22:37:49 2013 +0000

    Add ARM v6m, v7m, and v7em architectures for Cortex-M series processors.

    <rdar://problem/11314476>

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

commit fc55345144f636f7687fd37649f0302914981fff
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Mon Mar 4 22:37:46 2013 +0000

    Tidy up lists of Cortex-A series processors, adding entries for A7.

    Also fix a missing entry for cortex-r5 in one copy of getLLVMArchSuffixForARM.

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

commit 532f5a9d64212ae9dbaa19f25b223ecb4ed680ba
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Mon Mar 4 22:37:43 2013 +0000

    Fix confused use of llvm::StringSwitch for armv7r architecture.

    svn 170909 added support for cortex-r5 but in this case it was done
    incorrectly. The last argument to StringSwitch.Cases() is the replacement
    value, so by adding "cortex-r5" it changed the default cpu for armv7r to
    cortex-r5 instead of cortex-r4.

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

commit d2ab6d371e2bb93ced857041b9173ad50bbcbfcd
Author: Jack Carter <jack.carter@imgtec.com>
Date:   Mon Mar 4 21:36:11 2013 +0000

    Mips specific inline assembler constraint 'R'

    'R' An address that can be sued in a non-macro load or store.
    This patch includes a positive test case.

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

commit 1c1508b37bc2a9419b2e22beef9e788eb74203f4
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Mon Mar 4 20:33:40 2013 +0000

    [PCH] In HeaderFileInfoTrait::EqualKey(), use FileManager::getFile() to compare two filenames, instead of llvm::sys::fs::equivalent().

    llvm::sys::fs::equivalent() does 2 stat calls every time it's called. Use FileManager::getFile() to take advantage
    of the stat caching that FileManager is providing.

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

commit 8cc9c9d2235b7ac45c480de49eb5a1d10dba4154
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Mon Mar 4 20:23:16 2013 +0000

    Comment parsing tests: move a test into a group of similar tests

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

commit c9320095d0126a104552ae718af461ad53316a34
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Mon Mar 4 20:08:47 2013 +0000

    [comment parsing] source fidelity for tparam command too.
    // rdar://13066276

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

commit 0090591e505637cf2d9ea3b45768334d78d24ca2
Author: Manuel Klimek <klimek@google.com>
Date:   Mon Mar 4 20:03:38 2013 +0000

    Make sure to not split string literals at the first character.

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

commit 151b2ac8c84fe751871dcdb041efec655fab70eb
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Mon Mar 4 19:39:33 2013 +0000

    warn-documentation.cpp: reorganize tests

    Tests are ordered by command in this file.  It is nice to keep it that way.

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

commit 66f6c24146efccc9ad7e37dbd2bd0ea1844e6422
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Mon Mar 4 18:53:41 2013 +0000

    comment parsing. Missed a case of referring
    to original command in diagnostic. // rdar://13066276

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

commit aec89ac22e1876bb1cfff9062c882a622bc84510
Author: Edwin Vane <edwin.vane@intel.com>
Date:   Mon Mar 4 17:51:00 2013 +0000

    hasQualifer() matcher should return false if there's no qualifier

    Instead of passing NULL on to sub-matcher, just return false. Updated tests and
    regenerated docs.

    Author: Tareq A Siraj <tareq.a.siraj@intel.com>

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

commit fd07591ea5bcdb7fdd391dc64488d3551619ed3d
Author: Tom Stellard <thomas.stellard@amd.com>
Date:   Mon Mar 4 17:40:53 2013 +0000

    R600: Use the GPU type to determine the correct DataLayout v2

    v2:
      - Add R600_DOUBLE_OPS for RV670
      - s/CPU/GPU/

    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>

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

commit 1eee6c4269af28eb4e3500de7fc39c1eb8b26aa3
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Mar 4 13:43:19 2013 +0000

    Format a line if a range in its leading whitespace was selected.

    With [] marking the selected range, clang-format invoked on

        [  ]   int a;

    Would so far not reformat anything. With this patch, it formats a
    line if its leading whitespace is touched.

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

commit e3a2b81429d935e3cfafa4c3ad1b21b957653165
Author: Manuel Klimek <klimek@google.com>
Date:   Mon Mar 4 11:31:46 2013 +0000

    Make the tutorial easier to compile by adding in some of the details.

    Patch by Béatrice Creusillet.

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

commit 2f8845fa59587456d53aa6056ee79984812fdf14
Author: John McCall <rjmccall@apple.com>
Date:   Mon Mar 4 07:35:41 2013 +0000

    Correction to r176432: the bug actually fixed was <rdar://13025708>.

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

commit 48f904271effd381ec3c1ae33b97d1ec7d95860a
Author: John McCall <rjmccall@apple.com>
Date:   Mon Mar 4 07:34:02 2013 +0000

    Centralize and refine the __unknown_anytype argument rules
    and be sure to apply them whether or not the debugger gave
    us a method declaration.

    rdar://12565338

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

commit 0353a7b2df9dc36784f9ec354c266f9c603053e1
Author: John McCall <rjmccall@apple.com>
Date:   Mon Mar 4 06:32:36 2013 +0000

    Fix the emission of the copy-initialization of a block capture
    from a lambda capture when the capture is not trivially-copyable.

    rdar://13295759

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

commit 68f94dbbd20cf41af733f2036c8688894489c3fd
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Mon Mar 4 02:07:55 2013 +0000

    Check for warnings in a bunch of the linker invocations, and add one
    with both -static-libgcc and -static on the commandline.

    Fix a warning in the latter case due to a backwards short circuiting ||
    operator in the driver. No real functionality changed here, just allows
    the driver to properly consume -static-libgcc when -static is also
    specified.

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

commit 7a534b94138ef2ad1a75b26b3b5bf1aa948d4121
Author: John McCall <rjmccall@apple.com>
Date:   Mon Mar 4 01:30:55 2013 +0000

    Perform non-overload placeholder conversions on the operands
    to a subscript operator.

    rdar://13332183

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

commit 0074d38bee15c25d3f91d4f16f223ed0dca3f33f
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Mon Mar 4 01:27:49 2013 +0000

    Beef up the testing of our 'ld' invocation on linux to cover static
    linking. About to fix a bug here and there was no good test case.

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

commit d0d6f64aeef3acc41b1df622fd225bbabc9e9a01
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sun Mar 3 17:54:36 2013 +0000

    Add an idea for a cpp11-migrate tool: TR1 migration

    Idea by Marshall Clow.

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

commit b00150a17ac3613ea3a23922910840fe17abadbc
Author: David Chisnall <csdavec@swan.ac.uk>
Date:   Sun Mar 3 17:50:06 2013 +0000

    Remove unused check from test.

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

commit 7298c0b14c0e33f79de719919be1bbc8235eb5d0
Author: Sean Silva <silvas@purdue.edu>
Date:   Sun Mar 3 17:07:35 2013 +0000

    [docs] Spelling

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

commit 72c1dba494b02960284bc6618c1b640c950c3785
Author: David Chisnall <csdavec@swan.ac.uk>
Date:   Sun Mar 3 16:02:42 2013 +0000

    Improve C11 atomics support:

    - Generate atomicrmw operations in most of the cases when it's sensible to do
      so.
    - Don't crash in several common cases (and hopefully don't crash in more of
      them).
    - Add some better tests.

    We now generate significantly better code for things like:
    _Atomic(int) x;
    ...
    x++;

    On MIPS, this now generates a 4-instruction ll/sc loop, where previously it
    generated about 30 instructions in two nested loops.  On x86-64, we generate a
    single lock incl, instead of a lock cmpxchgl loop (one instruction instead of
    ten).

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

commit 5b9f5cc7c4310aec110f315df6fc6d6366b24b08
Author: David Chisnall <csdavec@swan.ac.uk>
Date:   Sun Mar 3 15:36:10 2013 +0000

    Default to enabling default-synthesized ivars on all platforms

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

commit e7259ae90d9dd79fdf7ea4d7030f596c6bb3a48d
Author: Sean Silva <silvas@purdue.edu>
Date:   Sun Mar 3 15:17:35 2013 +0000

    [docs] Use vim code-block instead of console.

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

commit 65611bf036dab4e2ba90b1316b1b21b276dde185
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Sat Mar 2 21:41:48 2013 +0000

    Process #pragma weak only after we know the linkage of the function or variable
    we are looking at.

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

commit b88d9480e04039188c39e49367cb13d64e644cf8
Author: Peter Collingbourne <peter@pcc.me.uk>
Date:   Sat Mar 2 06:00:16 2013 +0000

    CommandLineArgumentParser: handle single quotes.

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

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

commit cc5dbdae70c6eb2423921f52a35ba4686d2969cf
Author: Anna Zaks <ganna@apple.com>
Date:   Sat Mar 2 03:20:52 2013 +0000

    [analyzer] Simple inline defensive checks suppression

    Inlining brought a few "null pointer use" false positives, which occur because
    the callee defensively checks if a pointer is NULL, whereas the caller knows
    that the pointer cannot be NULL in the context of the given call.

    This is a first attempt to silence these warnings by tracking the symbolic value
    along the execution path in the BugReporter. The new visitor finds the node
    in which the symbol was first constrained to NULL. If the node belongs to
    a function on the active stack, the warning is reported, otherwise, it is
    suppressed.

    There are several areas for follow up work, for example:
     - How do we differentiate the cases where the first check is followed by
    another one, which does happen on the active stack?

    Also, this only silences a fraction of null pointer use warnings. For example, it
    does not do anything for the cases where NULL was assigned inside a callee.

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

commit 8536fa14ee1048e5e2d62cb3dc11fc640c7dc00d
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Sat Mar 2 02:39:57 2013 +0000

    Some refactoring in my patch on document
    command source fidelity. // rdar://13066276

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

commit 15e05e932ccf9ba2621394834b62684b42d6fd40
Author: Peter Collingbourne <peter@pcc.me.uk>
Date:   Sat Mar 2 01:20:22 2013 +0000

    LLVM API changes.

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

commit 549a292b54d719e0f3c180f5d982d6aa72645fcc
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Mar 2 00:49:47 2013 +0000

    CMake: -Wno-nested-anon-types for Clang.

    In LLVM, -pedantic is not set unless LLVM_ENABLE_PEDANTIC is set.
    However, Clang's CMakeLists.txt unilaterally adds -pedantic to the run
    line, so we need to disable -Wnested-anon-types explicitly.

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

commit 067e9684ac8eb9eb2bf70c4fe7d04a3d9af64404
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Mar 1 23:26:05 2013 +0000

    [analyzer] Update open source checker build to checker-272.

    See http://clang-analyzer.llvm.org/release_notes.html for what's new
    in this build.

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

commit d764e20189dbb42b38ada383a0a159f6adc0d56c
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Mar 1 23:03:17 2013 +0000

    [analyzer] Special-case bitfields when finding sub-region bindings.

    Previously we were assuming that we'd never ask for the sub-region bindings
    of a bitfield, since a bitfield cannot have subregions. However,
    unification of code paths has made that assumption invalid. While we could
    take advantage of this by just checking for the single possible binding,
    it's probably better to do the right thing, so that if/when we someday
    support unions we'll do the right thing there, too.

    This fixes a handful of false positives in analyzing LLVM.

    <rdar://problem/13325522>

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

commit c98e9130bcddd0258c110d30749edd2284087e3d
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Mar 1 22:51:30 2013 +0000

    comment parsing. Keep the original command format
    in AST for source fidelity and use it in diagnostics
    to refer to the original format. // rdar://13066276

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

commit fc09336a5965040736f9bc63a70416003972364e
Author: Stefanus Du Toit <stefanus.dutoit@rapidmind.com>
Date:   Fri Mar 1 21:41:22 2013 +0000

    Fix typos: [Dd]iagnosic -> [Dd]iagnostic

    These all appear in comments or (ironically) diagnostics output.

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

commit 9abf1b4577b75ffcc46afbdfb55de334f68f05c0
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Mar 1 19:45:10 2013 +0000

    [analyzer] Suppress paths involving a reference whose rvalue is null.

    Most map types have an operator[] that inserts a new element if the key
    isn't found, then returns a reference to the value slot so that you can
    assign into it. However, if the value type is a pointer, it will be
    initialized to null. This is usually no problem.

    However, if the user /knows/ the map contains a value for a particular key,
    they may just use it immediately:

       // From ClangSACheckersEmitter.cpp
       recordGroupMap[group]->Checkers

    In this case the analyzer reports a null dereference on the path where the
    key is not in the map, even though the user knows that path is impossible
    here. They could silence the warning by adding an assertion, but that means
    splitting up the expression and introducing a local variable. (Note that
    the analyzer has no way of knowing that recordGroupMap[group] will return
    the same reference if called twice in a row!)

    We already have logic that says a null dereference has a high chance of
    being a false positive if the null came from an inlined function. This
    patch simply extends that to references whose rvalues are null as well,
    silencing several false positives in LLVM.

    <rdar://problem/13239854>

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

commit 516fb31d0536040334032e2af6b62cd6a5479d1c
Author: Daniel Jasper <djasper@google.com>
Date:   Fri Mar 1 18:11:39 2013 +0000

    Remove whitespace at end of file.

    This fixes the rest of llvm.org/PR15062.

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

commit 8a5d7cd100ebfb8c6b353ee4ad5b14ab4105d32d
Author: Daniel Jasper <djasper@google.com>
Date:   Fri Mar 1 17:13:29 2013 +0000

    Correctly format arrays of pointers and function types.

    Before:
    void f(Type(*parameter)[10]) {}
    int(*func)(void *);

    After:
    void f(Type (*parameter)[10]) {}
    int (*func)(void *);

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

commit 9b5b65957c6830af92dd1d62cbf8e341c95bc283
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Mar 1 17:01:31 2013 +0000

    [PCH] Remove building a SmallPtrSet that is not actually used for anything.

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

commit 248497199bc56e86d1c089beb9529f3b3d77abb1
Author: Daniel Jasper <djasper@google.com>
Date:   Fri Mar 1 16:48:32 2013 +0000

    Normal indent for last element of builder-type call.

    In builder type call, we indent to the laster function calls.
    However, for the last element of such a call, we don't need to do
    so, as that normally just wastes space and does not increase
    readability.

    Before:
    aaaaaa->aaaaaa->aaaaaa( // break
                      aaaaaa);
    aaaaaaaaaaaaaaaaaaaaa->aaaaaaaaaaaaaaaaaaaaaa
        ->aaaaaaaaaaaaaaaaaaaaaaaaaa(
            aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);

    After:
    aaaaaa->aaaaaa->aaaaaa( // break
        aaaaaa);
    aaaaaaaaaaaaaaaaaaaaa->aaaaaaaaaaaaaaaaaaaaaa->aaaaaaaaaaaaaaaaaaaaaaaaaa(
        aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);

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

commit 812c045e591495b940f5a9102b146bb43b970e1f
Author: Daniel Jasper <djasper@google.com>
Date:   Fri Mar 1 16:45:59 2013 +0000

    Remove trailing whitespace of line comments.

    This fixed llvm.org/PR15378.

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

commit bc30c71d20f05bc39b5dd73f06ee4dede9c55710
Author: Manuel Klimek <klimek@google.com>
Date:   Fri Mar 1 13:29:19 2013 +0000

    Implements breaking string literals at slashes.

    We now break at a slash if we do not find a space to break on.

    Also fixes a bug where we would go over the limit when breaking the
    second line.

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

commit af31fd7021e685280da9155e5017f1053b05fdf8
Author: Manuel Klimek <klimek@google.com>
Date:   Fri Mar 1 13:14:08 2013 +0000

    Implement fallback split point for string literals.

    If we don't find a natural split point (currently space) in a string
    literal protruding over the line, we just split at the last possible
    point.

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

commit 2fbe92cc2464c77825209df9a262d9d13e5ba64c
Author: John McCall <rjmccall@apple.com>
Date:   Fri Mar 1 09:20:14 2013 +0000

    Perform the receiver-expression transformations regardless of
    whether we already have a method.  Fixes a bug where we were
    failing to properly contextually convert a message receiver
    during template instantiation.

    As a side-effect, we now actually perform correct method lookup
    after adjusting a message-send to integral or non-ObjC pointer
    types (legal outside of ARC).

    rdar://13305374

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

commit b2381b1c91ac5dc2407e98f36e3a6ba93d771791
Author: John McCall <rjmccall@apple.com>
Date:   Fri Mar 1 07:58:16 2013 +0000

    Attempt to not place ownership qualifiers on the result type
    of block declarators.  Document the rule we use.

    Also document the rule that Doug implemented a few weeks ago
    which drops ownership qualifiers on function result types.

    rdar://10127067

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

commit df539194a00bd026cdc0da67438ad443c4f2d310
Author: Anna Zaks <ganna@apple.com>
Date:   Fri Mar 1 06:38:16 2013 +0000

    [analyzer] Reword FAQ
    Reword the FAQ to stress more that the assert should be used only in case
    the developer is sure that the issue is a false positive.

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

commit 838a920fda4408d1b12faca704da2b848a6efcc1
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Mar 1 03:43:33 2013 +0000

    Add one more sanity check in SourceManager::getFileIDLoaded().

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

commit 8504b7b8102a52b2a16231d459fb3cfab4784c38
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Mar 1 03:26:04 2013 +0000

    [PCH] Enhance InputFile to also include whether the file is out-of-date.

    Previously we would return null for an out-of-date file. This inhibited ASTReader::ReadSLocEntry
    from creating a FileID to recover gracefully in such a case.

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

commit 7db4bb9226f303392934c91869afdeb4d153ca95
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Mar 1 03:26:00 2013 +0000

    In SourceManager::getFileIDLoaded(), add some sanity checks to make sure we don't enter an infinite loop.

    rdar://13120919

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

commit 4a68c7bc86bcaf44f6aee5a470c743b47c11716e
Author: John McCall <rjmccall@apple.com>
Date:   Fri Mar 1 01:38:54 2013 +0000

    Restore order to placate test.  I had no real reason to switch them.

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

commit ed383135bcffdb8849418896b742fbca7fa2b787
Author: John McCall <rjmccall@apple.com>
Date:   Fri Mar 1 01:24:35 2013 +0000

    Re-use bit from superclass and extract stuff into a local
    function.  Serves a patch we're kicking around out-of-tree.

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

commit d1084f6dd10ec79d1618d957fd3174bd04096cb3
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Feb 28 23:16:39 2013 +0000

    Fix warning text of my last patch.
    // rdar://13158394

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

commit be9e8bfef6ee7f81ea30e9d358101b4f8d560c6b
Author: Bill Wendling <isanbard@gmail.com>
Date:   Thu Feb 28 22:49:57 2013 +0000

    Add more of the command line options as attribute flags.

    These can be easily queried by the back-end.

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

commit ced0e6570a90e3e7ab09691fd7f04428f4e97977
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Feb 28 22:36:31 2013 +0000

    objective-C: clang, following gcc, warns on
    use of stand-alone protocol as type and uses
    id<proto>. Modify warning to say what compiler
    is doing. // rdar//13158394

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

commit bd7370a78604e9a20d698bfe328c1e43f12a0613
Author: John McCall <rjmccall@apple.com>
Date:   Thu Feb 28 19:01:20 2013 +0000

    Use the actual ABI-determined C calling convention for runtime
    calls and declarations.

    LLVM has a default CC determined by the target triple.  This is
    not always the actual default CC for the ABI we've been asked to
    target, and so we sometimes find ourselves annotating all user
    functions with an explicit calling convention.  Since these
    calling conventions usually agree for the simple set of argument
    types passed to most runtime functions, using the LLVM-default CC
    in principle has no effect.  However, the LLVM optimizer goes
    into histrionics if it sees this kind of formal CC mismatch,
    since it has no concept of CC compatibility.  Therefore, if this
    module happens to define the "runtime" function, or got LTO'ed
    with such a definition, we can miscompile;  so it's quite
    important to get this right.

    Defining runtime functions locally is quite common in embedded
    applications.

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

commit 280b956c8ead04adaa08b271cd93f7e49ca7eb3b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Feb 28 18:16:24 2013 +0000

    ClangFormat.rst: Fix two small typos

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

commit 8ddfb0b72d0e439d01759c1bc7a79ba73dd2830c
Author: Manuel Klimek <klimek@google.com>
Date:   Thu Feb 28 18:12:44 2013 +0000

    Fix a problem where 'clang' is ambiguous in MSVC builds.

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

commit 809d1f1f808ca2eba3f7c9631f673554d31e7f31
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Feb 28 18:03:28 2013 +0000

    Add comment to my last test.

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

commit b98f7af5685458a00d4efd60429378efe88ad10f
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Feb 28 17:47:14 2013 +0000

    objective-C code completion. Property accessors may not
    have their own code completion comments. Use those in
    their properties in this case.
    // rdar://12791315

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

commit 25e81b255cea00fe633f2822c1d1d708ef871a59
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Feb 28 15:04:12 2013 +0000

    Reduce penalty for splitting after "{" in static initializers.

    This fixes llvm.org/PR15379.

    Before:
    const uint8_t aaaaaaaaaaaaaaaaaaaaaa[0] = { 0x00, 0x00, 0x00, 0x00, 0x00,
                                                0x00,                  // comment
                                                0x00, 0x00, 0x00, 0x00, 0x00,
                                                0x00,                  // comment
                                                0x00, 0x00, 0x00, 0x00 // comment
    };

    After:
    const uint8_t aaaaaaaaaaaaaaaaaaaaaa[0] = {
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // comment
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // comment
      0x00, 0x00, 0x00, 0x00              // comment
    };

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

commit 8ed4100410ea055a03be5ec4a92a947a0ee664cd
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Feb 28 14:44:25 2013 +0000

    Dont break between (( in __attribute__((.

    Before:
    void aaaaaaaaaaaaaaaaaa() __attribute__(
        (aaaaaaaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaa,
         aaaaaaaaaaaaaaaaaaaaaaaaa));

    After:
    void aaaaaaaaaaaaaaaaaa()
        __attribute__((aaaaaaaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaa,
                       aaaaaaaaaaaaaaaaaaaaaaaaa));

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

commit de38cb1fc8429e7adbd59308d19628cfda5aeee6
Author: David Chisnall <csdavec@swan.ac.uk>
Date:   Thu Feb 28 13:59:29 2013 +0000

    Improve property metadata generation with the GNUstep runtime.

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

commit 9c3c7b3130bc72b3f50703c11b85152b1264fc90
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Feb 28 13:40:17 2013 +0000

    No spaces around pointers to members.

    Before: (a ->* f)()
    After:  (a->*f)()

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

commit ff9a01000ff74a994aa3da26ea2ec732c97291b7
Author: Manuel Klimek <klimek@google.com>
Date:   Thu Feb 28 13:21:39 2013 +0000

    First step towards adding a parent map to the ASTContext.

    This does not yet implement the LimitNode approach discussed.

    The impact of this is an O(n) in the number of nodes in the AST
    reduction of complexity for certain kinds of matchers (as otherwise the
    parent map gets recreated for every new MatchFinder).

    See FIXMEs in the comments for the direction of future work.

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

commit a4d4621b206f941cc58d9d0bc7c67a8e705c9d49
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Feb 28 11:05:57 2013 +0000

    Improve formatting of #defines.

    Two improvements:
    1) Always leave at least one space before "\". Otherwise is can look bad
       and there is a risk of unwillingly joining to characters to a different
       token.
    2) Use the full column limit for single-line #defines.
       Fixes llvm.org/PR15148

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

commit b6f02f3bcb5ddcd7c7f1a3571d554fe55c72968f
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Feb 28 10:06:05 2013 +0000

    Fix bug when formatting "A<A<A>>".

    Before:
    A<A<A>> ReadKansas(int aaaaaaaaaaaaaaaaaaaaaaaaaaa,
                         int aaaaaaaaaaaaaaaaaaaaaaa);
    Before:
    A<A<A>> ReadKansas(int aaaaaaaaaaaaaaaaaaaaaaaaaaa,
                       int aaaaaaaaaaaaaaaaaaaaaaa);

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

commit 3a39ac7cee044cf7d9b524b529a97d5f075ee695
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Feb 28 09:39:12 2013 +0000

    Fix incorrect recognition of bin-packing.

    Before (in Google style):
    Constructor()
        : aaaaa(aaaaaa), aaaaa(aaaaaa), aaaaa(aaaaaa), aaaaa(aaaaaa), aaaaa(
              aaaaaa) {}

    After:
    Constructor()
        : aaaaa(aaaaaa),
          aaaaa(aaaaaa),
          aaaaa(aaaaaa),
          aaaaa(aaaaaa),
          aaaaa(aaaaaa) {}

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

commit 807809c421811509f488f3ebd249585025ad918a
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Feb 28 09:21:10 2013 +0000

    Fix spacing after binary operator as macro parameter.

    Before: COMPARE(a, == , b);
    After:  COMPARE(a, ==, b);

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

commit 16cda861c5587d7130a216466a29a808673c1656
Author: Evgeniy Stepanov <eugeni.stepanov@gmail.com>
Date:   Thu Feb 28 07:53:32 2013 +0000

    Fix global overflow in types::lookupTypeForTypeSpecifier.

    memcpy() is allowed to read entire contents of both memory areas.

    Found with AddressSanitizer.

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

commit e33d852452c7008ccd0677aae88f1055cf1a9af1
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Feb 28 01:53:08 2013 +0000

    [analyzer] RegionStore: collectSubRegionKeys -> collectSubRegionBindings

    By returning the (key, value) binding pairs, we save lookups afterwards.
    This also enables further work later on.

    No functionality change.

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

commit a19dc41bd408732d407d0152f67b389f7333db25
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Feb 28 01:53:03 2013 +0000

    [analyzer] Mark the root SVal class as isPodLike.

    Pure optimization, no functionality change. Probably does not make much
    of a difference, but it's free.

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

commit f583a5ec59fc51b9a7e932ed3cc409d3ef814b49
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Thu Feb 28 01:13:53 2013 +0000

    Add a test case, to make sure there is no crash on IRGen when using PCH

    Related to rdar://13114142

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

commit f553c8d883b53f17586b26a0909baf7b821e6f27
Author: Stephen Hines <srhines@google.com>
Date:   Wed Feb 27 17:04:46 2013 -0800

    Update build rules for windows.

    Change-Id: Ie7625d006e52b785952b1ca35f9e1d5cec0576dd

commit 717ff5416e81c78cf9c34ff74b4fb266c0a67b53
Author: Renato Golin <renato.golin@linaro.org>
Date:   Wed Feb 27 23:21:44 2013 +0000

    Avoiding flamewars

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

commit c0cedbe537e4b25eeb8d61d0c30a2ac31a7fddab
Author: David Blaikie <dblaikie@gmail.com>
Date:   Wed Feb 27 22:10:40 2013 +0000

    PR15360: nullptr as a non-type template argument to a function type non-type template parameter

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

commit 98b879af5bfb50123a668dc1de6dd86feb9991c5
Author: David Blaikie <dblaikie@gmail.com>
Date:   Wed Feb 27 22:10:37 2013 +0000

    Add test coverage for array to pointer decay in non-type template parameters.

    Functionality committed in r172585 but tested the function case without the
    array case.

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

commit f71d14a3698dfd06ffeb55184ee26d1b14b7488d
Author: Stephen Hines <srhines@google.com>
Date:   Wed Feb 27 13:34:21 2013 -0800

    Add support for building a host libclang.so.

    Change-Id: I6eab022263b21fb4962ad31dbb49f7bf3a54e95a

commit c661e1248079f6f87ac47a45f034067580ab2f1c
Author: Renato Golin <renato.golin@linaro.org>
Date:   Wed Feb 27 21:28:29 2013 +0000

    Add config manager to open projects

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

commit 854e75575e1d54ef9c8f4d812c646b325737eaa6
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Feb 27 18:57:20 2013 +0000

    [analyzer] Fix test for previous commit.

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

commit 6f4160828db75f36b22a204da202723c592644f3
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Feb 27 18:49:57 2013 +0000

    [analyzer] Teach FindLastStoreBRVisitor to understand stores of the same value.

    Consider this case:

      int *p = 0;
      p = getPointerThatMayBeNull();
      *p = 1;

    If we inline 'getPointerThatMayBeNull', we might know that the value of 'p'
    is NULL, and thus emit a null pointer dereference report. However, we
    usually want to suppress such warnings as error paths, and we do so by using
    FindLastStoreBRVisitor to see where the NULL came from. In this case, though,
    because 'p' was NULL both before and after the assignment, the visitor
    would decide that the "last store" was the initialization, not the
    re-assignment.

    This commit changes FindLastStoreBRVisitor to consider all PostStore nodes
    that assign to this region. This still won't catches changes made directly
    by checkers if they re-assign the same value, but it does handle the common
    case in user-written code and will trigger ReturnVisitor's suppression
    machinery as expected.

    <rdar://problem/13299738>

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

commit a11f22f60673c6c9556976b49e64bf7fa751f4eb
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Feb 27 18:49:43 2013 +0000

    [analyzer] Turn on C++ constructor inlining by default.

    This enables constructor inlining for types with non-trivial destructors.
    The plan is to enable destructor inlining within the next month, but that
    needs further verification.

    <rdar://problem/12295329>

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

commit 4c4df4520df20ec17d84aa2261f098ec278e1dab
Author: Chad Rosier <mcrosier@apple.com>
Date:   Wed Feb 27 18:46:04 2013 +0000

    [driver] The failure of any phase (e.g., preprocess, compile, assemble) for a
    single translation unit should prevent later phases from executing.  Otherwise,
    this generates lots of noise in build systems.  This a fallout from r173825.
    Patch by Matthew Curtis <mcurtis@codeaurora.org>.
    rdar://13298009

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

commit e9616a4972a4c2fdc28128c057f21d7a79516c86
Author: Simon Atanasyan <simon@atanasyan.com>
Date:   Wed Feb 27 14:55:49 2013 +0000

    [Mips] Add two new aliases for MIPS ABI names 32 (means o32 abi) and 64
    (means n64 abi) to improve compatibility with GNU tools.
    Patch by Jia Liu <proljc@gmail.com>.

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

commit 1d4fff5551c2347010b955b4337a2aa7d65a050e
Author: Timur Iskhodzhanov <timurrrr@google.com>
Date:   Wed Feb 27 13:46:31 2013 +0000

    Better support for constructors with -cxx-abi microsoft, partly fixes PR12784

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

commit 0cc798f29d489140dd81b558e9c052e9a83cce39
Author: Manuel Klimek <klimek@google.com>
Date:   Wed Feb 27 11:56:58 2013 +0000

    Make the negative test of recordType depend on a specific record.

    Otherwise it'll break if there's a record type in the AST by default.

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

commit 9c65b069821b7de79427e291b006293a0f55ff8f
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Feb 27 11:43:50 2013 +0000

    Fix formatting of multiplications in array subscripts.

    Before:
    a[a* a] = 1;

    After:
    a[a * a] = 1;

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

commit 8614304c0d728d43ef16691708281273101b00af
Author: Alexey Samsonov <samsonov@google.com>
Date:   Wed Feb 27 11:14:55 2013 +0000

    [Sanitizer] Change driver behavior when linking with -fsanitize=thread and -fsanitize=memory. TSan/MSan also provide their versions of new/delete and should use the same strategy as ASan. Share the code that sets linker flags for all sanitizers.

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

commit faab0d35da240bde26a6281ed1cfa14c44585a5a
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Feb 27 09:47:53 2013 +0000

    Enable bin-packing in Google style.

    After some discussions, it seems that this is the better path in
    the long run. Does not change Chromium style, as there, bin packing
    is forbidden by the style guide.

    Also fix two minor bugs wrt. formatting:
    1. If a call parameter is a function call itself and is split before
       the "." or "->", split before the next parameter.
    2. If a call parameter is string literal that has to be split onto
       two lines, split before the next parameter.

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

commit 79525fbe7b9bdf64a79a8d20cff2147702eae738
Author: Stephen Hines <srhines@google.com>
Date:   Wed Feb 27 00:14:17 2013 -0800

    Add missing dependency on ARMAsmPrinter.

    Change-Id: I6a8588495caa4b702d114303fbdd72672b1e59f6

commit f4086ebb09be67124e80cc1640090e39322a89cd
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Wed Feb 27 06:22:58 2013 +0000

    Update clang for LLVM API change. No functionality change.

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

commit a2bb8923334ecd35b8f914dff7d105330abbad22
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Wed Feb 27 04:15:01 2013 +0000

    Don't cache the visibility of types.

    Since r175326 an implicitly hidden template argument can cause a template
    installation to become hidden, even if the template itself has an explicit
    default visibility. This requires that we keep track of "late" additions
    of the visibility attribute.

    This is hopefully the last followup change. It just removes the caching of
    visibilities from types so that we can see new attributes even after a type has
    been used.

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

commit 5e8577ece79b5ed07b0ab4dcb284a26076efdf65
Author: Lang Hames <lhames@gmail.com>
Date:   Wed Feb 27 04:14:49 2013 +0000

    Use the correct alignment for POD-member memcpys where the first field is a
    bitfield. CGBitField::StorageAlignment holds the alignment in chars, but
    emitMemcpy had been treating it as if it were held in bits, leading to
    underaligned memcpys.

    Related to PR15348.

    Thanks very much to Chandler for the diagnosis.

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

commit f127eb8aeb3ce861f3dbc1adbb3362bfd98461e1
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Wed Feb 27 02:56:45 2013 +0000

    Rename methods to comply with the LLVM Coding Standards.

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

commit 18895dc4fd29f0071eeb591be820338f16407906
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Wed Feb 27 02:27:19 2013 +0000

    Change Type::getLinkageAndVisibility to return a LinkageInfo.

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

commit 2beda12c3fbaa9125831b7f818680978c596b205
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Wed Feb 27 02:15:29 2013 +0000

    Move LinkageInfo out of NamedDecl so that it can be used in Type.h.

    Everything that cares about visibility also cares about linkage, so I just
    moved it to Visibility.h instead of creating a new .h.

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

commit da8910519b8dc79826781e74aaafddbd5c4ba19c
Author: Richard Trieu <rtrieu@google.com>
Date:   Wed Feb 27 01:41:53 2013 +0000

    Update template diffing to handle template arguments that are declarations.

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

commit b3a49f567a918406020cc2bb5a4cdba4e976d09c
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Feb 27 01:34:48 2013 +0000

    Add a test to make sure __has_include works from inside a macro.

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

commit 10b4df7ff21076c21ca764f8ca38ccaff7888f25
Author: Adrian Prantl <aprantl@apple.com>
Date:   Wed Feb 27 01:31:55 2013 +0000

    Temporarily revert r176116 for compile-time performance regression.

    This reverts commit ea95e4587fd13606fbf63b10a07a7d02026aa39c.

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

commit b7a3f74bbb02788ad1b597fe3897db2d8a4fed43
Author: Ted Kremenek <kremenek@apple.com>
Date:   Wed Feb 27 01:26:58 2013 +0000

    [analyzer] Add stop-gap patch to prevent assertion failure when analyzing LLVM codebase.

    This potentially reduces a performance optimization of throwing away
    PreStmtPurgeDeadSymbols nodes.  I'll investigate the performance impact
    soon and see if we need something better.

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

commit 1ebefc72e80cc880be376a8704e6936d2746cb35
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Feb 27 01:13:51 2013 +0000

    [PCH] When deserializing an IdentifierInfo, call IdentifierInfo::RevertTokenIDToIdentifier() only when it's not already an identifier.

    Fixes an assertion hit.
    rdar://13288735

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

commit 664e860beb2550bef24fb8946192f61648a71d7f
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Feb 27 00:46:06 2013 +0000

    comment parsing: Properties are considered like methods, and people
    think of them as having return values that may be computed. Don't
    warn when using @return in their comment. // rdar://13189938

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

commit 714b509bb4f8be76e6616944551efe7a6e8358cd
Author: John McCall <rjmccall@apple.com>
Date:   Wed Feb 27 00:08:19 2013 +0000

    Don't crash when diagnosing path-constrained protected
    access to a private member to which we have special access.

    rdar://12926092

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

commit 899245792776dd219a3c36eb19b42272e270bc0c
Author: Bill Wendling <isanbard@gmail.com>
Date:   Wed Feb 27 00:06:04 2013 +0000

    Reapply r176133 with testcase fixes.

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

commit deb8f5d533b7bcd962976ecdbc1464fe754b6de0
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Feb 27 00:05:29 2013 +0000

    [analyzer] If a struct has a partial lazy binding, its fields aren't Undef.

    This is essentially the same problem as r174031: a lazy binding for the first
    field of a struct may stomp on an existing default binding for the
    entire struct. Because of the way RegionStore is set up, we can't help
    but lose the top-level binding, but then we need to make sure that accessing
    one of the other fields doesn't come back as Undefined.

    In this case, RegionStore is now correctly detecting that the lazy binding
    we have isn't the right type, but then failing to follow through on the
    implications of that: we don't know anything about the other fields in the
    aggregate. This fix adds a test when searching for other kinds of default
    values to see if there's a lazy binding we rejected, and if so returns
    a symbolic value instead of Undefined.

    The long-term fix for this is probably a new Store model; see
    <rdar://problem/12701038>.

    Fixes <rdar://problem/13292559>.

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

commit 2564f811ba107cb314a594d730aa3357b6181b62
Author: Ted Kremenek <kremenek@apple.com>
Date:   Wed Feb 27 00:00:26 2013 +0000

    Refine SourceManager's isBeforeInTranslationUnit() cache to have more entries.

    isBeforeInTranslationUnit() uses a cache to reduce the expensive work
    to compute a common ancestor for two FileIDs.  This work is very
    expensive, so even caching the latest used FileIDs was a big win.
    A closer analysis of the cache before, however, shows that the cache
    access pattern would oscillate between a working set of FileIDs, and
    thus caching more pairs would be profitable.

    This patch adds a side table for extending caching.  This side table
    is bounded in size (experimentally determined in this case from
    a simple Objective-C project), and when the table gets too large
    we fall back to the single entry caching before as before.

    On Sketch (a small example Objective-C project), this optimization
    reduces -fsyntax-only time on SKTGraphicView.m by 5%.  This is
    for a project that is already using PCH.

    Fixes <rdar://problem/13299847>

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

commit b58f810669d9c17bcc025b7560de01d162856f34
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Feb 26 23:24:59 2013 +0000

    Use existing macros to simplify the test a bit.

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

commit d9365d2d71d591024c420b52afdfc8b4ed0c55db
Author: Bill Wendling <isanbard@gmail.com>
Date:   Tue Feb 26 23:18:33 2013 +0000

    Temporarily revert r176133 until testcases are modified.

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

commit c3af6799d4c8ec4b338236e4361c0795e9af890a
Author: Bill Wendling <isanbard@gmail.com>
Date:   Tue Feb 26 23:08:48 2013 +0000

    Fix testcases to not rely upon target-* attributes.

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

commit 2693c323c0cf146da439719d6d31f321ac70add0
Author: Bill Wendling <isanbard@gmail.com>
Date:   Tue Feb 26 23:01:33 2013 +0000

    Don't set the -target-cpu and -target-features attributes just now.

    This is causing some problems with some of the builders. It's non-trivial to
    reset the target's features.

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

commit bcf73c225324ecc227a88b35598ca809fcd1d5c8
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Feb 26 22:15:50 2013 +0000

    No need to initialize these variables.

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

commit 9db0fe97f533513f88e7141f0b2a405ebe86fa67
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Feb 26 22:12:16 2013 +0000

    doxygen command. Add 'attention' command to list of similar
    doxygen commands. // rdar://12379053

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

commit 34b0adb52f1528fb03313bdd5fd73632c11fc678
Author: Matt Arsenault <Matthew.Arsenault@amd.com>
Date:   Tue Feb 26 21:16:00 2013 +0000

    Fix assertion failure when a field is given an address space.

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

commit 5509f37aacf8a4d65f759554c9ec18adc1ac7b4e
Author: Matt Arsenault <Matthew.Arsenault@amd.com>
Date:   Tue Feb 26 21:15:54 2013 +0000

    Fix initializer for variables with attribute address_space set.

    This would error in C++ mode unless the variable also had a cv
    qualifier.

    e.g.

    __attribute__((address_space(2))) float foo = 1.0f; would error but
    __attribute__((address_space(2))) const float foo = 1.0f; would not.

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

commit 58c79037256c77ffdbaa0da12205777e239fe096
Author: Adrian Prantl <aprantl@apple.com>
Date:   Tue Feb 26 20:01:46 2013 +0000

    Ensure that DIType is regenerated after we visited an implementation that adds ivars to an interface. Fixes rdar://13175234

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

commit 4238f41d484729aca260140fbbc53a68769bf60a
Author: Ted Kremenek <kremenek@apple.com>
Date:   Tue Feb 26 19:44:38 2013 +0000

    [analyzer] Use 'MemRegion::printPretty()' instead of assuming the region is a VarRegion.

    Fixes PR15358 and <rdar://problem/13295437>.

    Along the way, shorten path diagnostics that say "Variable 'x'" to just
    be "'x'".  By the context, it is obvious that we have a variable,
    and so this just consumes text space.

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

commit 9016bb771265a10f188c76342254badecc695253
Author: Matt Beaumont-Gay <matthewbg@google.com>
Date:   Tue Feb 26 19:34:08 2013 +0000

    Warn on dropping the return value from a warn_unused_result function, even in
    macros.

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

commit d3b2f0ac1cedad284d860acd652f28a05bcbcbed
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Feb 26 19:33:14 2013 +0000

    Use the most recent decl in getExplicitVisibility.

    Now that implicitly hidden template arguments can make an instantiation hidden,
    it is important to look at more than just the canonical decl of the argument
    in order to see if an attribute is available in a more recent decl.

    This has the disadvantage of exposing when getExplicitVisibility is called,
    but lets us handle cases like

    template <typename T>
    struct __attribute__((visibility("default"))) barT {
      static void zed() {}
    };
    class foo;
    class __attribute__((visibility("default"))) foo;
    template struct barT<foo>;

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

commit d7a60ad800d64b7c444b26a58e76ec337dbd7bc2
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Feb 26 19:13:56 2013 +0000

    Be more careful in applying pragma weak. Fixes pr14974.

    GCC applies a pragma weak to a decl if it matches the mangled name. We used
    to apply if it matched the plain name.

    This patch is a compromise: we apply the pragma only if it matches the name
    and the decl has C language linkage.

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

commit 518ee34467c0722e253a58efea20456e96aa5802
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Feb 26 13:59:14 2013 +0000

    Fix bad line break decision.

    Before:
    if (Intervals[i].getRange().getFirst() < Intervals[i - 1]
                                                 .getRange().getLast()) {}

    After:
    if (Intervals[i].getRange().getFirst() <
        Intervals[i - 1].getRange().getLast()) {}

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

commit d79f1f37b04703addb631ee11d266d3bfc3dd451
Author: Evgeniy Stepanov <eugeni.stepanov@gmail.com>
Date:   Tue Feb 26 13:20:29 2013 +0000

    Allow dash before "ld" in android driver test.

    Sometimes android linker is "arm-linux-androideabi-ld", and not just "ld".

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

commit 84a1a63b034744b68a27ec171dca5b1b7cf303f0
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Feb 26 13:18:08 2013 +0000

    In range-based for-loops, prefer splitting after ":".

    Before:
    for (const aaaaaaaaaaaaaaaaaaaaa &
             aaaaaaaaa : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) {}

    After:
    for (const aaaaaaaaaaaaaaaaaaaaa &aaaaaaaaa :
         aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) {}

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

commit 1ef81d57fbcc26080c98e140e7c82db6d2aeba87
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Feb 26 13:10:34 2013 +0000

    Only keep empty lines in unwrapped lines if they preceed a line comment.

    Empty lines followed by line comments are often used to highlight the
    comment. Empty lines somewhere else are usually left over from manual or
    automatic formatting and should probably be removed.

    Before (clang-format would keep):
    S s = {
      a,

      b
    };

    After:
    S s = { a, b };

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

commit 0fb382bfbfbfee73763a213b2257042ed342c4b0
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Feb 26 12:52:34 2013 +0000

    Only break string literals as a last resort.

    We might want to move towards doing this if the formatting can be
    significantly improved, but we need to carefully evaluate the different
    situations first.

    Before (the string literal was split by clang-format here):
    aaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaa, aaaaaa("aaa aaaaa aaa aaa aaaaa aaa "
                                                      "aaaaa aaa aaa aaaaaa"));

    After:
    aaaaaaaaaaaaaaaaaaaa(
        aaaaaaaaaaaaaaaaaaaa,
        aaaaaa("aaa aaaaa aaa aaa aaaaa aaa aaaaa aaa aaa aaaaaa"));

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

commit 863fb3574468ef9fdc9f5ea3fa3d62671979ccf1
Author: Alexey Samsonov <samsonov@google.com>
Date:   Tue Feb 26 09:43:27 2013 +0000

    Define CMake option CLANG_INCLUDE_TESTS *before* traversing into tests/ subdirectory. Otherwise, while configuring the build tree for the first time, Clang unit tests could avoid being added to 'check-clang' command, and thus avoid being built and executed.

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

commit 85aee96c62a99069ea60cb47d5ae69150ca44746
Author: Kostya Serebryany <kcc@google.com>
Date:   Tue Feb 26 06:58:27 2013 +0000

    Unify clang/llvm attributes for asan/tsan/msan (Clang part)

    These are two related changes (one in llvm, one in clang).
    LLVM:
    - rename address_safety => sanitize_address (the enum value is the same, so we preserve binary compatibility with old bitcode)
    - rename thread_safety => sanitize_thread
    - rename no_uninitialized_checks -> sanitize_memory

    CLANG:
    - add __attribute__((no_sanitize_address)) as a synonym for __attribute__((no_address_safety_analysis))
    - add __attribute__((no_sanitize_thread))
    - add __attribute__((no_sanitize_memory))

    for S in address thread memory
    If -fsanitize=S is present and __attribute__((no_sanitize_S)) is not
    set llvm attribute sanitize_S

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

commit d8be0abf30003766f0eb02c87496f29b178146fb
Author: Michael Han <fragmentshaders@gmail.com>
Date:   Tue Feb 26 02:00:13 2013 +0000

    Update tests to do a full match against printed C++11 attributes.

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

commit eafb5c694cc5d165149fcb9453bc9355fb0d44a5
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Tue Feb 26 01:21:27 2013 +0000

    [analyzer] Don't look through casts when creating pointer temporaries.

    Normally, we need to look through derived-to-base casts when creating
    temporary object regions (added in r175854). However, if the temporary
    is a pointer (rather than a struct/class instance), we need to /preserve/
    the base casts that have been applied.

    This also ensures that we really do create a new temporary region when
    we need to: MaterializeTemporaryExpr and lvalue CXXDefaultArgExprs.

    Fixes PR15342, although the test case doesn't include the crash because
    I couldn't isolate it.

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

commit a0e6e6dd37f4acee8477c106d5e5679de015d120
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Tue Feb 26 01:21:21 2013 +0000

    [analyzer] StackAddrEscapeChecker: strip qualifiers from temporary types.

    With the new support for trivial copy constructors, we are not always
    consistent about whether a CXXTempObjectRegion gets reused or created
    from scratch, which affects whether qualifiers are preserved. However,
    we probably don't care anyway.

    This also switches to using the current PrintingPolicy for the type,
    which means C++ types don't get a spurious 'struct' prefix anymore.

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

commit bb60fc6a71f280f8e19e7f1a784ef05c40f5aa39
Author: Will Dietz <wdietz2@illinois.edu>
Date:   Mon Feb 25 22:37:49 2013 +0000

    [ubsan] Emit single check for left shift.

    Avoids warning twice on same shift.

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

commit db061e40d639da0d938f915f0eef9e9772019c22
Author: Anna Zaks <ganna@apple.com>
Date:   Mon Feb 25 22:10:34 2013 +0000

    [analyzer] Restrict ObjC type inference to methods that have related result type.

    This addresses a case when we inline a wrong method due to incorrect
    dynamic type inference. Specifically, when user code contains a method from init
    family, which creates an instance of another class.

    Use hasRelatedResultType() to find out if our inference rules should be triggered.

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

commit 6f8e9b6caed0bf6108cf90f0d54fa637b60b3b9e
Author: Ted Kremenek <kremenek@apple.com>
Date:   Mon Feb 25 21:32:40 2013 +0000

    [analyzer] Recover all PreStmtPurgeDeadSymbols nodes with a single successor or predecessor.

    These nodes are never consulted by any analyzer client code, so they are
    used only for machinery for removing dead bindings.  Once successor nodes
    are generated they can be safely removed.

    This greatly reduces the amount of nodes that are generated in some case,
    lowering the memory regression when analyzing Sema.cpp introduced by
    r176010 from 14% to 2%.

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

commit 742d9e77e32f014194679575c97c6bb4fd0998c4
Author: Edwin Vane <edwin.vane@intel.com>
Date:   Mon Feb 25 20:43:32 2013 +0000

    Various additions to ASTMatcher library:

    New type matchers:
    * recordType
    * elaboratedType

    New narrowing matchers:
    * hasQualifier
    * namesType
    * hasDeclContext

    Added tests and updated LibASTMatchersReference.

    Reviewers: klimek

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

commit c2833111020d7a672bb4b547799fcd87ea4f8fb5
Author: Anna Zaks <ganna@apple.com>
Date:   Mon Feb 25 19:51:03 2013 +0000

    Revert "Add more attributes from the command line to functions."

    This reverts commit 176009.

    The commit is a likely cause of several buildbot failures.

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

commit 42f2309f739549bead6e5a6c34fd1be4d087998f
Author: Anna Zaks <ganna@apple.com>
Date:   Mon Feb 25 19:50:50 2013 +0000

    [analyzer] Address Jordan's code review of r175857.

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

commit fbdbed3bde8577815826b9d15790e5effb913f7b
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Mon Feb 25 19:45:34 2013 +0000

    [analyzer] Handle reference parameters with default values.

    r175026 added support for default values, but didn't take reference
    parameters into account, which expect the default argument to be an
    lvalue. Use createTemporaryRegionIfNeeded if we can evaluate the default
    expr as an rvalue but the expected result is an lvalue.

    Fixes the most recent report of PR12915. The original report predates
    default argument support, so that can't be it.

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

commit 59c900304a390b11c4efcad2924bf6373979db73
Author: Chad Rosier <mcrosier@apple.com>
Date:   Mon Feb 25 19:13:23 2013 +0000

    Add a front-end test case for r176036.

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

commit 6980f17c78442a7db80d98902932ef047930284a
Author: Michael Han <fragmentshaders@gmail.com>
Date:   Mon Feb 25 18:40:11 2013 +0000

    Fix empty declaration printing.

    Don't print the semicolon when visiting an empty declaration because the semicolon
    will be printed as a terminator later.

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

commit 6dc5c33fd4334ccf4a661c331f86e23829e51d55
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Mon Feb 25 18:36:15 2013 +0000

    [analyzer] Base regions may be invalid when layered on symbolic regions.

    While RegionStore checks to make sure casts on TypedValueRegions are valid,
    it does not do the same for SymbolicRegions, which do not have perfect type
    info anyway. Additionally, MemRegion::getAsOffset does not take a
    ProgramState, so it can't use dynamic type info to determine a better type
    for the regions. (This could also be dangerous if the type of a super-region
    changes!)

    Account for this by checking that a base object region is valid on top of a
    symbolic region, and falling back to "symbolic offset" mode if not.

    Fixes PR15345.

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

commit df779d356a298732bedd6f6fbe01b8f4b1a6948e
Author: Eric Christopher <echristo@gmail.com>
Date:   Mon Feb 25 18:19:32 2013 +0000

    Add forgotten testcase.

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

commit 9c3e71acb53a67f305a54f3d6d6decb143acaae4
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Feb 25 15:59:54 2013 +0000

    Re-add hack that caused regression.

    This fixes llvm.org/PR15350.

    Before:
    Constructor(int Parameter = 0)
        : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaa),
                    aaaaaaaaaaaa(aaaaaaaaaaaaaaaaa) {}

    After:
    Constructor(int Parameter = 0)
        : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaa),
          aaaaaaaaaaaa(aaaaaaaaaaaaaaaaa) {}

    I think the correct solution is to put the VariablePos into
    ParenState, not LineState. Added FIXME.

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

commit 3abf77872ca6c520903f9174cf6cd89a50df2714
Author: Edwin Vane <edwin.vane@intel.com>
Date:   Mon Feb 25 14:49:29 2013 +0000

    Adding hasDeclaration overload for TemplateSpecializationType

    TemplateSpecializationType doesn't quite have getDecl(). Need to go
    through TemplateName to get a TemplateDecl.

    Added test cases for the hasDeclaration() overload for
    TemplateSpecializationType. Also introduced the type matcher
    templateSpecializationType() used by the new hasDeclaration() test case.

    Updated LibASTMatchersReference.

    Reviewers: klimek

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

commit b45083d08377a8b9528401fdafd7210e78895dbe
Author: Edwin Vane <edwin.vane@intel.com>
Date:   Mon Feb 25 14:32:42 2013 +0000

    Support in hasDeclaration for types with getDecl()

    Re-introducing r175532. The has_getDecl metafunction didn't compile with
    Visual Studio. This revision uses approaches has_getDecl from a
    different angle that isn't a problem for Visual Studio.

    Added dedicated tests for the metafunction.

    Reviewers: klimek

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

commit 1b354b868c1aa227619d81e299fe6e384e1999b7
Author: Edwin Vane <edwin.vane@intel.com>
Date:   Mon Feb 25 14:09:28 2013 +0000

    Reverting r176019. Corrupt patch.

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

commit 0b6f23a23c55b7024e7a0edca1fecf9bd4c380a1
Author: Edwin Vane <edwin.vane@intel.com>
Date:   Mon Feb 25 13:59:06 2013 +0000

    Support in hasDeclaration for types with getDecl()

    Re-introducing r175532. The has_getDecl metafunction didn't compile with Visual
    Studio. This revision approaches has_getDecl from a different angle that isn't
    a problem for Visual Studio.

    Added dedicated tests for the metafunction.

    Reviewers: klimek

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

commit c7093d96d1fac7f34acd2b63bca4ea39acb5cad5
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Feb 25 12:39:41 2013 +0000

    Update generated documentation after recent matcher addition.

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

commit f3197e9eb02120522c1f60f88dacc1cfe5b210f0
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Feb 25 12:02:08 2013 +0000

    Add matcher for AccessSpecDecls.

    Also, add matchers isPrivate(), isProtected() and isPublic(), that
    restrict the matching of such AccessSpecDecls and all other Decls.

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

commit 6c5038cf8486d92ae53bf4513141bd40a5ae0734
Author: Ted Kremenek <kremenek@apple.com>
Date:   Mon Feb 25 07:37:18 2013 +0000

    [analyzer] Relax assumption in FindLastStoreBRVisitor that the thing we are looking for is always a VarRegion.

    This was triggering assertion failures when analyzing the LLVM codebase.  This
    is fallout from r175988.

    I've got delta chewing away on a test case, but I wanted the fix to go
    in now.

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

commit 4e9c0854382d37325771b50f6cf899a75119fa24
Author: Ted Kremenek <kremenek@apple.com>
Date:   Mon Feb 25 07:37:13 2013 +0000

    [analyzer] add the notion of an "interesting" lvalue expression for ExplodedNode pruning.

    r175988 modified the ExplodedGraph trimming algorithm to retain all
    nodes for "lvalue" expressions.  This patch refines that notion to
    only "interesting" expressions that would be used for diagnostics.

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

commit d620e09c13b1ca32434ce440abf5bb0f3d0979c5
Author: Bill Wendling <isanbard@gmail.com>
Date:   Mon Feb 25 07:15:16 2013 +0000

    Add more attributes from the command line to functions.

    This is an ongoing process. Any command line option which a back-end cares about
    should be added here.

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

commit 0a8dead5303bd0cabebf07ab4e8d4f838787e8f1
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Mon Feb 25 01:14:45 2013 +0000

    Documentation: add an idea for a (weird) clang tool

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

commit c1d0af1f550fdd59e6ce36f25bae6c735de90071
Author: David Blaikie <dblaikie@gmail.com>
Date:   Mon Feb 25 01:07:08 2013 +0000

    Update Clang for a minor DIBuilder breaking change.

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

commit f9067c6b56b7ea89a43c8c2d5a0ca2c8487ea987
Author: Aaron Ballman <aaron@aaronballman.com>
Date:   Sun Feb 24 19:08:10 2013 +0000

    Moving initialization into the initializer list and correcting capitalization, as suggested by Chandler.

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

commit 824ed0c7a95989c09a6324eb7764ff00fee09108
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sun Feb 24 19:04:36 2013 +0000

    Documentation: add an idea for an automatic refactoring

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

commit 3c08a818a6ac9115fe8880af9bbf5a0a87bdffaa
Author: Daniel Jasper <djasper@google.com>
Date:   Sun Feb 24 18:54:32 2013 +0000

    Allow breaking between a type and name in variable declarations.

    This fixes llvm.org/PR14967 and is generall necessary to avoid
    situations where the column limit is exceeded. The challenge is
    restricting such lines splits, otherwise clang-format suddenly starts
    breaking at bad places.

    Before:
    ReallyLongReturnType<TemplateParam1, TemplateParam2>
    ReallyReallyLongFunctionName(
        const std::string &SomeParameter,
        const SomeType<string,
                       SomeOtherTemplateParameter> &ReallyReallyLongParameterName,
        const SomeType<string,
                       SomeOtherTemplateParameter> &AnotherLongParameterName) {}

    After:
    ReallyLongReturnType<TemplateParam1, TemplateParam2>
    ReallyReallyLongFunctionName(
        const std::string &SomeParameter,
        const SomeType<string, SomeOtherTemplateParameter> &
            ReallyReallyLongParameterName,
        const SomeType<string, SomeOtherTemplateParameter> &
            AnotherLongParameterName) {}

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

commit 960876cd88a9aba546345dec49a1cf9a4f248356
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sun Feb 24 15:51:32 2013 +0000

    Add the testcase from PR13573, this used to crash.

    The error is a bit strange tbh, but better than crashing.

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

commit 43b82b823a6113fdbee54243b280db9c55ef72cb
Author: Ted Kremenek <kremenek@apple.com>
Date:   Sun Feb 24 07:21:01 2013 +0000

    [analyzer] tracking stores/constraints now works for ObjC ivars or struct fields.

    This required more changes than I originally expected:

    - ObjCIvarRegion implements "canPrintPretty" et al
    - DereferenceChecker indicates the null pointer source is an ivar
    - bugreporter::trackNullOrUndefValue() uses an alternate algorithm
      to compute the location region to track by scouring the ExplodedGraph.
      This allows us to get the actual MemRegion for variables, ivars,
      fields, etc.  We only hand construct a VarRegion for C++ references.
    - ExplodedGraph no longer drops nodes for expressions that are marked
      'lvalue'.  This is to facilitate the logic in the previous bullet.
      This may lead to a slight increase in size in the ExplodedGraph,
      which I have not measured, but it is likely not to be a big deal.

    I have validated each of the changed plist output.

    Fixes <rdar://problem/12114812>

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

commit 0dd15d78fb0c99faa5df724139ba4c16a9a345c6
Author: Ted Kremenek <kremenek@apple.com>
Date:   Sun Feb 24 07:20:53 2013 +0000

    Add "KnownSVal" to represent SVals that cannot be UnknownSVal.

    This provides a few sundry cleanups, and allows us to provide
    a compile-time check for a case that was a runtime assertion.

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

commit 026cd1a273d16eaa9a66be92f38b1f907202e542
Author: Ted Kremenek <kremenek@apple.com>
Date:   Sun Feb 24 07:20:47 2013 +0000

    Add regression test for serialized diagnostics for notes without locations.

    This meant to be included in r175802.

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

commit 5956bcc31ad0b1f570e04f7e19e817112f7274c5
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sun Feb 24 01:56:24 2013 +0000

    PR15338: Don't assert if -fsanitize=bounds sees array indexing on an incomplete
    array type.

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

commit c515978bd3a703aa733f846a0094ffa84d149074
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Sun Feb 24 00:05:14 2013 +0000

    [preprocessor] Use MacroDirective in the preprocessor callbacks to make available the
    full information about the macro (e.g if it was imported and where).

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

commit 82a29af8cbc4b117af83c5c5dfa875b5699c97c4
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Sun Feb 24 00:05:05 2013 +0000

    Add comments for the MacroDirective & MacroInfo classes.

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

commit afda905e60151f0bc34c187d51a798b4265f69af
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Sun Feb 24 00:05:01 2013 +0000

    In Sema::InstantiateStaticDataMemberDefinition, pass the var decl to the consumer
    just using ASTConsumer::HandleCXXStaticMemberVarInstantiation(), don't pass it with
    ASTConsumer::HandleTopLevelDecl.

    ASTConsumer::HandleTopLevelDecl is intended for user-written top-level decls;
    a consumer can treat an instantiated static data member however it wants of course.

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

commit 237d4c1c785be13656bff6c09e5b7ccd066ff5ba
Author: Daniel Jasper <djasper@google.com>
Date:   Sat Feb 23 21:01:55 2013 +0000

    Better formatting of conditional expressions.

    In conditional expressions, if the condition is split over multiple
    lines, also break before both operands.

    This prevents formattings like:

      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ==
          aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ? b : c;

    Which are bad, because they suggestion incorrect operator precedence:

      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ==
          (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ? b : c);

    This lead to the discovery that the expression parser incorrectly
    handled conditional operators and that it could also handle semicolons
    (which in turn reduced the amount of special casing for for-loops). As a
    side-effect, we can now apply the bin-packing configuration to the
    sections of for-loops.

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

commit 04ea68c12578955c125f7df3b58432fcdb28484e
Author: David Blaikie <dblaikie@gmail.com>
Date:   Sat Feb 23 19:30:31 2013 +0000

    Reference the canonical commit (r175462) in the value casting release note.

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

commit a62e561843c1d0ea26044acf91b3a8ccd5b1d12a
Author: David Blaikie <dblaikie@gmail.com>
Date:   Sat Feb 23 19:27:10 2013 +0000

    Document the value casting API changes.

    After changing the way several value inheritance hierarchies (TypeLoc,
    CFGelement, ProgramPoint and SVal) handle casting, this documentation describes
    how 3rd party code may need to be updated to compile with the new APIs.

    As suggested by Sean Silva on cfe-dev.

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

commit c5139a9f0c9d4f835e4ab0b51e78d2f74fb488d9
Author: David Blaikie <dblaikie@gmail.com>
Date:   Sat Feb 23 19:20:56 2013 +0000

    Prefer 'and' over '&' in comments.

    Post commit code review feedback from Matt Beaumont-Gay on r174248.

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

commit f3f6231fb5a86c98aa88eba7dbf2df87cc141e0d
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sat Feb 23 16:56:22 2013 +0000

    Shrink SmallPtrSet. It gets swapped a lot which copies the whole small part.

    Testing shows that it's empty in >99% of the cases and I couldn't find a case
    where it contained more than 2 elements.

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

commit b063ef0222a99ee168631afa7b5a882d494b8fde
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sat Feb 23 13:53:57 2013 +0000

    Add streamed versions of getQualifiedNameAsString.

    Move the cold virtual method getNameForDiagnostic out of line.

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

commit c4cca7b2408bdfd99ea0f63fec1421c1327593b2
Author: Enea Zaffanella <zaffanella@cs.unipr.it>
Date:   Sat Feb 23 12:27:19 2013 +0000

    Remove data member MSAsmStmt::AsmLoc, wrongly hiding AsmStmt::AsmLoc.

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

commit 37eff83413a064c504c5a42097e4f5dd0b2962d2
Author: Daniel Jasper <djasper@google.com>
Date:   Sat Feb 23 08:07:18 2013 +0000

    Don't recognize unnamed pointer parameters as casts.

    This fixes llvm.org/PR15061.

    Before: virtual void f(int *)const;
    After:  virtual void f(int *) const;

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

commit 3a204418482c9ae70ad482e781132c54306c3aa6
Author: Daniel Jasper <djasper@google.com>
Date:   Sat Feb 23 07:46:38 2013 +0000

    Allow splitting between string literals and identifiers.

    Also don't break in long include directives as that is not desired.

    We can now format:

      #include "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
      #define LL_FORMAT "ll"
      printf("aaaaa: %d, bbbbbbbbb: %" LL_FORMAT "d, cccccccc: %" LL_FORMAT
             "d, ddddddddd: %" LL_FORMAT "d\n");

    Before, this led to weird results.

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

commit a8f7a97a22d1ed92fd3309f071c0121c22e52aa3
Author: Logan Chien <tzuhsiang.chien@gmail.com>
Date:   Sat Feb 23 04:24:36 2013 +0000

    Implement __builtin_eh_return_data_regno() for ARM and MIPS.

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

commit 884f0a752baa5f2a4561dd73588476b8b84418b3
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Sat Feb 23 03:59:16 2013 +0000

    clang/AST/Decl.h: Add "raw_ostream.h" to appease msvc.

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

commit a0a628f839cf50844cc0f226bd9cb72485f98f91
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sat Feb 23 02:53:19 2013 +0000

    ubsan: Emit bounds checks for array indexing, vector indexing, and (in really simple cases) pointer arithmetic. This augments the existing bounds checking with language-level array bounds information.

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

commit 1c8278b4bc83fafd29eead80ff4e5814fce7fd9b
Author: John McCall <rjmccall@apple.com>
Date:   Sat Feb 23 01:15:17 2013 +0000

    Test that attribute(availability) doesn't override private_extern.

    rdar://12399248

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

commit b07805485c603be3d8011f72611465324c9e664b
Author: David Blaikie <dblaikie@gmail.com>
Date:   Sat Feb 23 00:29:34 2013 +0000

    Remove the CFGElement "Invalid" state.

    Use Optional<CFG*> where invalid states were needed previously. In the one case
    where that's not possible (beginAutomaticObjDtorsInsert) just use a dummy
    CFGAutomaticObjDtor.

    Thanks for the help from Jordan Rose & discussion/feedback from Ted Kremenek
    and Doug Gregor.

    Post commit code review feedback on r175796 by Ted Kremenek.

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

commit 02fb50d54042982bccc04c276ad2342827c8fcd3
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Sat Feb 23 00:26:28 2013 +0000

    Remove the hack that avoided mangling static functions in extern C contexts.

    Weather we should give C language linkage to functions and variables with
    internal linkage probably depends on how much code assumes it. The standard
    says they should have no language linkage, but gcc and msvc assign them
    C language linkage.

    This commit removes the hack that was preventing the mangling on static
    functions declare in extern C contexts. It is an experiment to see if we
    can implement the rules in the standard.

    If it turns out that many users depend on these functions and variables
    having C language linkage, we should change isExternC instead and try
    to convince the CWG to change the standard.

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

commit 7728cddd7866fadd07f1191eee40985e3cdbc6bf
Author: Peter Collingbourne <peter@pcc.me.uk>
Date:   Sat Feb 23 00:06:18 2013 +0000

    Revert r175912, "Add support for coldcc to clang" at John's request.

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

commit ff971d7973aaa00c286b788d30f6919c7b1f4de2
Author: Eric Christopher <echristo@gmail.com>
Date:   Fri Feb 22 23:50:16 2013 +0000

    Propagate the split dwarf file information through into the backend
    and through to the debug info in the module. In order to make the
    testcase a bit more efficient allow the filename to go through
    compilation for compile and not assemble jobs and turn off the
    extract for cases where we don't create an object.

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

commit fdf5706440543c744cd9faf55235a757a7278daa
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Feb 22 22:28:58 2013 +0000

    [libclang] Fix assertion hit when code-completing inside a function macro with more
    arguments than it should accept.

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

commit f799ae1afb897151a84a7170951e367d8307ae04
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Feb 22 22:02:53 2013 +0000

    objective-C arg: provide fixit support when
    c++'s named cast need be replaced for bridge casting.
    // rdar://12788838

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

commit 5bb033ba5de8f00cea93b061427de92569b45d2d
Author: Bill Wendling <isanbard@gmail.com>
Date:   Fri Feb 22 21:12:51 2013 +0000

    Update tests so that we don't test for function-only attributes on call sites.

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

commit efc5b6713e51726ced594bc566d3291ffbf22ae2
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Fri Feb 22 20:55:17 2013 +0000

    Driver: Pass down the -march setting down to -cc1as on x86 too.

    The assembler historically didn't make use of any target features, but this has
    changed when support for old CPUs that don't support long nops was added.

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

commit 93e4bff1a30d2ac37461943599efd59f04a5c00f
Author: Bill Wendling <isanbard@gmail.com>
Date:   Fri Feb 22 20:53:29 2013 +0000

    Make sure we apply attributes to correct places.

    Some attributes make sense only on the function or on the call site, but not
    both. Make this distinction here.

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

commit 80190399f5a062db72127869978699af65951b73
Author: Eric Christopher <echristo@gmail.com>
Date:   Fri Feb 22 20:12:52 2013 +0000

    Split out the command handling for split debug info, we're going
    to want to propagate some information through the module into
    the back end and so need to pass it through to codegen.

    Also make the methods file static so we can use them in other places.

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

commit ae7396c3891748762d01431e16541b3eb9125c4d
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Feb 22 19:33:13 2013 +0000

    [analyzer] Don't canonicalize the RecordDecl used in CXXBaseObjectRegion.

    This Decl shouldn't be the canonical Decl; it should be the Decl used by
    the CXXBaseSpecifier in the subclass. Unfortunately, that means continuing
    to throw getCanonicalDecl() on all comparisons.

    This fixes MemRegion::getAsOffset's use of ASTRecordLayout when redeclarations
    are involved.

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

commit 4c67aa96401b67b5200e701cff87485067ab0792
Author: Peter Collingbourne <peter@pcc.me.uk>
Date:   Fri Feb 22 19:24:35 2013 +0000

    Add support for coldcc to clang

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

commit 0b849d34b3a9574615e98e108db4e8099e9032e0
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Feb 22 18:35:59 2013 +0000

    [preprocessing record] Have the MacroDefinitions map point to the MacroDefinition object instead
    its index in the preprocessed entities vector.

    This is because the order of the entities in the vector can change in some (uncommon) cases.

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

commit f512acee01617c9da8079ed88ded3bb9f2418349
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Fri Feb 22 18:29:39 2013 +0000

    Replace some typically large vectors with SmallVector.

    This may seem counter-intuitive but the POD-like optimization helps when the
    vectors grow into multimegabyte buffers. SmallVector calls realloc which knows
    how to twiddle virtual memory bits and avoids large copies.

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

commit 4c8cba87e49ec2fd39c1ff3b903924e791734a8a
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Fri Feb 22 17:59:16 2013 +0000

    Make sure pragmas don't attach visibility attributes to auto variables with
    internal linkage.

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

commit f23546a913825bdc1f972f21f638a6ee472aab20
Author: David Blaikie <dblaikie@gmail.com>
Date:   Fri Feb 22 17:44:58 2013 +0000

    Suppress -Wswitch to unbreak the build.

    This may need to be fixed more intelligently - I don't have enough context to
    be sure what the appropriate fix is right now.

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

commit 684aa73192d92850a926870be62a1787eb5b7ed9
Author: Michael Han <fragmentshaders@gmail.com>
Date:   Fri Feb 22 17:15:32 2013 +0000

    [Sema] Semantic analysis for empty-declaration and attribute-declaration.

    Introduce a new AST Decl node "EmptyDecl" to model empty-declaration. Have attributes from attribute-declaration appertain
    to the EmptyDecl node by creating the AST representations of these attributes and attach them to the EmptyDecl node so these
    attributes can be sema checked just as attributes attached to "normal" declarations.

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

commit 5dd8f280980451d475a37db087adab991c1b5655
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Fri Feb 22 16:13:34 2013 +0000

    Use raw_ostream::indent, update comment.

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

commit 7e9f060b46b39289d978dd5f449e236df98867f9
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Fri Feb 22 16:08:12 2013 +0000

    Push the raw_ostream through the template diffing code.

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

commit 1249b0fc1fc877c7fe8ecf325308504bff7819e6
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Fri Feb 22 15:46:08 2013 +0000

    Streamify FormatASTNodeDiagnosticArgument.

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

commit 5eada844fa70b6e2bc941dd7306f7a4fb1e8529d
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Fri Feb 22 15:46:01 2013 +0000

    Streamify getNameForDiagnostic and remove the string versions of PrintTemplateArgumentList.

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

commit 6ebf09130479bc7605aa09a3e6c4dc2ba3513495
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Fri Feb 22 14:21:27 2013 +0000

    Comment parsing: add CommentOptions to allow specifying custom comment block commands

    Add an ability to specify custom documentation block comment commands via a new
    class CommentOptions.  The intention is that this class will hold future
    customizations for comment parsing, including defining documentation comments
    with specific numbers of parameters, etc.

    CommentOptions instance is a member of LangOptions.

    CommentOptions is controlled by a new command-line parameter
    -fcomment-block-commands=Foo,Bar,Baz.

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

commit 9d4df46b6c78825303ffbdd01bbe8d4b4513ed89
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Fri Feb 22 14:19:01 2013 +0000

    StmtPrinter: Directly print types to the stream instead of taking a detour through getAsString.

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

commit 33b52ad7d30ebd9119e2c3e34e9294ee830288f6
Author: Timur Iskhodzhanov <timurrrr@google.com>
Date:   Fri Feb 22 12:42:50 2013 +0000

    Fix MergeFunctionDecl implicit CC for static methods.

    Patch by Alexander Zinenko!

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

commit 9672b90e6c4d79cc8a919c92af1a869f813e1d1c
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Fri Feb 22 12:07:39 2013 +0000

    scan-build: Remove debug print.

    PR15329.

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

commit 1441632bb1a9d60ce018c34aa278ff6db5a34026
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Feb 22 09:31:00 2013 +0000

    C++11 status page:
     * Mark attributes as done in SVN.
     * Downgrade alignment support from 'Clang 3.0' to 'SVN', now that we actually implement the rules.
     * Upgrade 'Dynamic initialization with concurrency' from 'No' to 'Clang 2.9' -- all that is required here is the ABI-mandated locking for the initialization of static locals.

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

commit 4da090394caafe7be5b66ad03409c06566444926
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Feb 22 09:21:42 2013 +0000

    Don't crash if we try to apply 'alignas' to a variable declared with an
    incomplete type.

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

commit 672edb0a04a5273e3a501f3b196844c125290780
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Feb 22 09:15:49 2013 +0000

    Don't accidentally and silently accept C++11 attributes in decl-specifier-seqs
    in C++98.

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

commit 4e1125f630e75a52209b928e9d43b638abf39987
Author: Bill Wendling <isanbard@gmail.com>
Date:   Fri Feb 22 09:10:20 2013 +0000

    Update to use references to attribute groups instead of listing the attributes on the call/invoke instructions.

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

commit 68ea3aeff1be9412658f4c96fdab0d8ad875be6c
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Feb 22 09:06:26 2013 +0000

    Per the grammar in [dcl.dcl]p1, a simple-declaration can only have attributes
    if it has declarators. We were missing the check for this in a couple of places.

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

commit f6565a9f7318b1ca6ea9510003dde7b89696daab
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Feb 22 08:32:16 2013 +0000

    Handle alignas(foo...) pack expansions.

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

commit 745af1c348191bf31cfcd3ae61443a0321ec2d75
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Feb 22 06:58:37 2013 +0000

    In LookupResult::resolveKind(), when handling multiple found declarations, ignore invalid declarations.

    This reduces the "ambiguous reference" errors (which are rather strange in C/ObjC) and fixes an assertion hit
    with an invalid code test case.

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

commit d5668a2447c2afeea38815b51a80a5a6ac235599
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Feb 22 06:58:32 2013 +0000

    When a parameter list in a C function has an error, recover by forming a K&R function,
    instead of a non-function type.

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

commit 28965bfa833926fd908a902cf2373d07c47b9067
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Feb 22 06:58:28 2013 +0000

    Don't crash when applying an alloc_size attribute on a K&R function.

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

commit 150d853343758281f7b0c44e058ea81da45b79be
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Feb 22 06:46:23 2013 +0000

    Don't skip '_Alignas' when disambiguating 'final'. '_Alignas' can't appear here,
    and we used to assert if it did.

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

commit 425663a16cc0d1bbd6764300f8a59251057dffe8
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Feb 22 05:54:51 2013 +0000

    Teach -ast-print how to print trailing-return-types.

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

commit b04a2387ac23adfa063de03844cb16c0d77fb405
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Feb 22 05:45:33 2013 +0000

    [analyzer] Implement "Loop executed 0 times" diagnostic correctly.

    Fixes <rdar://problem/13236549>

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

commit 671b3219c2be00ef8f26234ec993816c3ba56a4f
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Feb 22 04:55:39 2013 +0000

    Implement C++11 [dcl.align]p6-p8, and C11 6.7.5/7. This had to be split out of
    the normal attribute-merging path, because we can't merge alignment attributes
    without knowing the complete set of alignment attributes which apply to a
    particular declaration.

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

commit 1f12c47ae90c03633496d96e79a61762097a4681
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Feb 22 04:11:06 2013 +0000

    [libclang] Fix a crash with invalid code, while skip function bodies is enabled.

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

commit d9bd83e0af720733e7564b125c1c9d495318b9e2
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Feb 22 04:06:28 2013 +0000

    Decl.cpp/mergeTemplateLV(): Tweak a description. [-Wdocumentation]

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

commit 637619b915888ead5576d19508644e4eb9024078
Author: John McCall <rjmccall@apple.com>
Date:   Fri Feb 22 03:52:55 2013 +0000

    Only suppress instance context if a member is actually
    accessible in its declaring class;  otherwise we might
    fail to apply [class.protected] when considering
    accessibility in derived classes.

    Noticed by inspection; <rdar://13270329>.

    I had an existing test wrong.  Here's why it's wrong:

    Follow the rules (and notation) of [class.access]p5.
    The naming class (N) is B and the context (R) is D::getX.
    - 'x' as a member of B is protected, but R does not occur
      in a member or friend of a class derived from B.
    - There does exist a base class of B, A, which is accessible
      from R, and 'x' is accessible at R when named in A because
      'x' as a member of A is protected and R occurs in a member
      of a class, D, that is derived from A;  however, by
      [class.protected], the class of the object expression must
      be equal to or derived from that class, and A does not
      derive from D.

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

commit 8dadf15224f1a8df96793e5fc4e0b0e38a5ffbe4
Author: Anna Zaks <ganna@apple.com>
Date:   Fri Feb 22 02:59:24 2013 +0000

    [analyzer] Place all inlining policy checks into one palce

    Previously, we had the decisions about inlining spread out
    over multiple functions.

    In addition to the refactor, this commit ensures
    that we will always inline BodyFarm functions as long as the Decl
    is available. This fixes false positives due to those functions
    not being inlined when no or minimal inlining is enabled such (as
    shallow mode).

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

commit 9e738cc9d4b4655c44dadeb22f3a314daf43b995
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Feb 22 01:59:51 2013 +0000

    Add -fbracket-depth=N, analogous to -ftemplate-depth= and -fconstexpr-depth=,
    to control the check for the C 5.2.4.1 / C++ [implimits] restriction on nesting
    levels for parentheses, brackets and braces.

    Some code with heavy macro use exceeds the default limit of 256, but we don't
    want to increase it generally to avoid stack overflow on stack-constrained
    systems.

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

commit 5e5440ba9c135f523f72e7e7c5da59d390d697c5
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Feb 22 01:51:15 2013 +0000

    [analyzer] Make sure a materialized temporary matches its bindings.

    This is a follow-up to r175830, which made sure a temporary object region
    created for, say, a struct rvalue matched up with the initial bindings
    being stored into it. This does the same for the case in which the AST
    actually tells us that we need to create a temporary via a
    MaterializeObjectExpr. I've unified the two code paths and moved a static
    helper function onto ExprEngine.

    This also caused a bit of test churn, causing us to go back to describing
    temporary regions without a 'const' qualifier. This seems acceptable; it's
    our behavior from a few months ago.

    <rdar://problem/13265460> (part 2)

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

commit f08740ba5903d089a53cc315c19286e2189f9ff3
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Feb 22 01:39:26 2013 +0000

    Fix regression in modeling assignments of an address of a variable to itself.  Fixes <rdar://problem/13226577>.

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

commit 5704d34444ecd7e1baa90026fb36c47207e0a3b7
Author: Eric Christopher <echristo@gmail.com>
Date:   Fri Feb 22 01:33:46 2013 +0000

    Make sure we only use the output file as a base for debug splitting
    if we're compiling.

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

commit f0b1a0ee4787cd60a34951950baa6dd7d3d53a64
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Feb 22 01:22:48 2013 +0000

    objective-C arc: Diagnostic can not say to use bridge
    casts with c++ named casts. Change notes to say use
    bridge with c-style cast instead. // rdar://12788838

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

commit 87193dac8f2c6c8f7ee1aa9eeb64622ec75c881b
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Feb 22 01:08:00 2013 +0000

    [analyzer] Fix buildbot by not reusing a variable name.

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

commit c7d1ca52ae1f33a105ad1be217304f74a34c45f3
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Feb 22 00:32:00 2013 +0000

    Preproceessor: fix #if skipping under -traditional-cpp.

    When parsing directives within skipped #if blocks, we don't want to retain
    any whitespace. Previously we were just skipping comments, but it's not
    possible to skip comments and retain other whitespace. This change matches
    the usual behavior for parsing directives (i.e. the behavior outside of
    skipped #if blocks).

    <rdar://problem/13267695>

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

commit 025b3d4f528ce54242f414057cc45a65e39098db
Author: Eric Christopher <echristo@gmail.com>
Date:   Fri Feb 22 00:24:40 2013 +0000

    Make logic smaller.

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

commit 644367c198de78f6e8306bf38a52cd358d0c4c37
Author: Michael Gottesman <mgottesman@apple.com>
Date:   Fri Feb 22 00:16:48 2013 +0000

    Added a footnote to the documentation for objc_storeStrong that makes it clear
    that a __strong object of block type is a valid argument to objc_storeStrong but
    that an objc_retain and not an objc_retainBlock will be emitted.

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

commit c9088966de61c4958efbb7b635dad78d779ac6e6
Author: Aaron Ballman <aaron@aaronballman.com>
Date:   Fri Feb 22 00:15:31 2013 +0000

    Removing has_getDecl (added in r175532). It cause a build break for MSVC, and was not yet being used in the codebase. If we start using std::enable_if, we can look into resurrecting the idea in a more portable fashion.

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

commit 94236e7393d5cd4acbc5f0b503d23bbe78d9aeec
Author: Bill Wendling <isanbard@gmail.com>
Date:   Fri Feb 22 00:13:35 2013 +0000

    Apply the 'nobuiltin' attribute to call sites when the user specifies `-fno-builtin' on the command line.

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

commit 0c67fc9c2e2ec8aa787ee9daf2780d47abe1fb6c
Author: Bill Wendling <isanbard@gmail.com>
Date:   Fri Feb 22 00:04:55 2013 +0000

    Make for x86 to stop it failing on ARM buildbots.

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

commit 168c96d42857ee98326b077189115cc82be1e2c3
Author: Eric Christopher <echristo@gmail.com>
Date:   Fri Feb 22 00:03:08 2013 +0000

    Grammar.

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

commit 9f1d541ef1aca8f953e5bb4e7177969f0a2062d5
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Feb 21 23:57:17 2013 +0000

    [analyzer] Make sure a temporary object region matches its initial bindings.

    When creating a temporary region (say, when a struct rvalue is used as
    the base of a member expr), make sure we account for any derived-to-base
    casts. We don't actually record these in the LazyCompoundVal that
    represents the rvalue, but we need to make sure that the temporary region
    we're creating (a) matches the bindings, and (b) matches its expression.

    Most of the time this will do exactly the same thing as before, but it
    fixes spurious "garbage value" warnings introduced in r175234 by the use
    of lazy bindings to model trivial copy constructors.

    <rdar://problem/13265460>

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

commit 3892d022f36ee5bf3be4a55ea01c08d323ef6235
Author: John McCall <rjmccall@apple.com>
Date:   Thu Feb 21 23:42:58 2013 +0000

    Ignore visibility from enclosing template arguments
    for explicit member specializations.

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

commit df1f94ebfac4578e27ad008522c7b333e977e51b
Author: David Blaikie <dblaikie@gmail.com>
Date:   Thu Feb 21 23:35:06 2013 +0000

    Simplify code to use castAs rather than getAs + assert.

    Post commit review feedback on r175812 from Jordan Rose.

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

commit 3c16431cb973079d178338833dafd6b483bf8c8d
Author: David Blaikie <dblaikie@gmail.com>
Date:   Thu Feb 21 23:35:03 2013 +0000

    Fix copy/paste to refer to the relevant type (ProgramPoint instead of TypeLoc).

    Post commit review feedback on r175812 from Jordan Rose.

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

commit 1c885a58891ae4421b2f4f9e63808c06fea020ee
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Feb 21 23:17:45 2013 +0000

    clang/test/Driver/qa_override.c: Appease gcc-driver.

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

commit b83a5d8fb2306e3ef5c6a5c2af0bf52a824f2149
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Feb 21 23:15:05 2013 +0000

    Fix typo 'with with' in diagnostic.

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

commit e13001441f95fd907228459a4d9310c113ac0a5b
Author: David Blaikie <dblaikie@gmail.com>
Date:   Thu Feb 21 22:37:44 2013 +0000

    Add back implicitly dropped const.

    (found due to incoming improvements to llvm::cast machinery that will error on
    this sort of mistake)

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

commit be5f1be4cf8bab6b571d54a2e18cb9e83d7be2fc
Author: Eric Christopher <echristo@gmail.com>
Date:   Thu Feb 21 22:35:08 2013 +0000

    Fix formatting and tabs in file.

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

commit f870e12f2324f48248793035ab0edb35d66e2299
Author: Eric Christopher <echristo@gmail.com>
Date:   Thu Feb 21 22:35:05 2013 +0000

    Don't pass -split-dwarf= to the backend unless we're on linux for
    now.

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

commit 59320e770f90a59c74f2be10f198e3c390195628
Author: Eric Christopher <echristo@gmail.com>
Date:   Thu Feb 21 22:35:01 2013 +0000

    Remove the SplitDebug action and replace with a set of commands
    in the compilation setup. Note that this doesn't currently
    work for -no-integrated-as.

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

commit 7a95de68c093991047ed8d339479ccad51b88663
Author: David Blaikie <dblaikie@gmail.com>
Date:   Thu Feb 21 22:23:56 2013 +0000

    Replace ProgramPoint llvm::cast support to be well-defined.

    See r175462 for another example/more details.

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

commit 94f3f549a7e0c426d5ffda7f25d1983c885dab9c
Author: Ted Kremenek <kremenek@apple.com>
Date:   Thu Feb 21 22:10:49 2013 +0000

    Remove superfluous null pointer check.  The pointer is used prior to this check.

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

commit 4216ee1ed997b826470864182df34df1a350fcb7
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Thu Feb 21 22:01:10 2013 +0000

    AST dumping: dump template instantiations only once

    Fixes infinite loop in PR15220.

    Patch by Philip Craig.

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

commit 1c1303b1fa988ffae7e269fbdbd5a50e4ba860a0
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Feb 21 21:40:48 2013 +0000

    Remove accidentally introduced no-op line.

    Was used during experiments, but another if-statements a few lines
    before makes it (intentionally) useless.

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

commit 63631bd173df1decfff98ae6a7ed7f3d5f886b86
Author: Ted Kremenek <kremenek@apple.com>
Date:   Thu Feb 21 21:40:44 2013 +0000

    Teach serialized diagnostics about notes without locations.

    Along the way, improve a diagnostic for "previous declaration here" for implicit parameters.

    Fixes <rdar://problem/13211384>.

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

commit f11a705c6075b12cbae5632ba4de433bc9bc105f
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Feb 21 21:33:55 2013 +0000

    Consistently put {} onto the same line for empty functions.

    This fixes llvm.org/PR15167.

    Before:
    LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL()
        : AAAAAAAA(10), BBBBBBBBB(10) {
    }
    LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL() : AAAAAAAA(10) {}

    After:
    LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL()
        : AAAAAAAA(10), BBBBBBBBB(10) {}
    LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL() : AAAAAAAA(10) {}

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

commit fdf6a279c9a75c778eba382d9a156697092982a1
Author: David Blaikie <dblaikie@gmail.com>
Date:   Thu Feb 21 20:58:29 2013 +0000

    Replace CFGElement llvm::cast support to be well-defined.

    See r175462 for another example/more details.

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

commit 05f8ff134d5f270bd7bfe4aaef491bd3febddea1
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Feb 21 20:42:11 2013 +0000

    Patch for debug info of qualified-id types is 'id'
    By Adrian Pranti.

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

commit 51d1095adfffe294780cd60a96a67e04d9a0b64e
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Thu Feb 21 20:30:05 2013 +0000

    Try to fix the test for cmake builds, where clang is called clang-3.3.

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

commit 47135fe346b101c9bfb15c7309423fb57ec533f0
Author: Ted Kremenek <kremenek@apple.com>
Date:   Thu Feb 21 20:28:59 2013 +0000

    [scan-build] Add quotes around clang executable name to handle path withs spaces.  Fixes <rdar://problem/13254727>

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

commit 478bbf3171cc6ed10e544440b72413b3fdfbb0b6
Author: Bill Wendling <isanbard@gmail.com>
Date:   Thu Feb 21 19:44:18 2013 +0000

    Try to get buildbots to pass these tests.

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

commit c73dcba91872322159b94dc49afb9c86d169425e
Author: Ted Kremenek <kremenek@apple.com>
Date:   Thu Feb 21 19:33:30 2013 +0000

    [scan-build] fix xcode version parsing to handle dot releases.  Fixes <rdar://problem/13265300>.

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

commit 79165b82ddc881c705275fe9eb5a745f717a1eda
Author: Chad Rosier <mcrosier@apple.com>
Date:   Thu Feb 21 18:56:55 2013 +0000

    [driver] Handle the processing of the QA_OVERRIDE_GCC3_OPTIONS and CCC_ADD_ARGS
    before the DiagnosticsEngine is instantiated.  Otherwise, warning options are
    not handled correctly.
    rdar://13254743

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

commit 6aad4a31b35df07fe818f193fcfd3c0197aea467
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Feb 21 18:53:19 2013 +0000

    Preprocessor: preserve whitespace in -traditional-cpp mode.

    Note that unlike GNU cpp we currently do not preserve whitespace in macros
    (even in -traditional-cpp mode).

    <rdar://problem/12897179>

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

commit 649aa6adc4d8650033508d38d3b442d355d90824
Author: Chad Rosier <mcrosier@apple.com>
Date:   Thu Feb 21 18:40:49 2013 +0000

    [driver] Add a dump method for ArgList.

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

commit 7d81281fc39f6d40d86be6600adba13c05b4a639
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Feb 21 15:00:29 2013 +0000

    Allow breaking between type and name in for loops.

    This fixes llvm.org/PR15033.

    Also: Always break before a parameter, if the previous parameter was
    split over multiple lines. This was necessary to make the right
    decisions in for-loops, almost always makes the code more readable and
    also fixes llvm.org/PR14873.

    Before:
    for (llvm::ArrayRef<NamedDecl *>::iterator I = FD->getDeclsInPrototypeScope()
             .begin(), E = FD->getDeclsInPrototypeScope().end();
         I != E; ++I) {
    }
    foo(bar(bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,
            ccccccccccccccccccccccccccccc), d, bar(e, f));

    After:
    for (llvm::ArrayRef<NamedDecl *>::iterator
             I = FD->getDeclsInPrototypeScope().begin(),
             E = FD->getDeclsInPrototypeScope().end();
         I != E; ++I) {
    }
    foo(bar(bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,
            ccccccccccccccccccccccccccccc),
        d, bar(e, f));

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

commit 3aada3c305a0f0ecfad2e4d0cf977ee9d2b2c71f
Author: Evgeniy Stepanov <eugeni.stepanov@gmail.com>
Date:   Thu Feb 21 13:59:14 2013 +0000

    Add MSan to the list of targets in Makefile-based builds.

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

commit ff04dd4effe82ee81dd55a13c9e29cef67e77484
Author: Joey Gouly <joey.gouly@arm.com>
Date:   Thu Feb 21 13:42:33 2013 +0000

    Add a 64-bit triple to these tests, to fix 32-bit bots.

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

commit b965d8baf95a3d0dc781e0cc1f80c0676580b277
Author: Joey Gouly <joey.gouly@arm.com>
Date:   Thu Feb 21 12:06:32 2013 +0000

    Fix an OpenCL test case. Pointer arguments to kernels must be declared with the
    __global, __constant or __local qualifier.

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

commit 52e933b0c3a1d552ab0e4d629ee15cff99a94447
Author: Joey Gouly <joey.gouly@arm.com>
Date:   Thu Feb 21 11:49:56 2013 +0000

    Add support to Sema and CodeGen for floating point vector types in OpenCL.

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

commit 4d8fe830d59010d6f748fd1c62090c20538c582b
Author: David Blaikie <dblaikie@gmail.com>
Date:   Thu Feb 21 06:12:38 2013 +0000

    Correct spelling of 'enumerator'.

    Post commit code review feedback to r175705 from Jordan Rose.

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

commit 0adb17502365b56dca99bfa971c59514ece54877
Author: David Blaikie <dblaikie@gmail.com>
Date:   Thu Feb 21 06:05:05 2013 +0000

    Avoid implicit conversions of Optional<T> to bool.

    This is a precursor to making Optional<T>'s operator bool 'explicit' when
    building Clang & LLVM as C++11.

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

commit 6d35b412fc0289681f320acc389f7a83066ec9e2
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Feb 21 04:40:10 2013 +0000

    StaticAnalyzer/Core: Suppress warnings. [-Wunused-variable, -Wunused-function]

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

commit 79741c49fcc72aaa01e68f07d9d13f3d9130b11e
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Feb 21 04:40:04 2013 +0000

    Whitespace.

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

commit 4411b423e91da0a2c879b70c0222aeba35f72044
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Feb 21 03:12:32 2013 +0000

    [analyzer] Record whether a base object region represents a virtual base.

    This allows MemRegion and MemRegionManager to avoid asking over and over
    again whether an class is a virtual base or a non-virtual base.

    Minor optimization/cleanup; no functionality change.

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

commit 0cd3142cc55f69acae1568ed9ba80470c6fabe61
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Feb 21 03:12:26 2013 +0000

    [analyzer] Add another reinterpret_cast behavior test.

    The test is similar to <rdar://problem/13239840> but doesn't actually test
    the case that fails there. It's still a good test, though.

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

commit 472b0613ff67e8598ef6a69bb478c721b21a9294
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Feb 21 03:12:21 2013 +0000

    [analyzer] Tidy up a few uses of Optional in RegionStore.

    Some that I just added needed conversion to use 'None', others looked
    better using Optional<SVal>::create.

    No functionality change.

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

commit 4a3012d4dd9748b18b53b90e855989d98308f990
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Feb 21 02:32:34 2013 +0000

    CIndex.cpp: Appease g++-4.4. "if (Optional<unsigned> Minor = In.getMinor())" did not work as expected.

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

commit 9f6e9106176008e91af6a974b3cf31c064d6d884
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Feb 21 02:17:58 2013 +0000

    libstdc++'s <cstdalign> #includes <stdalign.h> and expects it to guard against
    being included in C++. Don't define alignof or alignas in this case. Note that
    the C++11 standard is broken in various ways here (it refers to the contents
    of <stdalign.h> in C99, where that header did not exist, and doesn't mention
    the alignas macro at all), but we do our best to do what it intended.

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

commit c245723978ed7d8b1a867fd1bd9570774fe8a93f
Author: Ying Wang <wangying@google.com>
Date:   Wed Feb 20 18:17:05 2013 -0800

    Use order-only deps from clang to arm_neon.h.

    When you switch a product, a new arm_neon.h will be generated but we
    don't need to rebuilt clang.

    Change-Id: I3c00c3fcac2d82002796ee489253fc177135eae5

commit 75f6a66f9a946a6839f70cf4856ceb1fb94aa6ad
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Thu Feb 21 02:02:50 2013 +0000

    Respect -fno-canonical-prefixes when deciding where to generate .gcno and .gcda
    files.

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

commit 66874fb18afbffb8b2ca05576851a64534be3352
Author: David Blaikie <dblaikie@gmail.com>
Date:   Thu Feb 21 01:47:18 2013 +0000

    Use None rather than Optional<T>() where possible.

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

commit 65124fe81f61eed98b845c87e3a78a780f3deb11
Author: David Blaikie <dblaikie@gmail.com>
Date:   Thu Feb 21 01:47:08 2013 +0000

    Rename TypeLoc's isType to isKind

    Matches changes made to SVal's similar functions based on Jordan Rose's review
    feedback to r175594.

    Also change isKind to take a reference rather than a non-null pointer, while I'm
    at it. (& make TypeLoc::isKind private)

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

commit 11f0cae4bf4f62dcc706d33c1f795d460cd64816
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Feb 21 01:34:51 2013 +0000

    [analyzer] Tighten up safety in the use of lazy bindings.

    - When deciding if we can reuse a lazy binding, make sure to check if there
      are additional bindings in the sub-region.
    - When reading from a lazy binding, don't accidentally strip off casts or
      base object regions. This slows down lazy binding reading a bit but is
      necessary for type sanity when treating one class as another.

    A bit of minor refactoring allowed these two checks to be unified in a nice
    early-return-using helper function.

    <rdar://problem/13239840>

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

commit 943f909ba72a1c9351dd421cac1413d303a719f1
Author: Ted Kremenek <kremenek@apple.com>
Date:   Thu Feb 21 01:29:01 2013 +0000

    Strip 'llvm' from 'llvm::Optional' uses.

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

commit e40b56226c1509d092d43a1c0b93cfb697f86158
Author: Richard Trieu <rtrieu@google.com>
Date:   Thu Feb 21 00:50:43 2013 +0000

    Remove commented out code.

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

commit 41a6a3e064192e98a48f5fabccf262412fe37d10
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Feb 21 00:40:10 2013 +0000

    objective-C arc IR-gen. Retaining of strong
    arguments in function prologue is done
    with objc_StoreStrong to pair it with
    similar objc_StoreStrong for release in function
    epilogue. This is done with -O0 only.
    // rdar://13145317

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

commit e2e1fa27e2533410f744137b0db1bc9491543392
Author: David Blaikie <dblaikie@gmail.com>
Date:   Thu Feb 21 00:26:17 2013 +0000

    Mark unimplemented function with LLVM_DELETED_FUNCTION

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

commit 464011827c5f9047caaba7e245556d66a65a15b6
Author: David Blaikie <dblaikie@gmail.com>
Date:   Thu Feb 21 00:26:14 2013 +0000

    Doxycomment SVal's getAs/castAs.

    Also document TypeLoc's operations similarly, since it's a good idea.

    Post-commit CR feedback from Anna Zaks regarding r175594.

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

commit 90a7820de7685cec75fcd47e98f0f9623c0f0477
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Feb 20 22:28:41 2013 +0000

    Revert "intmax_t is long long on Darwin, not long."

    'long' and 'long long' are different for the purposes of mangling.
    This caused <rdar://problem/13254874>.

    This reverts commit c2f994d31ec85e9af811af38eb1b28709aef0b2c.

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

commit d6d864fc0674039d1884e6b8d9089f40370af7d8
Author: Jim Grosbach <grosbach@apple.com>
Date:   Wed Feb 20 22:25:15 2013 +0000

    MCParser: Update method names per coding guidelines.

    s/ParseMSInlineAsm/parseMSInlineAsm/

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

commit dc84cd5efdd3430efb22546b4ac656aa0540b210
Author: David Blaikie <dblaikie@gmail.com>
Date:   Wed Feb 20 22:23:23 2013 +0000

    Include llvm::Optional in clang/Basic/LLVM.h

    Post-commit CR feedback from Jordan Rose regarding r175594.

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

commit 9e85b29dd17fd3878134216f9abaf5ec4774b2a5
Author: David Blaikie <dblaikie@gmail.com>
Date:   Wed Feb 20 22:23:03 2013 +0000

    Remove redundant Optional type in favor of llvm::Optional

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

commit 0b9c328bb47b38ef6ff877a42e8a90a31ab0e2e1
Author: David Blaikie <dblaikie@gmail.com>
Date:   Wed Feb 20 22:23:01 2013 +0000

    Use op-> directly rather than via Optional<T>::getPointer.

    Post-commit CR feedback from Jordan Rose regarding r175594.

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

commit 3bc7b6bef968a18aa69af6594d192897d329692a
Author: David Blaikie <dblaikie@gmail.com>
Date:   Wed Feb 20 22:22:59 2013 +0000

    Rename SVal::isType functions to SVal::isKind

    Post-commit CR feedback from Jordan Rose regarding r175594.

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

commit 1927ae9e3df8c267f872cda1fce51cb542303699
Author: Ying Wang <wangying@google.com>
Date:   Wed Feb 20 14:00:13 2013 -0800

    Use order-only dependency on $(CLANG_TBLGEN).

    So if the tblgen binary is updated we dont run the rules again.

    Bug: 8234097
    Change-Id: I55e376cf73f65a1957509ff87e599cabc2395fb8

commit 30f2a74f882adcadb8060d914684f65a401d87ba
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Feb 20 20:19:27 2013 +0000

    PR15311: Finish implementation of the suggested resolution of core issue 1488,
    which allows grouping parens in an abstract-pack-declarator. This was already
    mostly implemented, but missed some cases. Add an ExtWarn for use of this
    extension until CWG ratifies it.

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

commit 3bba3efba0e57071d60b355ed62639f93e37711c
Author: Bill Wendling <isanbard@gmail.com>
Date:   Wed Feb 20 19:30:01 2013 +0000

    Attempt to clean up tests for non-X86 platforms.

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

commit 6b3d3e54c003b03f16e235ad2ff49e95587bbf92
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Feb 20 19:22:51 2013 +0000

    Process and handle attributes on conditions and for loop variables. Process and
    diagnose attributes on alias declarations, using directives, and attribute
    declarations.

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

commit 2ec6cfcfa00832b015c7a2018884d95ef15f4477
Author: Chad Rosier <mcrosier@apple.com>
Date:   Wed Feb 20 17:39:31 2013 +0000

    [ms-inline asm] Remove this test while I investigate why eax isn't being clobbered.

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

commit e9a6226c7a2fd1c30a00990cdeb69b89f5599fb3
Author: Manuel Klimek <klimek@google.com>
Date:   Wed Feb 20 15:32:58 2013 +0000

    Fix regression in string literal alignment.

    Now correctly indents (again):
    a = a + "a"
            "a"
            "a";

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

commit b56b6d1bd6f41d7b944a9631a9ab481cafe6535b
Author: Manuel Klimek <klimek@google.com>
Date:   Wed Feb 20 15:25:48 2013 +0000

    Fixes bug in string literal alignment.

    We now indent the following correctly:
    1. some + "literal" /* comment */
              "literal";
    2. breaking string literals after which we have another string literal.

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

commit c4615b7aaf97e303a4fc675956f7f5572d492885
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Feb 20 12:56:39 2013 +0000

    Don't remove blank lines within unwrapped lines.

    If the code author decides to put empty lines anywhere into the code we
    should treat them equally, i.e. reduce them to the configured
    MaxEmptyLinesToKeep.

    With this change, we e.g. keep the newline in:
    SomeType ST = {
      // First value
      a,

      // Second value
      b
    };

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

commit 8092a940922f307edb569036a3bb6bb722fb3a3d
Author: Manuel Klimek <klimek@google.com>
Date:   Wed Feb 20 10:15:13 2013 +0000

    Implements breaking of string literals if they stick out.

    An alternative strategy to calculating the break on demand when hitting
    a token that would need to be broken would be to put all possible breaks
    inside the token into the optimizer.

    Currently only supports breaking at spaces; more break points to come.

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

commit 2f98ad38b8e02146ecfc1760160dec676ce6d1e0
Author: Bill Wendling <isanbard@gmail.com>
Date:   Wed Feb 20 08:01:34 2013 +0000

    Remove target-specific features.

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

commit f7a9da053f5bd6c18450c1796d953b42c3b7ad3a
Author: Bill Wendling <isanbard@gmail.com>
Date:   Wed Feb 20 07:22:19 2013 +0000

    Modify the tests to use attribute group references instead of listing the
    function attributes.

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

commit 5251abea41b446c26e3239c8dd6c7edea6fc335d
Author: David Blaikie <dblaikie@gmail.com>
Date:   Wed Feb 20 05:52:05 2013 +0000

    Replace SVal llvm::cast support to be well-defined.

    See r175462 for another example/more details.

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

commit a905c4fd256396b589013304d9793cc199b8a0c6
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Feb 20 01:56:21 2013 +0000

    intmax_t is long long on Darwin, not long.

    <rdar://problem/11540697>

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

commit d4c3d66be70ae2d0bd828329022dc428cc277a1c
Author: John McCall <rjmccall@apple.com>
Date:   Wed Feb 20 01:54:26 2013 +0000

    Add a new 'type_visibility' attribute to allow users to
    control the visibility of a type for the purposes of RTTI
    and template argument restrictions independently of how
    visibility propagates to its non-type member declarations.

    Also fix r175326 to not ignore template argument visibility
    on a template explicit instantiation when a member has
    an explicit attribute but the instantiation does not.

    The type_visibility work is rdar://11880378

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

commit 975d52c759a0da21461668bac840bb5d21061d1b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Feb 20 01:17:14 2013 +0000

    Don't repeat the function name in the comment.

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

commit 9818a1d443e97677dd3422305de9cc2b1fb2a8c1
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Feb 20 00:54:57 2013 +0000

    [preprocessor] Split the MacroInfo class into two separate concepts, MacroInfo class
    for the data specific to a macro definition (e.g. what the tokens are), and
    MacroDirective class which encapsulates the changes to the "macro namespace"
    (e.g. the location where the macro name became active, the location where it was undefined, etc.)

    (A MacroDirective always points to a MacroInfo object.)

    Usually a macro definition (MacroInfo) is where a macro name becomes active (MacroDirective) but
    splitting the concepts allows us to better model the effect of modules to the macro namespace
    (also as a bonus it allows better modeling of push_macro/pop_macro #pragmas).
    Modules can have their own macro history, separate from the local (current translation unit)
    macro history; MacroDirectives will be used to model the macro history (changes to macro namespace).

    For example, if "@import A;" imports macro FOO, there will be a new local MacroDirective created
    to indicate that "FOO" became active at the import location. Module "A" itself will contain another
    MacroDirective in its macro history (at the point of the definition of FOO) and both MacroDirectives
    will point to the same MacroInfo object.

    Introducing the separation of macro concepts is the first part towards better modeling of module macros.

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

commit 206f49966f66ad7cbfe3d37c14fa7e6e7410f3be
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Feb 20 00:27:26 2013 +0000

    [analyzer] Account for the "interesting values" hash table resizing.

    RegionStoreManager::getInterestingValues() returns a pointer to a
    std::vector that lives inside a DenseMap, which is constructed on demand.
    However, constructing one such value can lead to constructing another
    value, which will invalidate the reference created earlier.

    Fixed by delaying the new entry creation until the function returns.

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

commit 053214013990ad8ec096dafc64aa7c0ad2b05bc0
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Feb 19 23:47:15 2013 +0000

    PR15300: Support C++11 attributes on base-specifiers. We don't support any such
    attributes yet, so just issue the appropriate diagnostics. Also generalize the
    fixit for attributes-in-the-wrong-place code and reuse it here, if attributes
    are placed after the access-specifier or 'virtual' in a base specifier.

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

commit 65f991ccbec43b4a860f70594c92528ee8fb7c6f
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Tue Feb 19 20:28:33 2013 +0000

    [analyzer] Don't accidentally strip off base object regions for lazy bindings.

    If a base object is at a 0 offset, RegionStoreManager may find a lazy
    binding for the entire object, then try to attach a FieldRegion or
    grandparent CXXBaseObjectRegion on top of that (skipping the intermediate
    region). We now preserve as many layers of base object regions necessary
    to make the types match.

    <rdar://problem/13239840>

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

commit 03628b86a9c50e066412fb0e49908686ff117378
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Feb 19 20:05:41 2013 +0000

    Add missing clang-format null pointer check..

    .. and a test that triggers it in valid albeit questionable code.

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

commit 0be5e567e3a48592fd6b11f88cc77efb20c76f26
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Feb 19 19:58:45 2013 +0000

    [modules] Const'ify some functions of ModuleMap.

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

commit 21a0004d80f50808ee343ae70092f6260a4c9477
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Feb 19 19:34:40 2013 +0000

    [modules] Refactor code from ASTReader::makeModuleVisible() into a new function,
    Module::getExportedModules() so it can be reused.

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

commit cc9bdcb720931961bac55e321a3e51b9804ca900
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Feb 19 18:26:28 2013 +0000

    Use MapVector::pop_back() per LLVM r175538.

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

commit d91861387cf5d69a5c0aed77447fa46779a698af
Author: Sean Silva <silvas@purdue.edu>
Date:   Tue Feb 19 17:29:01 2013 +0000

    [docs] Rename to permit wider variety of  content.

    I don't want to rule out the possibility of linking to e.g. interesting
    blog posts about uses of Clang, so avoid restricting the content to
    "projects".

    This breaks URL compatibility, but this document was committed less than
    an hour ago so hopefully nobody has linked to it yet.

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

commit 298422d326d738e901d088d4423c8d816b447793
Author: Sean Silva <silvas@purdue.edu>
Date:   Tue Feb 19 17:21:23 2013 +0000

    [docs] Revise content on ExternalProjectsUsingClang page.

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

commit 34511fb79201ba9ed39c97f3a7ea0f157a79436d
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Feb 19 17:14:38 2013 +0000

    Correctly format macro with unfinished template declaration.

    We can now format:
      #define A template <typename T>

    Before this created a segfault :-/.

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

commit 523806028d812a7f29636c59a8bc0e7e3d3fd9ae
Author: Edwin Vane <edwin.vane@intel.com>
Date:   Tue Feb 19 17:14:34 2013 +0000

    Support in hasDeclaration for types with getDecl()

    Using a new metafunction for detecting the presence of the member
    'getDecl' in a type T, added support to hasDeclaration for any such type
    T. This allows hasDecl() to be replaced and enables several other
    subclasses of clang::Type to use hasDeclaration.

    Updated unittests and LibASTMatchersReference.html.

    Reviewers: klimek

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

commit 3b41a100a65e05309dbfdad65e2f79439fdaf4c0
Author: Sean Silva <silvas@purdue.edu>
Date:   Tue Feb 19 16:58:15 2013 +0000

    [docs] Introduce ExternalProjectsUsingClang.rst

    A couple concrete examples are sure to be a win. If you know of any
    other external projects using Clang, please let me know!

    Patch by Laszlo Nagy! (with a title tweak by me)

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

commit 24697b0a7297f530822dac42e36feb77738c1885
Author: Alexey Samsonov <samsonov@google.com>
Date:   Tue Feb 19 11:25:29 2013 +0000

    [Sanitizer] If -fsanitize-blacklist= option is not explicitly specified, make Clang look for the default sanitizer-specific blacklist in the resource directory.

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

commit aad3fa661914ac90e64f7eafb72f848e9bd117cd
Author: Timur Iskhodzhanov <timurrrr@google.com>
Date:   Tue Feb 19 10:50:44 2013 +0000

    Add the missing 'static' keyword to the test

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

commit d78967088c02b69166810cffae5471bccea91ca3
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Feb 19 09:28:55 2013 +0000

    Fix bug in LineState comparison function.

    The key bug was

      if (Other.StartOfLineLevel < StartOfLineLevel) ..

    instead of

      if (Other.StartOfLineLevel != StartOfLineLevel) ..

    Also cleaned up the function to be more consistent in the comparisons.

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

commit 98654c938da09e045ff3c18324d26d52d36ee155
Author: Eric Christopher <echristo@gmail.com>
Date:   Tue Feb 19 06:16:53 2013 +0000

    More grammar.

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

commit 6637b0607127f0df5a4f4c8180c02c1e041d4682
Author: Aaron Ballman <aaron@aaronballman.com>
Date:   Tue Feb 19 02:32:05 2013 +0000

    Fixing a typo where FixIts was accidentally self-assigning instead of assigning in the parameter Fixits. This fixes several failed assertions with MSVC debug builds.

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

commit a880b19aa6ef1dc95936f5de052be7a7d6ee6814
Author: John McCall <rjmccall@apple.com>
Date:   Tue Feb 19 01:57:35 2013 +0000

    Add support for -fvisibility-ms-compat.

    We treat this as an alternative to -fvisibility=<?>
    which changes the default value visibility to "hidden"
    and the default type visibility to "default".

    Expose a -cc1 option for changing the default type
    visibility, repurposing -fvisibility as the default
    value visibility option (also setting type visibility
    from it in the absence of a specific option).

    rdar://13079314

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

commit 0b5a483c8f5d8563ebc6ad5e311f2fadb734058d
Author: John McCall <rjmccall@apple.com>
Date:   Tue Feb 19 01:57:29 2013 +0000

    Use the actual class visibility for the ObjC EHTYPE global,
    not the global visibility mode.

    Noticed by inspection.

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

commit 3f5fcd2d584ef5cfbb4328466c0812754a2e1e7a
Author: Bill Wendling <isanbard@gmail.com>
Date:   Tue Feb 19 00:53:07 2013 +0000

    Temporarily revert r175471 for more review.

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

commit ea9cde636fa182a1a132db9d3749f288e78d86eb
Author: Bill Wendling <isanbard@gmail.com>
Date:   Mon Feb 18 23:17:48 2013 +0000

    Add a 'no-builtin' attribute if we do not want to simplify calls.

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

commit 9ef9b8540a608a93efaaae1d26d94e8087c30b55
Author: David Blaikie <dblaikie@gmail.com>
Date:   Mon Feb 18 23:11:09 2013 +0000

    Use LLVM_DELETED_FUNCTION rather than '// do not implement' comments.

    Also removes some redundant DNI comments on function declarations already
    using the macro.

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

commit 39e6ab4be93d9c5e729a578ddd9d415cd2d49872
Author: David Blaikie <dblaikie@gmail.com>
Date:   Mon Feb 18 22:06:02 2013 +0000

    Replace TypeLoc llvm::cast support to be well-defined.

    The TypeLoc hierarchy used the llvm::cast machinery to perform undefined
    behavior by casting pointers/references to TypeLoc objects to derived types
    and then using the derived copy constructors (or even returning pointers to
    derived types that actually point to the original TypeLoc object).

    Some context is in this thread:
    http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-December/056804.html
    Though it's spread over a few months which can be hard to read in the mail
    archive.

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

commit 9ba7627d25a7555b1afff04f685d2f161974e682
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Mon Feb 18 19:50:38 2013 +0000

    libclang: don't store nul-terminated strings as StringRefs,
    if the nul-terminatedness property is important for clients.

    Also, don't return the same CXString multiple times.  This did not create a
    correctness issue in practice because the CXString was of an CXS_Unmanaged
    kind, and destruction was a no-op.

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

commit 5be093c0ef46c7749c942d0d9056af6dc3d591a4
Author: David Blaikie <dblaikie@gmail.com>
Date:   Mon Feb 18 19:04:16 2013 +0000

    Clean up last use of dyn_cast on TypeLoc in ASTMatchers

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

commit 9352a62f2798957d7ee4f7f05c2554cbd769b228
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Mon Feb 18 19:02:44 2013 +0000

    Test for my last patch. // rdar://13178483

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

commit 91d243b6011ed74f6d3a446b1b792f6c11475ee4
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Mon Feb 18 18:31:16 2013 +0000

    Add include guards for CommentVisitor.h

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

commit 0dc4ff2209b7b3b5ee479754d12176e43df0cd8e
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Mon Feb 18 17:22:23 2013 +0000

    Prevent crash on multiple user errors (which I cannot reproduce in
    a small test case). // rdar://13178483.

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

commit 3b1a40fedc489e8ad90476d9966ce39e93b86b44
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Feb 18 15:59:24 2013 +0000

    CodeGenFunction::CurFuncDecl can be NULL; fix crash introduced in r175386.

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

commit aa945900d5438984bdcaac85c4f54868292231f4
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Feb 18 15:53:43 2013 +0000

    Ensure that the identifier chains have the most recent declaration after module deserialization.

    This commit introduces a set of related changes to ensure that the
    declaration that shows up in the identifier chain after deserializing
    declarations with a given identifier is, in fact, the most recent
    declaration. The primary change involves waiting until after we
    deserialize and wire up redeclaration chains before updating the
    identifier chains. There is a minor optimization in here to avoid
    recursively deserializing names as part of looking to see whether
    top-level declarations for a given name exist.

    A related change that became suddenly more urgent is to property
    record a merged declaration when an entity first declared in the
    current translation unit is later deserialized from a module (that had
    not been loaded at the time of the original declaration). Since we key
    off the canonical declaration (which is parsed, not from an AST file)
    for emitted redeclarations, we simply record this as a merged
    declaration during AST writing and let the readers merge them.

    Re-fixes <rdar://problem/13189985>, presumably for good this time.

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

commit 82282dc907a04b1931f8f578693b035ad751fd3b
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Feb 18 13:52:06 2013 +0000

    Improve indentation of builder type calls.

    In builder-type calls, it can be very confusing to just indent
    parameters from the start of the line. Instead, indent 4 from the
    correct function call.

    Before:
    aaaaaaaaaaaaaaaaaaa()->aaaaaa(bbbbb)->aaaaaaaaaaaaaaaaaaa( // break
        aaaaaaaaaaaaaa);
    aaaaaaaaaaaaaaaaaaaaaaa *aaaaaaaaa = aaaaaa->aaaaaaaaaaaa()->aaaaaaaaaaaaaaaa(
        aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)
        ->aaaaaaaaaaaaaaaaa();

    After:
    aaaaaaaaaaaaaaaaaaa()->aaaaaa(bbbbb)->aaaaaaaaaaaaaaaaaaa( // break
                                            aaaaaaaaaaaaaa);
    aaaaaaaaaaaaaaaaaaaaaaa *aaaaaaaaa = aaaaaa->aaaaaaaaaaaa()
        ->aaaaaaaaaaaaaaaa(
            aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)
        ->aaaaaaaaaaaaaaaaa();

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

commit 515f65df40624a767bc8763a0b6b678146b8e3c9
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Feb 18 13:24:21 2013 +0000

    Improve formatting of builder-type calls.

    Before:
    aaaaaaa->aaaaaaa->aaaaaaaaaaaaaaaa(
        aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)->aaaaaaaa(aaaaaaaaaaaaaaa);

    After:
    aaaaaaa->aaaaaaa
        ->aaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)
        ->aaaaaaaa(aaaaaaaaaaaaaaa);

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

commit 29333160cfd863a451ddb6fd505c3619c3724c95
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Feb 18 13:08:03 2013 +0000

    Reformat lines if they were "moved around".

    An unwrapped line can get moved around if there is no newline before
    it and the previous line was formatted.

    Example:

      template<typename T>  // Cursor is on this line when hitting "format"
      T *getFETokenInfo() const { return static_cast<T*>(FETokenInfo); }

    "return .." is the second unwrapped line in this scenario. I does not
    touch any reformatted region. Thus, the result of formatting is:

      template <typename T> T *getFETokenInfo() const { return static_cast<T *>(FETokenInfo); }

    After second format (and arguably desired end-result):

      template <typename T> T *getFETokenInfo() const {
          return static_cast<T *>(FETokenInfo);
      }

    This fixes: llvm.org/PR15060.

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

commit d0f349be1422a123fdb28d6dd556f7300e6d51e9
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Feb 18 12:44:35 2013 +0000

    Correctly determine */& usage in more cases.

    This fixes llvm.org/PR15248.

    Before:
    Test::Test(int b) : a(b *b) {}
    for (int i = 0; i < a *a; ++i) {}

    After:
    Test::Test(int b) : a(b * b) {}
    for (int i = 0; i < a * a; ++i) {}

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

commit 6a93c86fc73d84a40d3460be04444669c8439e20
Author: Tim Northover <Tim.Northover@arm.com>
Date:   Mon Feb 18 12:11:32 2013 +0000

    AArch64: add atomic support parameters to TargetInfo

    This allows Clang to detect and deal wih __atomic_* operations properly on
    AArch64. Previously we produced an error when encountering them at high
    optimisation levels.

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

commit 66d19bdeef25611c9188b3f27b7d578df4b9a447
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Feb 18 11:59:17 2013 +0000

    Always break after multi-line string literals.

    Otherwise, other parameters can be quite hidden.
    Reformatted unittests/Format/FormatTest.cpp after this.

    Before:
    someFunction("Always break between multi-line"
                 " string literals", and, other, parameters);

    After:
    someFunction("Always break between multi-line"
                 " string literals",
                 and, other, parameters);

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

commit cf5767d65a0ee64b22c242eb758e8684a6ea5a59
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Feb 18 11:05:07 2013 +0000

    Prevent line breaks that make stuff hard to read.

    Before:
    aaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaa).aaaaaaaaaaaaaaaaa(
        aaaaaaaaaaaaaaaaaaaaa).aaaaaaaaaaaaaaaaaaa(
        aaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);

    After:
    aaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaa)
        .aaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaa)
        .aaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaa,
                             aaaaaaaaaaaaaaaaaaa,
                             aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);

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

commit 6b8f37a565859d76f156b2e2fb1b198386835f82
Author: David Blaikie <dblaikie@gmail.com>
Date:   Mon Feb 18 07:27:35 2013 +0000

    Update test cases to account for DIBuilder type changes.

    Paired commit with LLVM, may produce temporary build breakage.

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

commit 724cfee8b506ffef6f55e556a3329a7403ef7198
Author: Ted Kremenek <kremenek@apple.com>
Date:   Mon Feb 18 07:18:28 2013 +0000

    Disable dead stores checker for template instantations.  Fixes <rdar://problem/13213575>.

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

commit f110a9c6876e36ef77a54b191ea4ecf3443ac620
Author: Eric Christopher <echristo@gmail.com>
Date:   Mon Feb 18 04:38:06 2013 +0000

    Fix up grammar a bit.

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

commit 6c7db8967c383d859eab6d541db816adbeb837a9
Author: Eric Christopher <echristo@gmail.com>
Date:   Mon Feb 18 01:16:37 2013 +0000

    Unify some "kernel or kext" conditionals.

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

commit 3fcdea71152ed2e3efedbf8e3b3c1309dae67ab6
Author: Eric Christopher <echristo@gmail.com>
Date:   Mon Feb 18 00:38:34 2013 +0000

    Add a comment.

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

commit cfc01e45dd2ea51017aea299431c119dbcd94e53
Author: Eric Christopher <echristo@gmail.com>
Date:   Mon Feb 18 00:38:31 2013 +0000

    Clean up comment.

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

commit d4440c230d6d70becbd00da168591178720452f2
Author: Eric Christopher <echristo@gmail.com>
Date:   Mon Feb 18 00:38:28 2013 +0000

    Grammar.

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

commit 0798b69ee40219ed276bd8a65efd46bedc78ac42
Author: Eric Christopher <echristo@gmail.com>
Date:   Mon Feb 18 00:38:25 2013 +0000

    Unify some code. No functional change.

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

commit e50e91d4a6f6c00fbf6a7bb9b1ec72a4276579ae
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sun Feb 17 14:59:41 2013 +0000

    Test ivar-invariant.m: use a more idiomatic RUN line and tighten the test
    by matching the function name first

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

commit e95036b2f53aa2e1adb7b6504ec0801e8e49d711
Author: Lang Hames <lhames@gmail.com>
Date:   Sun Feb 17 10:18:28 2013 +0000

    Remove block names from test case to unbreak release builds.

    Thanks Chandler. :)

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

commit 6c31f7c56f54cc1c52475675335729290663535c
Author: James Dennett <jdennett@google.com>
Date:   Sun Feb 17 08:24:19 2013 +0000

    Documentation: use \brief and don't duplicate the name of the declared entity
    at the start of the doc comment.

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

commit 49d7111bd42e38fb5f1d7ec5474b9f119e0d7b56
Author: James Dennett <jdennett@google.com>
Date:   Sun Feb 17 08:19:35 2013 +0000

    Documentation cleanup: fix a typo ("////" for "///") and suppress Doxygen's
    automatic link generation for "file:", as it's not used as a URL here.

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

commit 56c00c4868831c9a137ca7b0e16d063cf986d110
Author: Lang Hames <lhames@gmail.com>
Date:   Sun Feb 17 07:22:09 2013 +0000

    Re-apply r174919 - smarter copy/move assignment/construction, with fixes for
    bitfield related issues.

    The original commit broke Takumi's builder. The bug was caused by bitfield sizes
    being determined by their underlying type, rather than the field info. A similar
    issue with bitfield alignments showed up on closer testing. Both have been fixed
    in this patch.

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

commit 28a2cecfda994ed9df897ab147159def8d8a4c19
Author: Saleem Abdulrasool <compnerd@compnerd.org>
Date:   Sun Feb 17 04:13:35 2013 +0000

    [clang] fix test execution command

    Signed-off-by: Saleem Abdulrasool <compnerd@compnerd.org>

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

commit 961f5708782bfd1d24f720546ea8017e986b8521
Author: Saleem Abdulrasool <compnerd@compnerd.org>
Date:   Sun Feb 17 04:03:34 2013 +0000

    [CodeGen] tighten objc ivar invariant.load attribution

    An ivar ofset cannot be marked as invariant load in all cases.  The ivar offset
    is a lazily initialised constant, which is dependent on an objc_msgSend
    invocation to perform a fixup of the offset.  If the load is being performed on
    a method implemented by the class then this load can safely be marked as an
    inviarant because a message must have been passed to the class at some point,
    forcing the ivar offset to be resolved.

    An additional heuristic that can be used to identify an invariant load would be
    if the ivar offset base is a parameter to an objc method.  However, without the
    parameters available at hand, this is currently not possible.

    Reviewed-by: John McCall <rjmccall@apple.com>
    Signed-off-by: Saleem Abdulrasool <compnerd@compnerd.org>

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

commit 97e948e9c9cc2db9f0cdc13e708fe1bd8c6d05a2
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sun Feb 17 03:06:16 2013 +0000

    Fix for ARM: functions don't have extra attributes there, so {{.*}} is ""

    While there, explicitly declare functions to remove warnings.

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

commit 959dc8475fc20ce8c3fd55021cb9f02a531cddc5
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Feb 16 22:21:38 2013 +0000

    Use trailing documentation comments properly

    Patch by Alexander Zinenko.

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

commit 6ba52aab96c96b6d91ed7f5844f607b32f7f41c4
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Feb 16 20:03:26 2013 +0000

    Use the correct type to hold enumeration values

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

commit c34464ee3367de42c477561c0ae069675be8393c
Author: James Dennett <jdennett@google.com>
Date:   Sat Feb 16 08:16:47 2013 +0000

    Documentation cleanup: make a \brief be brief, and fix a bad use of \see.

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

commit 1216015de0a958860082a7fa8b504547197686c3
Author: James Dennett <jdennett@google.com>
Date:   Sat Feb 16 07:45:22 2013 +0000

    Documentation cleanup: use \brief, and don't repeat the identifier being
    declared.

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

commit 12e0c13819f09162aa8ff1036351be4f97839cae
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Feb 16 01:33:16 2013 +0000

    libAnalysis: Add a case for TypeAliasDecl in CFGRecStmtDeclVisitor.

    Neither of the current clients of CFGRecStmtDeclVisitor are doing
    anything with typedefs, so I assume type aliases (C++11 "using")
    can be safely ignored. This was causing assertion failures in
    the analyzer.

    <rdar://problem/13228440>

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

commit cb6bcf1c6392398ce9fccb4a0881dd4149568dcf
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Feb 16 01:07:48 2013 +0000

    libclang: remove reinterpret_casts by using SourceLocation::getPtrEncoding

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

commit 0076ea62c2da91121bca6d402da67f0b611fc8bb
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Feb 16 01:06:07 2013 +0000

    Remove unused forward declarations

    clang/AST/Decl.h is included to see the TypeSourceInfo definition anyway.

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

commit 896c7dd62801c0aacf14b05183c3c471c1fe9f7a
Author: David Blaikie <dblaikie@gmail.com>
Date:   Sat Feb 16 00:56:22 2013 +0000

    Don't warn on conversion from NULL to nullptr_t

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

commit b4127a28a6dd81852469d05c611a487beb233784
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sat Feb 16 00:51:21 2013 +0000

    Emit vtables for an extern template class as available_externally, not as
    linkonce_odr. Emit construction vtables as internal in this case, since the ABI
    does not guarantee that they will be availble externally.

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

commit 7640b02a561fd2b2c58a227b262b0c1ba93622ae
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Sat Feb 16 00:48:59 2013 +0000

    [PCH] Deserializing the DeclContext of a template parameter is not safe
    until recursive loading is finished.

    Otherwise we may end up with a template trying to deserialize a template
    parameter that is in the process of getting loaded.

    rdar://13135282

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

commit 8f2fcd3ad1a55ddb80a32d8dc6acf9221e0fb4f0
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Feb 16 00:41:34 2013 +0000

    Remove unused forward declarations

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

commit 5a758de93fa2a28a84eb0d918a31d9522472990c
Author: John McCall <rjmccall@apple.com>
Date:   Sat Feb 16 00:17:33 2013 +0000

    Rework the visibility computation algorithm in preparation
    for distinguishing type vs. value visibility.

    The changes to the visibility of explicit specializations
    are intentional.  The change to the "ugly" test case is
    a consequence of a sensible implementation, and I am happy
    to argue that this is better behavior.  Other changes may
    or may not be intended;  it is quite difficult to divine
    intent from some of the code I altered.

    I've left behind a comment which I hope explains the
    philosophy behind visibility computation.

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

commit a6e0a0db0afcbdcd5b7c939869a39754332ad040
Author: Chad Rosier <mcrosier@apple.com>
Date:   Fri Feb 15 21:58:41 2013 +0000

    Add test case for r175312.

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

commit c0dcc2d7beaeb6a80c0c7d69086b4c8894b662a0
Author: Bill Wendling <isanbard@gmail.com>
Date:   Fri Feb 15 21:30:01 2013 +0000

    Add the 'target-cpu' and 'target-features' attributes to functions.

    The back-end will use these values to reconfigure code generation for different
    features.

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

commit ae03d8e52d81adbb98b31dd5c179abe45c91fc25
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Fri Feb 15 21:15:49 2013 +0000

    libclang: add clang_getTypeSpelling(CXType CT)

    Adds a function clang_getTypeSpelling(CXType CT) that returns
    a CXString containing the underlying type.

    Patch by Ben Gertzfield.

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

commit 17c1a2e748d49d293c9926eeeb85aa4890182106
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Feb 15 21:14:50 2013 +0000

    objective-C: Fixes a compiler crash when encoding
    an ivar of type pointer to a typedef'ed object.
    // rdar://13190095

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

commit 4a544e5856ceadef1c095c7d1ae5c8d760851d59
Author: Daniel Jasper <djasper@google.com>
Date:   Fri Feb 15 20:33:06 2013 +0000

    Recognize < and > as binary expressions in builder-type calls.

    The current heuristic assumes that there can't be binary operators in
    builder-type calls (excluding assigments). However, it also excluded
    < and > in general, which is wrong. Now they are only excluded if they
    are template parameters.

    Before:
    return aaaaaaaaaaaaaaaaa->aaaaa().aaaaaaaaaaaaa()i
           .aaaaaa() < aaaaaaaaaaaaaaaaaaa->aaaaa().aaaaaaaaaaaaa().aaaaaa();

    After:
    return aaaaaaaaaaaaaaaaa->aaaaa().aaaaaaaaaaaaa().aaaaaa() <
           aaaaaaaaaaaaaaaaaaa->aaaaa().aaaaaaaaaaaaa().aaaaaa();

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

commit 3285c78041f80a26f6a947e2922e15c4af6e00bb
Author: Enea Zaffanella <zaffanella@cs.unipr.it>
Date:   Fri Feb 15 20:09:55 2013 +0000

    Fixed diagnostic nondeterministic order bug (pr14901).

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

commit dc2efa1c10c4646d692cc57db9fdbbebe3a48255
Author: Daniel Jasper <djasper@google.com>
Date:   Fri Feb 15 19:24:08 2013 +0000

    Done break between 'operator' and '<<'.

    Before:
    ostream &operator
        <<(ostream &out, some::ns::SomeReallyLongType WithSomeReallyLongValue);

    After:
    ostream &operator<<(ostream &out,
                        some::ns::SomeReallyLongType WithSomeReallyLongValue);

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

commit db546fa2ce65dd2e275fc3fdee961767d53f77cf
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Feb 15 18:34:15 2013 +0000

    Fix crash-on-invalid where a ParenListExpr shows up as a message receiver
    while trying to do error recovery.

    rdar://13207886

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

commit 820b23dc924a4ae7af07d5a75d6b1d781c267d57
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Feb 15 18:34:13 2013 +0000

    When a statement is dropped from the AST because it was invalid, make sure
    we don't do the scope checks otherwise we are going to hit assertion checks
    since a label may not have been actually added.

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

commit b130a54940171a95422a20a07ee8fdfe009806a5
Author: Daniel Jasper <djasper@google.com>
Date:   Fri Feb 15 16:49:44 2013 +0000

    Re-enable ConstructorInitializerAllOnOneLineOrOnePerLine option.

    This got lost and was untested as the same effect is achieved by
    avoiding bin packing, which is active in Google style by default.
    However, moving forward, we want more control over the bin packing
    option(s) and thus, this flag should work as expected.

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

commit 2e85e743dc3d5b2f7ee6cd94a0c35fbc2e40e829
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Fri Feb 15 15:17:50 2013 +0000

    Sema: Unnest early exit and remove an unnecessary bad cast.

    cast<ObjCObjectPointerType> doesn't look through sugar, getAs does.
    Fixes PR15257.

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

commit 0f9827f5d6248d7008063768eb5f2c3e6ba83e94
Author: Timur Iskhodzhanov <timurrrr@google.com>
Date:   Fri Feb 15 14:45:22 2013 +0000

    Abstract out emitting the vdtor calls and do it properly when using -cxx-abi microsoft; also fix vdtor calls for the ARM ABI

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

commit a574c8909748fc0d2fd723a48334d6d2c72c8227
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Fri Feb 15 12:30:38 2013 +0000

    Make helper functions static.

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

commit 7878a7bdebceaa8d8a893abb295027cde619e467
Author: Daniel Jasper <djasper@google.com>
Date:   Fri Feb 15 11:07:25 2013 +0000

    Prevent only breaking before "?" in conditional expressions.

    This is almost always more readable.

    Before:
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
        ? aaaaaaaaaaaaaaaaaaaaaaaaaaa : aaaaaaaaaaaaaaaaaaaaaaaaaaa;

    After:
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
        ? aaaaaaaaaaaaaaaaaaaaaaaaaaa
        : aaaaaaaaaaaaaaaaaaaaaaaaaaa;

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

commit c1ea4b96adca4767991bb0a7b21052cef4db059c
Author: Bill Wendling <isanbard@gmail.com>
Date:   Fri Feb 15 05:25:49 2013 +0000

    Update testcases due to Attribute sorting improvements.

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

commit ada0d224fcff5ff07c9dd846379592f92ccf5ee7
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Feb 15 01:23:24 2013 +0000

    [analyzer] Don't assert when mixing reinterpret_cast and derived-to-base casts.

    This just adds a very simple check that if a DerivedToBase CastExpr is
    operating on a value with known C++ object type, and that type is not the
    base type specified in the AST, then the cast is invalid and we should
    return UnknownVal.

    In the future, perhaps we can have a checker that specifies that this is
    illegal, but we still shouldn't assert even if the user turns that checker
    off.

    PR14872

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

commit bc403861bc4e6f7ad1371e9e129f0f25b38b3a9a
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Feb 15 00:32:15 2013 +0000

    Re-apply "[analyzer] Model trivial copy/move ctors with an aggregate bind."

    ...after a host of optimizations related to the use of LazyCompoundVals
    (our implementation of aggregate binds).

    Originally applied in r173951.
    Reverted in r174069 because it was causing hangs.
    Re-applied in r174212.
    Reverted in r174265 because it was /still/ causing hangs.

    If this needs to be reverted again it will be punted to far in the future.

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

commit 28743b006bd88cd7d0ea97b4f17646f8fc429b89
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Feb 15 00:32:12 2013 +0000

    [analyzer] Cache the bindings accessible through a LazyCompoundVal.

    This means we don't have to recompute them all later for every
    removeDeadSymbols check.

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

commit ef9e6d66574393310da7e7508a5a363eb9f6c4d1
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Feb 15 00:32:10 2013 +0000

    [analyzer] Scan the correct store when finding symbols in a LazyCompoundVal.

    Previously, we were scanning the current store. Now, we properly scan the
    store that the LazyCompoundVal came from, which may have very different
    live symbols.

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

commit fcfcd80cd1de38fe272e1a8ae8faa3cfb6b2e37e
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Feb 15 00:32:08 2013 +0000

    [analyzer] Tweak LazyCompoundVal reuse check to ignore qualifiers.

    This is optimization only; no behavioral change.

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

commit 0a0f1309d0fbeb0e77edbbc4e0b15cc330c3a28c
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Feb 15 00:32:06 2013 +0000

    [analyzer] Use collectSubRegionKeys to make removeDeadBindings faster.

    Previously, whenever we had a LazyCompoundVal, we crawled through the
    entire store snapshot looking for bindings within the LCV's region. Now, we
    just ask for the subregion bindings of the lazy region and only visit those.

    This is an optimization (so no test case), but it may allow us to clean up
    more dead bindings than we were previously.

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

commit 9d688e219caa37e60975ec8d5bebe74a176c9c2b
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Feb 15 00:32:03 2013 +0000

    [analyzer] Refactor RegionStore's sub-region bindings traversal.

    This is going to be used in the next commit.
    While I'm here, tighten up assumptions about symbolic offset
    BindingKeys, and make offset calculation explicitly handle all
    MemRegion kinds.

    No functionality change.

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

commit ae6133ff85e4048fe65da65093bf32c21071a620
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Feb 14 22:38:41 2013 +0000

    Make this test determinstic for my last patch.
    // rdar://13192366

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

commit cfaed8d399a34e79fbab9f70eb4ea1bbeb81a02b
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Feb 14 22:33:34 2013 +0000

    objective-C: synthesize properties in order of their
    declarations to synthesize their ivars in similar
    determinstic order so they are laid out in
    a determinstic order. // rdar://13192366

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

commit 62d0f569360a664018316e4a21a4e960560b271d
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Thu Feb 14 20:07:36 2013 +0000

    libclang: remove reinterpret_casts by using SourceLocation::getFromPtrEncoding
    directly instead of casting a pointer to an integer

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

commit 26202291b161f8598c0c342cba12c6552e44d44c
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Feb 14 19:07:19 2013 +0000

    objective-C: When implementing custom accessor method for
    a property, the -Wdirect-ivar-access should not warn when
    accessing the property's synthesized instance variable.
    // rdar://13142820

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

commit 697a68590a75f5cd2326c8f686a6c666b51688b6
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Feb 14 19:06:11 2013 +0000

    [analyzer] Try constant-evaluation for all variables, not just globals.

    In C++, constants captured by lambdas (and blocks) are not actually stored
    in the closure object, since they can be expanded at compile time. In this
    case, they will have no binding when we go to look them up. Previously,
    RegionStore thought they were uninitialized stack variables; now, it checks
    to see if they are a constant we know how to evaluate, using the same logic
    as r175026.

    This particular code path is only for scalar variables. Constant arrays and
    structs are still unfortunately unhandled; we'll need a stronger solution
    for those.

    This may have a small performance impact, but only for truly-undefined
    local variables, captures in a non-inlined block, and non-constant globals.
    Even then, in the non-constant case we're only doing a quick type check.

    <rdar://problem/13105553>

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

commit 33ace0669393acb84c24a7ff7a80e8759777b3e8
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Thu Feb 14 17:29:16 2013 +0000

    [arcmt] Make sure the function has an associated parameter for the argument
    before checking for its attributes.

    rdar://13192395

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

commit 83dece57e3e3fd84dfd4299a89751e266e87c79d
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Thu Feb 14 15:38:59 2013 +0000

    Mangle extern "C" functions whose names are not simple identifiers.

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

commit 9fc56f2636137fcde8acb38865555ed6c7b84dfd
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Feb 14 15:01:34 2013 +0000

    Fix counting of parameters so that r175162 works as expected.

    Before:
    aaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()
                                  .aaaaaaaaaaaaaaaaa());

    After:
    aaaaaaaaaaaaaaaaaaaaaaaaa(
        aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa().aaaaaaaaaaaaaaaaa());

    Not sure which of the formattings above is better, but we should not pick
    one by accident.

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

commit fc75908a7f58903a92c47e1ae02f9a05c36c9f59
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Feb 14 14:26:07 2013 +0000

    Reduce penalty for breaking before ./-> after complex calls.

    This gives a clearer separation of the context, e.g. in GMOCK
    statements.

    Before:
    EXPECT_CALL(SomeObject,
                SomeFunction(Parameter)).WillRepeatedly(Return(SomeValue));

    After:
    EXPECT_CALL(SomeObject, SomeFunction(Parameter))
        .WillRepeatedly(Return(SomeValue));

    Minor format cleanups.

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

commit 68a932d416c52cef609e2c6c79ae99cbf4b9acd6
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Thu Feb 14 13:53:30 2013 +0000

    Remove a const_cast by propagating constness to called functions

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

commit 65303900ea1c0d44a0673f02f92faf8d73cc1b18
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Thu Feb 14 13:49:48 2013 +0000

    Remove an unneeded const_cast

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

commit e252a89fc1560ca4cda9a95e4ae05e2dc03ee78c
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Thu Feb 14 13:20:36 2013 +0000

    Remove const_casts by making spec_begin()/spec_end() const

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

commit c78c6b35d398b4c9414e7c5c7e413e28a66c8c5f
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Feb 14 09:58:41 2013 +0000

    Remove the trailing whitespace of formatted lines.

    So far, clang-format has always assumed the whitespace belonging to the
    subsequent token. This has the negative side-effect that when
    clang-format formats a line, it does not remove its trailing whitespace,
    as it belongs to the next token.

    Thus, this patch fixes most of llvm.org/PR15062.

    We are not zapping a file's trailing whitespace so far, as this does not
    belong to any token we see during formatting. We need to fix this in a
    subsequent patch.

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

commit c5cfa490a1fa4eb1a3a17803c6125b42abd73455
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Feb 14 09:19:04 2013 +0000

    Get less confused by trailing comma in Google style.

    The formatter can now format:
    void aaaaaaaaaaaaaaaaaa(int level,
                            double *min_x,
                            double *max_x,
                            double *min_y,
                            double *max_y,
                            double *min_z,
                            double *max_z, ) {
    }

    Although this is invalid code, it frequently happens during development and
    clang-format should be nicer :-).

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

commit 31672fb8c3fd3410725c9a4f293810ab69889020
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Feb 14 08:45:14 2013 +0000

    Remove accidentally committed empty test.

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

commit 6cabab48dacc1317821f8f078ed2d4c603b67aff
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Feb 14 08:42:54 2013 +0000

    Align superclasses for multiple inheritence.

    This fixes llvm.org/PR15179.

    Before:
    class ColorChooserMac : public content::ColorChooser,
        public content::WebContentsObserver {
    };

    After:
    class ColorChooserMac : public content::ColorChooser,
                            public content::WebContentsObserver {
    };

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

commit b9316b3829372c71f2f54d54a9748285f7ffe3fd
Author: Bill Wendling <isanbard@gmail.com>
Date:   Thu Feb 14 08:18:53 2013 +0000

    Revert accidental commit.

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

commit e1092dfee2bbcc2243421c553bca488880324280
Author: Bill Wendling <isanbard@gmail.com>
Date:   Thu Feb 14 08:09:20 2013 +0000

    Pass the target options through to code generation.

    The code generation stuff is going to set attributes on the functions it
    generates. To do that it needs the target options. Pass them through.

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

commit 747836e5c79b5e12fe9cfb9b724dc4edeb115419
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Thu Feb 14 03:31:26 2013 +0000

    Partially revert r175117 so that we don't break assumptions about how
    static functions in extern "C" contexts are mangled. Should fix the
    bootstrap.

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

commit d2fdd4256a2efc41365ccdd27a210d1d99a1fe3a
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Thu Feb 14 01:47:04 2013 +0000

    merge hasCLanguageLinkage and isExternC. Keep the shorter name.

    I added hasCLanguageLinkage while fixing some language linkage bugs some
    time ago so that I wouldn't have to check all users of isExternC. It turned
    out to be a much longer detour than expected, but this patch finally
    merges the two again. The isExternC function now implements just the
    standard notion of having C language linkage.

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

commit 950fee2555f7a6bd193e588d6b6a941fd182391a
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Thu Feb 14 01:18:37 2013 +0000

    Add a getLanguageLinkage method to VarDecls and FunctionDecls. Use it to fix
    some cases where functions with no language linkage were being treated as having
    C language linkage. In particular, don't warn in

    extern "C" {
      static NonPod foo();
    }

    Since getLanguageLinkage checks the language linkage, the linkage computation
    cannot use the language linkage. Break the loop by checking just the context
    in the linkage computation.

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

commit d3b4f0e27ffa8d73f8c69a717c39c39a4d47ff0c
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Thu Feb 14 00:55:17 2013 +0000

    When marking derived classes' virtual methods ODR-used in order to trigger
    instantiation in order to permit devirtualization later in codegen, skip over
    pure functions since those can't be devirtualization targets.

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

commit 544450e449c2fa1af63199b047b2d378be1760ec
Author: Ted Kremenek <kremenek@apple.com>
Date:   Thu Feb 14 00:32:25 2013 +0000

    Teach ccc-analyze to pass on -iquote with no spaces between it an the argument.

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

commit 3a09444debc457a70110e917eeb6ca9a8e8bb84f
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Feb 14 00:23:04 2013 +0000

    Actually fix rendering of the example code block!

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

commit 7cdc31147b4a8a5bc9681097744ba4583dc0b91a
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Feb 14 00:22:00 2013 +0000

    Some grammar fixes to 'Format String Checking', and reorder the text slightly to try to make the final code block actually get rendered.

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

commit 6f488191a3a82b19e5854b15b0d56e5a5fb6cf80
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Feb 14 00:13:34 2013 +0000

    Document Clang's support for [[gnu::...]] attributes.

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

commit 8c42a67645145a7673d0313da7dcbab2b66f5611
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Thu Feb 14 00:12:44 2013 +0000

    [docs] The stat cache has been removed from the PCH, update the docs to remove mentions of it.

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

commit 2c5d8459f12549dc48654a4da33c085835831d1d
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Feb 13 22:50:36 2013 +0000

    objective-C: Make order of ivars which are synthesized
    in the course of property synthesis deterministic (ordered
    by their type size), instead of having hashtable order
    (as it is currently). // rdar://13192366

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

commit 8ab612df83b06e7935643d552aec355bb065b9f3
Author: Tanya Lattner <tonic@nondot.org>
Date:   Wed Feb 13 21:51:18 2013 +0000

    Remove outdated performance.html webpage.

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

commit d8d7f5fb36f1e3cc46347c60702eddabe8838cb4
Author: Chad Rosier <mcrosier@apple.com>
Date:   Wed Feb 13 21:34:54 2013 +0000

    [ms-inline asm] Add test case for r175083.

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

commit c764830bdb6de82baed068889096bd3e52d4cbda
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Feb 13 21:18:23 2013 +0000

    ubsan: Add checking for invalid downcasts. Per [expr.static.cast]p2 and p11,
    base-to-derived casts have undefined behavior if the object is not actually an
    instance of the derived type.

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

commit a03ab10f0e4d888139b3b694dd55d176982f72a4
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Feb 13 20:33:44 2013 +0000

    Allow breaking after the return type in function declarations.

    This has so far been disabled for Google style, but should be done
    before breaking at nested name specifiers or in template parameters.

    Before (in Google style):
    template <typename T>
    aaaaaaaa::aaaaa::aaaaaa<T, aaaaaaaaaaaaaaaaaaaaaaaaa> aaaaaaaaaaaaaaaaaaaaaaaa<
        T>::aaaaaaa() {}

    After:
    template <typename T>
    aaaaaaaa::aaaaa::aaaaaa<T, aaaaaaaaaaaaaaaaaaaaaaaaa>
    aaaaaaaaaaaaaaaaaaaaaaaa<T>::aaaaaaa() {}

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

commit 778749aa7c2ed73ffeb60065dc015ed62127c8e1
Author: Bill Wendling <isanbard@gmail.com>
Date:   Wed Feb 13 19:44:17 2013 +0000

    Use 'RC_XBS' instead of 'RC_BUILDIT' to catch all times when it's built in the Apple way.

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

commit 42f458d164cbbee23e55e874b6cee7026ca721ca
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Feb 13 19:25:54 2013 +0000

    Fix comment alignment close to the column limit.

    Due to an error in one of the expressions, we used to not align comments
    although it would have been possible.

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

commit 82064213e9ef308e9a929ecfb31f4698a834ecdd
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Feb 13 18:33:28 2013 +0000

    [libclang] Fix annotation of a range where the begin or end location
    is inside a macro argument.

    Previously we would give up and not annotate anything in the range.
    rdar://11891550

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

commit ba8fa0c8e5739884c641f7435b43b073e11d6125
Author: Timur Iskhodzhanov <timurrrr@google.com>
Date:   Wed Feb 13 12:24:19 2013 +0000

    ... and now fix the +Asserts build

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

commit 474534556c96e81330a7432a80615821ee0afe27
Author: Timur Iskhodzhanov <timurrrr@google.com>
Date:   Wed Feb 13 12:14:25 2013 +0000

    Fix the microsoft-abi-structors test expectations to match both Release and Release+Asserts builds

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

commit 62a48fbb891267873a71e1147d39200363a49276
Author: Manuel Klimek <klimek@google.com>
Date:   Wed Feb 13 10:54:19 2013 +0000

    Pull search state out as class members.

    Fix some comments.

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

commit 32a2fd7631026f2fe248381546c5e6149f4f95ee
Author: Manuel Klimek <klimek@google.com>
Date:   Wed Feb 13 10:46:36 2013 +0000

    An attempt to make the search algorithm easier to understand.

    - clear ownership: the SpecificBumpPtrAllocator owns all StateNodes
    - this allows us to simplify the memoization data structure into a
      std::set (FIXME: figure out whether we want to use a hash based
      data structure).
    - introduces StateNode as recursive data structure, instead of using
      Edge and the Seen-map combined to drill through the graph
    - using a count to stabilize the penalty instead of relying on the
      container
    - pulled out a method to forward-apply states in the end

    This leads to a ~40% runtime decrease on Nico's benchmark.

    Main FiXME is that the parameter lists of some function get too long.
    I'd vote for either pulling the Queue etc into the Formatter proper,
    or creating an inner class just for the search algorithm.

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

commit 59660c21178b6af518bd4b564e032d5c9cc218cb
Author: Timur Iskhodzhanov <timurrrr@google.com>
Date:   Wed Feb 13 08:37:51 2013 +0000

    Emit virtual/deleting destructors properly with -cxx-abi microsoft, PR15058

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

commit e0dc7c70ee3fc1d6bdd8e2f166cc9e9be89061d9
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Wed Feb 13 04:40:03 2013 +0000

    Formatter: And more cast tests (these don't pass yet).

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

commit 6fa7e74dea00f66315835e70cdea047ba58f7b4c
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Wed Feb 13 04:32:57 2013 +0000

    Formatter: Add more cast tests.

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

commit 37d693160eba22343e08d7bcf66cd132ace77e5c
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Wed Feb 13 04:13:13 2013 +0000

    Formatter: Refactor the cast detection code to be a bit more readable.

    No functionality change. Also add another cast test.

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

commit 4c2cc603f5239f3b2963ce3e5d25adcf4d0a028d
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Wed Feb 13 03:48:27 2013 +0000

    Formatter: Detect ObjC method expressions after casts.

    Not all casts are correctly detected yet, but it helps in some cases.

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

commit a46961b8dfe0a112097299e053c3d0cc5af13ab8
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Wed Feb 13 03:34:21 2013 +0000

    Change this comment to helpfully explain why it's there.

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

commit 38f68ef19cb51d5876e9025b5fceb44b33ec9ed7
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Feb 13 03:11:06 2013 +0000

    [analyzer] Use Clang's evaluation for global constants and default arguments.

    Previously, we were handling only simple integer constants for globals and
    the smattering of implicitly-valued expressions handled by Environment for
    default arguments. Now, we can use any integer constant expression that
    Clang can evaluate, in addition to everything we handled before.

    PR15094 / <rdar://problem/12830437>

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

commit 04870edbea6cf88412c8c9c1eba65f7fc1fa12d9
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Feb 13 03:11:01 2013 +0000

    [analyzer] Use makeZeroVal in RegionStore's lazy evaluation of statics.

    No functionality change.

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

commit 74992c495e4b2dd3669c103ffbd239dbd194f9e8
Author: Chad Rosier <mcrosier@apple.com>
Date:   Wed Feb 13 01:06:08 2013 +0000

    [ms-inline-asm] Test cases to ensure the AsmRewrite list is sorted (r175021).
    Part of rdar://13202662

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

commit 2cbd427ec533f022f612fed0dd93ef5fa214478a
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Feb 12 23:36:21 2013 +0000

    Order the methods in the global method pool based on when they become visible, not when they become deserialized <rdar://problem/13203033>.

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

commit b0112e122650cbc9a1a0af42ad84b7178ba0a876
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Tue Feb 12 22:40:22 2013 +0000

    Replace 'signed' with 'int'.  'signed' is not typical for LLVM style

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

commit 064d88e0f9a3f1deca71b98931361f3f5c9ce192
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Feb 12 21:41:23 2013 +0000

    [preprocessing record] Add some sanity checks for the preprocessed entity index
    to make sure we don't crash on release if the index is not valid.

    rdar://13089714

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

commit 7243b0f000a68f089b91bf8414f26d4766ebac48
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Feb 12 21:34:14 2013 +0000

    [ms-inline-asm] Add test cases for the align/emit directives.
    Part of rdar://13200215

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

commit ddf117e1e4e53e8bcd505afda0c4e68baff086c2
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Tue Feb 12 20:43:41 2013 +0000

    Add a test for r174980, that we used to accept

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

commit 89a0daa0ec1fbc43489e3bb9e9648c816258f00f
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Feb 12 20:17:17 2013 +0000

    Fix crash for incomplete labels in macros.

    Still the formatting can be improved, but at least we don't assert any
    more. This happened when trying to format lib/Sema/SemaType.cpp.

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

commit be8e36c5ee4559a5f662dbcfd827d52e02c039a9
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Feb 12 19:42:57 2013 +0000

    [ms-inline asm] Update test case now that we are correctly parsing __emit directives.

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

commit 468e399cfa371a0b698e566d89ffa786b9696f94
Author: Aaron Ballman <aaron@aaronballman.com>
Date:   Tue Feb 12 19:20:48 2013 +0000

    Fixing the MSVC compiler warning a different way; removed use of static_cast and instead used a signed integer parameter.

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

commit 9c504e93c1b34d9ac7e4175ab1269b76f2460877
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Feb 12 19:15:05 2013 +0000

    Typo.

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

commit 8e70b00253f7c00814795ae287030efc2053ce8c
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Feb 12 18:45:21 2013 +0000

    [ms-inline asm] Add a few test cases for the parsing of hexidecimal integers.

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

commit be9f4208632ca301384a6f484bc88ef8c3331523
Author: Aaron Ballman <aaron@aaronballman.com>
Date:   Tue Feb 12 18:39:15 2013 +0000

    Removing a signed/unsigned mismatch warning triggered in MSVC 11.

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

commit 1b9e8f7e0bf2c6a2857f1b2208ca5f83b567b835
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Tue Feb 12 17:27:41 2013 +0000

    Accept over-qualified constructor in MSVC emulation mode

    MSVC accepts this:

    class A {
      A::A();
    };

    Clang accepts regular member functions with extra qualification as an MS
    extension, but not constructors.  This changes the parser to defer rejecting
    qualified constructors so that the same Sema logic can apply to constructors as
    regular member functions.  This also improves the error message when MS
    extensions are disabled (in my opinion). Before it was:

    /Users/jason/Desktop/test.cpp:2:8: error: expected member name or ';' after declaration specifiers
      A::A();
      ~~~~ ^
    1 error generated.

    After:

    /Users/jason/Desktop/test.cpp:2:6: error: extra qualification on member 'A'
      A::A();
      ~~~^
    1 error generated.

    Patch by Jason Haslam.

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

commit 9ece2bb8499251f3e7cdf65e7a65b38aaeead0d8
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Feb 12 16:51:23 2013 +0000

    Fix bug in the adjustment to existing lines.

    Before (if only the second line was reformatted):
    void f() {}
              void g() {}

    After:
    void f() {}
    void g() {}

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

commit 95e8e468af284afb11ec1f994d0b5076fc7423d9
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Tue Feb 12 16:17:07 2013 +0000

    Formatter: Correctly format stars in `sizeof(int**)` and similar places.

    This redoes how '*' and '&' are classified as pointer / reference markers when
    followed by ')', '>', or ','.

    Previously, determineStarAmpUsage() marked a single '*' and '&' followed by
    ')', '>', or ',' as pointer or reference marker. Now, all '*'s and '&'s
    preceding ')', '>', or ',' are marked as pointer / reference markers. Fixes
    PR14884.

    Since only the last '*' in 'int ***' was marked as pointer before (the rest
    were unary operators, which don't reach spaceRequiredBetween()),
    spaceRequiredBetween() now had to be thought about handing multiple '*'s in
    sequence.

    Before:
      return sizeof(int * *);
      Type **A = static_cast<Type * *>(P);

    Now:
      return sizeof(int**);
      Type **A = static_cast<Type **>(P);

    While here, also make all methods of AnnotatingParser except parseLine()
    private.

    Review URL: http://llvm-reviews.chandlerc.com/D384

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

commit 7f43fcf5d9406788ce95c9f3b785e0a6bc75a7f7
Author: Edwin Vane <edwin.vane@intel.com>
Date:   Tue Feb 12 13:55:40 2013 +0000

    Adding more overloads for allOf matcher

    Adding overloads of allOf accepting 4 and 5 arguments.

    Reviewer: klimek

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

commit 6c9dccd7c437d091a911b749eb0b96f7baea7715
Author: Timur Iskhodzhanov <timurrrr@google.com>
Date:   Tue Feb 12 13:22:47 2013 +0000

    Rename -constructors test to just -structors as in fact it tests dtors too. Also, fix a minor typo in the test.

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

commit 9efe057ac090ed0d45a64b82e68c74e52c67ed91
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Tue Feb 12 08:59:01 2013 +0000

    Attempt to fix this test on i686 targets.

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

commit 3c86a5c2f60d4f68afde96e2138b6933b30d6aa8
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Tue Feb 12 08:08:54 2013 +0000

    The meat of this patch is in BuildCXXMemberCalLExpr where we make it use
    MarkMemberReferenced instead of marking functions referenced directly. An audit
    of callers to MarkFunctionReferenced and DiagnoseUseOfDecl also caused a few
    other changes:
     * don't mark functions odr-used when considering them for an initialization
       sequence. Do mark them referenced though.
     * the function nominated by the cleanup attribute should be diagnosed.
     * operator new/delete should be diagnosed when building a 'new' expression.

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

commit 06098586f1de7ec5e12ccc3a2291782dee99cd1e
Author: John McCall <rjmccall@apple.com>
Date:   Tue Feb 12 05:53:35 2013 +0000

    Properly assemble PHIs after a null-checked invoke of objc_msgSend.
    rdar://12046763

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

commit ad0e27b18b0cefab049121d4bfd7b12216e7de6e
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Feb 12 05:48:23 2013 +0000

    Fix a bug reduced from a crash when trying to use modules with libc++. We check
    the linkage of functions and variables while merging declarations from modules,
    and we don't necessarily have enough of the rest of the AST loaded at that
    point to allow us to compute linkage, so serialize it instead.

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

commit 43ced74f002fd8dcf0c6c001f017d31769df792d
Author: Anton Yartsev <anton.yartsev@gmail.com>
Date:   Tue Feb 12 05:02:54 2013 +0000

    + specified progress information

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

commit 7eae669eeeaed1f391d63b20620d18d45de36e5d
Author: Anton Yartsev <anton.yartsev@gmail.com>
Date:   Tue Feb 12 04:45:48 2013 +0000

    + centered progress cells
    + added progress information for several checkers

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

commit 66b22771fc0a1dba598e50469f2961048e7edd55
Author: John McCall <rjmccall@apple.com>
Date:   Tue Feb 12 03:51:46 2013 +0000

    Call __cxa_begin_catch with the current exception before
    calling std::terminate().  rdar://11904428

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

commit 629df0196eb305221d2c8aa9ab72293d05846f0b
Author: John McCall <rjmccall@apple.com>
Date:   Tue Feb 12 03:51:38 2013 +0000

    Change some CGF parameters to CGMs.

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

commit 63a9514a2330b144575a136e38875193760126f7
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Feb 12 02:32:35 2013 +0000

    Remove an assert which triggers when a decl context in a module hits the 'has
    lexical storage but not visible storage' case in C++. It's unclear whether we
    even need the special-case handling for C++, since it seems to be working
    around our not serializing a lookup table for the TU in C. But in any case,
    the assertion is incorrect.

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

commit a2905ea609c8ed1bf41a6b917358983d9f26dc6d
Author: John McCall <rjmccall@apple.com>
Date:   Tue Feb 12 02:08:12 2013 +0000

    Perform placeholder conversions on the controller of a _Generic
    expression.

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

commit 9dd74c5504c743c96ea3a1d691d6a75ec3a98147
Author: John McCall <rjmccall@apple.com>
Date:   Tue Feb 12 01:29:43 2013 +0000

    Diagnose loads of 'half' l-values in OpenCL.
    Patch by Joey Gouly!

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

commit c2808e705eb8a1a825a5807cabc16d55052c31bd
Author: Lang Hames <lhames@gmail.com>
Date:   Tue Feb 12 00:44:43 2013 +0000

    Backing out r174919 while I investigate a self-host bug on Takumi's builder.

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

commit 72dcecc8c2f9cdd4f0faacc62676d3bb6dba4d02
Author: John McCall <rjmccall@apple.com>
Date:   Tue Feb 12 00:25:08 2013 +0000

    In ARC, emit non-peepholed +1s within the full-expression instead
    of immediately afterwards.

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

commit 35be4022096a7868e5c5301864d45b593e1ef442
Author: John McCall <rjmccall@apple.com>
Date:   Tue Feb 12 00:25:02 2013 +0000

    Split a couple of tests out into their own file.

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

commit 5310859d0dcec2f3efbeb155ae1cfee14bdd2836
Author: Lang Hames <lhames@gmail.com>
Date:   Mon Feb 11 23:44:11 2013 +0000

    When generating IR for default copy-constructors, copy-assignment operators,
    move-constructors and move-assignment operators, use memcpy to copy adjacent
    POD members.

    Previously, classes with one or more Non-POD members would fall back on
    element-wise copies for all members, including POD members. This often
    generated a lot of IR. Without padding metadata, it wasn't often possible
    for the LLVM optimizers to turn the element-wise copies into a memcpy.

    This code hasn't yet received any serious tuning. I didn't see any serious
    regressions on a self-hosted clang build, or any of the nightly tests, but
    I think it's important to get this out in the wild to get more testing.
    Insights, feedback and comments welcome.

    Many thanks to David Blaikie, Richard Smith, and especially John McCall for
    their help and feedback on this work.

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

commit 6e8dfc7a6cbf6dec743aab4df7d55575c6945607
Author: Tanya Lattner <tonic@nondot.org>
Date:   Mon Feb 11 23:32:10 2013 +0000

    Timing data was removed years ago. Remove these links.

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

commit 8896339a3c654dc44877d52a926eb89ab3ef30b5
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Mon Feb 11 22:02:16 2013 +0000

    Don't bother reconciling external visible decls against our current set of
    declarations if we didn't have a lookup map when the external decls were added.

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

commit a09cd8103a6a719cb2628cdf0c91682250a17bd2
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Mon Feb 11 19:30:33 2013 +0000

    objective-C modern translator: Fixes a mistranslation
    of @throw statement by finding location of the ';'
    correctly. // rdar://13186010

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

commit f4e955b694be22926f5ceb41e55d319ce9ff4aab
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Feb 11 18:16:18 2013 +0000

    [Modules] Cope better with top-level declarations loaded after being declared in the current translation unit <rdar://problem/13189985>.

    These two related tweaks to keep the information associated with a
    given identifier correct when the identifier has been given some
    top-level information (say, a top-level declaration) and more
    information is then loaded from a module. The first ensures that an
    identifier that was "interesting" before being loaded from an AST is
    considered to be different from its on-disk counterpart. Otherwise, we
    lose such changes when writing the current translation unit as a
    module.

    Second, teach the code that injects AST-loaded names into the
    identifier chain for name lookup to keep the most recent declaration,
    so that we don't end up confusing our declaration chains by having a
    different declaration in there.

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

commit c2e6d2a4a7fe9dfa7d52a38c6048b7b18e6b591a
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Mon Feb 11 15:32:15 2013 +0000

    Formatter: Detect ObjC message expressions after 'in' in loop

    Before:
      for (id foo in[self getStuffFor : bla]) {
      }

    Now:
      for (id foo in [self getStuffFor:bla]) {
      }

    "in" is treated as loop keyword if the line starts with "for", and as a
    regular identifier else. To check for "in", its IdentifierInfo is handed
    through a few layers.

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

commit 3f4535e44965f46cf603146141d2d27a1cef1f7f
Author: Manuel Klimek <klimek@google.com>
Date:   Mon Feb 11 12:37:30 2013 +0000

    Get rid of manual debug output, now that the test runner supports it.

    You can run tests with -debug instead now.

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

commit 729a743b317d877df3978e88a4a247d2edbf2090
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Feb 11 12:36:37 2013 +0000

    Fix invalid formatting with spaces before trailing comments.

    In google style, trailing comments are separated by two spaces. This
    patch fixes the counting of these spaces and prevents clang-format from
    creating a line with 81 columns.

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

commit a28fc067e3ee8eb84368530e878ce094f39651d3
Author: Manuel Klimek <klimek@google.com>
Date:   Mon Feb 11 12:33:24 2013 +0000

    Fixes handling of empty lines in macros.

    Now correctly formats:
     #define A \
       \
       b;
    to
     #define A b;

    Added the state whether an unwrapped line is a macro to the debug
    output.

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

commit 2d000d3eb9a2464e0769bb9f6977652782c988bd
Author: Bill Wendling <isanbard@gmail.com>
Date:   Mon Feb 11 08:35:52 2013 +0000

    Update test to not fail with attribute groups.

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

commit 2b4c924f85e156d66c01b3f16c850892c47dcc7a
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Feb 11 08:01:18 2013 +0000

    Fix formatting of overloaded operator definitions.

    Before:
    operatorvoid*();
    operator vector< A< A>>();

    After:
    operator void *();
    operator vector<A<A> >();

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

commit 06b247f0ffb69854e32150c80f347a9376d3709b
Author: Manuel Klimek <klimek@google.com>
Date:   Mon Feb 11 07:45:01 2013 +0000

    Do not use VariadicDynCastAllOfMatcher where VariadicAllOfMatcher works.

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

commit 8c7f38cb42b1d15b131af95aaa4f2b5a823ce580
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Sun Feb 10 21:08:31 2013 +0000

    Formatter: Remove now-unneeded code for formatting ':'s in ObjC method decls.

    The more general code for formatting ObjC method exprs does this and more,
    it's no longer necessary to special-case this. No behavior change.

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

commit 0ac717b2a5ba15233ed25edc5310c64d441669b1
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Sun Feb 10 20:48:24 2013 +0000

    Formatter: Add a test for multi-line ObjC dict literals.

    As it turns out, this already works reasonably well.

    This example from http://clang.llvm.org/docs/ObjectiveCLiterals.html
    NSDictionary *dictionary = @{
        @"name" : NSUserName(),
        @"date" : [NSDate date],
        @"processInfo" : [NSProcessInfo processInfo]
    };

    is formatted like
    NSDictionary *dictionary = @{ @"name" : NSUserName(), @"date" : [NSDate date],
                                  @"processInfo" : [NSProcessInfo processInfo] };

    There's already a FIXME in NestedStaticInitializers about supporting one
    initializer per line, which is really all that's missing here too.

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

commit e62620021c734140de6f3d3fe81a66c3ee578e93
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Sun Feb 10 20:39:05 2013 +0000

    Formatter: Add another ObjC literal test.

    (From http://clang.llvm.org/docs/ObjectiveCLiterals.html.)

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

commit d74fcdb630dad817f5d462edd6d12bb95e3f27f1
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Sun Feb 10 20:35:35 2013 +0000

    Formatter: Initial support for ObjC dictionary literals.

    Before:
      @{
      foo:
        bar
      }
      ;

    Now:
      @{ foo : bar };

    parseBracedList() already does the right thing from an UnwrappedLineParser
    perspective, so check for "@{" in all loops that process constructs that can
    contain expressions and call parseBracedList() if found.

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

commit f0c5456d7d6a9f74281011297d86cb3b1fa53cc1
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Sun Feb 10 16:01:41 2013 +0000

    Use -mno-implicit-float by default for kernel/kext code. <rdar://13177960>

    Apple's kernel engineers have been expecting this behavior even though
    we've never implemented it before, as far as I can tell. In recent months,
    clang has gotten better at using vector instructions to optimize memcpy-like
    operations, and that has exposed problems when vector/floating-point
    instructions are used in kexts that don't support that. This behavior also
    matches what Apple's GCC did for PowerPC targets.

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

commit 48559ba03a1bc47c8d7e6ad77615c48361132178
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Sun Feb 10 16:01:38 2013 +0000

    Delete an extra blank line.

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

commit 7a9e91a1a0b94ea8a34daad41604339b5e0a7101
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Sun Feb 10 15:25:44 2013 +0000

    Recognize -mno-implicit-float option for x86 as well as ARM. <rdar://13180731>

    For x86 targets, we've been using the -msoft-float option to control passing
    the no-implicit-float option to cc1. Since the -mno-implicit-float option is
    now accepted by the driver, this just makes it work for x86 the same as it
    does for ARM targets.

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

commit 0ff4f8bf47c924b4b01d989a53432a95471a068d
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sun Feb 10 11:54:22 2013 +0000

    Use static functions instead of an unnamed namespace

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

commit 2afbe523648eb591709ac9262f024457eb019bd6
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Sun Feb 10 04:38:23 2013 +0000

    Reformat formatter code. No functionality change.

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

commit 051860ee770bf83c3e66ab893be3642bb8bc2680
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Sun Feb 10 02:08:05 2013 +0000

    Formatter: Detect ObjC array literals.

    Use this to add a space after "@[" and before "]" for now.

    Later, I want to use this to format multi-line array literals nicer, too.

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

commit b7b25659355d736a4f19099d96acc54d672340a5
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Sun Feb 10 00:16:04 2013 +0000

    objective-C: Fixes a bogus warning due to not setting
    the "nonatomic" attribute in property redeclaration
    in class extension. Also, improved on diagnostics in
    this area while at it. // rdar://13156292

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

commit 7728057cf03f8e5791e46eefc6e146214d0a1c24
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Sat Feb 9 18:02:07 2013 +0000

    Formatter: Add test for default arguments.

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

commit 8448e1a66582916a856c73e9763a1765a9c48288
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Feb 9 16:41:47 2013 +0000

    FileCheck'ize tests

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

commit 559b7facde0aaa3d752fde2bc7ed6d764b3da501
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Feb 9 16:25:38 2013 +0000

    FileCheck'ize a test

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

commit a2f138a5c5ea695dc01cac361268ed26a8f0db7d
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Feb 9 15:24:28 2013 +0000

    Remove unreachable statement

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

commit bf8814478fddfa611911bdbd6a53a6614938cc63
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Feb 9 15:16:58 2013 +0000

    Comment parsing: use CharInfo.h

    This also gives us 0.2% speedup on '-fsyntax-only -Wdocumentation' time for
    a testcase that consists of all Clang headers.

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

commit ae50a5bb0aaa9595f0969fc0cc4809ace9508d0c
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Feb 9 14:12:09 2013 +0000

    libclang: use CXCursor getters to simplify code

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

commit 223f0ff6a9a5d0eaf63b98b3aa92888b4c088868
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Feb 9 10:09:43 2013 +0000

    Remove some stray uses of <ctype.h> functions.

    These are causing assertions on some MSVC builds.

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

commit a4475a6b8277f24ed15d7b67d9dab77444c77cb1
Author: Ted Kremenek <kremenek@apple.com>
Date:   Sat Feb 9 07:13:16 2013 +0000

    QoI: -Wreadonly-iboutlet-property should have the warning's location on the property.

    There's no need to refer to the @implementation at all.

    Fixes <rdar://problem/13186515>

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

commit 992c59247497ba38e904142f9ac3028c3e1874af
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Feb 9 02:12:23 2013 +0000

    Release notes: mention support for Unicode and UCNs in identifiers.

    I'm using the name "Extended Identifiers" for the feature because that's
    what GCC calls them. According to the standard, the new feature is
    "universal character names are now allowed in identifiers", but the more
    interesting "feature" is that identifiers can now contain Unicode characters,
    however they are written.

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

commit 6bd992946bda92193fadce7e4890d4465d2702f4
Author: Douglas Gregor <dgregor@apple.com>
Date:   Sat Feb 9 01:35:03 2013 +0000

    Ensure that type definitions present in just-loaded modules are
    visible.

    The basic problem here is that a given translation unit can use
    forward declarations to form pointers to a given type, say,

      class X;
      X *x;

    and then import a module that includes a definition of X:

      import XDef;

    We will then fail when attempting to access a member of X, e.g.,

      x->method()

    because the AST reader did not know to look for a default of a class
    named X within the new module.

    This implementation is a bit of a C-centric hack, because the only
    definitions that can have this property are enums, structs, unions,
    Objective-C classes, and Objective-C protocols, and all of those are
    either visible at the top-level or can't be defined later. Hence, we
    can use the out-of-date-ness of the name and the identifier-update
    mechanism to force the update.

    In C++, we will not be so lucky, and will need a more advanced
    solution, because the definitions could be in namespaces defined in
    two different modules, e.g.,

      // module 1
      namespace N { struct X; }

      // module 2
      namespace N { struct X { /* ... */ }; }

    One possible implementation here is for C++ to extend the information
    associated with each identifier table to include the declaration IDs
    of any definitions associated with that name, regardless of
    context. We would have to eagerly load those definitions.

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

commit f07e815823e03c046bbc186ec2b41d656e9cac7f
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Sat Feb 9 01:22:23 2013 +0000

    clang/lib/StaticAnalyzer/Core/BugReporter.cpp: Appease old msvc in std::pair(0, 0).

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

commit ed9c59f2ae338f6f70c1fed2ce7b0d8a5eb3ba1c
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Feb 9 01:10:25 2013 +0000

    Properly validate UCNs for C99 and C++03 (both more restrictive than C(++)11).

    Add warnings under -Wc++11-compat, -Wc++98-compat, and -Wc99-compat when a
    particular UCN is incompatible with a different standard, and -Wunicode when
    a UCN refers to a surrogate character in C++03.

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

commit d523df6a143a97eea46916c6e31c8f2a0728bf28
Author: Anna Zaks <ganna@apple.com>
Date:   Sat Feb 9 01:09:27 2013 +0000

    [analyzer] Invalidation checker: move the "missing implementation" check

    The missing definition check should be in the same category as the
    missing ivar validation - in this case, the intent is to invalidate in
    the given class, as described in the declaration, but the implementation
    does not perform the invalidation. Whereas the MissingInvalidationMethod
    checker checks the cases where the method intention is not to
    invalidate. The second checker has potential to have a much higher false
    positive rate.

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

commit adecec39481f925701e63d7fe3b8bf02dd7ddf01
Author: Anna Zaks <ganna@apple.com>
Date:   Fri Feb 8 23:55:50 2013 +0000

    [analyzer] Move DefaultBool so that all checkers can share it.

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

commit 722cd9e3c0142948b9eb3190211dbc0dd4da4105
Author: Anna Zaks <ganna@apple.com>
Date:   Fri Feb 8 23:55:47 2013 +0000

    [analyzer] Split IvarInvalidation into two checkers

    Separate the checking for the missing invalidation methods into a
    separate checker so that it can be turned on/off independently.

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

commit 2b174c37ae174063d70494e9b4fd91f4eff26463
Author: Anna Zaks <ganna@apple.com>
Date:   Fri Feb 8 23:55:45 2013 +0000

    [analyzer] IvarInvalidation: refactor, pull out the diagnostic printing

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

commit 26db7dbf67b1532b2d617b3a85428699a1ffc997
Author: Anna Zaks <ganna@apple.com>
Date:   Fri Feb 8 23:55:43 2013 +0000

    [analyzer] IvarInvalidation: add annotation for partial invalidation

    The new annotation allows having methods that only partially invalidate
    IVars and might not be called from the invalidation methods directly
    (instead, are guaranteed to be called before the invalidation occurs).
    The checker is going to trust the programmer to call the partial
    invalidation method before the invalidator.This is common in cases when
    partial object tear down happens before the death of the object.

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

commit 125643455953069b925b30d2e4ae5674063984ed
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Feb 8 23:32:30 2013 +0000

    objective-C: don't issue bogus warning about
    "auto-synthesized may not work correctly with 'nib' loader"
    when 'readonly' property is redeclared 'readwrite' in class
    extension. // rdar://13123861

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

commit 799f3c13fbeacedda24549c41e72c07905208661
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Feb 8 22:37:49 2013 +0000

    CharInfo: Add missing "using namespace clang::charinfo" in .cpp file.

    Should fix the MSC bot.

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

commit 3f6f51e28231f65de9c2dd150a2d757b2162cfa3
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Feb 8 22:30:41 2013 +0000

    Excise <cctype> from Clang (except clang-tblgen) in favor of CharInfo.h.

    Nearly all of these changes are one-to-one replacements; the few that
    aren't have to do with custom identifier validation.

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

commit 4a04d445af4d29440371800409babc98708d98aa
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Feb 8 22:30:31 2013 +0000

    Simplify logic for avoiding concatenation after numeric constants.

    I threw in a couple of test cases for UD-suffixes -- already working, but
    it wasn't immediately obvious to me.

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

commit 6d4f73498cf014b002e72368f1c80b6b0a0785f0
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Feb 8 22:30:27 2013 +0000

    StmtPrinter: Write large char values using \u or \U.

    This may not always be valid, but we were previously just
    emitting them raw.

    While here, s/isprint/isPrintable/ (using the new CharInfo).

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

commit 9893902eceba7f01dd1521349d33866f77254d78
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Feb 8 22:30:22 2013 +0000

    Pull Lexer's CharInfo table out for general use throughout Clang.

    Rewriting the same predicates over and over again is bad for code size and
    code maintainence. Using the functions in <ctype.h> is generally unsafe
    unless they are specified to be locale-independent (i.e. only isdigit and
    isxdigit).

    The next commit will try to clean up uses of <ctype.h> functions within Clang.

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

commit e22cef5cb2e460bae88563cfc5fcf98d742d6215
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Feb 8 22:19:43 2013 +0000

    Note that checker-271 is newer than the analyzer in Xcode 4.6

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

commit 8580c7e752c439e077235d62c07131f32d04fb9a
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Feb 8 22:18:26 2013 +0000

    Update open source checker build to checker-271.

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

commit 2d1ece81a5c47eebbaa6ad6de70714ac7ff973c2
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Feb 8 21:30:59 2013 +0000

    Always keep highest identifier, selector, and macro IDs when we've
    read another one, just as we do for types.

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

commit ea14a8799f2a6d139491483151cee4341ef1a73e
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Feb 8 21:27:45 2013 +0000

    Never cache the result of a module file lookup.

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

commit 52635ff9fb530dfdfc6a94e52a2270bf1bb8346b
Author: Manuel Klimek <klimek@google.com>
Date:   Fri Feb 8 19:53:32 2013 +0000

    Fix indentation-detection at indent level 0.

    This correctly formats:
      {
        a;
      }
    where { is incorrectly indented by 2, but is at level 0, when
    reformatting only 'a;'.

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

commit 8185674528423e2504a1fae35c28c24104846510
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Feb 8 19:51:43 2013 +0000

    Teach BugReporter (extensive diagnostics) to emit a diagnostic when a loop body is skipped.

    Fixes <rdar://problem/12322528>.

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

commit 5a56e1bdfbf57787314dd44a27318964eaa2cf39
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Feb 8 19:27:23 2013 +0000

    [libclang] Add a test to make sure annotation works fine in the presence of
    'override' on the method.

    This was fixed in a previous commit, generally handling attributes that are at the
    end of the declaration.

    rdar://13140589

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

commit 19df705c75ba341b3ae8f2ff3e3f411d5f49887c
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Feb 8 18:59:17 2013 +0000

    Remove stale instance variable.

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

commit 9ffd1aea980a0bb1f577f3069c63f741b72d8f80
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Feb 8 18:57:50 2013 +0000

    objective-C modern translation: Fix another random translation bug
    involving property getter expressions on rhs of property setter.
    // rdar://13138459

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

commit 547d5db5ed482e23edf62130ffdee86ba810d432
Author: Manuel Klimek <klimek@google.com>
Date:   Fri Feb 8 17:38:27 2013 +0000

    Takes the context into account when re-indenting regions.

    Fixes llvm.org/PR14916.

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

commit bfaa111e7106ad15a73513d953a1a19a7b626f10
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Feb 8 17:15:07 2013 +0000

    objective-C modern translator. Fixes a trivial
    rewriting bug where #ifdef ended up on the same
    line as the attribute declaration.

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

commit 087387a1e9ce5abeb4f348e14f64e5c2273eaedb
Author: Daniel Jasper <djasper@google.com>
Date:   Fri Feb 8 16:49:27 2013 +0000

    Fix handling of fake parenthesis during formatting.

    They are much easier to handle when attached to the previous token.

    Before:
    unsigned Indent =
        formatFirstToken(TheLine.First, IndentForLevel[TheLine.Level] >=
                                        0 ? IndentForLevel[TheLine.Level]
    : TheLine.Level * 2, TheLine.InPPDirective, PreviousEndOfLineColumn);

    After:
    unsigned Indent = formatFirstToken(
        TheLine.First, IndentForLevel[TheLine.Level] >= 0
                           ? IndentForLevel[TheLine.Level] : TheLine.Level * 2,
        TheLine.InPPDirective, PreviousEndOfLineColumn);

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

commit 29f123b2fa0435bb1962f0d9e9a2e660f35fbb2f
Author: Daniel Jasper <djasper@google.com>
Date:   Fri Feb 8 15:28:42 2013 +0000

    Implement a tiny expression parser to improve formatting decisions.

    With this patch, the formatter introduces 'fake' parenthesis according
    to the operator precedence of binary operators.

    Before:
    return aaaa & AAAAAAAAAAAAAAAAAAAAAAAAAAAAA || bbbb &
           BBBBBBBBBBBBBBBBBBBBBBBBBBBBB || cccc & CCCCCCCCCCCCCCCCCCCCCCCCCC ||
           dddd & DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD;
    f(aaaaaaaaaaaaaaaaaaaa && aaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaa &&
      aaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaa && aaaaaaaaaaaaaaaaaaaa);

    After:
    return aaaa & AAAAAAAAAAAAAAAAAAAAAAAAAAAAA ||
           bbbb & BBBBBBBBBBBBBBBBBBBBBBBBBBBBB ||
           cccc & CCCCCCCCCCCCCCCCCCCCCCCCCC ||
           dddd & DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD;
    f(aaaaaaaaaaaaaaaaaaaa && aaaaaaaaaaaaaaaaaaaa,
      aaaaaaaaaaaaaaaaaaaa && aaaaaaaaaaaaaaaaaaaa,
      aaaaaaaaaaaaaaaaaaaa && aaaaaaaaaaaaaaaaaaaa);

    Future improvements:
    - Get rid of some of the hacky ways to nicely format certain constructs.
    - Merge this parser and the AnnotatingParser as we now have several parsers
      that analyze (), [], etc.

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

commit ce3d1a68d98f8a557ba5a5391cae8278ae6f29d2
Author: Daniel Jasper <djasper@google.com>
Date:   Fri Feb 8 08:22:00 2013 +0000

    Avoid unnecessary line breaks in nested ObjC calls.

    Before:
      [pboard setData:[NSData dataWithBytes:&button
                                     length:sizeof(button)]
              forType:kBookmarkButtonDragType];
    After:
      [pboard setData:[NSData dataWithBytes:&button length:sizeof(button)]
              forType:kBookmarkButtonDragType];

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

commit 026ce82649a872c0f5e8ea039341644f25ae53a7
Author: Tim Northover <Tim.Northover@arm.com>
Date:   Fri Feb 8 08:00:13 2013 +0000

    Improve filechecking of volatile test.

    My previous attempt was extremely deficient, allowing more volatiles
    to be introduced and not even checking all of the ones that are
    present.

    This attempt doesn't try to keep track of the values stored or offsets
    within particular objects, just that the correct objects are accessed
    in a correctly volatile manner throughout.

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

commit 6bbaa772515e5bd021f38358667746db40ae54d2
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Feb 8 07:28:25 2013 +0000

    CMake: Include Clang unit tests in check-clang target in standalone builds.

    Also, remove CLANG_BUILD_TESTS option. It won't have consistent behavior
    between standalone and non-standalone builds, so I'm not going to bother
    hooking it up for standalone builds. LLVM_BUILD_TESTS will continue to
    control unit test inclusion in the "all" target in non-standalone builds.

    Finally, fix the default value of CLANG_INCLUDE_TESTS, which was being set
    to the boolean value of "LLVM_INCLUDE_TESTS", i.e. OFF, rather than actually
    reading the variable ${LLVM_INCLUDE_TESTS}! If you picked up my earlier
    commit, YOU WILL HAVE TO MANUALLY SET THIS OPTION BACK ON. My apologies!

    Part two of r174691 (allow the unit tests to be built in standalone mode).

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

commit 63eb156f663a869af8f7360165f85ff31dc95d1f
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Fri Feb 8 02:38:30 2013 +0000

    Fix test failure by making sure this file isn't identical to any other file
    included in the same test. Clang gets confused about whether it's already built
    a module for this file, when running on a content-addressible filesystem.

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

commit 3092d9da06b7f9e57fde580330727eba125580bf
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Feb 8 01:42:37 2013 +0000

    CMake: Optionally allow running the Clang unit tests in standalone builds.

    The reason this is not enabled by default is because there is no way for
    Clang to guarantee that the LLVM unit testing infrastruture has been built.
    However, if it /has/ been built, there's no reason why the standalone Clang
    build can't use it!

    This should have no effect on existing builds -- in a combined build the
    value of the CLANG_INCLUDE_TESTS option defaults to the LLVM equivalent,
    and in a standalone build it defaults to off.

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

commit a69a58991fdf67d6d26aff9028ced102142bfcc6
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Feb 8 01:35:44 2013 +0000

    Fix conflict between r174685 and r174645 (rename -fmodule-cache-path <foo> to -fmodules-cache-path=<foo>).

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

commit a86b37e223a21647175619096e67d0f650add351
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Feb 8 01:12:25 2013 +0000

    [libclang] Attribute visitation happens out-of-source-order, make sure
    we annotate properly when there is an attribute and not skip type specs
    if the attribute is after the declaration.

    rdar://13129077

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

commit f21107b95a65db82f3295fd166074b5a59dfb1a7
Author: Tanya Lattner <tonic@nondot.org>
Date:   Fri Feb 8 01:07:32 2013 +0000

    Use the target address space value when mangling names.

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

commit 2bb07c1dfeda50d7edcee512932b86a1a65c6e69
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Feb 8 00:37:45 2013 +0000

    Fix stack overflow and improve performance when a module contains many
    overloads of a name by claiming that there are no lookup results for that name
    in modules while loading the names from the module. Lookups in deserialization
    really don't want to find names which they themselves are in the process of
    introducing. This also has the pleasant side-effect of automatically caching
    PCH lookups which found no names.

    The runtime here is still quadratic in the number of overloads, but the
    constant is lower.

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

commit ada7191795dde85a620008094fbe5464abdb916b
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Feb 8 00:27:34 2013 +0000

    objective-C modern translator. Generate #line
    info in the translated code under -g only.
    // rdar://13138170

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

commit 1b58c74af272a1d8228b8161c93a8a018456098e
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Feb 8 00:10:48 2013 +0000

    Teach subframework header lookup to suggest modules <rdar://problem/13176200>.

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

commit 8135886ab74d852a6702b1f5656a0b146abe210a
Author: Anna Zaks <ganna@apple.com>
Date:   Thu Feb 7 23:29:22 2013 +0000

    [analyzer] Remove redundant check as per Jordan's feedback.

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

commit 1c32b81765ed63ae9e3e00e5acef7a4379bba228
Author: Anna Zaks <ganna@apple.com>
Date:   Thu Feb 7 23:29:20 2013 +0000

    [analyzer] Fix typo.

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

commit 118aa750c5cfe975542dce8e41586b2054d1f5dd
Author: Anna Zaks <ganna@apple.com>
Date:   Thu Feb 7 23:05:47 2013 +0000

    [analyzer] Report bugs when freeing memory with offset pointer

    The malloc checker will now catch the case when a previously malloc'ed
    region is freed, but the pointer passed to free does not point to the
    start of the allocated memory. For example:

    int *p1 = malloc(sizeof(int));
    p1++;
    free(p1); // warn

    From the "memory.LeakPtrValChanged enhancement to unix.Malloc" entry
    in the list of potential checkers.

    A patch by Branden Archer!

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

commit 233e26acc0ff2a1098f4c813f69286fce840a422
Author: Anna Zaks <ganna@apple.com>
Date:   Thu Feb 7 23:05:43 2013 +0000

    [analyzer] Add pointer escape type param to checkPointerEscape callback

    The checkPointerEscape callback previously did not specify how a
    pointer escaped. This change includes an enum which describes the
    different ways a pointer may escape. This enum is passed to the
    checkPointerEscape callback when a pointer escapes. If the escape
    is due to a function call, the call is passed. This changes
    previous behavior where the call is passed as NULL if the escape
    was due to indirectly invalidating the region the pointer referenced.

    A patch by Branden Archer!

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

commit 2b6876173b36d92aaf379c29cb339d91b4d358ee
Author: Anna Zaks <ganna@apple.com>
Date:   Thu Feb 7 23:05:37 2013 +0000

    [analyzer] Don't reinitialize static globals more than once along a path

    This patch makes sure that we do not reinitialize static globals when
    the function is called more than once along a path. The motivation is
    code with initialization patterns that rely on 2 static variables, where
    one of them has an initializer while the other does not. Currently, we
    reset the static variables with initializers on every visit to the
    function along a path.

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

commit 250172a851a886c0763b5fd61c20bf21791c21e9
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Feb 7 22:59:12 2013 +0000

    Form the default -fmodules-cache-path= properly.

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

commit 31c4a4b0171aac01d2a6aedb4960ade7ee7d998a
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Feb 7 22:50:40 2013 +0000

    objective-C modern translator. More fixups for
    modern meta-data abi translation. Still wip.
    // rdar://13138459

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

commit daf1a15d734d154f07d5a0328d3ef59cd9a68f13
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Feb 7 21:08:36 2013 +0000

    clang-format: Don't put useless space in f( ::g()).

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

commit 882090e76a48337ce55fdc913a7e8a19ff35f4fc
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Feb 7 19:15:44 2013 +0000

    Add missing header from r174648

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

commit 7666b03d499819214752ae392efe666ca856d0e7
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Feb 7 19:13:24 2013 +0000

    Retain all hidden methods in the global method pool, because they may become visible <rdar://problem/13172858>.

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

commit 90b5ac660ef96b9d59dff837e96fd72d0673d7de
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Thu Feb 7 19:09:22 2013 +0000

    libclang: reduce CXString abuse

    ContainerUSR is not really a CXString, but it should own the underlying memory
    buffer.  Thus, it is better to change the type to std::string.  This will not
    introduce extra copying overhead, since the workaround that is being removed
    was already making a copy.

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

commit 953a61f26bf79932b9699b09add4c388764de170
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Feb 7 19:01:24 2013 +0000

    Rename -fmodule-cache-path <blah> to -fmodules-cache-path=<blah> for consistency.

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

commit ed4330bc159b8311080d03caacac9a8cbf42370c
Author: DeLesley Hutchins <delesley@google.com>
Date:   Thu Feb 7 19:01:07 2013 +0000

    Thread safety analysis: make sure that expressions in attributes are parsed
    in an unevaluated context.

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

commit b30c0382022abc891f1c6586b80db14550442d25
Author: Chad Rosier <mcrosier@apple.com>
Date:   Thu Feb 7 18:32:25 2013 +0000

    Testcase for r174477.

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

commit 6959acd4bb0979361365e675968173ede7183489
Author: Guy Benyei <guy.benyei@intel.com>
Date:   Thu Feb 7 16:05:33 2013 +0000

    Enable overloading of OpenCL events - this is needed for the overloaded OpenCL builtin functions.

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

commit 51dbecf89c8cc453964a3d831ceea3bca1a25cb5
Author: Tim Northover <Tim.Northover@arm.com>
Date:   Thu Feb 7 15:39:16 2013 +0000

    FileCheckize volatile test

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

commit e8d3cf009f78dfdd9e498fe6a57cfede6f1486ad
Author: Tim Northover <Tim.Northover@arm.com>
Date:   Thu Feb 7 15:11:48 2013 +0000

    Only check for volatile memcpys in test.

    AArch64 handles aggFct's return struct slightly differently, leading
    to an extra memcpy. This test is fortunately only concerned about
    volatile copies, so we can modify the grep text to filter it.

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

commit 5024bf501a03bc9423476cb976bc4029dd9a56f5
Author: Tim Northover <Tim.Northover@arm.com>
Date:   Thu Feb 7 15:11:44 2013 +0000

    Add AArch64 wchar definition to test

    This should allow it to pass if the default triple is AArch64

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

commit 8fa36ea24e097f98f8de2828dc44f092b05523d0
Author: Tim Northover <Tim.Northover@arm.com>
Date:   Thu Feb 7 15:11:40 2013 +0000

    XFAIL test that's inappropriate for AArch64 ABI

    Only some ABIs require the "signext" attribute on parameters. On most
    platforms, however, it's a useful test so it's best not to limit it to some
    random arbitrary platform.

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

commit 55f05937a2946527c214259202cdc2f5b0cf125b
Author: Tim Northover <Tim.Northover@arm.com>
Date:   Thu Feb 7 15:11:36 2013 +0000

    Permit ABIs where the caller extends the result (test change).

    This test was written to make sure *something* sane is generated, not
    to test any ABI's signedness semantics.

    This should allow the test to pass if AArch64 is the default target.

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

commit cbe50ccea2ac4ea9e2f61d2ca003d66971e78f5f
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Thu Feb 7 14:48:33 2013 +0000

    Documentation: fix typo: stdard -> stdarg

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

commit 1142b2aa6c10ed5f923eb4422fcfde185138087d
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Thu Feb 7 14:36:37 2013 +0000

    Documentation: add information about builtin includes to FAQ

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

commit 775bb8a4aecdd1e0af2a7a6baba449f074afa2c1
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Feb 7 12:47:42 2013 +0000

    libclang: CursorVisitor::VisitBuiltinTypeLoc(): Add OCLSampler. [-Wswitch]

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

commit fa37c5ca61af275a329386407e58cf70f4d9f596
Author: Manuel Klimek <klimek@google.com>
Date:   Thu Feb 7 12:42:10 2013 +0000

    Implements equalsNode for Decl and Stmt.

    This is a powerful tool when doing iterative refined matches,
    where another match is started inside the match callback of the first
    one; this allows for example to find out whether the node was in
    the condition or body of its parent if-statement.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174605 91177308-0d34-0410-b5e6-96231b3b80d8

commit 21f18c4fda167dc5f72feddbd6a7ac1b63200a0d
Author: Guy Benyei <guy.benyei@intel.com>
Date:   Thu Feb 7 10:55:47 2013 +0000

    Add OpenCL samplers as Clang builtin types and check sampler related restrictions.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174601 91177308-0d34-0410-b5e6-96231b3b80d8

commit f5a6aefa37d73fff3c47953e2c447f074e726a0e
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Thu Feb 7 05:08:22 2013 +0000

    Apply the pure-virtual odr rule to other constructs which can call overloaded
    operators.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174584 91177308-0d34-0410-b5e6-96231b3b80d8

commit bbcd0f3ba215d5a8857b224e32b0330586a00dc6
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Feb 7 03:37:08 2013 +0000

    Fix handling of module imports adding names to a DeclContext after qualified
    name lookup has been performed in that context (this probably only happens in
    C++).

    1) Whenever we add names to a context, set a flag on it, and if we perform
    lookup and discover that the context has had a lookup table built but has the
    flag set, update all entries in the lookup table with additional names from
    the external source.

    2) When marking a DeclContext as having external visible decls, mark the
    context in which lookup is performed, not the one we are adding. These won't
    be the same if we're adding another copy of a pre-existing namespace.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174577 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3646c68676c3c46a026b23d52188ef6e0d856178
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Feb 7 03:30:24 2013 +0000

    Simplify FindExternalVisibleDeclsByName by making it return a bool indicating
    if it found any decls, rather than returning a list of found decls. This
    removes a returning-ArrayRef-to-deleted-storage bug from
    MultiplexExternalSemaSource (in code not exercised by any of the clang
    binaries), reduces the work required in the found-no-decls case with PCH, and
    importantly removes the need for DeclContext::lookup to be reentrant.

    No functionality change intended!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174576 91177308-0d34-0410-b5e6-96231b3b80d8

commit 878d0ad2c9d83ee6485fd16e21c5082acc63a890
Author: Alexander Kornienko <alexfh@google.com>
Date:   Thu Feb 7 02:17:19 2013 +0000

    -Wimplicit-fallthrough: fixed two cases where "fallthrough annotation in unreachable code" was issued incorrectly.

    Summary:
    -Wimplicit-fallthrough: fixed two cases where "fallthrough annotation in unreachable code" was issued incorrectly:

    1. In actual unreachable code, but not immediately on a fall-through execution
    path "fallthrough annotation does not directly precede switch label" is better;
    2. After default: in a switch with covered enum cases. Actually, these shouldn't
    be treated as unreachable code for our purpose.

    Reviewers: rsmith

    Reviewed By: rsmith

    CC: cfe-commits

    Differential Revision: http://llvm-reviews.chandlerc.com/D374

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174575 91177308-0d34-0410-b5e6-96231b3b80d8

commit cd3b036dbdd29b0ddcaa12b5cce69b647b2ac5ba
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Feb 7 01:53:15 2013 +0000

    objective-C modern translator. Fix up the translated
    metadata to handle ivar bitfields. This is wip.
    // rdar://13138459

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174573 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4a19052fe91c988885c722252ef03ce5f762a73c
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Feb 7 01:35:44 2013 +0000

    AST dumping: indicate the previous declaration for a redeclaration, and
    indicate the semantic DC if it's not the lexical DC. In passing, correct
    the ascii-art child marker for a child of a FriendDecl.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174570 91177308-0d34-0410-b5e6-96231b3b80d8

commit 005d51bc4f16a7b330e13082d186b72953bde581
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Feb 7 01:18:48 2013 +0000

    Be a little more permissive with -fmodules-ignore-macro= by removing everything after the second '=' if it is there.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174567 91177308-0d34-0410-b5e6-96231b3b80d8

commit d46b7ec911ce1cb837397d5e12fe9928f63de6ab
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Feb 7 01:09:29 2013 +0000

    Add a *San + modules FIXME.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174565 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2a06085281d1b6aee628f85e8676eec04542cbc9
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Feb 7 00:21:12 2013 +0000

    Introduce -fmodules-ignore-macro=NNN to ignore a macro when building/loading modules.

    The use of this flag enables a modules optimization where a given set
    of macros can be labeled as "ignored" by the modules
    system. Definitions of those macros will be completely ignored when
    building the module hash and will be stripped when actually building
    modules. The overall effect is that this flag can be used to
    drastically reduce the number of

    Eventually, we'll want modules to tell us what set of macros they
    respond to (the "configuration macros"), and anything not in that set
    will be excluded. However, that requires a lot of per-module
    information that must be accurate, whereas this option can be used
    more readily.

    Fixes the rest of <rdar://problem/13165109>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174560 91177308-0d34-0410-b5e6-96231b3b80d8

commit 712f5b3bef988e8d3dd38fdf2264e7cc1a3f6bf9
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Thu Feb 7 00:19:29 2013 +0000

    Formatter: Move ObjC literal tests to its own test case.

    Slightly expand the boxed expressions test with a few more snippets from
    http://clang.llvm.org/docs/ObjectiveCLiterals.html

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174559 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8bf778eb9c0afb0a4c63a97ce504f50759c08d5f
Author: Douglas Gregor <dgregor@apple.com>
Date:   Wed Feb 6 22:40:31 2013 +0000

    Detect when we end up trying to load conflicting module files.

    This can happen when one abuses precompiled headers by passing more -D
    options when using a precompiled hedaer than when it was built. This
    is intentionally permitted by precompiled headers (and is exploited by
    some build environments), but causes problems for modules.

    First part of <rdar://problem/13165109>, detecting when something when
    horribly wrong.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174554 91177308-0d34-0410-b5e6-96231b3b80d8

commit 474e46211a141e4566c399b80ae26e3580b70c90
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Feb 6 22:04:05 2013 +0000

    Fix bug in the alignment of comments.

    Before:
    const char *test[] = {
      // A
      "aaaa",
                   // B
      "aaaaa",
    };

    After:
    const char *test[] = {
      // A
      "aaaa",
      // B
      "aaaaa",
    };

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174549 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4e8a7b4a95962f63a938c0d21c9aca0a51b78345
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Feb 6 21:04:05 2013 +0000

    Become a little smarter with formatting long chains of pipes.

    Assign a high penalty to breaking before "<<" if the previous token is a
    string literal ending in ":" or "=".

    Before:
    llvm::outs()
        << "aaaaaaaaaaaaaaaaa = " << aaaaaaaaaaaaaaaaa << "bbbbbbbbbbbbbbbbb = "
        << bbbbbbbbbbbbbbbbb << "ccccccccccccccccc = " << ccccccccccccccccc
        << "ddddddddddddddddd = " << ddddddddddddddddd << "eeeeeeeeeeeeeeeee = "
        << eeeeeeeeeeeeeeeee;

    After:
    llvm::outs() << "aaaaaaaaaaaaaaaaa = " << aaaaaaaaaaaaaaaaa
                 << "bbbbbbbbbbbbbbbbb = " << bbbbbbbbbbbbbbbbb
                 << "ccccccccccccccccc = " << ccccccccccccccccc
                 << "ddddddddddddddddd = " << ddddddddddddddddd
                 << "eeeeeeeeeeeeeeeee = " << eeeeeeeeeeeeeeeee;

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174545 91177308-0d34-0410-b5e6-96231b3b80d8

commit 415514d5fbc2761b7f2938aa9112b079249820d6
Author: Manuel Klimek <klimek@google.com>
Date:   Wed Feb 6 20:36:22 2013 +0000

    Cleanup of ASTMatcher macros and adding support for overloaded matchers.

    This is in preparation for adding other overloaded matchers. This change
    alone is a net win in LOC.
    I went through all matchers and looked whether we could now encode them
    as macro, or simplify them with the matcher atoms that were not
    available before.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174540 91177308-0d34-0410-b5e6-96231b3b80d8

commit 15417ef20e3cda668351c67cc580587913f6bee8
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Feb 6 20:07:35 2013 +0000

    Align trailing block comments like trailing line comments.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174537 91177308-0d34-0410-b5e6-96231b3b80d8

commit eb54aa584dbe19c0f7c4a9a0010815a85423858b
Author: Ted Kremenek <kremenek@apple.com>
Date:   Wed Feb 6 19:24:28 2013 +0000

    Remove unneeded test.  We have plenty of subgroup relations between warnings,
    and for those we care about we should have a general way of testing them.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174531 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1975c17e25b2d781bba95d47e8dabe6005815d5a
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Feb 6 18:15:40 2013 +0000

    Accept and ignore the -fextended-identifiers option.

    This was GCC's option to turn on UCN support, which we always have on now
    in C99 and C++ modes.

    Additionally, mark the -fno-extended-identifiers option as unsupported,
    since we don't support disabling UCNs in C99 and C++ modes.

    PR11538

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174530 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8e31d064e7543dde6e4205d5b27a95c96a4c3a4e
Author: Douglas Gregor <dgregor@apple.com>
Date:   Wed Feb 6 18:08:37 2013 +0000

    Eliminate a race condition with the global module index.

    Essentially, a module file on disk could change size between the time
    we stat() it and the time we open it, and we need to be robust against
    such a problem.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174529 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4ed7f3e003c906d9fdb92a9484feeb8ac6e28e2f
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Wed Feb 6 16:54:35 2013 +0000

    Formatter: Correctly detect ObjC message expressions preceded by a comment.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174521 91177308-0d34-0410-b5e6-96231b3b80d8

commit b3507cd01ead99113eed92a815b826f26f6dbadb
Author: Manuel Klimek <klimek@google.com>
Date:   Wed Feb 6 16:40:56 2013 +0000

    Fix handling of comments in macros.

    We now correctly format:
     // Written as a macro, it is reformatted from:
     #define foo(a)                                                                \
       do {                                                                        \
         /* Initialize num to zero. */                                             \
         int num = 10;                                                             \
         /* This line ensures a is never zero. */                                  \
         int i = a == 0 ? 1 : a;                                                   \
         i = num / i; /* This division is OK. */                                   \
         return i;                                                                 \
       } while (false)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174517 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7fc2db0acd3fb0f38db19764eef137ae3a9edc9f
Author: Manuel Klimek <klimek@google.com>
Date:   Wed Feb 6 16:08:09 2013 +0000

    Much semicolon after namespaces.

    We now leave the semicolon in the line of the closing brace in:
    namespace {
    ...
    };

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174514 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9e9e6e0297a96e237b53e6be433749065bcea5f8
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Feb 6 16:00:26 2013 +0000

    Fix formatting of ObjC method calls.

    This fixes llvm.org/PR15165.

    We now correctly align:
      [image_rep drawInRect:drawRect
                   fromRect:NSZeroRect
                  operation:NSCompositeCopy
                   fraction:1.0
                 ssssssssdd:NO
                      hints:nil];

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174513 91177308-0d34-0410-b5e6-96231b3b80d8

commit b8b1ce12362860e55590c55fd43db875c9193357
Author: Manuel Klimek <klimek@google.com>
Date:   Wed Feb 6 15:57:54 2013 +0000

    Parse record declarations with token pasted identifiers.

    This is pretty common in macros:
     #define A(X, Y) class X##Y {};

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174512 91177308-0d34-0410-b5e6-96231b3b80d8

commit 36ba0ff4b632cff7424693b9818bcc8d9ea7798a
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Feb 6 15:23:09 2013 +0000

    Fix a formatting bug caused by comments in expressions.

    This fixes llvm.org/PR15162.

    Before:
        bool aaaaaaaaaaaaa =  // comment
            aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || aaaaaaaaaaaaaaaaaaaaaaaaaaaa ||
                              aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ||
                              aaaaaaaaaaaaaaaaaaaaaaaaaaaaa;

    After:
        bool aaaaaaaaaaaaa =  // comment
            aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || aaaaaaaaaaaaaaaaaaaaaaaaaaaa ||
            aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || aaaaaaaaaaaaaaaaaaaaaaaaaaaaa;

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174508 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8ff690ab478b33e0d830a6203de12d191d94f8ff
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Feb 6 14:22:40 2013 +0000

    Optionally derive formatting information from the input file.

    With this patch, clang-format can analyze the input file for two
    properties:
    1. Is "int *a" or "int* a" more common.
    2. Are non-C++03 constructs used, e.g. A<A<A>>.

    With Google-style, clang-format will now use the more common style for
    (1) and format C++03 compatible, unless it finds C++11 constructs in the
    input.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174504 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6b5ba8be528bf614d5f4477a4cdbd7c3b19714a6
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Feb 6 10:57:42 2013 +0000

    Fix an issue with the formatting of stars in default values.

    Before: void f(int *a = d *e, int b = 0);
    After:  void f(int *a = d * e, int b = 0);

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174500 91177308-0d34-0410-b5e6-96231b3b80d8

commit cf87bffc346244f0ed8eae7fffb52a0f03cd0413
Author: Manuel Klimek <klimek@google.com>
Date:   Wed Feb 6 10:33:21 2013 +0000

    Adds a convenience function selectFirst to simplify matching.

    A very common use case is to search for the first occurrence of
    a certain node that is a descendant of another node. In that
    case, selectFirst significantly simplifies the code at the client side.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174499 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4e778091b0ff42895644ca8bef30f1a91ba6b32b
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Feb 6 10:05:46 2013 +0000

    Handle nested ObjC calls.

    Properly handle annotation contexts while calculating extra information
    for each token. This enable nested ObjC calls and thus solves (most of)
    llvm.org/PR15164. E.g., we can now format:

    [contentsContainer replaceSubview:[subviews objectAtIndex:0]
                                 with:contentsNativeView];

    Also fix a problem with the formatting of types in casts as this was
    trivial now.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174498 91177308-0d34-0410-b5e6-96231b3b80d8

commit e8a97985f72b4e11435ff2107c0f11e925fb6d96
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Wed Feb 6 06:20:11 2013 +0000

    Formatter: No space after & and * in front of ObjC message expressions.

    1. let determineStarAmp() check of unary operators before checking for
       "is next '['". That check was added in r173150, and the test from that
       revision passes either way.

    2. change determineStarAmp() to categorize '*' and '&' after '=' as unary
       operator.

    3. don't let parseSquare() overwrite the type of a '*' or '&' before the start
       of an objc message expression if has the role of unary operator.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174489 91177308-0d34-0410-b5e6-96231b3b80d8

commit ce6a10eaadd152f05103dfffe22ac20ef2c04615
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Wed Feb 6 05:59:33 2013 +0000

    Don't check whether a friend declaration is correctly formed when instantiating,
    we already checked it when parsing.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174486 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5e25301c24c92a9b7018cee20e524c4eb7192bf0
Author: Chad Rosier <mcrosier@apple.com>
Date:   Wed Feb 6 00:58:34 2013 +0000

    Use a dyn_cast to avoid a crash when the TypeLoc is not a ConstantArrayTypeLoc.
    rdar://13153516

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174477 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1fc271c38aaa68dce73d6f1bee9f6fd3474e51f0
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Wed Feb 6 00:38:13 2013 +0000

    [Headers] Use standard builtin defines instead of typeof trickery.

     - The trickery can confuse more basic source processors, in particular the
       Unix conformance tool that wants to scan headers.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174475 91177308-0d34-0410-b5e6-96231b3b80d8

commit 30c07afc3241adf6199463dae134fc62daa2aeb3
Author: Michael Gottesman <mgottesman@apple.com>
Date:   Wed Feb 6 00:14:48 2013 +0000

    Added test for r174461 that checks that the desired behavior also occurs in ObjC++ alongside ObjC.

    \end paranoia.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174471 91177308-0d34-0410-b5e6-96231b3b80d8

commit b98c6fe8877b809d4da3020692c9b38f972b92cf
Author: Anna Zaks <ganna@apple.com>
Date:   Wed Feb 6 00:01:14 2013 +0000

    [analyzer]Revert part of r161511; suppresses leak false positives in C++

    This is a "quick fix".

    The underlining issue is that when a const pointer to a struct is passed
    into a function, we do not invalidate the pointer fields. This results
    in false positives that are common in C++ (since copy constructors are
    prevalent). (Silences two llvm false positives.)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174468 91177308-0d34-0410-b5e6-96231b3b80d8

commit 40a94e299eadc5b80bd1dabf948d25d7c8cc4aa5
Author: Renato Golin <renato.golin@linaro.org>
Date:   Tue Feb 5 23:42:01 2013 +0000

    Adding armv7l default to cortex-a8

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174466 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8f98bf94072fcd41f7da1f8e58b7171adc878d51
Author: Michael Gottesman <mgottesman@apple.com>
Date:   Tue Feb 5 23:08:45 2013 +0000

    Changed CGObjCMac.cpp to add the marker externally_initialized to SELECTOR_REFERENCES in both the fragile and non-fragile API.

    This is to ensure that GlobalOpt in LLVM does not attempt to look through a
    selector reference to a method var name at compile time.

    I also added a test/updated old tests that need to recognize the new keyword.

    rdar://12580965.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174461 91177308-0d34-0410-b5e6-96231b3b80d8

commit b1855de3d61eab7d2f2e616ed59195f83e2a6dc0
Author: Ted Kremenek <kremenek@apple.com>
Date:   Tue Feb 5 22:03:14 2013 +0000

    Add note why we used a switch.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174449 91177308-0d34-0410-b5e6-96231b3b80d8

commit ed03c9f0850bfebe3e07736a9b3f212b2e30db76
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Feb 5 22:01:16 2013 +0000

    Minor tweak to install docs

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174448 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5846720f08a6b225484bfe663599c2b057a99bc8
Author: Ted Kremenek <kremenek@apple.com>
Date:   Tue Feb 5 22:00:19 2013 +0000

    Change subexpressions to be visited in the CFG from left-to-right.

    This is a more natural order of evaluation, and it is very important
    for visualization in the static analyzer.  Within Xcode, the arrows
    will not jump from right to left, which looks very visually jarring.
    It also provides a more natural location for dataflow-based diagnostics.

    Along the way, we found a case in the analyzer diagnostics where we
    needed to indicate that a variable was "captured" by a block.

    -fsyntax-only timings on sqlite3.c show no visible performance change,
    although this is just one test case.

    Fixes <rdar://problem/13016513>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174447 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9b0e9ed41dee29281f7bfd1209a7ebf3b2bbfddc
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Feb 5 21:13:55 2013 +0000

    Remove an uninteresting note

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174441 91177308-0d34-0410-b5e6-96231b3b80d8

commit beca02fc66db76eacdaced9df3bc79530c064842
Author: Anna Zaks <ganna@apple.com>
Date:   Tue Feb 5 19:52:28 2013 +0000

    [analyzer] Teach the analyzer to use a symbol for p when evaluating
    (void*)p.

    Addresses the false positives similar to the test case.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174436 91177308-0d34-0410-b5e6-96231b3b80d8

commit ef95aea4fe779730de23ac84536cfd135b13a4b4
Author: Anna Zaks <ganna@apple.com>
Date:   Tue Feb 5 19:52:26 2013 +0000

    [analyzer] add comment

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174435 91177308-0d34-0410-b5e6-96231b3b80d8

commit 087f40702fd00898fbb66d765d1143fd944c0485
Author: Anna Zaks <ganna@apple.com>
Date:   Tue Feb 5 19:52:24 2013 +0000

    [analyzer] Fix typo, better doxygen as per Jordan's feedback.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174434 91177308-0d34-0410-b5e6-96231b3b80d8

commit eaf9c744335788c0eff89ea7fd84f7dd64565d21
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Tue Feb 5 17:31:34 2013 +0000

    [analyzer] Add a doc describing the internals of RegionStore.

    This is a text file with Markdown-ish formatting because we haven't decided
    where analyzer internal documents should go, but it's probably better to
    have this in source control than sitting on my local drive forever.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174398 91177308-0d34-0410-b5e6-96231b3b80d8

commit ed351e6bad7314664385ee948ccec22c94ed326e
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Feb 5 16:37:00 2013 +0000

    [arcmt] Make sure the objc migrators work fine when used with a PCH.

    rdar://13140508

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174386 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3ad86fd2effccf1b9337e8cb9a317e4353cec275
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Feb 5 16:36:52 2013 +0000

    [frontend] Don't put a PCH/PTH filename into the set of includes in the preprocessor options;
    since only one of them is allowed in command-line, process them separately.

    Otherwise, if more than one is specified in the command-line, one is processed normally
    and the others are going to be treated and included as header files.

    Related to radar://13140508

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174385 91177308-0d34-0410-b5e6-96231b3b80d8

commit ee0feec7362053f22b6c01d12e1bfa06fb3ac93f
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Tue Feb 5 16:21:00 2013 +0000

    Formatter: Detect ObjC method expressions after unary operators.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174384 91177308-0d34-0410-b5e6-96231b3b80d8

commit 63d7cedca8616921c1908c88c2f23fcd67bbab99
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Feb 5 10:07:47 2013 +0000

    Initial support for formatting ObjC method declarations/calls.

    We can now format stuff like:
    - (void)doSomethingWith:(GTMFoo *)theFoo
                       rect:(NSRect)theRect
                   interval:(float)theInterval {
      [myObject doFooWith:arg1 //
                     name:arg2
                    error:arg3];

    }

    This seems to fix everything mentioned in llvm.org/PR14939.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174364 91177308-0d34-0410-b5e6-96231b3b80d8

commit d399bfff5a57325d8e63116c70aa727b1fb43232
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Feb 5 09:41:21 2013 +0000

    Fix some linebreak decisions in Google format.

    Before:
    f(aaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaa +
      aaaaaaaaaaaaaaaaaaaa);
    aaaaaaa(aaaaaaaaaaaaa, aaaaaaaaaaaaa, aaaaaaaaaaaaa(aaaaaaaaaaaaaaaaa,
                                                        aaaaaaaaaaaaaaaa));

    After:
    f(aaaaaaaaaaaaaaaaaaaa,
      aaaaaaaaaaaaaaaaaaaa,
      aaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaa);
    aaaaaaa(aaaaaaaaaaaaa,
            aaaaaaaaaaaaa,
            aaaaaaaaaaaaa(aaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaa));

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174363 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5b7e7b0ec77f49c1b24deffc9b7032ca16ca9f0d
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Feb 5 09:34:14 2013 +0000

    Fix formatting regression introduced by r174307.

    In preprocessor definitions, we would not parse all the tokens and thus
    not annotate them anymore. This led to a wrong formatting of comments
    in google style:

      #endif // HEADER_GUARD  -- requires two spaces

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174361 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8fcbb8dfbc28b6279d22144e10ade401a6c03e9e
Author: Arnaud A. de Grandmaison <arnaud.adegm@gmail.com>
Date:   Tue Feb 5 09:06:17 2013 +0000

    Fix typo in comment

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174359 91177308-0d34-0410-b5e6-96231b3b80d8

commit 77163bc392be75795d58b1f6177a0a4626a57dcb
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Feb 5 07:37:07 2013 +0000

    TextDiagnostic.cpp: Suppress a warning to use ptrdiff_t on i686-clang. [-Wsign-compare]

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174353 91177308-0d34-0410-b5e6-96231b3b80d8

commit c706c8e440abf61910c042380e19c67932998395
Author: Eric Christopher <echristo@gmail.com>
Date:   Tue Feb 5 07:29:57 2013 +0000

    Driver and option support for -gsplit-dwarf. This is a part of
    the DWARF5 split dwarf proposal.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174349 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4f4e2af2643c1914c2e49ac6372f7c2c38616432
Author: Eric Christopher <echristo@gmail.com>
Date:   Tue Feb 5 07:29:49 2013 +0000

    Spaces instead of tabs.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174348 91177308-0d34-0410-b5e6-96231b3b80d8

commit cc972ed1580c3e133b1bb51415f9bf9a051c6d53
Author: Ted Kremenek <kremenek@apple.com>
Date:   Tue Feb 5 06:33:47 2013 +0000

    Revert "Remove sparse text on diagnostic options.  These are not really documented anywhere, and they really aren't for normal users."

    I changed my mind.  We should just document these in the man page.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174344 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4fd83a3813fde17d6077bb18363aa4339e38f641
Author: Ted Kremenek <kremenek@apple.com>
Date:   Tue Feb 5 06:21:59 2013 +0000

    Remove dead code related to the now defunct PCH stat cache.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174342 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7cea1487602536e91a2c36511f5ad56ff1b2dc68
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Tue Feb 5 06:20:31 2013 +0000

    Test for virtual instead of pure here. It has the exact same effect, and John
    claims it will improve performance.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174341 91177308-0d34-0410-b5e6-96231b3b80d8

commit afbcab8d10d4208c7ad8da79e948432117d4a326
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Feb 5 05:55:57 2013 +0000

    PR15095: Use more correct source locations for the InitListExpr we fake up for
    vector initialization. Patch by John Stratton!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174339 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7305e8c48df5fe373be431ef99399ae649721f3f
Author: Ted Kremenek <kremenek@apple.com>
Date:   Tue Feb 5 05:55:21 2013 +0000

    Remove sparse text on diagnostic options.  These are not really documented anywhere, and they really aren't for normal users.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174338 91177308-0d34-0410-b5e6-96231b3b80d8

commit a4dc51b46861eb52626f89183da7610437baba93
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Feb 5 05:52:24 2013 +0000

    Add some missing diagnostics for C++11 narrowing conversions.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174337 91177308-0d34-0410-b5e6-96231b3b80d8

commit 152ea0e4711f7aed75f6a1d1995b0bd94eb31c98
Author: Manuel Klimek <klimek@google.com>
Date:   Mon Feb 4 10:59:20 2013 +0000

    Implements the convenience matcher findAll.

    We found that findAll has been implemented incorrectly multiple times
    by various people using the matchers. To prevent further wasted
    development effort, it makes sense to add it as convenience matcher
    implemented as eachOf(m, forEachDescendant(m)).

    This patch also updates the docs with the new matchers.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174320 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7387673f83b8b37f660422947c9990778ba88193
Author: Manuel Klimek <klimek@google.com>
Date:   Mon Feb 4 09:42:38 2013 +0000

    Add an eachOf matcher.

    eachOf gives closure on the forEach and forEachDescendant matchers.
    Before, it was impossible to implement a findAll matcher, as matching
    the node or any of its descendants was not expressible (since anyOf
    only triggers the first match).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174315 91177308-0d34-0410-b5e6-96231b3b80d8

commit cda165056890b8ccfc6e2897c711388c5fb518c0
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Feb 4 08:34:57 2013 +0000

    Improve handling of trailing block comments

    This is a follow up to r174309 to actually make it work.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174314 91177308-0d34-0410-b5e6-96231b3b80d8

commit fa543accd8945c39d5128612c8822d0ab4ad594c
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Feb 4 07:34:48 2013 +0000

    Improve formatting of stream operators.

    If there are string literals on either side of a '<<', chances are
    high that they represent logically separate concepts. Otherwise,
    the author could just have just a single literal (possible split
    over multiple lines).

    So, we can now nicely format things like:
    cout << "somepacket = {\n"
         << "  val a = " << ValueA << "\n"
         << "  val b = " << ValueB << "\n"
         << "}";

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174310 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2752ff35854b295837b8088e44d5a932be60e107
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Feb 4 07:32:14 2013 +0000

    Improve handling of trailing block comments.

    We can now (even in non-bin-packing modes) format:
    someFunction(1, /* comment 1 */
                 2, /* comment 2 */
                 3, /* comment 3 */
                 aaa);

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174309 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8159d2f271c9142b46a672ac2c45821911171a7d
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Feb 4 07:30:30 2013 +0000

    Fix an error in formatting of for-loops.

    Two minor changes:
    * Slight penalty for breaking at "," as opposed to ";".
    * Don't apply bin-packing rules to for-loops.

    Before:
    for (int aaaaaa = aaaaaaaaaa; aaaaaa < bbbbbbbb; ++aaaaaa,
             ++ccccccccccccccc) {}

    After:
    for (int aaaaaa = aaaaaaaaaa; aaaaaa < bbbbbbbb;
         ++aaaaaa, ++ccccccccccccccc) {}

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174308 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0178673f541685cf5067814dfeee2644078e39a9
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Feb 4 07:21:18 2013 +0000

    Restructuring of token annotation for formatting.

    This combines several changes:
    * Calculation token type (e.g. for * and &) in the AnnotatingParser.
    * Calculate the scope binding strength in the AnnotatingParser.
    * Let <> and [] scopes bind stronger than () and {} scopes.
    * Add minimal debugging output.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174307 91177308-0d34-0410-b5e6-96231b3b80d8

commit 22c0cbee5bb2150841e0046354fd37ba22de747a
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Mon Feb 4 05:06:21 2013 +0000

    clang/Analysis: Fix r174245, a valgrind error in AnalysisDeclContext::getBody(bool &IsAutosynthesized), to initialize IsAutosynthesized explicitly.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174303 91177308-0d34-0410-b5e6-96231b3b80d8

commit 93aa2db250a0e67192ab2a5417e4dfd5530d6f56
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sun Feb 3 23:02:47 2013 +0000

    DeclPrinter: fix CXXConstructExpr printing with implicit default argument

    This is an improvement of r173630, that handles the following case:

      struct VirualDestrClass
      {
        VirualDestrClass(int arg);
        virtual ~VirualDestrClass();
      };

      struct ConstrWithCleanupsClass
      {
        ConstrWithCleanupsClass(const VirualDestrClass& cplx = VirualDestrClass(42));
      };

      ConstrWithCleanupsClass cwcNoArg;

    That was printed as:

      ConstrWithCleanupsClass cwcNoArg();

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174296 91177308-0d34-0410-b5e6-96231b3b80d8

commit f408d1dc5824223a9bbb65a4bbdb9440d8d7c30e
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sun Feb 3 20:22:35 2013 +0000

    Drop value names from test to get -Asserts builds back to green.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174294 91177308-0d34-0410-b5e6-96231b3b80d8

commit ae3f7608756eb90d8dd5d014238437fcbf1c7de7
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sun Feb 3 19:59:25 2013 +0000

    CodeGen: Implement hint values for dynamic_cast as described in the Itanium C++ ABI.

    This can yield dramatic speedups of dynamic_cast for simple inheritance trees,
    at least with libsupc++. Neither libcxxabi nor libcxxrt make use of this
    hint currently, it was never implemented because clang didn't support it.

    There was some concern about the number of class hierarchy walks this change
    introduces. If it turns out to be an issue we can add caching either at the cast
    pair level or even deeper, but we also do a lot of walks in Sema so this
    codepath is probably fairly optimized already.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174293 91177308-0d34-0410-b5e6-96231b3b80d8

commit 922cec29a9366f70d593d6225aea01dcd3daf8cf
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sun Feb 3 18:55:34 2013 +0000

    CodeGen: Remove unnecessary const_casts. No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174292 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6bd0232b4f58e7ad40f687b09b0eb897bcc3fd1e
Author: Daniel Jasper <djasper@google.com>
Date:   Sun Feb 3 18:07:15 2013 +0000

    Fix bug in formatting of nested initializers.

    We can now format:
    SomeArrayOfSomeType a = { { { 1, 2, 3 } }, { { 1, 2, 3 } },
                              { { 111111111111111111111111111111,
                                  222222222222222222222222222222,
                                  333333333333333333333333333333 } },
                              { { 1, 2, 3 } }, { { 1, 2, 3 } } };

    Before, we did strange things there.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174291 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4c494f4af76017e2bb389a3a96cbcdbb8973cf97
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sun Feb 3 17:48:05 2013 +0000

    Comment to XML conversion: replace string comparison with command ID comparison

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174290 91177308-0d34-0410-b5e6-96231b3b80d8

commit 21f6b39cca88f0a027c6f5cde24575165c2d5e40
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sun Feb 3 17:44:25 2013 +0000

    CodeGen: Mark the runtime function __dynamic_cast as readonly & nounwind.

    This allows the optimizer to CSE dynamic_casts.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174289 91177308-0d34-0410-b5e6-96231b3b80d8

commit f8c12146fa2153a6d97b7c92d27d2ece0cd26e79
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sun Feb 3 16:10:26 2013 +0000

    Remove unneeded const_casts

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174287 91177308-0d34-0410-b5e6-96231b3b80d8

commit f06faad8c2983d428859e543ca1581a28b16515b
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sun Feb 3 13:54:26 2013 +0000

    libclang: wrap CXString implementation into 'namespace cxstring'

    This removes quite a few 'cxstring::' qualifications where they are obvious.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174286 91177308-0d34-0410-b5e6-96231b3b80d8

commit aca3e56144308f97f676fa30b07179e1203f7822
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sun Feb 3 13:52:47 2013 +0000

    libclang: remove 'using namespace cxstring'

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174285 91177308-0d34-0410-b5e6-96231b3b80d8

commit 361d79ca6b9d185b5a71a46b01f1d6b25e3e7bb8
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sun Feb 3 13:42:20 2013 +0000

    libclang: migrate IndexingDeclVisitor to ConstDeclVisitor

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174284 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8d0eb2f71fb74bd7f5a145e811910273abc98a39
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sun Feb 3 13:26:20 2013 +0000

    libclang: remove unneeded const_cast

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174283 91177308-0d34-0410-b5e6-96231b3b80d8

commit b35cc2d46c4188a0b2d094b3104ce69092c34802
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sun Feb 3 13:23:21 2013 +0000

    Constify ASTContext::getObjContainingInterface

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174282 91177308-0d34-0410-b5e6-96231b3b80d8

commit e414cc167815e773e4fd27e44943734d54160cab
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sun Feb 3 13:21:23 2013 +0000

    libclang: migrate USRGenerator to ConstDeclVisitor

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174281 91177308-0d34-0410-b5e6-96231b3b80d8

commit a376f8774a73cfeb1c48bf2fe0baa8c2731cfacc
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sun Feb 3 13:19:54 2013 +0000

    libclang: remove unneeded const_casts

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174280 91177308-0d34-0410-b5e6-96231b3b80d8

commit 95f3636c4659cc370716e4fbc93ab8d911e94123
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Sun Feb 3 12:52:54 2013 +0000

    clang/test/CodeGenCXX/debug-info-class.cpp: Tweak to unbreak test for a few targets.

      - Relax a expression for arm-gnueabi.
      - Exclude msvc to limit target triplets to add limited a few targets.
        Feel free to remove actions if guys thought they redundant.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174278 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2a3fe34b4a2a1b6ceab8838b896435378ae0e692
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Feb 2 05:15:53 2013 +0000

    Revert "[analyzer] Model trivial copy/move ctors with an aggregate bind."

    ...again. The problem has not been fixed and our internal buildbot is still
    getting hangs.

    This reverts r174212, originally applied in r173951, then reverted in r174069.
    Will not re-apply until the entire project analyzes successfully on my
    local machine.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174265 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5595ded882b22d77fdf535bd1a4c6c090110348a
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Feb 2 02:19:29 2013 +0000

    libclang: introduce cxstring::{createRef,createDup} for StringRefs

    Also migrate all clients from the old API.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174263 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3fa3feab35096b608f1d79bb541798b37a55e7b9
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sat Feb 2 02:14:45 2013 +0000

    PR15132: Replace "address expression must be an lvalue or a function
    designator" diagnostic with more correct and more human-friendly "cannot take
    address of rvalue of type 'T'".

    For the case of & &T::f, provide a custom diagnostic, rather than unhelpfully
    saying "cannot take address of rvalue of type '<overloaded function type>'".

    For the case of &array_temporary, treat it just like a class temporary
    (including allowing it as an extension); the existing diagnostic wording
    for the class temporary case works fine.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174262 91177308-0d34-0410-b5e6-96231b3b80d8

commit 821b93eec8b58a3e320ef34e7c98906ab61cf8c3
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sat Feb 2 02:11:36 2013 +0000

    Correctly classify T{} as an array temporary if T is an array of class type with nontrivial destructor.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174261 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9d9f254f7781c157256dbde4d4d961a2d89e8599
Author: Ted Kremenek <kremenek@apple.com>
Date:   Sat Feb 2 01:52:41 2013 +0000

    Add some horrible Perl code to teach scan-build to recursively walk a directory for HTML files.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174260 91177308-0d34-0410-b5e6-96231b3b80d8

commit 802e22682c17c4a9df3f747abd224db38e382e39
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sat Feb 2 01:13:06 2013 +0000

    Don't forget to run destructors when we create an array temporary of class type.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174257 91177308-0d34-0410-b5e6-96231b3b80d8

commit 975f253bb31f665171517d43de6686e56507abac
Author: Ted Kremenek <kremenek@apple.com>
Date:   Sat Feb 2 01:06:22 2013 +0000

    Revert "Update checker build to checker-271."

    Turns out we didn't update scan-build to work with HTML files in nested directories.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174256 91177308-0d34-0410-b5e6-96231b3b80d8

commit cfe18a195128002c5861e362db1f11ee1bebbea6
Author: Michael Gottesman <mgottesman@apple.com>
Date:   Sat Feb 2 01:05:06 2013 +0000

    Fixed another whitespace issue... *sigh*.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174255 91177308-0d34-0410-b5e6-96231b3b80d8

commit db99e8b72ae2b66d3c2f8d896f49513b8d8e2633
Author: Michael Gottesman <mgottesman@apple.com>
Date:   Sat Feb 2 01:03:01 2013 +0000

    Fixed whitespace.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174254 91177308-0d34-0410-b5e6-96231b3b80d8

commit 554b07d30484185a313dbe2c5e2fd5798ac3f998
Author: Michael Gottesman <mgottesman@apple.com>
Date:   Sat Feb 2 00:57:44 2013 +0000

    On platforms which do not support ARC natively, do not mark objc_retain/objc_release as "nonlazybind".

    rdar://13108298.
    rdar://13129783.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174253 91177308-0d34-0410-b5e6-96231b3b80d8

commit a7f8da123f765bb7a0a53f9f23fa832f9a8a2889
Author: Ted Kremenek <kremenek@apple.com>
Date:   Sat Feb 2 00:57:28 2013 +0000

    Update checker build to checker-271.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174252 91177308-0d34-0410-b5e6-96231b3b80d8

commit c8c24277a8cce39db95b0e05b79cbdf7e7558355
Author: David Blaikie <dblaikie@gmail.com>
Date:   Sat Feb 2 00:39:32 2013 +0000

    Revert r174246, accidentally committed.

    This reverts commit 1513eb9284c23acfd19cf742b95996fbb11ca741.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174249 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ceca75892202e1791fb002be6418c8720d74912
Author: David Blaikie <dblaikie@gmail.com>
Date:   Sat Feb 2 00:36:58 2013 +0000

    Sentenc-ify comment added in r174206.

    Based on post-commit review by Paul Robinson.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174248 91177308-0d34-0410-b5e6-96231b3b80d8

commit 083b90d654476c3297f85ff844ac2f57bb7f4a21
Author: David Blaikie <dblaikie@gmail.com>
Date:   Sat Feb 2 00:34:26 2013 +0000

    Generalize DebugInfo tests by avoiding explicit metadata numbers

    This addresses several (not all) debug info tests that use explicit metadata
    numbers. Wherever the same number appeared more than once in a test I used
    a named match to ensure the same number appeared in all those cases (this may
    still be overly constraining test cases as they may not have actually cared
    about that relationship). For one-off numbers I just replaced them with an
    unnamed regex.

    This may underconstrain poorly written test cases that were interested in
    checking that certain metadata nodes were related but didn't actually match
    on all the related nodes numbers.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174247 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1513eb9284c23acfd19cf742b95996fbb11ca741
Author: David Blaikie <dblaikie@gmail.com>
Date:   Sat Feb 2 00:34:16 2013 +0000

    Basics

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174246 91177308-0d34-0410-b5e6-96231b3b80d8

commit 453cb859a3c8dcafe79ae840dfc35ff8eae1b4b3
Author: Anna Zaks <ganna@apple.com>
Date:   Sat Feb 2 00:30:04 2013 +0000

    [analyzer] Always inline functions with bodies generated by BodyFarm.

    Inlining these functions is essential for correctness. We often have
    cases where we do not inline calls. For example, the shallow mode and
    when reanalyzing previously inlined ObjC methods as top level.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174245 91177308-0d34-0410-b5e6-96231b3b80d8

commit a5245a51593aa45c2a5ef38a10861697d29c7789
Author: Anna Zaks <ganna@apple.com>
Date:   Sat Feb 2 00:30:02 2013 +0000

    [analyzer] Print Inline mode with -analyzer-display-progress.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174244 91177308-0d34-0410-b5e6-96231b3b80d8

commit 135d0fe1ae89c39e3de9849cceda98253b063f14
Author: Anna Zaks <ganna@apple.com>
Date:   Sat Feb 2 00:29:59 2013 +0000

    [analyzer] Fix typo.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174243 91177308-0d34-0410-b5e6-96231b3b80d8

commit b7e5eec2f57bd82c6ddb762ca3dd7b7d8697e9d5
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Sat Feb 2 00:25:55 2013 +0000

    This patch makes "&Cls::purevfn" not an odr use. This isn't what the standard
    says, but that's a defect (to be filed). "Cls::purevfn()" is still an odr use.

    Also fixes a bug that caused us to not mark the function referenced just
    because we didn't want to mark it odr used.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174242 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0c4394c7f63008fbf4d335710b34f71afab362a3
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Feb 2 00:02:12 2013 +0000

    libclang: introduce cxstring::{createRef,createDup} for C strings

    Also migrate all clients from the old API.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174238 91177308-0d34-0410-b5e6-96231b3b80d8

commit f5cfc89ea46cf20b4d5b5c42568e9ba6a4bbdd80
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Feb 1 23:45:03 2013 +0000

    Merge "special" types from different modules in the AST reader.

    Different modules may have different views of the various "special"
    types in the AST, such as the redefinition type for "id". Merge those
    types rather than only considering the redefinition types for the
    first AST file loaded.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174234 91177308-0d34-0410-b5e6-96231b3b80d8

commit 288c75597c8cb0f96c416dd099b966a043ed86b1
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Feb 1 22:53:19 2013 +0000

    clang/test/CodeGenCXX/debug-info-class.cpp: Fixup for -Asserts.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174229 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9484c1dcf084452228aae439edcd00e1b4ce7470
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Feb 1 20:35:47 2013 +0000

    Const'ify Preprocessor::getPredefinesFileID.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174218 91177308-0d34-0410-b5e6-96231b3b80d8

commit 54596b99c9ae43554284eb16a9ca7c23a666b261
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Fri Feb 1 20:30:26 2013 +0000

    Unbreak Makefile build after r174216

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174217 91177308-0d34-0410-b5e6-96231b3b80d8

commit af01bed59b2fe18fa483f5dbb86584b31eda6f98
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Fri Feb 1 20:23:57 2013 +0000

    Comment parsing: improve the fidelity of XML output for many block commands

    This change introduces a 'kind' attribute for the <Para> tag, that captures the
    kind of the parent block command.

    For example:

    \todo Meow.

    used to be just <Para>Meow.</Para>, but now it is
    <Para kind="todo">Meow.</Para>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174216 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2821e180094459cbdef37e7d7c12bb406d5b82ba
Author: Bill Schmidt <wschmidt@linux.vnet.ibm.com>
Date:   Fri Feb 1 20:23:10 2013 +0000

    Add some missing PPC cpus

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174215 91177308-0d34-0410-b5e6-96231b3b80d8

commit 41f7b1a854362f7de5cb6d6b0c2964373dede51d
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Feb 1 20:04:49 2013 +0000

    objc: Provide correct fixit instruction when two mismatched
    nsstringis are compared without. // rdar://12716301

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174214 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8c888b10fdd2846885e8582b131fa076ce1b77b1
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Feb 1 19:50:01 2013 +0000

    [analyzer] Explain why we have system-header-simulator*.h files.

    Suggested by Csaba. Text based on an e-mail of mine on cfe-dev.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174213 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5500fc193af4b786bbbbee6ece743f523448e90b
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Feb 1 19:49:59 2013 +0000

    Re-apply "[analyzer] Model trivial copy/move ctors with an aggregate bind."

    With the optimization in the previous commit, this should be safe again.

    Originally applied in r173951, then reverted in r174069.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174212 91177308-0d34-0410-b5e6-96231b3b80d8

commit 978aeac1a90020b2a0ae6c7eb7fe65aa8226f74a
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Feb 1 19:49:57 2013 +0000

    [analyzer] Reuse a LazyCompoundVal if its type matches the new region.

    This allows us to keep from chaining LazyCompoundVals in cases like this:
      CGRect r = CGRectMake(0, 0, 640, 480);
      CGRect r2 = r;
      CGRect r3 = r2;

    Previously we only made this optimization if the struct did not begin with
    an aggregate member, to make sure that we weren't picking up an LCV for
    the first field of the struct. But since LazyCompoundVals are typed, we can
    make that inference directly by comparing types.

    This is a pure optimization; the test changes are to guard against possible
    future regressions.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174211 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0a0f93c90fd397a1aa9f97283c55f8ba0062bf55
Author: David Blaikie <dblaikie@gmail.com>
Date:   Fri Feb 1 19:09:49 2013 +0000

    Fix exception handling line table problems introduced by r173593

    r173593 made us a little too eager to associate all code at the end of a
    function with the user-written 'return' line. This caused problems with
    breakpoints as they'd be set in exception handling code preceeding the
    actual non-exception return handling code, leading to the breakpoint never
    being hit in non-exceptional execution.

    This change restores the pre-r173593 exception handling line information where
    the cleanup code is associated with the '}' not the return line.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174206 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3c6aaeb26202b41173dd9ea982833fe975147d80
Author: Hal Finkel <hfinkel@anl.gov>
Date:   Fri Feb 1 18:44:19 2013 +0000

    Add -mqpx and -mno-qpx feature flags to toggle use of the PPC QPX vector instruction set

    I've renamed the altivec test to ppc-features (because now there is more than one feature to test).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174204 91177308-0d34-0410-b5e6-96231b3b80d8

commit 75dbc717c21a662b7836ed34cc4e7da7b8fa33c0
Author: Chad Rosier <mcrosier@apple.com>
Date:   Fri Feb 1 18:30:26 2013 +0000

    [driver] Don't try to generate diagnostic information for dsymutil crashes.
    Part of rdar://13134273

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174203 91177308-0d34-0410-b5e6-96231b3b80d8

commit a5236b93ddd9de6a15d4fdab96e262108f63e116
Author: Alexander Kornienko <alexfh@google.com>
Date:   Fri Feb 1 18:28:04 2013 +0000

    Micro change: moved '{' for better readability (+don't confuse -Wimplicit-fallthrough)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174202 91177308-0d34-0410-b5e6-96231b3b80d8

commit d9a9f19fd7178345fdab040afcc436c010cf4f68
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Fri Feb 1 18:18:00 2013 +0000

    Fix indent

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174201 91177308-0d34-0410-b5e6-96231b3b80d8

commit d82e2c1a1f7373fe89ce854d94915ad420596aa2
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Fri Feb 1 17:25:11 2013 +0000

    Fix comments: these are not trailing comments

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174197 91177308-0d34-0410-b5e6-96231b3b80d8

commit 15a2aa0954bcf38411c14cf67c65e336022a7a1b
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Fri Feb 1 16:38:41 2013 +0000

    libclang: document the purpose of createNull()

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174195 91177308-0d34-0410-b5e6-96231b3b80d8

commit 17c1a2476aa910760bdb91fe2990c9665eafac9a
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Fri Feb 1 16:36:31 2013 +0000

    libclang: add comments for CXStringFlag

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174194 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8b136d85487ec3cc017470d97479159d93a14f91
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Feb 1 16:36:14 2013 +0000

    [modules] Introduce ModuleFile::DirectImportLoc which is the source location
    where the module was explicitly or implicitly imported in the local translation unit.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174192 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5ebcb20b0331a6e64c213f0bb5f4bed9a9e8eb34
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Feb 1 16:36:12 2013 +0000

    For ModuleLoader::makeModuleVisible() also pass the source location where the
    module import occurred.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174191 91177308-0d34-0410-b5e6-96231b3b80d8

commit 95d912c994832333a998bc7d4ae0e8e830a2d38b
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Feb 1 16:36:07 2013 +0000

    Introduce SourceManager::PredefinesFileID, to allow each checking of whether
    a source location came from the predefines buffer.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174190 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4ba2508f05a0820e1c570d764321ce22abeadd72
Author: Bill Schmidt <wschmidt@linux.vnet.ibm.com>
Date:   Fri Feb 1 15:52:51 2013 +0000

    Add check for @foo

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174185 91177308-0d34-0410-b5e6-96231b3b80d8

commit 81c9b2a3ad31e19551c49945ed91556bfeae79c9
Author: Bill Schmidt <wschmidt@linux.vnet.ibm.com>
Date:   Fri Feb 1 15:41:02 2013 +0000

    Fix a string not seen without asserts

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174183 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0162b832fd6450cd3a23019a3c900382d0e9415c
Author: Alexander Kornienko <alexfh@google.com>
Date:   Fri Feb 1 15:39:20 2013 +0000

    Fixed segmentation fault when a CFGBlock has NULL successor.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174182 91177308-0d34-0410-b5e6-96231b3b80d8

commit 57dab7135269ba12b979a91415153d00794c7727
Author: Bill Schmidt <wschmidt@linux.vnet.ibm.com>
Date:   Fri Feb 1 15:34:29 2013 +0000

    Fix PR14881 by implementing conversion rules between int and complex int.

    Prior to the patch, Clang does not properly promote types when a complex
    integer operand is combined with an integer via a binary operator, or when
    one is assigned to the other in either order.  This patch detects when
    promotion is needed (and permissible) and generates the necessary code.

    The test assmes no target has the same size operands for "char" and
    "long long," and that no target performs arithmetic on char operands without
    extending them to a larger format first.  If there are any targets for
    which this is not the case, they should be XFAILed.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174181 91177308-0d34-0410-b5e6-96231b3b80d8

commit d123dc64377668ce6b2bd6437552b870c7a5f636
Author: Bill Schmidt <wschmidt@linux.vnet.ibm.com>
Date:   Fri Feb 1 14:45:29 2013 +0000

    Revise unit testing for -fno-altivec, -mno-altivec.

    As suggested, reverted the end-to-end test and added variations to an
    existing Driver test.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174176 91177308-0d34-0410-b5e6-96231b3b80d8

commit dc66adb40ee871b4c578ba615f45d82476c7119e
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Fri Feb 1 14:21:22 2013 +0000

    libclang: itroduce cxstring::createEmpty()

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174174 91177308-0d34-0410-b5e6-96231b3b80d8

commit dad4c1a9ac4ef1aa591ac2ef20dc4c30d96f9f2a
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Fri Feb 1 14:13:32 2013 +0000

    libclang: introduce cxstring::createNull()

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174173 91177308-0d34-0410-b5e6-96231b3b80d8

commit 60969f5f6be1cbf7ac2384cc5ad571d28adf6bf1
Author: Manuel Klimek <klimek@google.com>
Date:   Fri Feb 1 13:41:35 2013 +0000

    Re-design the convenience interfaces on MatchFinder.

    First, this implements a match() method on MatchFinder; this allows us
    to get rid of the findAll implementation, as findAll is really a special
    case of recursive matchers on match.

    Instead of findAll, provide a convenience function match() that lets
    users iterate easily over the results instead of needing to implement
    callbacks.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174172 91177308-0d34-0410-b5e6-96231b3b80d8

commit ae54121c15cdd38f415f6fdda48215ab5e4dcee1
Author: Alexander Kornienko <alexfh@google.com>
Date:   Fri Feb 1 12:35:51 2013 +0000

    Use const visitors in ASTDumper.
    http://llvm-reviews.chandlerc.com/D355
    Patch by Philip Craig!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174171 91177308-0d34-0410-b5e6-96231b3b80d8

commit 67581942138bb5ce25bcf3a67fff278ca4fa5f7d
Author: Daniel Jasper <djasper@google.com>
Date:   Fri Feb 1 11:28:16 2013 +0000

    Hopefully fix windows build due to non-standard pair implementation.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174169 91177308-0d34-0410-b5e6-96231b3b80d8

commit 68ef0df17ed6de26084c3a11a4cabbd69a5a2465
Author: Daniel Jasper <djasper@google.com>
Date:   Fri Feb 1 11:00:45 2013 +0000

    Revamp of the basic layouting algorithm in clang-format.

    In order to end up with good solutions, clang-format needs to try
    "all" combinations of line breaks, evaluate them and select the
    best one. Before, we have done this using a DFS with memoization
    and cut-off conditions. However, this approach is very limited
    as shown by the huge static initializer in the attachment of
    llvm.org/PR14959.

    Instead, this new implementation uses a variant of Dijkstra's
    algorithm to do a prioritized BFS over the solution space.

    Some numbers:
    lib/Format/TokenAnnotator.cpp: 1.5s -> 0.15s
    Attachment of PR14959: 10min+ (didn't finish) -> 10s

    No functional changes intended.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174166 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5f838aa9c82c22b6ed2a0cb090969a706c8a1775
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Feb 1 08:25:07 2013 +0000

    Fix diagnostic for bad alignas use: it can't be applied to functions.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174160 91177308-0d34-0410-b5e6-96231b3b80d8

commit cd0655b17249c4c4908ca91462657f62285017e6
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Fri Feb 1 08:13:20 2013 +0000

    Add a new -Wundefined-inline warning for inline functions which are used but not
    defined. Fixes PR14993!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174158 91177308-0d34-0410-b5e6-96231b3b80d8

commit be507b6e72df8ab5e7d8c31eb4453e1bdf5fcfaf
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Feb 1 08:12:08 2013 +0000

    Implement [dcl.align]p5 and C11 6.7.5/4: alignas cannot underalign.
    Also support alignas(0), which C++11 and C11 require us to ignore.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174157 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5ccd3d0214b9d765a1bb41872da27d3c5530ab2b
Author: Hal Finkel <hfinkel@anl.gov>
Date:   Fri Feb 1 05:53:33 2013 +0000

    Add PPC A2Q core and BG/Q preprocessor definitions

    The a2q core is the variant of the a2 core used on the BG/Q supercomputers.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174151 91177308-0d34-0410-b5e6-96231b3b80d8

commit 074cae0861a87bf96d8ea56d02e34839d9ccbd0a
Author: John McCall <rjmccall@apple.com>
Date:   Fri Feb 1 05:11:40 2013 +0000

    Destroy arrays and ARC fields when throwing out of ctors.

    Previously we were only handling non-array fields of class type.

    Testcases derived from a patch by WenHan Gu.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174146 91177308-0d34-0410-b5e6-96231b3b80d8

commit 10318845f40d50b9d0ce010b0ea8d93a7b5ab029
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Feb 1 04:49:10 2013 +0000

    Don't do delayed exception-specification checking on an invalid
    class. Fixes <rdar://problem/13017229>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174145 91177308-0d34-0410-b5e6-96231b3b80d8

commit 199402b9e081dedc28e19ab6e727470b34f2f64d
Author: Bill Schmidt <wschmidt@linux.vnet.ibm.com>
Date:   Fri Feb 1 02:14:03 2013 +0000

    Enable -fno-altivec, -mno-altivec for PowerPC.

    Introduces these negation forms explicitly and uses them to control a new
    "altivec" target feature for PowerPC.  This allows avoiding generating
    Altivec instructions on processors that support Altivec.

    The new test case verifies that the Altivec "lvx" instruction is not
    used when -fno-altivec is present on the command line.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174140 91177308-0d34-0410-b5e6-96231b3b80d8

commit a31f65b10e61ca8f2f427b1df176c10ea8a0efa2
Author: Michael Han <fragmentshaders@gmail.com>
Date:   Fri Feb 1 01:19:17 2013 +0000

    [Sema][Attr]Fix alignment attribute printing.

    Remove "IsMSDeclspec" argument from Align attribute since the arguments in Attr.td should
    only model those appear in source code. Introduce attribute Accessor, and teach TableGen
    to generate syntax kind accessors for Align attribute, and use those accessors to decide
    if an alignment attribute is a declspec attribute.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174133 91177308-0d34-0410-b5e6-96231b3b80d8

commit a55e3ff9cbb5ccf338abd15d60970d9655e46d55
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Feb 1 00:45:12 2013 +0000

    Consistently format sample diagnostics on this page.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174126 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6307be331ef84cb44aca1066c829e91b61aa6371
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Feb 1 00:17:45 2013 +0000

    clang/test/Index/headerfile-comment-to-html.m: Try to unbreak libxml2-less hosts to eliminate "CommentXMLValid".

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174124 91177308-0d34-0410-b5e6-96231b3b80d8

commit e1ebedf46e2a08635d08da093c31100e95ea9875
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Thu Jan 31 23:31:14 2013 +0000

    Comment parsing: add more comments to CommentCommands.td

    I hope the ASCII art delimiters are OK, since they group *groups* of commands --
    that is really helpful.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174114 91177308-0d34-0410-b5e6-96231b3b80d8

commit 17d15f3c3dad45f6df8034c9ea3e3c8ff466076c
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Thu Jan 31 23:20:06 2013 +0000

    Escape backslash in the comment.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174112 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5e31474b9c8348e8d0404264ae6a8775e34df6ac
Author: Bill Wendling <isanbard@gmail.com>
Date:   Thu Jan 31 23:17:12 2013 +0000

    Update the tests.

    This update coincides with r174110. That change ordered the attributes
    alphabetically.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174111 91177308-0d34-0410-b5e6-96231b3b80d8

commit f843a580c4a54ca147f22422ee8ccfd2347784fc
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Jan 31 23:12:39 2013 +0000

    [Comment parsing] Add support for recognizing
    \headerfile command and representing it in an xml
    document. Patch reviewed by Dmitri Gribenko.
    // rdar://12397511

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174109 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0217b1d045ea99fe792e83ed1a785816289dd53c
Author: Anna Zaks <ganna@apple.com>
Date:   Thu Jan 31 22:36:17 2013 +0000

    [analyzer]RetainCount: Fix an autorelease related false positive.

    The Cnt variable is adjusted (incremented) for simplification of
    checking logic. The increment should not be stored in the state.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174104 91177308-0d34-0410-b5e6-96231b3b80d8

commit e36d81b1eeab13fb1bbd15291d009a1699de6ec1
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Jan 31 22:06:02 2013 +0000

    [analyzer] Don't track autorelease pools created by +new.

    This matches our behavior for autorelease pools created by +alloc. Some
    people like to create autorelease pools in one method and release them
    somewhere else.

    If you want safe autorelease pool semantics, use the new ARC-compatible
    syntax: @autoreleasepool { ... }

    <rdar://problem/13121353>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174096 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0ed439487491e09faffdbabfacb1d050292c7723
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Jan 31 19:48:48 2013 +0000

    Lexer: Don't warn about Unicode in preprocessor directives.

    This allows people to use Unicode in their #pragma mark and in macros
    that exist only to be string-ized.

    <rdar://problem/13107323&13121362>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174081 91177308-0d34-0410-b5e6-96231b3b80d8

commit 98b21b9fcef25fc6953ce36b4c71ca2c02999f1d
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Jan 31 19:26:01 2013 +0000

    Preprocessor: initialize member introduced in r173881.

    Compilation always sets this explicitly, but creating a preprocessor
    manually should still put the 'IsPreprocessedOutput' flag in a valid state.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174077 91177308-0d34-0410-b5e6-96231b3b80d8

commit b450161ce8dafa90f910ce6004900337615cd5e3
Author: Alexander Kornienko <alexfh@google.com>
Date:   Thu Jan 31 19:05:31 2013 +0000

    Reverted unintendedly-committed file.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174076 91177308-0d34-0410-b5e6-96231b3b80d8

commit d22674446d2eb5545f927b7e3a04616e7407fadc
Author: Alexander Kornienko <alexfh@google.com>
Date:   Thu Jan 31 19:03:16 2013 +0000

    Micro-change: moved a brace for better readability

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174075 91177308-0d34-0410-b5e6-96231b3b80d8

commit 33e83b6cf776875be5716d214710717a898325c0
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Jan 31 18:04:03 2013 +0000

    Revert "[analyzer] Model trivial copy/move ctors with an aggregate bind."

    It's causing hangs on our internal analyzer buildbot. Will restore after
    investigating.

    This reverts r173951 / baa7ca1142990e1ad6d4e9d2c73adb749ff50789.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174069 91177308-0d34-0410-b5e6-96231b3b80d8

commit ce76d655d7c99f515bea37611395423026e0e513
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Jan 31 16:01:13 2013 +0000

    clang/test/Index/skip-parsed-bodies/compile_commands.json: Mark it as XFAIL:mingw32, for now.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174064 91177308-0d34-0410-b5e6-96231b3b80d8

commit bd04f2aa2247f2fda3fd8f3fee90479ba2c94499
Author: Manuel Klimek <klimek@google.com>
Date:   Thu Jan 31 15:58:48 2013 +0000

    Never break inside something that was a preprocessor directive.

    Just put it in one unwrapped line and let the formatter handle it.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174063 91177308-0d34-0410-b5e6-96231b3b80d8

commit f343cabb68d495041706b8e2f1ed48fbac3cba06
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Jan 31 14:59:26 2013 +0000

    Several improvements to the formatting of static initializers.

    1. Never avoid bin packing in static initializers as this can
       lead to terrible results.
    2. If an element has to be broken over multiple lines, break after
       the following comma.

    This should be a step forward, but there are still many cases
    especially with nested static initializers that we handle badly.
    More patches will follow.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174061 91177308-0d34-0410-b5e6-96231b3b80d8

commit 335078b0ffa844a963fdebab58b80f645ba32088
Author: Evgeniy Stepanov <eugeni.stepanov@gmail.com>
Date:   Thu Jan 31 14:27:38 2013 +0000

    Attempt to fix Windows build breakage.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174060 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4d0e9f58076037d84a7da0b407c3de8f76a9d552
Author: Manuel Klimek <klimek@google.com>
Date:   Thu Jan 31 13:10:40 2013 +0000

    Move commonly useful code for AST testing into MatchVerfier.h.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174057 91177308-0d34-0410-b5e6-96231b3b80d8

commit c264e16a42b3f6c36521857a29ea0949d9781c22
Author: Tim Northover <Tim.Northover@arm.com>
Date:   Thu Jan 31 12:13:10 2013 +0000

    Add support for AArch64 target.

    In cooperation with the LLVM patch, this should implement all scalar front-end
    parts of the C and C++ ABIs for AArch64.

    This patch excludes the NEON support also reviewed due to an outbreak of
    batshit insanity in our legal department. That will be committed soon bringing
    the changes to precisely what has been approved.

    Further reviews would be gratefully received.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174055 91177308-0d34-0410-b5e6-96231b3b80d8

commit 903ef044e5fe8efe5d06f63945f903ae81a262fd
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Jan 31 11:30:17 2013 +0000

    Revert r174043 and tweak the comment wording so I'm (hopefully) not confused by it again!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174053 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8c84028ed9aa0dfd54ab729dee78f29c961d7f37
Author: Enea Zaffanella <zaffanella@cs.unipr.it>
Date:   Thu Jan 31 09:54:08 2013 +0000

    Added outer template parameter lists to friend type AST nodes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174050 91177308-0d34-0410-b5e6-96231b3b80d8

commit a8d3904ffa613406ffacec5662c782c9269e5241
Author: Evgeniy Stepanov <eugeni.stepanov@gmail.com>
Date:   Thu Jan 31 09:53:29 2013 +0000

    [msan] Run more optimizations after MemorySanitizer pass.

    MSan instrumentation is driven by the original code. We take every
    incoming instruction and emit another instruction (or ten) next to
    it, operating on the shadow values (but sometimes on the real values,
    too). Two programs in one, essentially. There can be any kinds of
    redundancies in the second one, so we just run whatever is normally
    run at -O2, and then exclude some passes that do not help much with
    benchmarks.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174049 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5917e2200106b6be70c2663824aec0ab6b1b1955
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Jan 31 06:13:11 2013 +0000

    Remove incorrect warning signs from QualType::getUnqualifiedType(). These
    statements were only true for 65 CLs after they were introduced two years ago.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174043 91177308-0d34-0410-b5e6-96231b3b80d8

commit 378e1e739aed97e9b278beeb20e9f5bbe34c0232
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Jan 31 05:50:40 2013 +0000

    When we're emitting a constructor or destructor call from a delegating
    constructor, retrieve our VTT parameter directly. Fixes PR14588 /
    <rdar://problem/12867962>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174042 91177308-0d34-0410-b5e6-96231b3b80d8

commit 29805ca6d278b4d9563adfee67f2478f0fecdcfc
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Jan 31 05:19:49 2013 +0000

    Improve 'failed template argument deduction' diagnostic for the case where we
    have a direct mismatch between some component of the template and some
    component of the argument. The diagnostic now says what the mismatch was, but
    doesn't yet say which part of the template doesn't match.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174039 91177308-0d34-0410-b5e6-96231b3b80d8

commit 626799b2903a2ab7f58ed82f10153bad4e0f1b7f
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Jan 31 05:03:46 2013 +0000

    When code completing in a statement, parenthesized expression, or
    Objective-C message receiver, the user is as likely to want to write a
    type name as any other declaration, so give types the same priority as
    other declarations. Fixes <rdar://problem/12480600>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174038 91177308-0d34-0410-b5e6-96231b3b80d8

commit d1f09b482b3874be07dfe9dd24bfad98915989c3
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Jan 31 04:52:16 2013 +0000

    Allow the computation of the base priority for a declaration code completion result to consider the completion context

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174037 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0efa62f2096f28a610ac2ea8d2651448a7ec89c7
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Jan 31 04:03:12 2013 +0000

    Replace "failed template argument deduction" diagnostic with something useful
    in the one case where we've already factored out a reason code.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174036 91177308-0d34-0410-b5e6-96231b3b80d8

commit 995e26b0523ac8e3b6199a509b871b81fa5df6ee
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Thu Jan 31 03:23:57 2013 +0000

    Remove elements from Sema.UndefinedInternals as functions are defined. Also
    filter the elements before emitting them into a PCH. No user-visible
    functionality change, except that PCH files may be smaller?

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174034 91177308-0d34-0410-b5e6-96231b3b80d8

commit 869709c06eefd1d756ae4290646d4412103697bd
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Thu Jan 31 03:15:20 2013 +0000

    Fix grammar in comment.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174033 91177308-0d34-0410-b5e6-96231b3b80d8

commit f2705196d83a162665d4350bf3bb464972974ee3
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Jan 31 03:11:12 2013 +0000

    Clarify the diagnostic for -Wnested-anon-types.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174032 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0e450cbd94e5936fdecf42b810069e7becd3938d
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Jan 31 02:57:06 2013 +0000

    [analyzer] If a lazy binding is undefined, pretend that it's unknown instead.

    This is a hack to work around the fact that we don't track extents for our
    default bindings:

      CGPoint p;
      p.x = 0.0;
      p.y = 0.0;
      rectParam.origin = p;
      use(rectParam.size); // warning: uninitialized value in rectParam.size.width

    In this case, the default binding for 'p' gets copied into 'rectParam',
    because the 'origin' field is at offset 0 within CGRect. From then on,
    rectParam's old default binding (in this case a symbol) is lost.

    This patch silences the warning by pretending that lazy bindings are never
    made from uninitialized memory, but not only is that not true, the original
    default binding is still getting overwritten (see FIXME test cases).
    The long-term solution is tracked in <rdar://problem/12701038>

    PR14765 and <rdar://problem/12875012>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174031 91177308-0d34-0410-b5e6-96231b3b80d8

commit f499b34d4911dda3b20ede1377ea29b83d3f149e
Author: Richard Trieu <rtrieu@google.com>
Date:   Thu Jan 31 02:47:46 2013 +0000

    When comparing two template template arguments in the template differ, consider
    them the same if they are actually the same; having the same name isn't enough.

    Similar to r174013, template template arguments were also mistakenly considered
    the same when they had the same name but were in different namespaces.
    In addition, when printing template template arguments, use the qualified name
    if the regular name is the same.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174029 91177308-0d34-0410-b5e6-96231b3b80d8

commit 95f97bf07a1811d020cbdcaa51d6e25752a4bd37
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Jan 31 02:04:38 2013 +0000

    Fix -Wcovered-switch-default and -Wunused-private-field warnings.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174025 91177308-0d34-0410-b5e6-96231b3b80d8

commit e8d411997899a87e1a9f63ad3f52b38e7931687c
Author: Richard Trieu <rtrieu@google.com>
Date:   Thu Jan 31 01:44:26 2013 +0000

    Add indents to AST dumping and removed parenthesis from AST nodes.
    Indents were given the color blue when outputting with color.
    AST dumping now looks like this:

    Node
    |-Node
    | `-Node
    `-Node
      `-Node

    Compared to the previous:

    (Node
      (Node
        (Node))
      (Node
        (Node)))

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174022 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4ceaf337be78fa89b4a97f351be6d0bda962d7de
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Thu Jan 31 01:34:31 2013 +0000

    Fix ODR-use of a MemberExpr to check before marking a pure function used. Remove
    a workaround for this bug from the -Wundefined-internals warning.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174020 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5255f27362ffbfedea889870bf8d5812dae97553
Author: Anna Zaks <ganna@apple.com>
Date:   Thu Jan 31 01:19:52 2013 +0000

    [analyzer] Fix a bug in region store that lead to undefined value false
    positives.

    The includeSuffix was only set on the first iteration through the
    function, resulting in invalid regions being produced by getLazyBinding
    (ex: zoomRegion.y).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174016 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7ba96aed23906c20c48a388ce10212e81174827c
Author: Matt Beaumont-Gay <matthewbg@google.com>
Date:   Thu Jan 31 01:15:55 2013 +0000

    Sometimes ld is just ld.

    Don't expect a character between the double-quotes and 'ld'.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174015 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1166723df8af0f062c3f6d473d8ae7bb2b64e572
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Jan 31 01:08:35 2013 +0000

    When comparing two templates in the template differ, consider them the
    same if they are actually the same; having the same name isn't
    enough. Fixes <rdar://problem/12931988>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174013 91177308-0d34-0410-b5e6-96231b3b80d8

commit c4c62fd78a4728c9e4d4df14911a2ced9bdd2031
Author: Bill Wendling <isanbard@gmail.com>
Date:   Thu Jan 31 00:30:05 2013 +0000

    Make sure that the Attribute object represents one attribute only.

    Several places were still treating the Attribute object as respresenting
    multiple attributes. Those places now use the AttributeSet to represent
    multiple attributes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174004 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3e55e3e9f5e89c0cd433f6c01e0b067911228612
Author: Matt Beaumont-Gay <matthewbg@google.com>
Date:   Thu Jan 31 00:08:03 2013 +0000

    Fix unused variable warnings in -asserts build

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173996 91177308-0d34-0410-b5e6-96231b3b80d8

commit 40f56e5b677761c8258324222d62fce3e4f6bca4
Author: Douglas Gregor <dgregor@apple.com>
Date:   Wed Jan 30 23:10:17 2013 +0000

    Reinstate r173952, this time limiting it to exactly the form

      #define X X

    for which there is no point warning, ever.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173991 91177308-0d34-0410-b5e6-96231b3b80d8

commit 91165e74c8b480c1da3a719d764f4fa0e7b1b921
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Jan 30 22:14:15 2013 +0000

    Diagnostics: Clarify name of line-length-limiting constant in r173976.

    Thanks, Sean.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173981 91177308-0d34-0410-b5e6-96231b3b80d8

commit 566f06311f315087a27e882aafc05cb505912c27
Author: Filipe Cabecinhas <me@filcab.net>
Date:   Wed Jan 30 22:03:24 2013 +0000

    Changed to static_cast, due to post-commit review.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173980 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8f1fa25a9e9f3fa4f2d7ecc0a08ebb08c0c4e642
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Wed Jan 30 21:54:20 2013 +0000

    TableGen backends: use emitSourceFileHeader() to emit the warning about
    file contents being autogenerated

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173979 91177308-0d34-0410-b5e6-96231b3b80d8

commit 825648a9e2de81f58e425690c2f4bd50404fa433
Author: Filipe Cabecinhas <me@filcab.net>
Date:   Wed Jan 30 21:50:21 2013 +0000

    Cast to remove the narrowing conversion error in c++11.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173978 91177308-0d34-0410-b5e6-96231b3b80d8

commit f6e74a35e0c0e53b2e65fc9fe86f8e4cadcca473
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Jan 30 21:41:07 2013 +0000

    Diagnostics: if a line is longer than 4096 characters, don't print it.

    Specifically, don't print snippets, caret diagnostics, or ranges for
    lines over 4096 characters. We copy the line around a few times in our
    diagnostics machinery, and we have to print a caret line that's just as
    long. This uses a lot of memory just to create a poor user experience as
    we print out a line much too long for anyone to read...or spend extra
    energy trying to fit it to -fmessage-length.

    <rdar://problem/13106850>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173976 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1a1c82e1530e834cceab58fa51ff5e356e260641
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Jan 30 20:42:17 2013 +0000

    Revert "[preprocessor] Don't warn about "disabled expansion of recursive macro""

    This reverts commit r173952

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173970 91177308-0d34-0410-b5e6-96231b3b80d8

commit 877761c56d850a6cc5f9246bf248c8a4dc2b0554
Author: Richard Trieu <rtrieu@google.com>
Date:   Wed Jan 30 20:04:31 2013 +0000

    Handle passing non-Qualtypes to %diff better.  Instead of asserting, fall back
    to printing the default case.  This is a fix for PR15023.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173965 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7564bcca9f2a56bdbde3c6788d3f09cca0d8e312
Author: Tanya Lattner <tonic@nondot.org>
Date:   Wed Jan 30 19:48:52 2013 +0000

    Add OpenCL error that a kernel function must have void return type. Includes a test case.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173963 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1b6b31db169b66fb2048012b0ec1550c22cc64f4
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Jan 30 19:29:14 2013 +0000

    Fix comment in test/Lexer/utf8-invalid.c for updates in r173959.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173961 91177308-0d34-0410-b5e6-96231b3b80d8

commit 20afc2977cd0a6bacbe6218a633cd59a24463e2f
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Jan 30 19:21:12 2013 +0000

    Fix r173881 to properly skip invalid UTF-8 characters in raw lexing and -E.

    This caused hangs as we processed the same invalid byte over and over.

    <rdar://problem/13115651>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173959 91177308-0d34-0410-b5e6-96231b3b80d8

commit ac3a3e7a402cd349dd2b7d70cd92c5fe702ae831
Author: Anna Zaks <ganna@apple.com>
Date:   Wed Jan 30 19:12:39 2013 +0000

    [analyzer] Make shallow mode more shallow.

    Redefine the shallow mode to inline all functions for which we have a
    definite definition (ipa=inlining). However, only inline functions that
    are up to 4 basic blocks large and cut the max exploded nodes generated
    per top level function in half.

    This makes shallow faster and allows us to keep inlining small
    functions. For example, we would keep inlining wrapper functions and
    constructors/destructors.

    With the new shallow, it takes 104s to analyze sqlite3, whereas
    the deep mode is 658s and previous shallow is 209s.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173958 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6bbe1442a5f3f5f761582a9005e9edf1d49c4da2
Author: Anna Zaks <ganna@apple.com>
Date:   Wed Jan 30 19:12:36 2013 +0000

    [analyzer] Use analyzer config for max-inlinable-size option.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173957 91177308-0d34-0410-b5e6-96231b3b80d8

commit 86ff12c8a8a356ca284ca7687749216fbfd74519
Author: Anna Zaks <ganna@apple.com>
Date:   Wed Jan 30 19:12:34 2013 +0000

    [analyzer] Move report false positive suppression to report visitors.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173956 91177308-0d34-0410-b5e6-96231b3b80d8

commit ce32890df08387b50a960f785da79ac5582b7f74
Author: Anna Zaks <ganna@apple.com>
Date:   Wed Jan 30 19:12:26 2013 +0000

    [analyzer] Remove further references to analyzer-ipa.

    Thanks Jordan!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173955 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1afc201e644ce6379b115b1fae0608dee1b0ab5f
Author: Ted Kremenek <kremenek@apple.com>
Date:   Wed Jan 30 19:10:24 2013 +0000

    scan-build: When using Xcode 4.6, use build settings for doing proper build interposition.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173954 91177308-0d34-0410-b5e6-96231b3b80d8

commit 16bdd3b98e40a5a04705d399b90ddd88babd1c3d
Author: Ted Kremenek <kremenek@apple.com>
Date:   Wed Jan 30 19:10:21 2013 +0000

    Hoist retrieval of Expr* into caller.  No functionality change.

    Just makes the code a little cleaner, and easier to reason about.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173953 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8d3f6133da9abb58cf05d55f7b8d86dd00257832
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Jan 30 18:55:52 2013 +0000

    [preprocessor] Don't warn about "disabled expansion of recursive macro"
    for "#define X X".

    This is a pattern that, for example, stdbool.h uses.
    rdar://12435773

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173952 91177308-0d34-0410-b5e6-96231b3b80d8

commit baa7ca1142990e1ad6d4e9d2c73adb749ff50789
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Jan 30 18:16:06 2013 +0000

    [analyzer] Model trivial copy/move ctors with an aggregate bind.

    This is faster for the analyzer to process than inlining the constructor
    and performing a member-wise copy, and it also solves the problem of
    warning when a partially-initialized POD struct is copied.

    Before:
      CGPoint p;
      p.x = 0;
      CGPoint p2 = p; <-- assigned value is garbage or undefined

    After:
      CGPoint p;
      p.x = 0;
      CGPoint p2 = p; // no-warning

    This matches our behavior in C, where we don't see a field-by-field copy.

    <rdar://problem/12305288>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173951 91177308-0d34-0410-b5e6-96231b3b80d8

commit 74149595de064572661d10f736c6cb2eda78db8d
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Wed Jan 30 17:58:39 2013 +0000

    Documentation: fix escaping in JSON example

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173950 91177308-0d34-0410-b5e6-96231b3b80d8

commit d96d949cad87c7650300f74487e81a714f4df49a
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Wed Jan 30 17:58:14 2013 +0000

    Documentation: add a link to Bear, a tool to help with JSON DB

    Patch by Laszlo Nagy

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173949 91177308-0d34-0410-b5e6-96231b3b80d8

commit 19e448df800048314d2f54487c48a3b33231e291
Author: James Dennett <jdennett@google.com>
Date:   Wed Jan 30 17:53:07 2013 +0000

    Documentation: fix link to ExecuteAction(), which was previously typoed as
    "ExecutionAction()".

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173948 91177308-0d34-0410-b5e6-96231b3b80d8

commit f494e4814010885dbe6abac705244fecae905b40
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Wed Jan 30 14:44:47 2013 +0000

    Comment parsing: fold named character references test into other HTML tests

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173934 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5bd1e5ba000023910ad986a16dd16d7ca914750a
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Wed Jan 30 14:29:28 2013 +0000

    Comment parsing: resolve more named character references

    This reimplements r173850 with a better approach:
    (1) use a TableGen-generated matcher instead of doing a linear search;
    (2) avoid allocations for new strings by converting code points to string
        iterals with TableGen.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173931 91177308-0d34-0410-b5e6-96231b3b80d8

commit b1c760ea2a7831100da5a9ed64291b34df0ddbe0
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Wed Jan 30 12:40:40 2013 +0000

    Revert unintended change

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173927 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3862d76fb745dc21665da501c19658fca32e9f25
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Wed Jan 30 12:17:33 2013 +0000

    Index/special-html-characters.m: mark this as XFAIL for valgrind

    Fix is being discussed on cfe-dev.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173925 91177308-0d34-0410-b5e6-96231b3b80d8

commit cb5620c9b213f4bd323912159fdddda35e258a14
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Wed Jan 30 12:06:08 2013 +0000

    Move UTF conversion routines from clang/lib/Basic to llvm/lib/Support

    This is required to use them in TableGen.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173924 91177308-0d34-0410-b5e6-96231b3b80d8

commit e1ac4aec0d30d2d81876e555017e727cc374ff5e
Author: Tim Northover <Tim.Northover@arm.com>
Date:   Wed Jan 30 09:46:55 2013 +0000

    Also promote fp16 types to double when they're anonymous variadic arguments.

    __fp16 isn't covered by the standard, but this resolves the oddity that float
    gets promoted when passed variadically, but not the smaller type. This is
    required by the AArch64 ABI, and a sane action elsewhere.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173918 91177308-0d34-0410-b5e6-96231b3b80d8

commit afcbd859f839db4133311147c1bc7db29dfaea10
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Jan 30 09:46:12 2013 +0000

    Don't generate no-op replacements.

    No functional changes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173916 91177308-0d34-0410-b5e6-96231b3b80d8

commit 31aa57715090f29f9ad67e2e5c1fb528fc633563
Author: Douglas Gregor <dgregor@apple.com>
Date:   Wed Jan 30 07:11:43 2013 +0000

    Add "instancetype" as a code completion result for the return type of
    an Objective-C method. Fixes <rdar://problem/13069990>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173905 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5824b803bb964247d2633ae893af409f915c80b1
Author: Douglas Gregor <dgregor@apple.com>
Date:   Wed Jan 30 06:58:39 2013 +0000

    The instance methods of the root class of an Objective-C hieararchy
    can be messaged via the metaclass. Provide code completions for this
    case. Fixes <rdar://problem/12560296>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173903 91177308-0d34-0410-b5e6-96231b3b80d8

commit 48cb74adac0acb5681ba12e9202adc1d9cb2d523
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Jan 30 06:33:54 2013 +0000

    C11: Provide the missing half of <stdalign.h>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173900 91177308-0d34-0410-b5e6-96231b3b80d8

commit e6738d81680aa9bb94ab386d29d4118fed01673d
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Jan 30 06:27:44 2013 +0000

    Fix test failure from previous change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173899 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7586a6e6b7d79d4be031d2d0d6a35d5996cd0db9
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Jan 30 05:45:05 2013 +0000

    Semantic analysis and CodeGen support for C11's _Noreturn. This is modeled as
    an attribute for consistency with our other noreturn mechanisms.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173898 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4874a8143dc3032205f97527ff619730db3d1f57
Author: Alexander Kornienko <alexfh@google.com>
Date:   Wed Jan 30 03:49:44 2013 +0000

    Don't warn on fall-through from unreachable code.

    Summary:
    A motivating example:
    class ClassWithDtor {
    public:
      ~ClassWithDtor() {}
    };
    void fallthrough3(int n) {
      switch (n) {
        case 2:
          do {
            ClassWithDtor temp;
            return;
          } while (0);  // This generates a chain of unreachable CFG blocks.
        case 3:
          break;
      }
    }

    Reviewers: rsmith, doug.gregor, alexfh

    Reviewed By: alexfh

    CC: cfe-commits

    Differential Revision: http://llvm-reviews.chandlerc.com/D330

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173889 91177308-0d34-0410-b5e6-96231b3b80d8

commit e28f6abf588f51a21d1db638e460f9c086c08db4
Author: Douglas Gregor <dgregor@apple.com>
Date:   Wed Jan 30 02:10:08 2013 +0000

    Unresolved lookups can have using declarations that refer to
    unresolved using declarations. Fixes PR14768 / <rdar://problem/13030296>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173883 91177308-0d34-0410-b5e6-96231b3b80d8

commit 74c2498bb9e339345ee32bdd095e76157cec3b86
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Jan 30 01:52:57 2013 +0000

    Don't warn about Unicode characters in -E mode.

    People use the C preprocessor for things other than C files. Some of them
    have Unicode characters. We shouldn't warn about Unicode characters
    appearing outside of identifiers in this case.

    There's not currently a way for the preprocessor to tell if it's in -E mode,
    so I added a new flag, derived from the PreprocessorOutputOptions. This is
    only used by the Unicode warnings for now, but could conceivably be used by
    other warnings or even behavioral differences later.

    <rdar://problem/13107323>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173881 91177308-0d34-0410-b5e6-96231b3b80d8

commit d9bf41893c3a59d5ea33e7b04b0e6211f7dca201
Author: David Blaikie <dblaikie@gmail.com>
Date:   Wed Jan 30 01:43:36 2013 +0000

    [Sema] Constrain test added in r173873 with expected-error-re

    Suggested in post-commit review by Richard Smith.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173880 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1d87fbaeea4a9fbbd73b3a53641f59f1673098e5
Author: David Blaikie <dblaikie@gmail.com>
Date:   Wed Jan 30 01:22:18 2013 +0000

    Provide a fixit for constexpr non-static data members.

    If the member has an initializer, assume it was probably intended to be static
    and suggest/recover with that.

    If the member doesn't have an initializer, assume it was probably intended to
    be const instead of constexpr and suggest that.

    (if the attempt to apply these changes fails, don't make any suggestion &
    produce the same diagnostic experience as before. The only case where this can
    come up that I know of is with a mutable constexpr with an initializer, since
    mutable is incompatible with static (but it's already incompatible with
    const anyway))

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173873 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7adf4179f827b14b025135829dadeaa2442e1d42
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Jan 30 01:12:44 2013 +0000

    c: When checking on validity of sizeof passed as size of
    argument to be memset, check for its type to be complete
    before calling Context.getTypeSize(PointeeTy) to prevent
    crash. // rdar://13081751.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173872 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9cd90a23f75d213a37740555626f18d3bb9e540b
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Wed Jan 30 01:06:03 2013 +0000

    [Frontend] Factor AddUnmappedPath() out of AddPath() and simplify.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173871 91177308-0d34-0410-b5e6-96231b3b80d8

commit 59fd63581d6d572f23e82e81a50e0b940c8d1089
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Wed Jan 30 00:34:26 2013 +0000

    [Frontend] Remove HeaderSearchOptions::Entry::IsInternal, which is unused.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173866 91177308-0d34-0410-b5e6-96231b3b80d8

commit e87edbd0561960a14d5d9b927dd47d4e4bf9196c
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Wed Jan 30 00:21:41 2013 +0000

    clang/test/Driver/asan-ld.c: Try not to mismatch temporary file, like "tmpkcfdld".

    If we had the regular expression "\b" in FileCheck like Perl...

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173861 91177308-0d34-0410-b5e6-96231b3b80d8

commit d09436c724baa1b11804d60e286ec0b9124489ee
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Wed Jan 30 00:20:43 2013 +0000

    [Frontend] Remove actual ImplicitExternC member variable.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173860 91177308-0d34-0410-b5e6-96231b3b80d8

commit ef84554239d77cc52a14b42f2bff8c2d02e7630e
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Wed Jan 30 00:19:24 2013 +0000

    [Frontend] Add an ExternCSystem include entry group.

     - The only group where it makes sense for the "ExternC" bit is System, so this
       simplifies having to have the extra isCXXAware (or ImplicitExternC, depending
       on what code you talk to) bit caried around.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173859 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4b1a0e4ab6648894c63bffe8564a669c1df3d683
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Jan 30 00:10:09 2013 +0000

    Removed couple of html named character references in
    my last patch.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173856 91177308-0d34-0410-b5e6-96231b3b80d8

commit c33c9f7a9a955463b3418afd461774c726913800
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Tue Jan 29 23:59:45 2013 +0000

    [Frontend] Make the include dir group independent from the "use sysroot" bit.

     - This slightly decouples the path handling, since before the group sometimes
       dominated the "use sysroot" bit, but it was still passed in via the API.

     - No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173855 91177308-0d34-0410-b5e6-96231b3b80d8

commit f85541c812af87e54b6738d22611721692ccdcb0
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Tue Jan 29 23:59:43 2013 +0000

    [Frontend] Rename a member variable to clarify its intent.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173854 91177308-0d34-0410-b5e6-96231b3b80d8

commit 49ffaeff757daa79dc5bf73d4c1ad7dd856aa77f
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Tue Jan 29 23:59:37 2013 +0000

    [Frontend] Factor out helper function, for clarity.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173853 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8425a5413b437a0b6ac04c475e7cf54cc9977880
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Jan 29 23:57:10 2013 +0000

    [driver] Clear the FailureResultFiles when initializing clang diagnostics. Also,
    minor cleanup.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173852 91177308-0d34-0410-b5e6-96231b3b80d8

commit 658a115c8e0d5bddf607a13d2ce13cd306ef2389
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Jan 29 23:42:26 2013 +0000

    [Doc parsing] Patch to parse Doxygen-supported HTML character
    references to their UTIF-8 encoding. Reviewed offline by Doug.
    // rdar://12392215

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173850 91177308-0d34-0410-b5e6-96231b3b80d8

commit 78d85b1c5830a881c0a20a1b3fea99ee73149590
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Jan 29 23:31:22 2013 +0000

    [ubsan] Implement the -fcatch-undefined-behavior flag using a trapping
    implementation; this is much more inline with the original implementation
    (i.e., pre-ubsan) and does not require run-time library support.

    The trapping implementation can be invoked using either '-fcatch-undefined-behavior'
    or '-fsanitize=undefined-trap -fsanitize-undefined-trap-on-error', with the latter
    being preferred.  Eventually, the -fcatch-undefined-behavior' flag will be removed.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173848 91177308-0d34-0410-b5e6-96231b3b80d8

commit 13e42fb10b225cb3eed7e6e4c6bbe2fff1127407
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Jan 29 23:03:22 2013 +0000

    clang/test/Index/getcursor-preamble.m: Formatting.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173844 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3832fbb6f6e83d2e1342309efa67ee84c54703db
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Jan 29 23:03:16 2013 +0000

    clang/test/Index/getcursor-preamble.m: Tweak for win32. env(1) is required to change variables locally.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173843 91177308-0d34-0410-b5e6-96231b3b80d8

commit a367e9de80eb05e78f06dc35c1e050799e735282
Author: David Blaikie <dblaikie@gmail.com>
Date:   Tue Jan 29 22:26:08 2013 +0000

    Move -Wstatic-float-init fixit into a note & don't recover as if constexpr

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173841 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6933e3b037fcb15b68f41d2b91ee01db45a2d43a
Author: David Blaikie <dblaikie@gmail.com>
Date:   Tue Jan 29 21:40:37 2013 +0000

    Don't fixit/recover from -Wstatic-float-init when it's not an error.

    Fix to change r173414 that lead to Clang changing const to constexpr even under
    -Wno-static-float-init.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173835 91177308-0d34-0410-b5e6-96231b3b80d8

commit 32d28ee6061930b2a9c170cbaaeea028c88a7b89
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Jan 29 21:01:14 2013 +0000

    Move the token annotator into separate files.

    No functional changes. Also removed experimental-warning from all of
    clang-format's files, as it is no longer accurate.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173830 91177308-0d34-0410-b5e6-96231b3b80d8

commit fcf896078e58aeb7adecb1a0ae5c8e0052b17f9f
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Jan 29 20:28:24 2013 +0000

    [Preprocessor] When checking if we can concatenate two tokens, check
    if they were already concatenated in source using the spelling locations
    even if they came from a macro expansion.

    This fixes an issue where a GUID passed as macro argument ends up
    malformed after preprocessing because we added spaces inside it.

    rdar://13016645

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173826 91177308-0d34-0410-b5e6-96231b3b80d8

commit a16355c31878403443f99077cc8df8318457faf5
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Jan 29 20:15:05 2013 +0000

    [driver] Refactor the driver so that a failing commands doesn't prevent
    subsequent commands from being executed.

    The diagnostics generation isn't designed for this use case, so add a note to
    fix this in the very near future.  For now, just generated the diagnostics for
    the first failing command.
    Part of rdar://12984531

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173825 91177308-0d34-0410-b5e6-96231b3b80d8

commit d4f2c2e21addd8ed0a50b92f062d3229cde0506a
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Jan 29 19:41:55 2013 +0000

    Improve formatting of code with comments.

    Before:
    aaaaaaa(aaaaaa( // comment
                    aaaaaaa));
    <big mess>

    After:
    aaaaaaa(aaaaaa( // comment
        aaaaaaaa));
    function(/* parameter 1 */ aaaaaaa,
             /* parameter 2 */ aaaaaaa,
             /* parameter 3 */ aaaaaaa,
             /* parameter 4 */ aaaaaaa);

    (the latter example was only wrong in the one-arg-per-line mode, e.g. in
    Google style).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173821 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3d207e76a1c7ece5deec3d6ee35af04fe7f6212e
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Jan 29 18:00:54 2013 +0000

    Mark a struct definition in an objc container with the TopLevelDeclInObjCContainer bit.

    Fixes accurately getting a cursor inside an objc container containing a struct definition,
    from a PCH/preamble file.

    rdar://12584613

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173811 91177308-0d34-0410-b5e6-96231b3b80d8

commit f1579605adf03f94a2ddddc95c764737ead0efe5
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Jan 29 16:03:49 2013 +0000

    Allow all parameters on next line for function calls in Chrome.

    The style guide only forbids this for function declarations. So,
    now

    someFunction(
        aaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaa, aaaaaaaaaaaa);

    Is allowed in Chromium mode.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173806 91177308-0d34-0410-b5e6-96231b3b80d8

commit f40fb4beaa22b4e53cd8b5319836b361ebfa6c62
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Jan 29 15:19:38 2013 +0000

    Split ">>" in "A<B<C> >" in Chromium style.

    It needs to be compatible with C++03.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173805 91177308-0d34-0410-b5e6-96231b3b80d8

commit b3109e35d75a543d167906384347c017812e5dbf
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Jan 29 15:15:59 2013 +0000

    Fix uninitialized error caused by r173801.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173803 91177308-0d34-0410-b5e6-96231b3b80d8

commit a52d278f0fbac83fa26a03948759cce467d8e55b
Author: Joey Gouly <joey.gouly@arm.com>
Date:   Tue Jan 29 15:09:40 2013 +0000

    Fix a crash in OpenCL code by using the proper (RHS) bit-width.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173802 91177308-0d34-0410-b5e6-96231b3b80d8

commit adc6aba07293928122629e9d8a91a37144254831
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Jan 29 15:03:01 2013 +0000

    Calculate the split penalty upfront.

    This is
    a) More efficient.
    b) Important as we move forward with further metrics for penalty.

    No functional changes intended.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173801 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1a1ce8330ba3248e36615adef3759ad22fc18c8d
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Jan 29 11:27:30 2013 +0000

    Fix a comment and reformat clang-format with clang-format

    Not all changes might be ideal, but IMO all are acceptable.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173793 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2e60377273fb451587a60209997148480754b9fa
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Jan 29 11:21:01 2013 +0000

    Initial support for multiple variable declarations.

    Before:
      SomeType aaaaaaaaaaaaaaaaa = aaaaaa->aaaaaaaaaaaaaaaaa(),
          aaaaaaaaaaa = aaaaaa->aaaaaaaaaaa();
    After:
      SomeType aaaaaaaaaaaaaaaaa = aaaaaa->aaaaaaaaaaaaaaaaa(),
               aaaaaaaaaaa = aaaaaa->aaaaaaaaaaa();

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173792 91177308-0d34-0410-b5e6-96231b3b80d8

commit 98f988dc1bea127fbc2db76d9ffafdcf5f4435e4
Author: Joey Gouly <joey.gouly@arm.com>
Date:   Tue Jan 29 10:54:06 2013 +0000

    Add a diagnostic for an OpenCL kernel with a pointer pointer argument.
    Also refactor the surrounding code a little.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173791 91177308-0d34-0410-b5e6-96231b3b80d8

commit e702ff302bdb3c53a252b0bcd2deab72fdee274f
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Jan 29 10:18:33 2013 +0000

    Test update missed in r173789.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173790 91177308-0d34-0410-b5e6-96231b3b80d8

commit a0109e284457c996d4eb8f231e01dda303d1a345
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Jan 29 10:18:18 2013 +0000

    Produce a diagnostic if alignas is applied to an expression. Neither C11 nor
    C++11 allows that.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173789 91177308-0d34-0410-b5e6-96231b3b80d8

commit d03de6aaa312d57dcd6e2bc76bed1e89f5c5019d
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Jan 29 10:02:16 2013 +0000

    Downgrade 'attribute ignored when parsing type' from error to warning, to match
    the diagnostic's warn_ name. Switch some places (notably C++11 attributes)
    which really wanted an error over to a different diagnostic. Finally, suppress
    the diagnostic entirely for __ptr32, __ptr64 and __w64, to avoid producing
    diagnostics in important system headers.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173788 91177308-0d34-0410-b5e6-96231b3b80d8

commit 93384a910cb98f3a128b76e6043f149e1b384c65
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Jan 29 10:00:16 2013 +0000

    Reverting changes from r173785 (removing empty lines before "}").

    This needs some more thinking, e.g. for namespaces, chains of if-else
    if, ...

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173787 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8df364fc0b3d89fb4ea632c6824a121a8c7752a5
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Jan 29 09:42:11 2013 +0000

    Remove empty lines before "}".

    Those empty lines waste vertical whitespace and almost never
    increase readability.

    Before:
    void f() {
      DoSomething();

    }

    After:
    void f() {
      DoSomething();
    }

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173785 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4cd81c5bf5957b2b10ddf253035f6e1596082108
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Jan 29 09:02:09 2013 +0000

    Implement C++11 [dcl.align]p1 and C11 6.7.5/2 rules for alignas and _Alignas.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173779 91177308-0d34-0410-b5e6-96231b3b80d8

commit 52a92509aa204f64a28e05ffede63312b07ea9ef
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Jan 29 04:55:18 2013 +0000

    C++11 status:
     * Mark 'sequence points' as done now we have a warning for unsequenced operations
     * Mark 'memory model' as done now we correctly model bitfield operations

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173771 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8f3aacc8c4849c9e0e7a236954725fffdeb917a6
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Jan 29 04:21:28 2013 +0000

    Propagate the spelling list index for an attribute across template instantiation.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173768 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8338a9d28c4a9d06b19b1c5df51e70182914e2df
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Jan 29 04:13:32 2013 +0000

    PR15017: A '>' can appear after a type-specifier in a template-argument-list.
    It turns out that there's no correctness bug here (because we can't have a type
    definition in this location), but there was a diagnostic bug.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173766 91177308-0d34-0410-b5e6-96231b3b80d8

commit 353299a29d3a1847b9bf657fd5478e40cffd5e5e
Author: Michael Han <fragmentshaders@gmail.com>
Date:   Tue Jan 29 04:13:20 2013 +0000

    Add a test case for attribute print.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173765 91177308-0d34-0410-b5e6-96231b3b80d8

commit f0f7fa022414cc58c8def9fed3c73d0464afe559
Author: Bill Wendling <isanbard@gmail.com>
Date:   Tue Jan 29 03:21:00 2013 +0000

    Modify the tests for the (sorted) order that the attributes come out as now.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173762 91177308-0d34-0410-b5e6-96231b3b80d8

commit 485b31292752252328de0a3db1d1cd39c87026c0
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Jan 29 02:49:47 2013 +0000

    PR15100: look through type sugar when determining whether we have one of the
    forms of 'main' which we accept as an extension.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173758 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2f83694302798936fe1f7768a91063350d1b79e5
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Jan 29 02:42:09 2013 +0000

    Fold tests for C++ 'main' into a single file.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173756 91177308-0d34-0410-b5e6-96231b3b80d8

commit cae4a5ca43323eb861d702f880a6c62dd5ef4fc5
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Jan 29 02:31:57 2013 +0000

    Test that we print MS keyword attributes without a __declspec(...) adornment.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173754 91177308-0d34-0410-b5e6-96231b3b80d8

commit 33f04a208a1a6e73da73460142327ff05e8c391b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Jan 29 01:48:07 2013 +0000

    Treat alignas and _Alignas as keyword attributes. This allows us to
    pretty-print them properly (modulo the more general badness in alignment
    attribute printing).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173752 91177308-0d34-0410-b5e6-96231b3b80d8

commit cda7968b38d76848b4fb24f7cc28ab83835b4ea3
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Jan 29 01:38:41 2013 +0000

    Actually remove the hack which was blocking the Borland-style attributes from
    working, and add the missing attribute spellings. This brings _pascal,
    _fastcall, _stdcall and _cdecl to life in -fborland-extensions mode.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173749 91177308-0d34-0410-b5e6-96231b3b80d8

commit f727e1c6cc382c1b5fe23b38ba04df2d4a2f358a
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Jan 29 01:26:43 2013 +0000

    Don't crash while printing APValues that are lvalues casted to a
    decidedly non-reference, non-pointer type. Fixes <rdar://problem/13090123>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173747 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5cd532ca0bc1cb8110e24586d064f72332d8b767
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Jan 29 01:24:26 2013 +0000

    Replace AS_MSTypespec with AS_Keyword, for representing any attribute spelled
    as a keyword. Rationalize existing attributes to use it as appropriate, and to
    not lie about some __declspec attributes being GNU attributes. In passing,
    remove a gross hack which was discarding attributes which we could handle. This
    results in us actually respecting the __pascal keyword again.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173746 91177308-0d34-0410-b5e6-96231b3b80d8

commit a438b2d277fae00a4fa467ffcf382246e0a201e9
Author: John McCall <rjmccall@apple.com>
Date:   Tue Jan 29 01:14:22 2013 +0000

    Abstract the behavior of when to use base-class tail padding.

    For fun, I added a comedy "actually obey the C++11 POD rules" option
    which nobody is allowed to use.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173744 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3a2b7a18a4504f39e3ded0d2b5749c5c80b8b9b5
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Mon Jan 28 22:42:45 2013 +0000

    Finish semantic analysis for [[carries_dependency]] attribute.

    This required plumbing through a new flag to determine whether a ParmVarDecl is
    actually a parameter of a function declaration (as opposed to a function
    typedef etc, where the attribute is prohibited). Weirdly, this attribute (just
    like [[noreturn]]) cannot be applied to a function type, just to a function
    declaration (and its parameters).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173726 91177308-0d34-0410-b5e6-96231b3b80d8

commit 319d8fc2221fb41b3d332e091bd1e3e53ac05931
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Mon Jan 28 21:43:46 2013 +0000

    FileCheck'ize tests

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173720 91177308-0d34-0410-b5e6-96231b3b80d8

commit fc60fbdea506f321b3f44e5525a129c9d410b425
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Mon Jan 28 21:04:29 2013 +0000

    FileCheck'ize a test

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173717 91177308-0d34-0410-b5e6-96231b3b80d8

commit 13bdfcd1c659359289f373052b21fb9f998dcc0b
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Mon Jan 28 20:55:54 2013 +0000

    Migrate a test to -verify

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173716 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4738f2d4964b0c1f6de028e0872568eb1e547a32
Author: Chad Rosier <mcrosier@apple.com>
Date:   Mon Jan 28 20:51:27 2013 +0000

    [driver] Revise this test to remove the dependency on the integrate assembler.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173715 91177308-0d34-0410-b5e6-96231b3b80d8

commit 03efd9d034c2e2b698fd087c937f98d2637dcb11
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Mon Jan 28 20:40:50 2013 +0000

    FileCheck'ize and merge tests

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173714 91177308-0d34-0410-b5e6-96231b3b80d8

commit bde67cfdf05f7c569661e7a490b0b0811ac1ec56
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Jan 28 20:13:44 2013 +0000

    Undo my re-wording of the "ARC forbids Objective-C objects in ..."
    error. Jordan is right.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173713 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4581d45405f07374770366be8644d52733985833
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Jan 28 19:08:09 2013 +0000

    Forbid the use of objects in unions in Objective-C++ ARC. Fixes
    <rdar://problem/13098104>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173708 91177308-0d34-0410-b5e6-96231b3b80d8

commit 20c6f2eae500242d3aef5daaa55d440a0786a1fd
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Jan 28 18:38:02 2013 +0000

    Enable the global module index by default. Introduce the
    -fno-modules-global-index -cc1 option to allow one to disable the
    index for performance testing purposes, but with a 10% win in
    -fsyntax-only time, there is no reason a user would do this.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173707 91177308-0d34-0410-b5e6-96231b3b80d8

commit 894719bf99cf0131d954c714179bb47eee472b91
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Jan 28 18:29:39 2013 +0000

    ASTReader and profiling statistics indicate that implementing a method
    pool in the global module index is not worthwhile. Update comments to
    limit the scope of the global module index to identifiers.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173705 91177308-0d34-0410-b5e6-96231b3b80d8

commit e953172412569a5babfe580790531163e7ccabaa
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Mon Jan 28 18:01:33 2013 +0000

    Tests: remove disabled llvm-gcc invocations

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173703 91177308-0d34-0410-b5e6-96231b3b80d8

commit 95fb36ebddcbdcd6b801c5d3d2d85dac315b4127
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Jan 28 17:54:36 2013 +0000

    Add some more ASTReader statistics for global method pool lookups.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173702 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8094bac4e987caf90e8fd719c24545add8dafcb6
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Mon Jan 28 17:49:02 2013 +0000

    PR15067 (again): Don't warn about UCNs in C90 if we're raw-lexing.

    Fixes a crash. Thanks, Richard.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173701 91177308-0d34-0410-b5e6-96231b3b80d8

commit a522987e420eade60baba7d67a38e5c9500d2582
Author: Eric Christopher <echristo@gmail.com>
Date:   Mon Jan 28 17:39:03 2013 +0000

    Fix comment.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173700 91177308-0d34-0410-b5e6-96231b3b80d8

commit 94b309e909e568d620700dac60324430cfa73230
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Mon Jan 28 17:31:40 2013 +0000

    FileCheck'ize and merge tests

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173697 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1407b49552c40f30e6da1a5306f0d71747aaea13
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Mon Jan 28 17:30:37 2013 +0000

    FileCheck'ize test

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173696 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7522318ce2b2280dc679b62a4193c8f179632c16
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Jan 28 17:30:17 2013 +0000

    Fix a bug that would lead to bad line break decisions in for loops.

    Before:
        for (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaa = aaaaaaaaaaaaaaa
                 .aaaaaaaaaaaaaaaa;
             aaaaaaaaaaa != aaaaaaaaaaaaaaaaaaa; ++aaaaaaaaaaa) {}

    After:
        for (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaa =
                 aaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaa;
             aaaaaaaaaaa != aaaaaaaaaaaaaaaaaaa; ++aaaaaaaaaaa) {}

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173695 91177308-0d34-0410-b5e6-96231b3b80d8

commit 531b47c22e58146b2720677518bdd459eb0e907d
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Jan 28 17:26:34 2013 +0000

    Back out r173689. It doesn't matter when we're building with Clang anyway.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173693 91177308-0d34-0410-b5e6-96231b3b80d8

commit d3cf5fba332fc77f7e72ef58077822606718671d
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Jan 28 16:46:33 2013 +0000

    Eliminate memory allocation from most invocations of
    ModuleManager::visit() by keeping a free list of the two data
    structures used to store state (a preallocated stack and a visitation
    number vector). Improves -fsyntax-only performance for my modules test
    case by 2.8%. Modules has pulled ahead by almost 10% with the global
    module index.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173692 91177308-0d34-0410-b5e6-96231b3b80d8

commit d75ff6496bfb599a9edde41681873919d4d44152
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Jan 28 15:40:20 2013 +0000

    Don't put a function's return type on its own line in Google style.

    This would be against the style guide:
    http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml?showone=Function_Declarations_and_Definitions#Function_Declarations_and_Definitions

    Not sure what to do as a last resort if the function signature does not
    fit onto a single line in Google style ..

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173690 91177308-0d34-0410-b5e6-96231b3b80d8

commit b7551f71a4c5a901bbae72b0a80af3745b7a0c0d
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Jan 28 15:39:10 2013 +0000

    Note that SrcMgr::SLocEntry's are POD-like, so SmallVector can do a
    better job with them. Shaves off 0.7% of -fparse-only time for a
    modules test case. Sure makes you wonder...

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173689 91177308-0d34-0410-b5e6-96231b3b80d8

commit 83f25ba0499f18b91501fb6538c49ebc7827bea0
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Jan 28 15:16:31 2013 +0000

    Let clang-format break after a function's return type.

    Before:
    TypeSpecDecl *TypeSpecDecl::Create(ASTContext &C, DeclContext *DC,
                                       SourceLocation L, IdentifierInfo *II,
                                       Type *T) {}

    After:
    TypeSpecDecl *
    TypeSpecDecl::Create(ASTContext &C, DeclContext *DC, SourceLocation L,
                         IdentifierInfo *II, Type *T) {}

    This fixes llvm.org/PR14717.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173688 91177308-0d34-0410-b5e6-96231b3b80d8

commit 02b771e3110f7799f93d5d17dc6fefc5713387c3
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Jan 28 13:31:35 2013 +0000

    Make continuations in constructor initializers consistent.

    Before:
    Constructor
        : LooooooooooooooooooooongVariable(
            LooooooooooooooooooooongValue) {}

    After:
    Constructor
        : LooooooooooooooooooooongVariable(
              LooooooooooooooooooooongValue) {}

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173685 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3b9a8fc5bee5434bebc9058646896423adac625b
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Jan 28 13:21:16 2013 +0000

    Initial support for formatting range-based for-loops.

    Before (in good cases):
    for (auto aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
         : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) {}
    for (auto aaaaaaaaaaaaaaaaaaaa : aaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaa,
    aaaa)) {}

    After:
    for (auto aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa :
         aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) {}
    for (auto aaaaaaaaaaaaaaaaaaaa :
         aaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaa, aaaa)) {}

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173684 91177308-0d34-0410-b5e6-96231b3b80d8

commit bfe6fd4f00257b113ea3bcb4efef8d9f9f245882
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Jan 28 12:45:14 2013 +0000

    Improve formatting of conditional expressions.

    Before we did not really systematically format those. Now, we format the
    different cases as:

    - 1 Line:  a ? b : c;
    - 2 Lines: short ? loooooooooong
                     : loooooooooong
    - 2 Lines: loooooooooooooooong
                   ? short : short
    - 3 Lines: loooooooooooooooong
                   ? loooooooooooooong
                   : loooooooooooooong

    Not sure whether "?" and ":" should go on the new line, but it seems to
    be the most consistent approach.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173683 91177308-0d34-0410-b5e6-96231b3b80d8

commit ae8699bde649e2ed1f66414b4283b862f11056dd
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Jan 28 09:35:24 2013 +0000

    Several small changes in formatting decisions.

    1. Use a hanging ident for function calls nested in binary expressions.
       E.g.:
       int aaaaa = aaaaaaaaa && aaaaaaaaaa(
                                    aaaaaaaaaa);

    2. Slightly improve heuristic for builder type expressions and reduce
       penalty for breaking before "." and "->" in those.

    3. Remove  mostly obsolete metric of decreasing indent level. This
       fixes: llvm.org/PR14931.

    Changes #1 and #2 were necessary to keep tests passing after #3.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173680 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5f2173ee723fd17b758f2a35a5bb39ca74eca523
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Jan 28 07:43:15 2013 +0000

    Improve indentation after breaking at nested name specifiers.

    These always represent a continuation and we should increase the ident.

    Before:
    aaaaaaaaa(aaaaaaaaaaaaaaaaaaaaa::
              aaaaaaaaaaaaaaaaaaaa);

    After:
    aaaaaaaaa(aaaaaaaaaaaaaaaaaaaaa::
                  aaaaaaaaaaaaaaaaaaaa);

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173675 91177308-0d34-0410-b5e6-96231b3b80d8

commit 986e17ff3bd3df2762f88569cab3fdfbabc08bb1
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Jan 28 07:35:34 2013 +0000

    Avoid confusing identations for multi-parameter functions.

    Before:
    aaaaaaaa(aaaaaaaaa(
        aaaaaaaaaa(),
             aaaaaaaaa);

    After:
    aaaaaaaa(aaaaaaaaa(
                 aaaaaaaaaa(),
             aaaaaaaaa);

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173673 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3e335c118140c40b264a26b13e44af368514cb87
Author: Alexey Samsonov <samsonov@google.com>
Date:   Mon Jan 28 07:20:44 2013 +0000

    Print warning instead of error if optional ASan features are enabled w/o specifying -fsanitize=address

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173670 91177308-0d34-0410-b5e6-96231b3b80d8

commit b8d2441144557c1b20b89b524d7ac54dbfaac0db
Author: Hal Finkel <hfinkel@anl.gov>
Date:   Mon Jan 28 04:37:38 2013 +0000

    Fix a typo in the name of a tooling unit test

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173658 91177308-0d34-0410-b5e6-96231b3b80d8

commit 43bb45d152b14e186689e159ac9be2e27787d5ac
Author: Hal Finkel <hfinkel@anl.gov>
Date:   Mon Jan 28 04:37:37 2013 +0000

    Fix the indentation of the first line of preprocessor output

    The -E output from clang did not produce the correct indentation on the first line.
    This is because MoveToLine returned false, and when this happens,
    the regular process for producing initial indentation is skipped.

    Thanks to Eli for suggesting a way to simplify this to a one-line change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173657 91177308-0d34-0410-b5e6-96231b3b80d8

commit 23d5b090cb11078714139bdb5a30d814e3443c4c
Author: Michael Gottesman <mgottesman@apple.com>
Date:   Mon Jan 28 01:36:00 2013 +0000

    Since ObjCARC has been refactored into its own library with its own declaration header, we need to include the declaration header alongside Scalar.h in BackendUtil.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173648 91177308-0d34-0410-b5e6-96231b3b80d8

commit d98f708a9b17dc57c1305cd1ab15f72912db7db3
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Mon Jan 28 01:15:38 2013 +0000

    Tests and a minor bugfix for [dcl.attr.depend]p1 (C++11 [[carries_dependency]]
    attribute).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173645 91177308-0d34-0410-b5e6-96231b3b80d8

commit c5f7d6aed586fc492383255633c7ea5591256bfe
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Mon Jan 28 00:54:05 2013 +0000

    Add a -pedantic warning: an anonymous union within an anonymous union is not
    permitted in standard C++, despite being silently accepted by many (all?) major
    C++ implementations.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173643 91177308-0d34-0410-b5e6-96231b3b80d8

commit c37b183e72ea62d654ec9e02d8e8d996a6014d3c
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sun Jan 27 22:11:38 2013 +0000

    Comment parsing: fix test in r173626 for -fms-extensions -fms-compatibility

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173633 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5250e2b24f7288fb31dc6357831fcbc4ced26693
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sun Jan 27 21:28:24 2013 +0000

    Decl printer: fix CXXConstructExpr with implicit default argument

    Patch by Will Wilson.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173630 91177308-0d34-0410-b5e6-96231b3b80d8

commit d1e5c0df2acb01192eedda14534fe990e1e26c46
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sun Jan 27 21:18:39 2013 +0000

    Comment parsing: attach any tag type's documentation to its typedef if latter
    does not have one of its own. // rdar://13067629

    Original patch (r173586 and r173587) by Fariborz Jahanian, modified by me.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173626 91177308-0d34-0410-b5e6-96231b3b80d8

commit bfec916e5fc40f22ac11267e78a024cd8dcf3bbf
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sun Jan 27 20:12:04 2013 +0000

    PR15067: Don't assert when a UCN appears in a C90 file.

    Unfortunately, we can't accept the UCN as an extension because we're
    required to treat it as two tokens for preprocessing purposes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173622 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1df08370da6fb4578272295aabfacfb12e1d40f9
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Sun Jan 27 12:20:50 2013 +0000

    [CMake][Lit][unittests] Deprecate CMAKE_BUILD_TYPE in each build directory for unittests.

    For example,
    cur) unittests/ADT/Release/ADTTests
    new) unittests/ADT/ADTTests

    RUNTIME_BUILD_MODE can be substituted to CMAKE_CFG_INTDIR.

    With Make and Ninja, the tree is not built with multiple configurations.
    Then, including the build type in target directory doesn't make sense.
    See also "How can I build multiple modes without switching?"
    http://www.cmake.org/Wiki/CMake_FAQ
    CMAKE_CFG_INTDIR is set to "."

    With multiple-configuration-aware build system, like Visual Studio, each unittest is built on appropriate directory, for example,
    unittests/ADT/Release/ADTTests.exe
    CMAKE_CFG_INTDIR is set to build system's variable, like "$(Configuration)" or "$(OutDir)".

    Thus, "--param build_config" is also deprecated.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173616 91177308-0d34-0410-b5e6-96231b3b80d8

commit 06b5ea65365c5898be8355868a49c6f396cc8b02
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Sun Jan 27 11:09:41 2013 +0000

    Revert r173586 (and r173587) , "Attach any tag type's documentation to its typedef if"

    It caused unexpected warnings with @tparam.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173614 91177308-0d34-0410-b5e6-96231b3b80d8

commit b263bdf2954953cc7cca5d667eb01319ea0f72ec
Author: Bill Wendling <isanbard@gmail.com>
Date:   Sun Jan 27 02:46:53 2013 +0000

    Use the AttributeSet instead of AttributeWithIndex.

    In the future, AttributeWithIndex won't be used anymore. Besides, it exposes the
    internals of the AttributeSet to outside users, which isn't goodness.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173605 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7d470531fffc8072c358ec0ef8192fd02756fab1
Author: Michael Han <fragmentshaders@gmail.com>
Date:   Sun Jan 27 00:06:24 2013 +0000

    Add the missing line return to align parameters of printPretty.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173597 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9c48d16a11872624410ab3a5944edcba0f32818c
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Jan 26 22:44:19 2013 +0000

    libclang: refactor CXStringPool: make it a class

    We are not exposing the pool or string buffers to libclang users, so no need to
    maintain a procedural interface.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173595 91177308-0d34-0410-b5e6-96231b3b80d8

commit a6504853d297c30cfa271f4710af5a3d5db59449
Author: David Blaikie <dblaikie@gmail.com>
Date:   Sat Jan 26 22:16:26 2013 +0000

    PR14566: Debug Info: avoid top level lexical blocks in functions

    One of the gotchas (see changes to CodeGenFunction) was due to the fix in
    r139416 (for PR10829). This only worked previously because the top level
    lexical block would set the location to the end of the function, the debug
    location would be updated (as per r139416), the location would be set to
    the end of the function again (but that would no-op, since it was the same
    as the previous location), then the return instruction would be emitted using
    the debug location.

    Once the top level lexical block was no longer emitted, the end-of-function
    location change was causing the debug loc to be updated, regressing that bug.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173593 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8c718e7d87018919b5b84b0d545fe477b2d532d1
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Jan 26 21:49:50 2013 +0000

    libclang: type safety for CXTranslationUnitImpl::CIdx

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173590 91177308-0d34-0410-b5e6-96231b3b80d8

commit 337ee24785a784ba5418c2e78716d15b94fd57f0
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Jan 26 21:39:50 2013 +0000

    libclang: type safety for CXTranslationUnitImpl::FormatContext

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173589 91177308-0d34-0410-b5e6-96231b3b80d8

commit e42e578ad8a36ad5bd06c8a3110cbd3119aaee36
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Jan 26 21:32:42 2013 +0000

    libclang: some type safety for CXTranslationUnitImpl's internals

    There is no reason to store pointers as 'void*' in CXTranslationUnitImpl, since
    it does not affect libclang ABI.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173588 91177308-0d34-0410-b5e6-96231b3b80d8

commit e3fac338e0e9d7cdbac8a19f741f6bb8a74e631d
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Sat Jan 26 20:50:23 2013 +0000

    Fix comment.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173587 91177308-0d34-0410-b5e6-96231b3b80d8

commit 87611cdd0c1a8e5648d63e141f471644c6f7dc64
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Sat Jan 26 20:49:30 2013 +0000

    Attach any tag type's documentation to its typedef if
    latter does not have one of its own. // rdar://13067629

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173586 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5694feb5ccd6eb862cb600b55753cecc13794471
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Jan 26 18:53:38 2013 +0000

    libclang: factor out the frequent pattern static_cast<ASTUnit *>(TU->TUData)
    into a getter cxtu::getASTUnit(TU)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173585 91177308-0d34-0410-b5e6-96231b3b80d8

commit 404628caa53a3f898047d73b38647d6fbb827e00
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Jan 26 18:12:08 2013 +0000

    libclang: make getCursorParentDecl() return 'const Decl *'

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173584 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7d91438047450869d7b881e1c63868c4b52a3cc2
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Jan 26 18:08:08 2013 +0000

    libclang: change getCursorAttr() to return 'const Attr *'

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173583 91177308-0d34-0410-b5e6-96231b3b80d8

commit a8a908b81dbe0efec6aed536eb1f704a9c5b5599
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Jan 26 17:11:39 2013 +0000

    Migrate tests to -verify

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173582 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9677eb864f7354f140cd1bf59557843851e65de4
Author: Enea Zaffanella <zaffanella@cs.unipr.it>
Date:   Sat Jan 26 17:08:37 2013 +0000

    Added ASTContext methods getIntPtrType and getUIntPtrType.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173581 91177308-0d34-0410-b5e6-96231b3b80d8

commit adeb7822cb7947194fef0e12d2d6583ccb8240b5
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Jan 26 16:29:36 2013 +0000

    <limits.h> includes <linux/limits.h> on Linux, no need to special-case it

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173578 91177308-0d34-0410-b5e6-96231b3b80d8

commit ff74f9683943c0db9cb075423596b00ea3b38c5d
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Jan 26 15:29:08 2013 +0000

    libclang: make getCursorStmt() and getCursorExpr() return const pointers

    Also change EnqueueVisitor to use ConstStmtVisitor as a consequence.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173577 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9eca9f7da9166a9100020d3de19584216f95d67a
Author: Tim Northover <Tim.Northover@arm.com>
Date:   Sat Jan 26 15:27:54 2013 +0000

    Specify non-GNU-ARM triples for key-function test.

    Since ARM has diverging ABIs on this detail, it's probably worth
    testing both it and a "normal" Itanium system.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173576 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7d9f07732b85f1b2989c640065512a6af9a0f49a
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Jan 26 15:24:56 2013 +0000

    Constify getOptionalExplicitTemplateArgs()

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173575 91177308-0d34-0410-b5e6-96231b3b80d8

commit d615f88e3c24f91a65c25a4f7e66e0f97b18cc15
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Jan 26 15:15:52 2013 +0000

    Constify some getters of DesignatedInitExpr

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173574 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1a1b3ab6d763316078ad03a817d2eb58e6156d9b
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Sat Jan 26 06:13:05 2013 +0000

    clang/test/Misc/diag-template-diffing-color.cpp: Symbolize color sequences in FileCheck.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173561 91177308-0d34-0410-b5e6-96231b3b80d8

commit db84e7a44dce24c3a8e4e0fc84434c00fc2da168
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Sat Jan 26 04:52:52 2013 +0000

    [libclang] Introduce clang_getFileUniqueID which returns a struct
    for a CXFile containing device/inode/modification time.

    Intended to be useful as a key associated with a unique file across
    an indexing session.

    rdar://13091837

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173559 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4e4d7cedb84e6c5476e9cee5128e977b240331a6
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Sat Jan 26 03:48:55 2013 +0000

    clang/test/Misc/ast-dump-color.cpp: Symbolize color sequences in FileCheck.

    FIXME: If FileCheck had expressions something predefined well-known...

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173558 91177308-0d34-0410-b5e6-96231b3b80d8

commit 07c52d2813a6b5e4025276d3687bd25f75fd51b9
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Jan 26 03:16:31 2013 +0000

    [analyzer] C++ initializers may require cleanups; look through these.

    When the analyzer sees an initializer, it checks if the initializer
    contains a CXXConstructExpr. If so, it trusts that the CXXConstructExpr
    does the necessary work to initialize the object, and performs no further
    initialization.

    This patch looks through any implicit wrapping expressions like
    ExprWithCleanups to find the CXXConstructExpr inside.

    Fixes PR15070.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173557 91177308-0d34-0410-b5e6-96231b3b80d8

commit db55c04cb3384b192a418a840a9ba6321941fc0d
Author: Richard Trieu <rtrieu@google.com>
Date:   Sat Jan 26 02:31:38 2013 +0000

    Give a more informative error message when the dot or arrow operator is used
    on a type.  Currently, it gives a generic "expected unqualified-id" error.
    The new error message is "cannot use (dot|arrow) operator on a type".

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173556 91177308-0d34-0410-b5e6-96231b3b80d8

commit 98bfbf5354b8b35fd3efd12932894d7452697226
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sat Jan 26 02:07:32 2013 +0000

    Fix mismatch between pointer and pointee type when diagnosing an incorrect
    object argument type for a member call.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173554 91177308-0d34-0410-b5e6-96231b3b80d8

commit 67234726d2c1e91760cad8b268a147869a55e12a
Author: Richard Trieu <rtrieu@google.com>
Date:   Sat Jan 26 01:54:31 2013 +0000

    Fix test case by being more lenient on what to accept as a path name.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173553 91177308-0d34-0410-b5e6-96231b3b80d8

commit 87827616cd5540a4893e0c2c285c90dedb50fb91
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Sat Jan 26 01:36:54 2013 +0000

    Remove function that is newly dead as of r173538.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173550 91177308-0d34-0410-b5e6-96231b3b80d8

commit a9cd3d8452a253adf296d327a53e7009a2b01594
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Sat Jan 26 01:35:28 2013 +0000

    Hopefuly unbreak buldbot.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173549 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7ba443aa8cfb222737d3a964a19ad4fb1328c4b5
Author: Richard Trieu <rtrieu@google.com>
Date:   Sat Jan 26 01:31:20 2013 +0000

    Highlight various parts of the AST dump with color.  Colors are controlled by
    -f(no-)color-diagnostics.  In addition, dumpColor() function calls are added
    to force color printing.  No structural changes to -ast-dump.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173548 91177308-0d34-0410-b5e6-96231b3b80d8

commit 44ec3f00e64199667edf9f12c0f31f66916c95fe
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Jan 26 01:28:23 2013 +0000

    [analyzer] Track null object lvalues back through C++ method calls.

    The expression 'a->b.c()' contains a call to the 'c' method of 'a->b'.
    We emit an error if 'a' is NULL, but previously didn't actually track
    the null value back through the 'a->b' expression, which caused us to
    miss important false-positive-suppression cases, including
    <rdar://problem/12676053>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173547 91177308-0d34-0410-b5e6-96231b3b80d8

commit dede2fd56d053a114a65ba72583981ce7aab27da
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Jan 26 01:28:19 2013 +0000

    [analyzer] bugreporter::getDerefExpr now takes a Stmt, not an ExplodedNode.

    This allows it to be used in places where the interesting statement
    doesn't match up with the current node. No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173546 91177308-0d34-0410-b5e6-96231b3b80d8

commit aeca2cc3a6f486abff3fdfb4e82903cd3ca4267e
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Jan 26 01:28:15 2013 +0000

    [analyzer] Add 'prune-paths' config option to disable path pruning.

    This should be used for testing only. Path pruning is still on by default.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173545 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7ee8906295d56ceb84b8b3da502cdc8770509868
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Jan 26 01:28:09 2013 +0000

    [analyzer] Rename PruneNullReturnPaths to SuppressNullReturnPaths.

    "Prune" is the term for eliminating pieces of a path that are not
    relevant to the user. "Suppress" means don't show that path at all.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173544 91177308-0d34-0410-b5e6-96231b3b80d8

commit a7db6a200a434dfa5142a0568dbf66debbbc65e0
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Sat Jan 26 01:25:32 2013 +0000

    Fix up the test.
    for // rdar://11861085

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173543 91177308-0d34-0410-b5e6-96231b3b80d8

commit 713b7c011869f177dc76e6df4f7f44b1bd073bb0
Author: Douglas Gregor <dgregor@apple.com>
Date:   Sat Jan 26 00:55:12 2013 +0000

    Since we're stuck with realpath for the header <-> module mapping,
    factor the realpath calls into FileManager::getCanonicalName() so we
    can cache the results of this epically slow operation. 5% speedup on
    my modules test, and realpath drops out of the profile.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173542 91177308-0d34-0410-b5e6-96231b3b80d8

commit 25cf8abf30189323199b1424848b105940267c1b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sat Jan 26 00:39:02 2013 +0000

    Revert r172285 (suppressing a 'redundant' -Wc++98-compat warning) and add a
    testcase for a situation it caused us to miss.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173540 91177308-0d34-0410-b5e6-96231b3b80d8

commit 10442564e1ba3c4dfb184cc4e36beffbee4811c3
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Jan 26 00:36:14 2013 +0000

    Comment parsing: actually check for a block command after "\param x"

    This fixes PR15068.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173539 91177308-0d34-0410-b5e6-96231b3b80d8

commit 01a41140cd8ec9475ed0c33384310fbdd3b6de11
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Sat Jan 26 00:35:08 2013 +0000

    Preserve Sema::UndefinedInternals across PCH boundaries. Fixes
    -Wundefined-internal warnings with PCH.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173538 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3ac83d69c61238cd0d38e90fcdd03390530ab2fb
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Jan 25 23:57:05 2013 +0000

    patch for PR9027 and // rdar://11861085
    Title: [PR9027] volatile struct bug: member is not loaded at -O;
    This is caused by last flag passed to @llvm.memcpy being false,
    not honoring that aggregate has at least one 'volatile' data member
    (even though aggregate itself has not been qualified as 'volatile'.
    As a result, optimization optimizes away the memcpy altogether.
    Patch review by John MaCall (I still need to fix up a test though).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173535 91177308-0d34-0410-b5e6-96231b3b80d8

commit b2274d64ecb67f6c8bff2e66361844bebbcc3dab
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Jan 25 23:56:54 2013 +0000

    clang/test/Index/annotate-comments-typedef.m: Remove CommentXMLValid in CHECKs. Don't assume libxml2 here.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173534 91177308-0d34-0410-b5e6-96231b3b80d8

commit f3bbb155beb69cdad1c6b0472bc0ca20cece6c50
Author: John McCall <rjmccall@apple.com>
Date:   Fri Jan 25 23:36:19 2013 +0000

    ARM says that the array cookie should always be eight bytes.
    ARM is not thinking about over-aligned structures.
    Overrule ARM in both our generic-ARM and iOS ABI implementations.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173531 91177308-0d34-0410-b5e6-96231b3b80d8

commit 96fcde0b8ed8bdf99d326312ca7be6447b0fe5fc
Author: John McCall <rjmccall@apple.com>
Date:   Fri Jan 25 23:36:14 2013 +0000

    Move the decision about the kind of CGCXXABI to make inside
    the family-specific files.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173530 91177308-0d34-0410-b5e6-96231b3b80d8

commit 188bdcd1aaf5e9f457cec6851707d7dc3e7bbb15
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Jan 25 23:32:03 2013 +0000

    Improve coordination between the module manager and the global module
    index, optimizing the operation that skips lookup in modules where we
    know the identifier will not be found. This makes the global module
    index optimization actually useful, providing an 8.5% speedup over
    modules without the global module index for -fsyntax-only.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173529 91177308-0d34-0410-b5e6-96231b3b80d8

commit 59273eb5263006c96b03cfc90db2dadf354ea4ce
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Jan 25 23:17:20 2013 +0000

    clang/test/Preprocessor/iwithprefix.c: Tweak default includes not to use /usr/include.

    You may see such a message on non-posix system;
      ignoring nonexistent directory "/usr/local/include"
      ignoring nonexistent directory "/usr/include"

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173525 91177308-0d34-0410-b5e6-96231b3b80d8

commit 856e06bda5d20f6926d6b9e7f0e68f6795b435ba
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Fri Jan 25 23:12:17 2013 +0000

    [utils] Kill another no-longer-useful utility script.

     - We are long past the days of getting clang to fail in mass on swaths of code,
       fortunately.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173523 91177308-0d34-0410-b5e6-96231b3b80d8

commit 23799e3ec4b341753e4fb63a7e995cf4ac3b6066
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Jan 25 23:08:39 2013 +0000

    simplify code by removing excessive bracing.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173521 91177308-0d34-0410-b5e6-96231b3b80d8

commit 41170b55ba635afb806394d44f2b7f1f6095df37
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Jan 25 22:48:32 2013 +0000

    Attach enum's documentation to its typedef if
    latter does not have one of its own. // rdar://13067629

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173516 91177308-0d34-0410-b5e6-96231b3b80d8

commit d5617eeafc93209a26b9f88276c88cf997c3a0a7
Author: John McCall <rjmccall@apple.com>
Date:   Fri Jan 25 22:31:03 2013 +0000

    The standard ARM C++ ABI dictates that inline functions are
    never key functions.  We did not implement that rule for the
    iOS ABI, which was driven by what was implemented in gcc-4.2.
    However, implement it now for other ARM-based platforms.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173515 91177308-0d34-0410-b5e6-96231b3b80d8

commit b8b2c9da87e7d70a1679db026f40548b3192b705
Author: John McCall <rjmccall@apple.com>
Date:   Fri Jan 25 22:30:49 2013 +0000

    First pass at abstracting out a class for the target C++ ABI.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173514 91177308-0d34-0410-b5e6-96231b3b80d8

commit d07865b42dcb32154c75134fded51b38cc55a0c4
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Jan 25 22:25:23 2013 +0000

    Optimize ModuleManager::visit() by precomputing the visitation order
    and limiting ourselves to two memory allocations. 10% speedup in
    -fsyntax-only time for modules.

    With this change, we can actually see some performance different from
    the global module index, but it's still about 1%.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173512 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3d115cfd1b9c48155d478b1f2f14dba1b6ba9a91
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Fri Jan 25 22:20:24 2013 +0000

    Remove useless 'XPASS: *' from tests

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173511 91177308-0d34-0410-b5e6-96231b3b80d8

commit 69bb7f6bbe6fcdb6a8f44a036e62af82724e9329
Author: Renato Golin <renato.golin@linaro.org>
Date:   Fri Jan 25 22:13:50 2013 +0000

    Temporarily disabling ms-asm test

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173510 91177308-0d34-0410-b5e6-96231b3b80d8

commit d08606817a3c8f36441247451c1c9a19abeebd5e
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Fri Jan 25 22:08:24 2013 +0000

    This test actually passes, just add the missing expected-error

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173504 91177308-0d34-0410-b5e6-96231b3b80d8

commit ff3e102bc9dbece2dac365abc9863bc98e49f424
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Fri Jan 25 21:41:29 2013 +0000

    Migrate test from grep to -fdiagnostics-parseable-fixits

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173496 91177308-0d34-0410-b5e6-96231b3b80d8

commit a5b8e19fc3e9deddf3304e4a13e053af8af0a17e
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Fri Jan 25 21:15:32 2013 +0000

    Remove empty directories.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173492 91177308-0d34-0410-b5e6-96231b3b80d8

commit cd856aee39d563d6bd04fc8461bd469e2612f4c0
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Fri Jan 25 21:12:20 2013 +0000

    [utils] Remove the OptionalTests subdir no one runs.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173491 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7771467598b2767f87b2f7bd639ab38aa40741b9
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Fri Jan 25 21:12:17 2013 +0000

    [utils] Remove C++Tests that I don't think anyone uses anymore.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173490 91177308-0d34-0410-b5e6-96231b3b80d8

commit c6dcea93b499b504da22f9921fc198423ad0b13b
Author: Alexander Kornienko <alexfh@google.com>
Date:   Fri Jan 25 20:44:56 2013 +0000

    Silence unintended fallthrough diagnostic on a case label preceded with a normal label.

    Summary:
    It's unlikely that a fallthrough is unintended in the following code:
    switch (n) {
    ...
      label:
      case 1:
    ...
        goto label;
    ...
    }

    Reviewers: rsmith, doug.gregor

    Reviewed By: doug.gregor

    CC: cfe-commits

    Differential Revision: http://llvm-reviews.chandlerc.com/D329

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173486 91177308-0d34-0410-b5e6-96231b3b80d8

commit f282e72d4d55680dd82f3874b739fe0e02851435
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Fri Jan 25 20:34:08 2013 +0000

    FileCheck'ize tests

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173484 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8b127d3f9baa6bef2068a3aa5923fe81cbfb9b11
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Fri Jan 25 20:33:53 2013 +0000

    Migrate tests to -verify and merge them

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173482 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7f5c343c43167b9e3ec27bba08d254831ce8fdad
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Fri Jan 25 18:50:18 2013 +0000

    [tests] Force a triple to ensure /usr/include is one of the entries.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173469 91177308-0d34-0410-b5e6-96231b3b80d8

commit fd426dc25debed7b09b4c7b661e04c425c7abe0e
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Fri Jan 25 18:08:53 2013 +0000

    [tests] Add a test for -iwithprefix.

     - This just scratches the surface, We have pretty horrible test coverage in
       this area it seems like, but this at least covers the change in r173410.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173464 91177308-0d34-0410-b5e6-96231b3b80d8

commit 909df54cc33153fb9f90c135d032722a19ce809c
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Jan 25 17:47:49 2013 +0000

    Add space after ';'.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173462 91177308-0d34-0410-b5e6-96231b3b80d8

commit 78c28be6873965cce4026bbebef18c6224b5287d
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Jan 25 17:19:07 2013 +0000

    Improve diagnsotic further on integer overflow.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173461 91177308-0d34-0410-b5e6-96231b3b80d8

commit e992ed1a065d857947b3969e6b779c41cc35c234
Author: Alexander Kornienko <alexfh@google.com>
Date:   Fri Jan 25 15:49:34 2013 +0000

    Don't suggest to insert [[clang::fallthrough]] before empty cases. Fix for multiple case labels.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173458 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3499ddac3f075cbda6347067190fcc7a972dcaca
Author: Daniel Jasper <djasper@google.com>
Date:   Fri Jan 25 15:43:32 2013 +0000

    Fix some alignment and line break decisions.

    This combines two small changes:
    1) Put a penalty on breaking after "<"
    2) Only produce a hanging indent when parameters are separated by
    commas.

    Before:
    aaaaaaaaaaaaaaaaaaaaaaaa<
        aaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaa>(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);
    aaaaaa(new Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
                   aaaaaaaaaaaaaaaaaaaaaaaaaaaaa));

    After:
    aaaaaaaaaaaaaaaaaaaaaaaa<aaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaa>(
        aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);
    aaaaaa(new Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
        aaaaaaaaaaaaaaaaaaaaaaaaaaaaa));

    This changes one ObjC test, but AFAICT this is not according to any
    style guide (neither before nor after). We probably should be aligning
    on the ":" there according to:
    http://google-styleguide.googlecode.com/svn/trunk/objcguide.xml?showone=Method_Invocations#Method_Invocations

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173457 91177308-0d34-0410-b5e6-96231b3b80d8

commit b6c08a64145485a7c233761220b8d82b74aa7546
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Jan 25 14:57:21 2013 +0000

    Lexer.cpp: Fix a warning with ptrdiff_t on i686. [-Wsign-compare]

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173447 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7d56bfe37d039fa3f4b91ed8d079253159177740
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Jan 25 11:07:42 2013 +0000

    clang/test/PCH/modified-header-error.c: Disable it again. It had been problematic on win32 for while.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173439 91177308-0d34-0410-b5e6-96231b3b80d8

commit 63f003644420fff0ea3d463e68aee83f2f5842cd
Author: Daniel Jasper <djasper@google.com>
Date:   Fri Jan 25 10:57:27 2013 +0000

    Allow breaking after "::" if absolutely necessary.

    Otherwise, really long nested name specifiers can easily lead to a
    violation of the column limit.

    Not sure about the rules for indentation in those cases, so input is
    appreciated (see tests.).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173438 91177308-0d34-0410-b5e6-96231b3b80d8

commit ae04222bc5143756c45c399cc8e504c8b12dc6fc
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Jan 25 10:01:35 2013 +0000

    ConvertUTF.h: Suppress a warning with ptrdiff_t on i686. [-Wsign-compare]

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173436 91177308-0d34-0410-b5e6-96231b3b80d8

commit 643728a4f1b71cd35118e53640361a1d28bbdb70
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Jan 25 09:43:17 2013 +0000

    clang/test/Driver/output-file-cleanup.c: Add arm and powerpc to XFAIL.

    ..."ppc" was not recognized here.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173435 91177308-0d34-0410-b5e6-96231b3b80d8

commit de72f105938486da23b66a08d1e7a1eeeb0b9e2b
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Fri Jan 25 07:31:12 2013 +0000

    Add missing InGroup for this warning.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173429 91177308-0d34-0410-b5e6-96231b3b80d8

commit d7e87b251cb1f17a80e97c332e3df6124480dfde
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Jan 25 06:56:45 2013 +0000

    clang/test/Driver/output-file-cleanup.c: Mark it as XFAIL:*-mingw32, ppc, for now.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173428 91177308-0d34-0410-b5e6-96231b3b80d8

commit dddcc57fe73c568520250f48d33a1ad856015644
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Jan 25 06:31:02 2013 +0000

    clang/test/Index/crash-recovery-*.c: Drop 'REQUIRES:shell". "test !" is available on Lit win32 since r173421.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173422 91177308-0d34-0410-b5e6-96231b3b80d8

commit a6cd5cd98b45298ed6a13ff14551a43d1a210a32
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Jan 25 06:02:11 2013 +0000

    clang/test: Drop "REQUIRES:shell" in three tests. They can run on win32.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173419 91177308-0d34-0410-b5e6-96231b3b80d8

commit e095c654b02e354e188479809e2c7438700bbc95
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Jan 25 05:58:53 2013 +0000

    clang/test/CodeGenCXX/debug-info-static-member.cpp: Appease targetting msvc to add explicit -target x86_64-unknown-unknown.

    with -target i686-win32, you will see;

    debug-info-static-member.cpp:11:22: error: in-class initializer for static data member of type 'const float' requires 'constexpr' specifier [-Wstatic-float-init]
      const static float const_b = 3.14;
                         ^         ~~~~
      constexpr

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173418 91177308-0d34-0410-b5e6-96231b3b80d8

commit 33eb9b54b0a5db3b4b9f91f4796aa30e0f3ddbb3
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Jan 25 05:09:37 2013 +0000

    Create clang/test/Driver/lit.local.cfg.

    These files had been ignored.

      - clang_f_opts.h
      - debug-comp-dir.S
      - debug-main-file.S

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173416 91177308-0d34-0410-b5e6-96231b3b80d8

commit b4b1d69f19f32e8aeb2ce1e0239c6e20a7f9e952
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Jan 25 04:22:16 2013 +0000

    Sync 'in class initialization of static const double' extension up with GCC,
    and split it out of -Wgnu into its own warning flag.

     * In C++11, this is now a hard error (GCC has no extension here in C++11 mode).
       The error can be disabled with -Wno-static-float-init, and has a fixit to
       add 'constexpr'.

     * In C++98, this is still an ExtWarn, but is now controlled by
       -Wstatic-float-init as well as -Wgnu.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173414 91177308-0d34-0410-b5e6-96231b3b80d8

commit eab6652b7e417c8e46b21c7d340f3a7d41492d6e
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Fri Jan 25 01:50:47 2013 +0000

    [Frontend] Remove another IsUserSpecified member variable that is now unused.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173412 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5c4e34c16782927ecfeb5f005d65b68e77f5435a
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Fri Jan 25 01:50:39 2013 +0000

    [Frontend] Drop the isUserSupplied argument to InitHeaderSearch, it is unused.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173411 91177308-0d34-0410-b5e6-96231b3b80d8

commit f3fc21f7277921677244b2c4b14f3a67e0cde8d1
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Fri Jan 25 01:50:34 2013 +0000

    [Frontend] The -iwithprefix option belongs in the After category, according to
    GCC docs.
     - Found by inspection.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173410 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1ea6bc0fd9c1ff9fa03e8a829a79c4167445d503
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Fri Jan 25 01:50:28 2013 +0000

    [Lex] Remove DirectoryLookup.UserSpecified, which is unused.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173409 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1d32133b44487d9e98412e373d693416b05920bb
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Jan 25 01:47:07 2013 +0000

    Serialization/GlobalModuleIndex.cpp: Fixup r173405, <cstdio>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173408 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1a49d97d762570027863e9209af81d445e4f1502
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Jan 25 01:03:03 2013 +0000

    Implement the reader of the global module index and wire it into the
    AST reader.

    The global module index tracks all of the identifiers known to a set
    of module files. Lookup of those identifiers looks first in the global
    module index, which returns the set of module files in which that
    identifier can be found. The AST reader only needs to look into those
    module files and any module files not known to the global index (e.g.,
    because they were (re)built after the global index), reducing the
    number of on-disk hash tables to visit. For an example source I'm
    looking at, we go from 237844 total identifier lookups into on-disk
    hash tables down to 126817.

    Unfortunately, this does not translate into a performance advantage.
    At best, it's a wash once the global module index has been built, but
    that's ignore the cost of building the global module index (which
    is itself fairly large). Profiles show that the global module index
    code is far less efficient than it should be; optimizing it might give
    enough of an advantage to justify its continued inclusion.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173405 91177308-0d34-0410-b5e6-96231b3b80d8

commit f575d6e7c3b887ea4c5394d2c7e322c7a929a57e
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Jan 25 00:45:27 2013 +0000

    Rename the -cc1 option "-generate-module-index" to
    "-fmodules-global-index" and expand its behavior to include both the
    use and generation of the global module index.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173404 91177308-0d34-0410-b5e6-96231b3b80d8

commit e169807aaea2464cbe68305f013ec7b41625af30
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Jan 25 00:38:33 2013 +0000

    Track the number of lookups and hits into the on-disk hash tables for
    identifiers within the AST file reader.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173403 91177308-0d34-0410-b5e6-96231b3b80d8

commit ae82c2b7b62d742f56638fa3cfb0f550ddcaf315
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Jan 25 00:20:28 2013 +0000

    Clarify comment: "diagnose" is better than "warn" when emitting an error.

    Thanks, Dmitri.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173400 91177308-0d34-0410-b5e6-96231b3b80d8

commit d4497dde6fc8f5ce79e0ec37682b8dc920bbbef0
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Jan 25 00:08:28 2013 +0000

    Clean up: since we have FunctionDecl::IsInline, make it store the right value
    for template instantiations, and use it to simplify the implementation of
    FunctionDecl::isInlined().

    This incidentally changes the result of isInlined on a declared-but-not-defined
    non-inline member function from true to false. This is sort of a bug fix, but
    currently isInlined is only called on function definitions, so it has no visible
    effects.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173397 91177308-0d34-0410-b5e6-96231b3b80d8

commit 57e2a1662e6e5faff01beba4b29ee35b635e0aa9
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Fri Jan 25 00:06:54 2013 +0000

    FileCheck'ize test

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173396 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5c9e20fed27764581bfbb7cbf9e8a1a4878b0ed8
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Thu Jan 24 23:44:04 2013 +0000

    FileCheck'ize test

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173393 91177308-0d34-0410-b5e6-96231b3b80d8

commit b8ccd43dbf762935c9202f6f4e3343afb2318725
Author: Anna Zaks <ganna@apple.com>
Date:   Thu Jan 24 23:40:17 2013 +0000

    [analyzer] Fixup for r173385 and r173386 - initialize the members.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173392 91177308-0d34-0410-b5e6-96231b3b80d8

commit 057519de2ffd389b603c2da7c312a6ca39de1ade
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Thu Jan 24 23:34:51 2013 +0000

    FileCheck'ize test

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173391 91177308-0d34-0410-b5e6-96231b3b80d8

commit 45f1fa9ef2363bdedd97b086a96a131996590c56
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Thu Jan 24 23:29:37 2013 +0000

    FileCheck'ize test

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173389 91177308-0d34-0410-b5e6-96231b3b80d8

commit a7972a08e0fb16e5e7e8364ab6fc8889debf18ab
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Jan 24 23:24:32 2013 +0000

    Fixes text of diagnostics in integer overflow patch.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173388 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0a04cbd98f65827918e857e7ab5597676b9d8e3b
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Thu Jan 24 23:21:11 2013 +0000

    FileCheck'ize test/SemaCXX/qualified-names-print.cpp and merge it to other
    -ast-print tests

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173387 91177308-0d34-0410-b5e6-96231b3b80d8

commit d130140cb7bce73b4350c5d50495443abe38418a
Author: Anna Zaks <ganna@apple.com>
Date:   Thu Jan 24 23:15:34 2013 +0000

    [analyzer] Add "-analyzer-config mode=[deep|shallow] ".

    The idea is to introduce a higher level "user mode" option for
    different use scenarios. For example, if one wants to run the analyzer
    for a small project each time the code is built, they would use
    the "shallow" mode.

    The user mode option will influence the default settings for the
    lower-level analyzer options. For now, this just influences the ipa
    modes, but we plan to find more optimal settings for them.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173386 91177308-0d34-0410-b5e6-96231b3b80d8

commit bfa9ab8183e2fdc74f8633d758cb0c6201314320
Author: Anna Zaks <ganna@apple.com>
Date:   Thu Jan 24 23:15:30 2013 +0000

    [analyzer] Replace "-analyzer-ipa" with "-analyzer-config ipa".

    The idea is to eventually place all analyzer options under
    "analyzer-config". In addition, this lays the ground for introduction of
    a high-level analyzer mode option, which will influence the
    default setting for IPAMode.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173385 91177308-0d34-0410-b5e6-96231b3b80d8

commit 73f0563009a6715a5d3d41f664f5bfab5096d51f
Author: Anna Zaks <ganna@apple.com>
Date:   Thu Jan 24 23:15:25 2013 +0000

    [analyzer] refactor: access IPAMode through the accessor.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173384 91177308-0d34-0410-b5e6-96231b3b80d8

commit 33e9500784a6b8dc7f01ae5c85ebf0883fbc6662
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Jan 24 23:07:59 2013 +0000

    scan-build: Add a --keep-empty option for better testing.

    SATestBuild expects to compare output directories for each invocation of
    scan-build that it runs, but scan-build clears out empty directories by
    default. We were coincidentally not getting that behavior until r173294.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173383 91177308-0d34-0410-b5e6-96231b3b80d8

commit 75c12bf46d5175060d0adeab992a886f22ef7ef8
Author: David Blaikie <dblaikie@gmail.com>
Date:   Thu Jan 24 22:47:48 2013 +0000

    FileCheck-ify some debug info scope related tests.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173379 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8f6284750822e2062da583415164467f57cdf214
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Jan 24 22:26:55 2013 +0000

    removed duplicated comment.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173378 91177308-0d34-0410-b5e6-96231b3b80d8

commit ad48a500596d7d678b99c7f94326cfa856c3b49f
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Jan 24 22:11:45 2013 +0000

    Patch to check for integer overflow. It has been
    commented on and approved by Richard Smith.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173377 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6c23bd2890acdc87b9d52ac65108d36ecb703c0b
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Jan 24 21:48:50 2013 +0000

    Move 'convertUTF8Sequence' helper into the C++ section of the header file.

    It's annotated as "inline", but ConvertUTF.c should still be able to compile
    as C89.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173376 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4055cfc46a5beb13d0daeace53ac3fe56a1f4ad1
Author: Akira Hatanaka <ahatanaka@mips.com>
Date:   Thu Jan 24 21:47:33 2013 +0000

    [mips] Do not emit i32 padding if target ABI is O32. This was causing backend
    to pass floating point arguments to be passed in integer registers.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173375 91177308-0d34-0410-b5e6-96231b3b80d8

commit dcceacb7f0085346164ac1dfb13f6f559533376b
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Jan 24 21:19:51 2013 +0000

    Test fix-it ranges for Unicode characters.

    Also, remove stray -fdiagnostics-parseable-fixits from ucn-pp-identifier.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173373 91177308-0d34-0410-b5e6-96231b3b80d8

commit b87672b124ab4fbe6f2cabc2ad71655fc71230ea
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Jan 24 20:50:52 2013 +0000

    Add a fixit for \U1234 -> \u1234.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173371 91177308-0d34-0410-b5e6-96231b3b80d8

commit fc12060ed595fd23d731b8a86adb21ddbb8c7bfb
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Jan 24 20:50:50 2013 +0000

    As an extension, treat Unicode whitespace characters as whitespace.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173370 91177308-0d34-0410-b5e6-96231b3b80d8

commit c7629d941557f7179eb8fa8a2e2a74d749cbaf7c
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Jan 24 20:50:46 2013 +0000

    Handle universal character names and Unicode characters outside of literals.

    This is a missing piece for C99 conformance.

    This patch handles UCNs by adding a '\\' case to LexTokenInternal and
    LexIdentifier -- if we see a backslash, we tentatively try to read in a UCN.
    If the UCN is not syntactically well-formed, we fall back to the old
    treatment: a backslash followed by an identifier beginning with 'u' (or 'U').

    Because the spelling of an identifier with UCNs still has the UCN in it, we
    need to convert that to UTF-8 in Preprocessor::LookUpIdentifierInfo.

    Of course, valid code that does *not* use UCNs will see only a very minimal
    performance hit (checks after each identifier for non-ASCII characters,
    checks when converting raw_identifiers to identifiers that they do not
    contain UCNs, and checks when getting the spelling of an identifier that it
    does not contain a UCN).

    This patch also adds basic support for actual UTF-8 in the source. This is
    treated almost exactly the same as UCNs except that we consider stray
    Unicode characters to be mistakes and offer a fixit to remove them.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173369 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5209e2bc4d18e679dcacfd6f6a0120aa1d4a757f
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Jan 24 20:50:13 2013 +0000

    Unify diagnostics for \x, \u, and \U without any following hex digits.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173368 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8b3326527eb83fbab624a7173acd0d6813dc5845
Author: Chad Rosier <mcrosier@apple.com>
Date:   Thu Jan 24 20:46:39 2013 +0000

    Fail these tests in a way that doesn't cause unexpected successes, per Daniel's
    suggestion.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173367 91177308-0d34-0410-b5e6-96231b3b80d8

commit 872a6f6bfecf462a7cb1f124e2f5ee31c7a7e39d
Author: Chad Rosier <mcrosier@apple.com>
Date:   Thu Jan 24 20:33:35 2013 +0000

    Temporarily XFAIL this test; the compiler will segfault if the target-specific
    parser is not included in the compiler. Thanks to Renato for discovering the
    underlying issue.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173365 91177308-0d34-0410-b5e6-96231b3b80d8

commit ae07378ff9bf4af9bdd97a4607437ace4c32b7e7
Author: Chad Rosier <mcrosier@apple.com>
Date:   Thu Jan 24 20:24:34 2013 +0000

    [ms-inline asm] Add an error when trying to compile MS-style inline assembly
    for an unsupported architecture.
    rdar://13063988

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173364 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9d718635fa805674aaba5d938f3dc6b35b8632ba
Author: Chad Rosier <mcrosier@apple.com>
Date:   Thu Jan 24 19:14:47 2013 +0000

    [driver] Associate a JobAction with each result file.  This enables the driver
    to delete result files for only those commands that fail.
    Part of rdar://12984531

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173361 91177308-0d34-0410-b5e6-96231b3b80d8

commit 51d8c52ad36129760eaa586f85176037e2cd0d0e
Author: Michael Han <fragmentshaders@gmail.com>
Date:   Thu Jan 24 16:46:58 2013 +0000

    PR14922: when printing an attribute, use the real syntax of the attribute (GNU, C++11, MS Declspec) instead of hardcoded GNU syntax.

    Introduce a spelling index to Attr class, which is an index into the attribute spelling list of an attribute defined in Attr.td.
    This index will determine the actual spelling used by an attribute, as it incorporates both the syntax and naming of the attribute.
    When constructing an attribute AST node, the spelling index is computed based on attribute kind, scope (if it's a C++11 attribute), and
    name, then passed to Attr that will use the index to print itself.

    Thanks to Richard Smith for the idea and review.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173358 91177308-0d34-0410-b5e6-96231b3b80d8

commit 68bb7a6b1febbb96a60eef4e541a657c414bfda8
Author: Joey Gouly <joey.gouly@arm.com>
Date:   Thu Jan 24 15:24:54 2013 +0000

    Fix a non-conformant OpenCL test case.
    Program scope variables must be declared in the constant address space
    and are required to be initialized.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173354 91177308-0d34-0410-b5e6-96231b3b80d8

commit ec07557a1e43ca0e7d0b6af0e69e18caaf1f0635
Author: Joey Gouly <joey.gouly@arm.com>
Date:   Thu Jan 24 15:19:51 2013 +0000

    Properly remove this test file, that I copied over to test/SemaOpenCL in r173352.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173353 91177308-0d34-0410-b5e6-96231b3b80d8

commit 627b46315389b206d3e25169ca585bd52853b04b
Author: Joey Gouly <joey.gouly@arm.com>
Date:   Thu Jan 24 15:14:22 2013 +0000

    Fix an OpenCL test case that was OpenCL conformant.
    It had program scope variables that were not in the constant address space,
    make them to be function scope variables instead.
    Also move the test to the SemaOpenCL directory.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173352 91177308-0d34-0410-b5e6-96231b3b80d8

commit d2db16f59601bc028f4f973990cc6d4abe95b91a
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Jan 24 08:20:11 2013 +0000

    clang/GlobalModuleIndex: Don't open the same file twice. Use raw_fd_ostream(fd, ...) instead.

    FIXME: PathV2::unique_file() is assumed to open the file with binary mode on win32.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173330 91177308-0d34-0410-b5e6-96231b3b80d8

commit 35ae83278d04d7d7ab5bb2c82d4323a4a05f52de
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Jan 24 07:04:14 2013 +0000

    clang/test/Modules/global_index.m: XFAILing on win32 when investigating for now.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173326 91177308-0d34-0410-b5e6-96231b3b80d8

commit bcac91aafc226f6ea505b3117cc55f566ad48f2d
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Thu Jan 24 03:43:15 2013 +0000

    Give warn_redecl_library_builtin a flag name: -Wincompatible-library-redeclaration.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173319 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9b7ea0d2cc86c949ed70ad810f51ff34c7ce2f83
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Thu Jan 24 02:03:08 2013 +0000

    Start checking nonnull (as well as format and argument_with_type_tag) on
    overloaded binary operators.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173315 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5d9484da2168e20a70a16938bd8dee86ac82521a
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Thu Jan 24 01:12:16 2013 +0000

    Fix some wonky formatting, remove spurious emacs major mode marker. No
    functionality change!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173314 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4ea6a646af4765791d0829034016bd47eff8c789
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Jan 23 23:38:20 2013 +0000

    Micro cleanup: use an array of const char, rather than an array of char, as the
    type of the string literal implicitly used for a raw user-defined literal call.
    No test; this has no semantic impact.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173309 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2f169f8645ffbecf7f9bfed48c02915f34a377f5
Author: Bill Wendling <isanbard@gmail.com>
Date:   Wed Jan 23 23:07:21 2013 +0000

    Don't check lines beginning with '#', since they could contain a path with the unexpected word in them.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173307 91177308-0d34-0410-b5e6-96231b3b80d8

commit ee64b81c36d60483d385d6a099df1e6b5bb30618
Author: Bill Wendling <isanbard@gmail.com>
Date:   Wed Jan 23 23:06:28 2013 +0000

    Don't check lines beginning with '#', since they could contain a path with the unexpected word in them.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173306 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0e697aa6704dbc9c4c693ac5cdb60dbc791920d2
Author: Bill Wendling <isanbard@gmail.com>
Date:   Wed Jan 23 23:04:29 2013 +0000

    The diagnostic is now a warning instead of an error. Also don't check lines beginning with '#', since they could contain a path with the unexpected word in them.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173305 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5100135ecf29d4246e6bd34318da9eb22c16b86a
Author: Douglas Gregor <dgregor@apple.com>
Date:   Wed Jan 23 22:45:24 2013 +0000

    Fix for case-sensitive file systems. Ugh

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173303 91177308-0d34-0410-b5e6-96231b3b80d8

commit a6b00fc97669aa25d89ae9f202b05dfadfd0e324
Author: Douglas Gregor <dgregor@apple.com>
Date:   Wed Jan 23 22:38:11 2013 +0000

    Implement the writer side of the global module index.

    The global module index is a "global" index for all of the module
    files within a particular subdirectory in the module cache, which
    keeps track of all of the "interesting" identifiers and selectors
    known in each of the module files. One can perform a fast lookup in
    the index to determine which module files will have more information
    about entities with a particular name/selector. This information can
    help eliminate redundant lookups into module files (a serious
    performance problem) and help with creating auto-import/auto-include
    Fix-Its.

    The global module index is created or updated at the end of a
    translation unit that has triggered a (re)build of a module by
    scraping all of the .pcm files out of the module cache subdirectory,
    so it catches everything. As with module rebuilds, we use the file
    system's atomicity to synchronize.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173301 91177308-0d34-0410-b5e6-96231b3b80d8

commit 38878aa394dc6e08146288e86939956bc742fb0b
Author: Ted Kremenek <kremenek@apple.com>
Date:   Wed Jan 23 21:29:13 2013 +0000

    Add a test case for 'analyzer_noreturn' on category methods.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173295 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7a334d9ed9ff7426e78a88582207b47b370ec5de
Author: Ted Kremenek <kremenek@apple.com>
Date:   Wed Jan 23 21:22:14 2013 +0000

    Always process an index.html file if we have HTML output.  Patch by Justin Bogner.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173294 91177308-0d34-0410-b5e6-96231b3b80d8

commit b33349e605a7373b067f7b96619e27c57c13932b
Author: Ted Kremenek <kremenek@apple.com>
Date:   Wed Jan 23 21:12:49 2013 +0000

    Add missing null check.  Not sure why my tests passed before.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173292 91177308-0d34-0410-b5e6-96231b3b80d8

commit a5b6469a55fb8796353b073f6c12694b0adc77c2
Author: Ted Kremenek <kremenek@apple.com>
Date:   Wed Jan 23 21:00:27 2013 +0000

    Honor attribute 'analyzer_noreturn' on Objective-C methods.

    This isn't likely a full solution, but it catches the common cases
    and can be refined over time.

    Fixes <rdar://problem/11634353>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173291 91177308-0d34-0410-b5e6-96231b3b80d8

commit e438bac04165937036e41c321fa0d5567d1e520c
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Jan 23 20:41:06 2013 +0000

    Add extra indent for nested calls inside if's.

    Before:
    if (aaaaaaaaaa(
        aaaaaaaaaa)) {}

    After:
    if (aaaaaaaaaa(
            aaaaaaaaaa)) {}

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173290 91177308-0d34-0410-b5e6-96231b3b80d8

commit 630f4bb9f12e330438281c4e46deb6656620b73a
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Wed Jan 23 20:02:51 2013 +0000

    Implement -Wvla correctly

    GCC implements -Wvla as "warn on every VLA" (this is useful to find every VLA,
    for example, if they are forbidden by coding guidelines).  Currently Clang
    implements -Wvla as "warn on VLA when it is an extension".

    The attached patch makes our behavior match GCC.  The existing vla extwarn is
    moved under -Wvla-extension and is still included into -Wgnu.

    This fixes PR5953.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173286 91177308-0d34-0410-b5e6-96231b3b80d8

commit 479633ced74c887ee9ec5905b3cb0bb1a37349b0
Author: Douglas Gregor <dgregor@apple.com>
Date:   Wed Jan 23 18:53:14 2013 +0000

    Factor the trait for lookup into the on-based hash table of
    identifiers into two parts: the part that involves dealing with the
    key (which can be re-used) and the ASTReader-specific part that
    creates the IdentifierInfos. While I'm at it, StringRef'ify this code,
    which was using pair<const char*, unsigned>. No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173283 91177308-0d34-0410-b5e6-96231b3b80d8

commit 440285cb2213a16a71b429ac0cb59fc19a2364f6
Author: Sean Silva <silvas@purdue.edu>
Date:   Wed Jan 23 18:28:48 2013 +0000

    docs: clear up ambiguity

    Anybody using clang is a "developer".

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173282 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0c06cbc51c581ea31dac14134bd184e491fe5caf
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Jan 23 18:21:56 2013 +0000

    [PCH] Temporarily disable the "ambiguous macro" warning that is currently bogus with a PCH
    that redefined a macro without undef'ing it first.

    Proper reconstruction of the macro info history from modules will properly fix this in subsequent commits.

    rdar://13016031

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173281 91177308-0d34-0410-b5e6-96231b3b80d8

commit cc12f8deef52d2592bca2334804d650c3821ce69
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Wed Jan 23 18:02:28 2013 +0000

    Documentation: add a note that -cc1 options are not guaranteed to be stable

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173280 91177308-0d34-0410-b5e6-96231b3b80d8

commit e22339c44bb28d71a2cc97c840d3da0c4bdb4909
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Wed Jan 23 17:25:27 2013 +0000

    libclang: change return type of getCursorDecl() to 'const Decl *'

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173278 91177308-0d34-0410-b5e6-96231b3b80d8

commit 89cf425f1136f8d24a64ed94450e488b6794dfa4
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Wed Jan 23 17:21:11 2013 +0000

    Use 'const Decl *' throughout code completion in Sema

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173277 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8441fffda14c5d9ac704f24173fcb117d4999a8e
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Wed Jan 23 17:06:56 2013 +0000

    Add constness for NestedNameSpecifier::Create parameter

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173274 91177308-0d34-0410-b5e6-96231b3b80d8

commit f39c8859b087151617aa2c8b193d0b332503e3ca
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Jan 23 16:58:21 2013 +0000

    Don't try to align builder-type continuations on assignments.

    Before:
    int aaaa = aaaaa().aaaaa() // force break
               .aaaaa();
    After:
    int aaaa = aaaaa().aaaaa() // force break
        .aaaaa();

    The other indent is just wrong and confusing.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173273 91177308-0d34-0410-b5e6-96231b3b80d8

commit b76d9718caea48b9333979b3da6f3a80110840cb
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Wed Jan 23 16:52:57 2013 +0000

    Constify some getters in RedeclarableTemplateDecl

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173272 91177308-0d34-0410-b5e6-96231b3b80d8

commit e4ea879fe73581bc70a9bfbfddc7ca06b5c0768b
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Wed Jan 23 15:56:07 2013 +0000

    Remove uneeded casts

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173269 91177308-0d34-0410-b5e6-96231b3b80d8

commit 13cb7c2c46bca6f52fd217091ef2922a3eca46f5
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Jan 23 15:55:19 2013 +0000

    Don't try to do a hanging ident after assignments.

    Before:
    bool aaaa = aaaaaaaaaaa(
                    aaaaaaaaaaaaaaaaa);

    After:
    bool aaaa = aaaaaaaaaaa(
        aaaaaaaaaaaaaaaaa);

    The other indentation was a nice attempt but doesn't work in many cases.
    Not sure what the right long term solution is as the "After: " is still
    not nice. We either need to figure out what to do in the cases where it
    "doesn't work" or come up with a third solution, e.g. falling back to:

    bool aaaa =
        aaaaaaaaaaa(
            aaaaaaaaaaaaaaaaa);

    which should always work and nicely highlight the structure.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173268 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7ccbc2156bfe473f080b585130d70e51c4b62bb0
Author: Manuel Klimek <klimek@google.com>
Date:   Wed Jan 23 14:37:36 2013 +0000

    Fix handling of macro definitions.

    Now correctly formats:
     #define A (1)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173264 91177308-0d34-0410-b5e6-96231b3b80d8

commit a32a7fda316289dca6aac1352fde3caf14a1cb2f
Author: Manuel Klimek <klimek@google.com>
Date:   Wed Jan 23 14:08:21 2013 +0000

    Fixes layouting regression and invalid-read.

    Layouting would prevent breaking before + in
    a[b + c] = d;
    Regression detected by code review.

    Also fixes an invalid-read found by the valgrind bot.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173262 91177308-0d34-0410-b5e6-96231b3b80d8

commit 20d3583857c2cc99dcc9c27ff5f23916df9c0812
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Jan 23 12:58:14 2013 +0000

    Fix the formatting of pointer/reference types in range-based for loops.

    Before: for (int & a : Values) {}
    After:  for (int &a : Values) {}

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173259 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7006e7ebc0098b7627bd3cc13367ea576c25dcbb
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Jan 23 12:27:43 2013 +0000

    Removing the penalty for breaking after "=".

    Having seen more cases, this actually was not a good thing to do in the
    first place. We can still improve on what we do now, but breaking after
    the "=" is good in many cases.

    Before:
    aaaaaaaaaaaaa = aa->aaaaaaaaaaaaaaaaaaaa(
                        aaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaa));

    After:
    aaaaaaaaaaaaa =
        aa->aaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaa));

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173257 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4bfc65aab5408f76dfe38e3f4e4375fadeda3bc3
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Jan 23 12:10:53 2013 +0000

    Fix another regression for pointer types.

    Before: if (int * a = &b) ...
    After:  if (int *a = &b) ...

    Also changed all the existing tests to test the expressions in question
    both in a declaration and in an expression context.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173256 91177308-0d34-0410-b5e6-96231b3b80d8

commit 19dbb20ac4371fae3190379a7e7bd467af3c00aa
Author: Joey Gouly <joey.gouly@arm.com>
Date:   Wed Jan 23 11:56:20 2013 +0000

    Add a new LangOpt NativeHalfType. This option allows for native half/fp16
    operations (as opposed to storage only half/fp16).

    Also add some semantic checks for OpenCL half types.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173254 91177308-0d34-0410-b5e6-96231b3b80d8

commit 218b6dfaee321cec558e15d47b68155dd9f35684
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Jan 23 11:15:14 2013 +0000

    Fix regression in formatting pointer types.

    We will need a more principled solution, but we should not leave this
    unfixed until we come up with one.

    Before: void f() { int * a; }
    After:  void f() { int *a; }

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173252 91177308-0d34-0410-b5e6-96231b3b80d8

commit 836b58f564e07e806d3d0b41a193fde0921013c7
Author: Manuel Klimek <klimek@google.com>
Date:   Wed Jan 23 11:03:04 2013 +0000

    Fixes incorrect handling of the declaration context stack.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173250 91177308-0d34-0410-b5e6-96231b3b80d8

commit 092a2c7373c02d1653bea1feb1ada05363b02bc2
Author: Manuel Klimek <klimek@google.com>
Date:   Wed Jan 23 10:09:28 2013 +0000

    Fix segfaults in the formatter.

    Also: expletive deleted.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173247 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8f4bd7a20f89d9065bebadd270e6bc7822257d37
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Jan 23 10:08:28 2013 +0000

    Add option to allow putting all parameters onto the next line.

    This only affects styles where BinPackParameters is false.

    With AllowAllParametersOnNextLine:
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
        aaaaaaaaaa, aaaaaaaaaa, aaaaaaaaaa, aaaaaaaaaaa, aaaaaaaaaaa);

    Without it:
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaa,
                                             aaaaaaaaaa,
                                             aaaaaaaaaa,
                                             aaaaaaaaaaa,
                                             aaaaaaaaaaa);

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173246 91177308-0d34-0410-b5e6-96231b3b80d8

commit 70b03f4edaefcc5b9aa2e084d1c12e9d91b32a77
Author: Manuel Klimek <klimek@google.com>
Date:   Wed Jan 23 09:32:48 2013 +0000

    Allow us to better guess the context of an unwrapped line.

    This gives us the ability to guess better defaults for whether a *
    between identifiers is a pointer dereference or binary operator.

    Now correctly formats:
    void f(a *b);
    void f() { f(a * b); }

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173243 91177308-0d34-0410-b5e6-96231b3b80d8

commit 69652660e765ec2bbcf1877ac05c66e91b8fa745
Author: Bill Wendling <isanbard@gmail.com>
Date:   Wed Jan 23 08:58:23 2013 +0000

    Explicitly cast away the const-ness instead of doing it implicitly.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173241 91177308-0d34-0410-b5e6-96231b3b80d8

commit ccdfdd7937d74396ca1b3bb69ed2642a8ff4c712
Author: Bill Wendling <isanbard@gmail.com>
Date:   Wed Jan 23 08:25:41 2013 +0000

    Explicitly cast away the const-ness instead of doing it implicitly.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173232 91177308-0d34-0410-b5e6-96231b3b80d8

commit 89530e45729d300b39c7332d2ad20c3ea476ab94
Author: Bill Wendling <isanbard@gmail.com>
Date:   Wed Jan 23 06:15:10 2013 +0000

    Remove the last of uses that use the Attribute object as a collection of attributes.

    Collections of attributes are handled via the AttributeSet class now. This
    finally frees us up to make significant changes to how attributes are structured.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173229 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3edf387e4338ff98d9874b4c1b41d787e49d6c2b
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Wed Jan 23 05:08:29 2013 +0000

    Make __attribute__((nonnull)) use the general expression evaluator to search for
    nulls instead of limiting itself to the language-defined "null pointer
    constant".

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173227 91177308-0d34-0410-b5e6-96231b3b80d8

commit d069c3d9cb8e858d3cb28e4d0a99a086c38453c5
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Wed Jan 23 01:25:23 2013 +0000

    clang/test/Driver/output-file-is-dir.c: This requires shell due to 'cd'.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173218 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6ea3a2a6fafde4732ca4dd0426141772a5904271
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Wed Jan 23 01:08:23 2013 +0000

    [Driver] Don't remove non-regular files that were outputs.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173215 91177308-0d34-0410-b5e6-96231b3b80d8

commit 18f43a62134eca1cd830a5b289f4bee4e6ee42fe
Author: James Dennett <jdennett@google.com>
Date:   Wed Jan 23 00:45:44 2013 +0000

    Documentation cleanup: fixing documentation for FrontendAction.
    * Fix a typo, s/BeginSourceAction/BeginSourceFile/, so that the documentation
      for FrontendAction::BeginSourceFileAction links correctly to BeginSourceFile;
    * Add some basic \file documentation for FrontendAction.h;
    * More use of "\brief" instead of repeating the name of the entity being
      documented;
    * Stop using Doxygen-style "///" comments in FrontendAction.cpp, as they were
      polluting the documentation for BeginSourceFile;
    * Drop incorrect "\see" markup that broke Doxygen's formatting;
    * Other minor documentation fixes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173213 91177308-0d34-0410-b5e6-96231b3b80d8

commit 909b6ded6be68a5740d98b478454fa55ea817ad6
Author: Bill Wendling <isanbard@gmail.com>
Date:   Wed Jan 23 00:21:06 2013 +0000

    Use the AttributeSet when adding multiple attributes and an Attribute::AttrKind
    when adding a single attribute to the function.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173211 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3cc6277a3dd4986af6422e41db18ba6efddbd800
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Jan 22 23:49:45 2013 +0000

    Fix compilation on Linux, which defines PATH_MAX in a weird place,
    from Saleem Abdulrasool!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173208 91177308-0d34-0410-b5e6-96231b3b80d8

commit bce9205e430e94918476ae62579f9e3c811294d7
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Jan 22 21:39:58 2013 +0000

    Add a triple, per Ben's suggestion.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173198 91177308-0d34-0410-b5e6-96231b3b80d8

commit bd00bdb4f70d280bfffe785561bd368a7b6e9f27
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Jan 22 20:57:10 2013 +0000

    Second attempt to fix ppc bots.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173193 91177308-0d34-0410-b5e6-96231b3b80d8

commit 80d38eb7f25cd0fe2483a52ab225fa7331615f18
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Jan 22 20:16:41 2013 +0000

    Add x86 requirement to hopefully fix ppc bots.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173190 91177308-0d34-0410-b5e6-96231b3b80d8

commit b0fc94ceaf1462a56068bbe400e6f22ef96ac681
Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
Date:   Tue Jan 22 20:02:45 2013 +0000

    PowerPC: fix __builtin_eh_return_data_regno return

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173188 91177308-0d34-0410-b5e6-96231b3b80d8

commit b2e2157f905b0b6e27f1d3f5e1f38778c6731813
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Jan 22 19:38:32 2013 +0000

    [ms-inline asm] Remove the -fenable-experimental-ms-inline-asm flag.  MS-style
    inline assembly can be enable with -fasm-blocks or -fms-extensions alone.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173186 91177308-0d34-0410-b5e6-96231b3b80d8

commit d6ec47363870cefac1c8d136a5011abbf3a4a786
Author: Ted Kremenek <kremenek@apple.com>
Date:   Tue Jan 22 19:32:27 2013 +0000

    Split "discards qualifiers" warnings of -Wincompatible-pointer-types into subgroup.

    This allows users to promote -Wincompatible-pointer-type warnings to
    errors but keep those for "discard qualifiers" as warnings (if they
    so desire).

    Addresses <rdar://problem/13062738>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173184 91177308-0d34-0410-b5e6-96231b3b80d8

commit 68c41460470edd11bc71b230d9890c0a8dca9108
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Tue Jan 22 19:22:22 2013 +0000

    Update docs: nullptr conversion tool landed

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173183 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3548068c22f809e5bc64b83d2c3622018469256c
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Jan 22 19:05:17 2013 +0000

    Small code change to improve performance
    in my last patch, suggested by Argyrios.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173182 91177308-0d34-0410-b5e6-96231b3b80d8

commit 48f3cc2b2be1d32df14234904539b34e6e387e4a
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Jan 22 18:35:43 2013 +0000

    objectiveC (take two): don't warn when in -Wselector mode and
    an unimplemented selector is consumed by
    "respondsToSelector:". // rdar://12938616

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173179 91177308-0d34-0410-b5e6-96231b3b80d8

commit c666cf404d37d6624a4efdf06cc2f9f1995cfe9c
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Jan 22 18:18:22 2013 +0000

    [ms-inline asm] Remove a warning about ms-style inline assembly not being
    supported.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173177 91177308-0d34-0410-b5e6-96231b3b80d8

commit e0d2066ab8812cbaa16d79af5f2c9fb6bd52d2e2
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Jan 22 17:08:30 2013 +0000

    Make getDefinitiveDeclContext() actually return a DeclContext, as one
    would expect, and clean up the return/break inconsistencies. Thanks,
    Sebastian!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173171 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3a344f9fc7a62ad0a8d26b2a1ccf5e4989720d0c
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Tue Jan 22 17:00:09 2013 +0000

    Fix a bug in VarDecl::getSourceRange() for static member arrays with an element
    type with an implicit initializer expression.

    Patch from Will Wilson <will@indefiant.com>!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173170 91177308-0d34-0410-b5e6-96231b3b80d8

commit f5ecfa5b4fb01dee3f357efc815fbc715706aba5
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Tue Jan 22 16:53:59 2013 +0000

    Formatter: Remove a fixme klimek fixed in r173168.

    Add a few comments to the ObjC test cases.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173169 91177308-0d34-0410-b5e6-96231b3b80d8

commit 86721d2a4610ac0a4b162952ec409df1fe397d58
Author: Manuel Klimek <klimek@google.com>
Date:   Tue Jan 22 16:31:55 2013 +0000

    Implements more principled comment parsing.

    Changing nextToken() in the UnwrappedLineParser to get the next
    non-comment token. This allows us to correctly layout a whole class of
    snippets, like:

    if /* */(/* */ a /* */) /* */
      f() /* */; /* */
    else /* */
      g();

    Fixes a bug in the formatter where we would assume there is a previous
    non-comment token.
    Also adds the indent level of an unwrapped line to the debug output in
    the parser.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173168 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3298327e0e6ecb31ca8f3d0996043292e7c860f2
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Jan 22 14:28:24 2013 +0000

    Let the formatter be more restrictive for breaking around . and ->

    Before:
    aaaaaaaaaaaaaaa(aaaaaaaaa, aaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaa)
        .aaaaaaaaaaaaaaaaaa();

    After:
    aaaaaaaaaaaaaaa(aaaaaaaaa, aaaaaaaaa,
                    aaaaaaaaaaaaaaaaaaaaaaa).aaaaaaaaaaaaaaaaaa();

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173160 91177308-0d34-0410-b5e6-96231b3b80d8

commit ffee17126e10a0e2febfcfbf61d8e0d6e2fcf4c0
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Jan 22 11:46:26 2013 +0000

    Fix "*" formatting when creating arrays of pointers.

    Before: A = new int * [10]();
    After:  A = new int *[10]();

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173150 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ec55f24b8f848bb37a9971100cf2fca379d5572
Author: Tim Northover <Tim.Northover@arm.com>
Date:   Tue Jan 22 09:46:51 2013 +0000

    Switch to APFloat constructor taking fltSemantics.

    This change also makes the serialisation store the required semantics,
    fixing an issue where PPC128 was always assumed when re-reading a
    128-bit value.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173139 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6a94c1ea2d9ee397cc9d75045117a39e8f62235d
Author: Alexander Potapenko <glider@google.com>
Date:   Tue Jan 22 09:27:00 2013 +0000

    [ASan] Fixed darwin-sanitizer-ld.c to match the flags after the switch to the dynamic runtime.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173137 91177308-0d34-0410-b5e6-96231b3b80d8

commit 454028e1beed117f98d7e5157ba47e784e521f72
Author: Alexander Potapenko <glider@google.com>
Date:   Tue Jan 22 09:16:03 2013 +0000

    [ASan] Link with the dynamic runtime on OS X
    This patch changes the behavior of the -fsanitize=address flag, making it use the dynamic runtime library (libclang_rt.asan_osx_dynamic.dylib) instead of the static one. It also drops the CoreFoundation dependency, since the dynamic runtime doesn't need it.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173135 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6f7eeb9a977ca2ed31a2c749fa421d6c850d38d5
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Jan 22 04:11:33 2013 +0000

    libclang: Update comment about USEDLIBS in c-*-test/Makefile.

    "Note that 'USEDLIBS' must include all of the core clang libraries when -static is given to linker on cygming."

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173124 91177308-0d34-0410-b5e6-96231b3b80d8

commit b62faef5ec86c1931785ffa805ece9b491735894
Author: John McCall <rjmccall@apple.com>
Date:   Tue Jan 22 03:56:22 2013 +0000

    Use the correct field to copy/dispose a __block variable.

    We were previously hard-coding a particular field index.  This was
    fine before (because we were obviously guaranteed the presence
    of a copy/dispose member) except for (1) alignment padding and
    (2) future extensions adding extra members to the header, such
    as the extended-layout pointer.

    Note that we only introduce the extended-layout pointer in the
    presence of structs.  (We also seem to be introducing it even
    in the presence of an all-non-object layout, but that's a
    different potential issue.)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173122 91177308-0d34-0410-b5e6-96231b3b80d8

commit 614323cc1cd3af406ed697bed7324f76f871419e
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Jan 22 03:49:16 2013 +0000

    clang/test/Index/comment-to-html-xml-conversion.cpp: Mark this as XFAIL:valgrind, for now. Working in progress.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173121 91177308-0d34-0410-b5e6-96231b3b80d8

commit cc128e90b4287388dd266719dfb856d87e31372b
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Jan 22 01:52:04 2013 +0000

    clang/test: [CMake] check-clang doesn't require llvm-dis any more.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173116 91177308-0d34-0410-b5e6-96231b3b80d8

commit a7246da6ad5344aab8d0856c246b3cb1bd76e65a
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Jan 22 01:51:59 2013 +0000

    clang/test/CodeGen: Nuke llvm's opt and llvm-dis, and FileCheck-ize two tests. -O1 is sufficient here.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173115 91177308-0d34-0410-b5e6-96231b3b80d8

commit 146254fb4ee74f924a6ef71319e7a29fca35ff10
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Jan 22 01:51:54 2013 +0000

    clang/test/CodeGen/2006-01-13-StackSave.c: Nuke llvm's opt and llvm-dis, and FileCheck-ize.

    @llvm.stacksave is emitted regardless of "opt -std-compile-opts". We have optimizers' tests in llvm/test/Transforms.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173114 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9627bb6e00321a079a6cce887bc85f5e4e50baa5
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Jan 22 01:51:48 2013 +0000

    clang/test/CodeGen/blocks-seq.c: FileCheck-ize.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173113 91177308-0d34-0410-b5e6-96231b3b80d8

commit 821627e5865c29357aef0e4f175b0abd083bf191
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Jan 21 22:49:20 2013 +0000

    Remove "incorrect" aligning of trailing comments.

    We used to align trailing comments belong to different things.
    Before:
    void f() { // some function..
    }
    int a;     // some variable..

    After:
    void f() { // some function..
    }
    int a; // some variable..

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173100 91177308-0d34-0410-b5e6-96231b3b80d8

commit ed01f84d20a1586b2d639b47463cf1f22418f0f6
Author: Bill Wendling <isanbard@gmail.com>
Date:   Mon Jan 21 22:45:00 2013 +0000

    Have AttributeSet::getRetAttributes() return an AttributeSet instead of Attribute.

    This further restricts the use of the Attribute class to the Attribute family of
    classes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173099 91177308-0d34-0410-b5e6-96231b3b80d8

commit f11ccc1cbb26cacac36abebe6ce9add43bf32585
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Mon Jan 21 22:32:29 2013 +0000

    objectiveC: don't warn when in -Wselector mode and
    an unimplemented selector is consumed by
    "respondsToSelector:". // rdar://12938616

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173097 91177308-0d34-0410-b5e6-96231b3b80d8

commit a37ce617af7300eee3ceab435021c342e62c5661
Author: Bill Wendling <isanbard@gmail.com>
Date:   Mon Jan 21 21:57:40 2013 +0000

    Make AttributeSet::getFnAttributes() return an AttributeSet instead of an Attribute.

    This is more code to isolate the use of the Attribute class to that of just
    holding one attribute instead of a collection of attributes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173095 91177308-0d34-0410-b5e6-96231b3b80d8

commit c3c9d17eab67d51d9990f7c57ab6f92856071191
Author: Stephen Hines <srhines@google.com>
Date:   Tue Jan 15 23:50:35 2013 -0800

    Revert to prior ARM ABI behavior on Android.

    Change-Id: I66bab71382189842861348af4efb8dad206c693e

commit cd376b63c42214c7851ca917e7da9d30f9e84fa4
Author: Stephen Hines <srhines@google.com>
Date:   Wed Jan 9 00:19:46 2013 -0800

    Update Clang for merge to r171906.

    clang-tblgen-rules.mk - New AttrDump.inc target
    lib/AST/Android.mk
    lib/Analysis/Android.mk
    lib/Basic/Android.mk
    lib/Lex/Android.mk
    lib/Parse/Android.mk
    lib/Sema/Android.mk
    lib/StaticAnalyzer/Checkers/Android.mk

    Change-Id: If31b4c9123f730ab851f11b00b0688166b14b4b2

commit 15bb58edc9d053aa49c28167deb41ff0409ddabc
Merge: 1e1d6e9 d130fd2
Author: Stephen Hines <srhines@google.com>
Date:   Mon Jan 21 13:20:10 2013 -0800

    Merge commit 'd130fd2e141f1fef412c2d58e7385370801bd718' into merge-llvm

    Conflicts:
    	lib/Basic/Targets.cpp

    Change-Id: I90a669a33ffe4de8b32c8459016fd0b2a55da0ad

commit cc71dbee441e97285e86bff48eecfbeab82de7ce
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Jan 21 20:07:12 2013 +0000

    Give ModuleFiles an index, so that we can use indexed vectors rather
    than DenseMaps and SmallPtrSets for module-visitation data. ~2.6%
    speedup for modules.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173081 91177308-0d34-0410-b5e6-96231b3b80d8

commit b892d7010f9c2c61e2f3a2686546cbfbffbedef3
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Jan 21 19:42:21 2013 +0000

    Eliminate Sema::CompareProperties(), which was walking over a pile of
    lexical declarations looking for properties when we could more
    efficiently check for property mismatches at property declaration
    time. Good for ~1% of -fsyntax-only time when most of the properties
    we're checking against come from an AST file.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173079 91177308-0d34-0410-b5e6-96231b3b80d8

commit 05bf827fb8c0812e14d287c24e6f0a0b8e64377e
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Mon Jan 21 19:35:06 2013 +0000

    Formatter: Set MatchingParen for [], to match <>, (), {}. No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173078 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3f29fbb9d86dc58730bbfcdd26dc6ee6a401cbd4
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Mon Jan 21 19:29:31 2013 +0000

    Formatter: Rename LSquare to Left to make parseSquare() more consistent with the other paren parsing methods.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173077 91177308-0d34-0410-b5e6-96231b3b80d8

commit 308232c0aef773d24693f9e456dc3bc983934f7f
Author: Manuel Klimek <klimek@google.com>
Date:   Mon Jan 21 19:17:52 2013 +0000

    Fixes various problems around enum parsing.

    Very similar to what we do for record definitions:
    - tighten down what is an enum definition, so that we don't mistake a
      function for an enum
    - allow common idioms around declarations (we'll want to handle that
      more centrally in the future)

    We now correctly format:
    enum X f() {
      a();
      return 42;
    }

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173075 91177308-0d34-0410-b5e6-96231b3b80d8

commit aabd094cf694039fe823987e133af7ac25cb9711
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Jan 21 19:05:22 2013 +0000

    Eliminate the oddly-named Sema::ComparePropertiesInBaseAndSuper, which
    did a redundant traversal of the lexical declarations in the
    superclass. Instead, when we declare a new property, look into the
    superclass to see whether we're redeclaring the property. Goot for 1%
    of -fsyntax-only time on Cocoa.h and a little less than 3% on my
    modules test case.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173073 91177308-0d34-0410-b5e6-96231b3b80d8

commit eb8fc58241e1781a77c958764e16a4c402e4d707
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Mon Jan 21 18:45:42 2013 +0000

    [ASTUnit] Unlike LoadFromCommandLine, LoadFromCompilerInvocation causes a crash if Precompilepreamble
    is set to true because there is no FileManager at that point.

    Patch by Hurcan Solter!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173071 91177308-0d34-0410-b5e6-96231b3b80d8

commit 141b90cd3d095b638045d9bc2a070af37d32e1e1
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Mon Jan 21 18:41:05 2013 +0000

    [analyzer] Fix test for r173067.

    Note to self: don't remove comments /after/ updating the line-sensitive
    part of a test.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173070 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0dfe23c5d571222e74e3ed74c6fff3cee792118e
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Jan 21 18:35:55 2013 +0000

    Replace some unnecessary O(N^2) lookups for properties with
    DeclContext lookups. The performance win is negligible in my tests,
    but it's the Right Thing To Do (TM).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173068 91177308-0d34-0410-b5e6-96231b3b80d8

commit 187f8bd88bfc92cf3fea62b7d8db5f92edce410a
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Mon Jan 21 18:28:30 2013 +0000

    [analyzer] Show notes inside implicit calls at the last explicit call site.

    Before:
      struct Wrapper { <-- 2. Calling default constructor for 'NonTrivial'.
        NonTrivial m;
      };

      Wrapper w; <-- 1. Calling implicit default constructor for 'Wrapper'.

    After:
      struct Wrapper {
        NonTrivial m;
      };

      Wrapper w; <-- 1. Calling implicit default constructor for 'Wrapper'.
                 ^-- 2. Calling default constructor for 'NonTrivial'.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173067 91177308-0d34-0410-b5e6-96231b3b80d8

commit 125eb3e3b6cc2f3e7b2e0e04e59c924f936520f5
Author: Chris Lattner <sabre@nondot.org>
Date:   Mon Jan 21 18:28:26 2013 +0000

    ReadSourceManagerBlock is skipping over records that can contain Blobs.  Not passing
    in a StringRef to bind to them forces them to be unpacked into the Record as individual
    bytes.  This is wasteful, but not likely to be measurable in this instance.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173066 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8222b8951da749d4f086d7b39de5ff0221297509
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Jan 21 16:52:34 2013 +0000

    Revert r173056; it breaks one of the CodeGen-with-PCH tests.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173058 91177308-0d34-0410-b5e6-96231b3b80d8

commit c44cc015a8525e9b7d81a1f1cc1b6e827cfe6762
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Jan 21 16:47:11 2013 +0000

    When loading an identifier from an AST file solely for the purpose of
    forming the identifier, e.g., as part of a selector or a declaration
    name, don't actually deserialize any information about the
    identifier. Instead, simply mark it "out-of-date" and we'll load the
    the information on demand. 2% speedup on the modules testcase I'm
    looking at; should also help PCH.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173056 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2f1ac41a6d8d202dcc39ab8eb56ccea823dc062e
Author: Manuel Klimek <klimek@google.com>
Date:   Mon Jan 21 16:42:44 2013 +0000

    Fixes formatting of empty blocks.

    We now only put empty blocks into a single line, if all of:
    - all tokens of the structural element fit into a single line
    - we're not in a control flow statement

    Note that we usually don't put record definitions into a single line, as
    there's usually at least one more token (the semicolon) after the
    closing brace. This doesn't hold when we are in a context where there is
    no semicolon, like "enum E {}".

    There were some missing tests around joining lines around the corner
    cases of the allowed number of columns, so this patch adds some.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173055 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9cfdc03fe7abab2f413bb7fdc59e9be15c382a74
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Jan 21 16:16:40 2013 +0000

    When deserializing a declaration, don't look for redeclarations if its
    kind indicates that it can never be redeclared. Good for a 1% speedup,
    and redeclaration searching drops off the profile.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173054 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5a04f9fc2b000da98fd903c8156034304bdadb2f
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Jan 21 15:25:38 2013 +0000

    Introduce a fast path for the ASTReader's name lookup within a
    DeclContext. When the DeclContext is of a kind that can only be
    defined once and never updated, we limit the search to the module file
    that conatins the lookup table. Provides a 15% speedup in one
    modules-heavy source file.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173050 91177308-0d34-0410-b5e6-96231b3b80d8

commit 032f25329565adfc542f001953565091eccba130
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Jan 21 14:39:22 2013 +0000

    Fix parsing of templated declarations.

    Before: template <template <typename T>, typename P > class X;
    After:  template <template <typename T>, typename P> class X;

    More importantly, the token annotations for the second ">" are now computed
    correctly.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173047 91177308-0d34-0410-b5e6-96231b3b80d8

commit d19dc2ddf3f8630cfdbefec490c0000c14bee6bd
Author: Manuel Klimek <klimek@google.com>
Date:   Mon Jan 21 14:32:05 2013 +0000

    Fixes indent in linkage specification blocks.

    We now indent:
    extern "C" {
    int a;
    }

    without additional indent inside the extern "C" block.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173045 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9c8c40e7334a59159392d020dd4339b86326ec00
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Jan 21 14:18:28 2013 +0000

    Fix bug discovered by valgrind.

    When trying to merge lines, we should not touch lines that are invalid,
    as we don't know how long they might be.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173043 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0fbe0087d2558c509dcfdb4b593b844625c2dd3d
Author: Manuel Klimek <klimek@google.com>
Date:   Mon Jan 21 14:16:56 2013 +0000

    Add regression test.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173042 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6de6aab8248ef67d3a65018d4ad26f51ac35b3d3
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Mon Jan 21 14:15:24 2013 +0000

    AST/VTableBuilder.h: Suppress a warning. [-Wunused-private-field]

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173041 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3a3408cceb438af7cdebb5b3d938abb916162bb4
Author: Manuel Klimek <klimek@google.com>
Date:   Mon Jan 21 13:58:54 2013 +0000

    Fixes detection of class template specializations.

    Now correctly formats:
    template <> class A<int> {} a;

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173038 91177308-0d34-0410-b5e6-96231b3b80d8

commit 649c7316aa29181df7270732722fe5d07ab3c7ad
Author: Timur Iskhodzhanov <timurrrr@google.com>
Date:   Mon Jan 21 13:02:41 2013 +0000

    First step towards vftable generation with -cxx-abi microsoft PR13231

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173035 91177308-0d34-0410-b5e6-96231b3b80d8

commit 445743dec72f675070d4789c348607cd8cbf6090
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Mon Jan 21 11:25:03 2013 +0000

    Add a fixit for _Noreturn main,
    add tests for fixits removing static and inline from main

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173024 91177308-0d34-0410-b5e6-96231b3b80d8

commit d24c9ab90b42370bb417f44e001a0347ee1ca87e
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Mon Jan 21 10:51:28 2013 +0000

    CGDebugInfo.cpp: Fix a warning. [-Wunused-variable]

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173022 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7f5b025e9b9a981a257d83063064ac6e58239d76
Author: Manuel Klimek <klimek@google.com>
Date:   Mon Jan 21 10:17:14 2013 +0000

    Allow for nested name specifiers in record declarations.

    Now correctly formats:
    class A::B {} n;

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173019 91177308-0d34-0410-b5e6-96231b3b80d8

commit c44ee89cb448e34aada006b707eb45a1280f31e3
Author: Manuel Klimek <klimek@google.com>
Date:   Mon Jan 21 10:07:49 2013 +0000

    Fix parsing of return statements.

    Previously, we would not detect brace initializer lists in return
    statements, thus:
     return (a)(b) { 1, 2, 3 };
    would put the semicolon onto the next line.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173017 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2cb3d300ecd36558bf2201debe28808d12a97be2
Author: Alexey Samsonov <samsonov@google.com>
Date:   Mon Jan 21 08:45:02 2013 +0000

    Port r172856: 'Include ubsan runtime even when building a shared library. We don't require executable to be linked with UBSan.' to Mac

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173014 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4b12be6a354fcad670ed440ce6c1c0583ee28186
Author: David Blaikie <dblaikie@gmail.com>
Date:   Mon Jan 21 04:37:12 2013 +0000

    PR14472: Preserve qualifiers while unwrapping types for debug info

    Looks like r161368 fixed this for one case but not all. This change generalizes
    the solution over all the unwrapping cases. Now that preserving the qualifiers
    is done independent of the particular type being unwrapped I won't bother
    adding test cases for each one but at least demonstrate that this change was
    necessary & sufficient to fix the bug.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173002 91177308-0d34-0410-b5e6-96231b3b80d8

commit d9e26f59c25528b9de3c3f3939962a211a9a786d
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sun Jan 20 19:29:01 2013 +0000

    Prune unused diagnostics.

    Courtesy of utils/find-unused-diagnostics.sh.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172988 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4867b1bd4b3261621a7620fb9fdec0aa96abb1f1
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Sun Jan 20 15:30:41 2013 +0000

    clang/utils/valgrind/x86_64-pc-linux-gnu_gcc-4.3.3.supp: Add /usr/bin/cmp.

    FIXME: It could be removed if;

      - check-all included llvm/valgrind/supp, too.
      - clang-vg didn't use "check-all".

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172982 91177308-0d34-0410-b5e6-96231b3b80d8

commit eedba1d620cb867a715495fb139315eaa39a8873
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Sun Jan 20 14:53:49 2013 +0000

    Add bitreader to LINK_COMPONENTS in users of libclang, c-arcmt-test and c-index-test.

    They don't link cygclang.dll, but libclang.a on cygwin.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172980 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4bdc60434c79126b75aee2bb391275f3bb746364
Author: Alexey Samsonov <samsonov@google.com>
Date:   Sun Jan 20 13:12:12 2013 +0000

    Add top-level Clang flag -f(no-)sanitize-address-zero-base-shadow that makes AddressSanitizer use bottom of the address space for the shadow memory. On Linux it can be used with -fPIE/-pie to improve performance.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172974 91177308-0d34-0410-b5e6-96231b3b80d8

commit e6b9d802fb7b16d93474c4f1c179ab36202e8a8b
Author: Guy Benyei <guy.benyei@intel.com>
Date:   Sun Jan 20 12:31:11 2013 +0000

    Implement OpenCL event_t as Clang builtin type, including event_t related OpenCL restrictions (OpenCL 1.2 spec 6.9)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172973 91177308-0d34-0410-b5e6-96231b3b80d8

commit b3ce35764adcc5749e8729709b1f3737227d90ec
Author: Chris Lattner <sabre@nondot.org>
Date:   Sun Jan 20 02:38:54 2013 +0000

    update to use the new BitcodeCursor readRecord that takes a StringRef blob parameter,
    and adopt "advance" in more places.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172951 91177308-0d34-0410-b5e6-96231b3b80d8

commit d47afb96a3f988e6d21a92fe4dfe875ab227c7c0
Author: Sean Silva <silvas@purdue.edu>
Date:   Sun Jan 20 01:58:28 2013 +0000

    Nuke SetUpBuildDumpLog.

    Also, it was the only reason that `argc` and `argv` were being passed
    into createDiagnostics, so remove those parameters and clean up callers.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172945 91177308-0d34-0410-b5e6-96231b3b80d8

commit d2ff76b84c2f018f438eac2c2dd8b82bde441468
Author: Sean Silva <silvas@purdue.edu>
Date:   Sun Jan 20 01:58:26 2013 +0000

    Fix what appears to be a copy-paste error.

    This looks like it was copied from SetUpBuildDumpLog, which dumps to the
    file `DiagOpts->DumpBuildInformation`. There is another member
    `DiagOpts->DiagnosticLogFile` which appears to be unused. The fact that
    this feature doesn't even print to the output file specified on the
    command line makes me think that it should be ripped out.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172944 91177308-0d34-0410-b5e6-96231b3b80d8

commit a89701bb49601235b8dabafccf10ca4b2efed0e2
Author: David Blaikie <dblaikie@gmail.com>
Date:   Sun Jan 20 01:19:17 2013 +0000

    The last of PR14471: Debug info support for inline in-class initializer for float static members

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172942 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0116a40116616701282e12f3d92cf2949102d76a
Author: Michael Gottesman <mgottesman@apple.com>
Date:   Sun Jan 20 01:04:14 2013 +0000

    Fixed trailing whitespace.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172939 91177308-0d34-0410-b5e6-96231b3b80d8

commit e4e4a88eb67ce1cd32a5761f0601fc029d68832b
Author: Chris Lattner <sabre@nondot.org>
Date:   Sun Jan 20 00:57:52 2013 +0000

    add back a #include needed on some builders.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172938 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8f9a1eb6dd35737c6b3ff63a19c6c1a07c06111e
Author: Chris Lattner <sabre@nondot.org>
Date:   Sun Jan 20 00:56:42 2013 +0000

    finish converting the normal cases in ASTReader to use the new BitstreamCursor APIs.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172937 91177308-0d34-0410-b5e6-96231b3b80d8

commit bba99ad6e28e0a91bbfb1137d52a5d7cb94c72d3
Author: Tobias Grosser <grosser@fim.uni-passau.de>
Date:   Sun Jan 20 00:42:16 2013 +0000

    [cindex.py]: Use spaces instead of tabs

    The tabs slipped in accidentally.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172934 91177308-0d34-0410-b5e6-96231b3b80d8

commit 99a5af0088b6340540912921cd0008ac75051a33
Author: Chris Lattner <sabre@nondot.org>
Date:   Sun Jan 20 00:00:22 2013 +0000

    convert some more stuff over to use new cursor APIs.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172932 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4918c5315240224ed78f35a9ca9400bd1acf8d89
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Jan 19 22:11:28 2013 +0000

    Actually update the test, fixup for r172923

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172925 91177308-0d34-0410-b5e6-96231b3b80d8

commit c934dfe950a14fe447aa14a7dae25d00ee87c8bb
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Jan 19 22:06:05 2013 +0000

    Use llvm::hexDigitValue in comment lexer

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172924 91177308-0d34-0410-b5e6-96231b3b80d8

commit 44a3ddbf7d2f46a002b5e85b240359c435509b4e
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Jan 19 22:04:44 2013 +0000

    Comment parsing: add more tests for html character references

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172923 91177308-0d34-0410-b5e6-96231b3b80d8

commit 88bde50fa30ce10f5d554b36dda66b3231ccef54
Author: Chris Lattner <sabre@nondot.org>
Date:   Sat Jan 19 21:39:22 2013 +0000

    switch a bunch of ASTReader to use the new BitstreamCursor::advance* methods,
    which hide a bunch of private details of the cursor from clients and simplify
    their code.  More to come.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172922 91177308-0d34-0410-b5e6-96231b3b80d8

commit e485f0761abc7ead2d0481db37fd50f5ae2e835b
Author: Chris Lattner <sabre@nondot.org>
Date:   Sat Jan 19 21:35:35 2013 +0000

    random tidying

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172920 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2b9de0bc05e3e1092a9d1880e62aeaa54dc343e3
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Jan 19 19:52:57 2013 +0000

    [analyzer] Don't show "Entered 'foo'" if 'foo' is implicit.

    Before:
      Calling implicit default constructor for 'Foo'  (where Foo is constructed)
      Entered call from 'test'  (at "=default" or 'Foo' declaration)
      Calling default constructor for 'Bar'  (at "=default" or 'Foo' declaration)

    After:
      Calling implicit default constructor for 'Foo'  (where Foo is constructed)
      Calling default constructor for 'Bar'  (at "=default" or 'Foo' declaration)

    This only affects the plist diagnostics; this note is never shown in the
    other diagnostics.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172915 91177308-0d34-0410-b5e6-96231b3b80d8

commit e8d7514d6adc149126d5cd47df95600389f0cb70
Author: David Blaikie <dblaikie@gmail.com>
Date:   Sat Jan 19 19:20:56 2013 +0000

    Emit the function type of member function pointer types the same as member functions.

    Adding the pseudo first parameter to a member function pointer's function type
    and mark it as artificial.

    Combined with a fix to GDB ( http://sourceware.org/bugzilla/show_bug.cgi?id=14998 )
    this fixes gdb.cp/member-ptr.exp with Clang.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172911 91177308-0d34-0410-b5e6-96231b3b80d8

commit e38c339ca4059b03c6a6ac97d062c9187eb30a0f
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sat Jan 19 19:10:12 2013 +0000

    libclangSerialization also depends on the bitreader.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172910 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2815bc91cf655e84a220e69cd07c5125c028df0c
Author: Chris Lattner <sabre@nondot.org>
Date:   Sat Jan 19 18:47:35 2013 +0000

    update header comment.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172909 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3a5fa0383c33140f661027d708d3f49b30cd4de0
Author: Chris Lattner <sabre@nondot.org>
Date:   Sat Jan 19 18:30:39 2013 +0000

    fix the unit tests too.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172907 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5975b67a9ba4dbda482a09cfeafae4acf299c985
Author: Chris Lattner <sabre@nondot.org>
Date:   Sat Jan 19 18:28:24 2013 +0000

    these now depend on the bitcode reader too.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172906 91177308-0d34-0410-b5e6-96231b3b80d8

commit ac179ca12b38afae11f004f986981152d1fa18b1
Author: Chris Lattner <sabre@nondot.org>
Date:   Sat Jan 19 18:24:13 2013 +0000

    this depends on the bitcode reader, since it is using it.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172905 91177308-0d34-0410-b5e6-96231b3b80d8

commit 69a8552f85c1b926320418cb98fe02988c79578f
Author: Tobias Grosser <grosser@fim.uni-passau.de>
Date:   Sat Jan 19 11:03:44 2013 +0000

    [cindex.py] Add cache for CompletionChunk spellings

    Most of the CompletionChunks represent braces, colons or other one
    character spellings. There is no need to call libclang, to figure out
    how to write a colon. Instead we use an internal cache to retrieve the
    correct spelling. As function calls from python are very expensive and
    this is a performance critical part of auto completion this patch makes
    formatting of auto completion results a lot faster.

    Formatting time changes from 0.57 to 0.45 seconds

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172901 91177308-0d34-0410-b5e6-96231b3b80d8

commit eca36d1ae23d0e4c46a3c2c2b91a19f4a2f8055d
Author: Tobias Grosser <grosser@fim.uni-passau.de>
Date:   Sat Jan 19 11:03:42 2013 +0000

    [cindex.py] Replace CachedProperty with our own implementation

    This is a very performance critical point for auto completion. The manual
    implementation gives a large speedup. As it does not complicate the code a lot,
    I figured it is worth the change. If anybody understands why the CachedProperty
    is here so much slower, I am very interested in working on an improvement of
    CachedProperty.

    Formatting time changes from 0.72 to 0.57 seconds.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172900 91177308-0d34-0410-b5e6-96231b3b80d8

commit e43d3861d969ad583e10ef7e46c5e08e866dfaa5
Author: Tobias Grosser <grosser@fim.uni-passau.de>
Date:   Sat Jan 19 11:03:40 2013 +0000

    [cindex.py]: Speed up lookup of the completion kind

    We can directly the number of the kind instead of going through the
    completionChunkKindMap.

    Formatting time changes from 0.84 to 0.72 seconds.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172899 91177308-0d34-0410-b5e6-96231b3b80d8

commit b1ba0efc3d1dc1daa5d82c40bc504e1f368c4fa0
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Sat Jan 19 08:09:44 2013 +0000

    Re-sort all the headers. Lots of regressions have crept in here.
    Manually fix the order of UnwrappedLineParser.cpp as that one didn't
    have its associated header as the first header.

    This also uncovered a subtle inclusion order dependency as CLog.h didn't
    include LLVM.h to pick up using declarations it relied upon.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172892 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6ee777de8b35a3a18da424356aebe9ec743dc497
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Sat Jan 19 06:31:24 2013 +0000

    Move an input header file under an Inputs directory to be consistent
    with other auxilliary test inputs and simplify the identification of
    inputs to tests.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172890 91177308-0d34-0410-b5e6-96231b3b80d8

commit 39371b8bbf1bb54bcadef74cffefc98ca8f00b76
Author: Ted Kremenek <kremenek@apple.com>
Date:   Sat Jan 19 04:33:14 2013 +0000

    Reapply r172878 with test case.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172888 91177308-0d34-0410-b5e6-96231b3b80d8

commit ba65f505b7cc2551571b299d05d767e0a892aaae
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sat Jan 19 03:48:05 2013 +0000

    Fix five more cases of tokens which can legally follow a type specifier.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172886 91177308-0d34-0410-b5e6-96231b3b80d8

commit dc1088f6201c3fb8f3f97f54c343f7d163fbec06
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Sat Jan 19 03:14:56 2013 +0000

    [PCH/Modules] Revert r172843, it caused a module to fail building.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172884 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1dfebd9f995066a229c34516eb14bc69c6bcde2c
Author: Anna Zaks <ganna@apple.com>
Date:   Sat Jan 19 02:18:15 2013 +0000

    [analyzer] Suppress warnings coming out of macros defined in sys/queue.h

    Suppress the warning by just not emitting the report. The sink node
    would get generated, which is fine since we did reach a bad state.

    Motivation

    Due to the way code is structured in some of these macros, we do not
    reason correctly about it and report false positives. Specifically, the
    following loop reports a use-after-free. Because of the way the code is
    structured inside of the macro, the analyzer assumes that the list can
    have cycles, so you end up with use-after-free in the loop, that is
    safely deleting elements of the list. (The user does not have a way to
    teach the analyzer about shape of data structures.)

    SLIST_FOREACH_SAFE(item, &ctx->example_list, example_le, tmpitem) {
    			if (item->index == 3) { // if you remove each time, no complaints
    				assert((&ctx->example_list)->slh_first == item);
    				SLIST_REMOVE(&ctx->example_list, item, example_s, example_le);
    				free(item);
    			}
    		}

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172883 91177308-0d34-0410-b5e6-96231b3b80d8

commit f30527901f84c9bf223db143b216a9061ee9e342
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Sat Jan 19 01:54:35 2013 +0000

    Whitespace.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172881 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6adfff14ee7eaaf50af00bcb793a79e7d82f1265
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Sat Jan 19 01:47:46 2013 +0000

    Revert r172878, "Reword warning about using a *static* variable within its own initialization."

    It broke, at least, linux, msvc and mingw bots.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172879 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1bdac1d447f0a9e8db97ed5598d15174bc00e5e1
Author: Ted Kremenek <kremenek@apple.com>
Date:   Sat Jan 19 00:49:00 2013 +0000

    Reword warning about using a *static* variable within its own initialization.

    The warning is still under -Wuninitialized (although technically this
    is defined behavior), but under a subgroup -Wstatic-self-init.

    This addresses PR 10265.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172878 91177308-0d34-0410-b5e6-96231b3b80d8

commit 77fd3c0d7837040bb84c1617a6a423f833e784fe
Author: Ted Kremenek <kremenek@apple.com>
Date:   Sat Jan 19 00:25:06 2013 +0000

    -Wuninitialized: warn about uninitialized values resulting from ?: that evaluate to lvalues (in C++).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172875 91177308-0d34-0410-b5e6-96231b3b80d8

commit 299adab3e2033e9addc1df4544d8486fc596c6ff
Author: David Blaikie <dblaikie@gmail.com>
Date:   Fri Jan 18 23:03:15 2013 +0000

    Remove windows line endings.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172865 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8dc3c80c3f9401e32d68d2de83a04362c9d6f61a
Author: Matt Beaumont-Gay <matthewbg@google.com>
Date:   Fri Jan 18 22:34:17 2013 +0000

    Remove unused variable

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172862 91177308-0d34-0410-b5e6-96231b3b80d8

commit 728bb4c41844b1df98eb35e7fa98eb5ffa9d65a6
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Jan 18 22:33:58 2013 +0000

    Adopt llvm::hexDigitValue.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172861 91177308-0d34-0410-b5e6-96231b3b80d8

commit cd6bfd0d020c416fbe411678f2f100fde6112b4e
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Jan 18 22:33:54 2013 +0000

    Fix mismatched #endif.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172860 91177308-0d34-0410-b5e6-96231b3b80d8

commit 22eaced5cac3cf0522c953f593419fc6cf184aaf
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Jan 18 22:27:09 2013 +0000

    Once we've collected the template arguments for a
    partially-substituted parameter pack in a template, forget about the
    partially-substituted parameter pack: it is now completed. Fixes
    <rdar://problem/12176336>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172859 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0ecc2e9ce86b0705bc1a53a9c8f90c433bcdca1b
Author: DeLesley Hutchins <delesley@google.com>
Date:   Fri Jan 18 22:15:45 2013 +0000

    Thread-safety analysis: ignore edges from throw expressions in CFG.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172858 91177308-0d34-0410-b5e6-96231b3b80d8

commit 79188aec47679850214786ae7587d410746b0619
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Jan 18 22:09:26 2013 +0000

    Include ubsan runtime even when building a shared library. We don't require the executable to be linked with UBSan.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172856 91177308-0d34-0410-b5e6-96231b3b80d8

commit dbee9491716f98d226b3b15cd96dacb01ea69c54
Author: Akira Hatanaka <ahatanaka@mips.com>
Date:   Fri Jan 18 21:58:11 2013 +0000

    [mips] Enable inlining of atomic ops on mips32 and mips64.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172855 91177308-0d34-0410-b5e6-96231b3b80d8

commit e67e4c93dfc9d68bff094c61b588f87456917f6f
Author: Bill Wendling <isanbard@gmail.com>
Date:   Fri Jan 18 21:26:07 2013 +0000

    Use the AttributeSet query method instead of the Attribute method.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172849 91177308-0d34-0410-b5e6-96231b3b80d8

commit f953276b6165dc7e8f4679cce4d0e7c649cd4232
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Jan 18 20:59:01 2013 +0000

    [PCH/Modules] Re-apply r172620 and r172629, now with 100% less infinite loops!

    Makes sure that a deserialized macro is only added to the preprocessor macro definitions only once.
    Unfortunately I couldn't get a reduced test case.

    rdar://13016031

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172843 91177308-0d34-0410-b5e6-96231b3b80d8

commit 55fc3a767b9945bd1f311f2339dcaa8761da5661
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Fri Jan 18 18:41:42 2013 +0000

    Fix parsing of class specifiers before '\n' 'operator'.

    r159549 / r159164 regressed clang to reject

      struct s {};
      struct s
      operator++(struct s a)
      { return a; }

    This fixes the regression. Richard, pleas check if this looks right.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172834 91177308-0d34-0410-b5e6-96231b3b80d8

commit e02be97811c785f91ac43a0feed2db862de1867f
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Jan 18 18:27:21 2013 +0000

    [analyzer] Special path notes for C++ special member functions.

    Examples:
      Calling implicit default constructor for Foo
      Calling defaulted move constructor for Foo
      Calling copy constructor for Foo
      Calling implicit destructor for Foo
      Calling defaulted move assignment operator for Foo
      Calling copy assignment operator for Foo

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172833 91177308-0d34-0410-b5e6-96231b3b80d8

commit dc47c9a71c99ce2e5b9d84f1cd3487b6852b3543
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Jan 18 18:27:14 2013 +0000

    [analyzer] Do a better job describing C++ member functions in the call stack.

    Examples:
      Calling constructor for 'Foo'
      Entered call from 'Foo::create'

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172832 91177308-0d34-0410-b5e6-96231b3b80d8

commit ba287dc2fa46af68a84d69004ffc086e3e7311f1
Author: Manuel Klimek <klimek@google.com>
Date:   Fri Jan 18 18:24:28 2013 +0000

    Fix comment.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172831 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4c1281283513ff5cd37ee224639e2f3853ec9ea8
Author: Manuel Klimek <klimek@google.com>
Date:   Fri Jan 18 14:46:43 2013 +0000

    Fixes issues around pulling in the next line in simple if statements.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172822 91177308-0d34-0410-b5e6-96231b3b80d8

commit ea8bca7679d8e5129ad4b49758a43843d1d0dbe0
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Jan 18 14:11:04 2013 +0000

    clang/test/CodeGen: Suppress a couple of tests on win32. It seems -fsanitize-blacklist doesn't accept DOSish pathnames.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172820 91177308-0d34-0410-b5e6-96231b3b80d8

commit 525fe168c25a8273899281c5d2326c722fc3f2a5
Author: Manuel Klimek <klimek@google.com>
Date:   Fri Jan 18 14:04:34 2013 +0000

    Fixes problems with line merging in the face of preprocessor directives.

    This patch prepares being able to test for and fix more problems (see
    FIXME in the test for example).

    Previously we would output unwrapped lines for preprocessor directives
    at the point where we also parsed the hash token. Since often
    projections only terminate (and thus output their own unwrapped line)
    after peeking at the next token, this would lead to the formatter seeing
    the preprocessor directives out-of-order (slightly earlier). To be able
    to correctly identify lines to merge, the formatter needs a well-defined
    order of unwrapped lines, which this patch introduces.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172819 91177308-0d34-0410-b5e6-96231b3b80d8

commit b8238b6f20bf7b5a79f18dc84ab3e51db479faa7
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Jan 18 13:46:48 2013 +0000

    clang-check: Introduce llvm::sys::PrintStackTraceOnErrorSignal()

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172818 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4f45bc099f2665bc6e4bcbb169aa452390dbf3fe
Author: Will Dietz <wdietz2@illinois.edu>
Date:   Fri Jan 18 11:30:38 2013 +0000

    [ubsan] Add support for -fsanitize-blacklist

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172808 91177308-0d34-0410-b5e6-96231b3b80d8

commit c79afdae8a2e12d1e8f27a2ae0a43dfca3b8283b
Author: Daniel Jasper <djasper@google.com>
Date:   Fri Jan 18 10:56:38 2013 +0000

    Reduce penalty for splitting between ")" and ".".

    ').' is likely part of a builder pattern statement.
    This is based upon a patch developed by Nico Weber. Thank you!

    Before:
    int foo() {
      return llvm::StringSwitch<Reference::Kind>(name).StartsWith(
          ".eh_frame_hdr", ORDER_EH_FRAMEHDR).StartsWith(
          ".eh_frame", ORDER_EH_FRAME).StartsWith(".init", ORDER_INIT).StartsWith(
          ".fini", ORDER_FINI).StartsWith(".hash", ORDER_HASH).Default(ORDER_TEXT);
    }

    After:
    int foo() {
      return llvm::StringSwitch<Reference::Kind>(name)
             .StartsWith(".eh_frame_hdr", ORDER_EH_FRAMEHDR)
             .StartsWith(".eh_frame", ORDER_EH_FRAME)
             .StartsWith(".init", ORDER_INIT).StartsWith(".fini", ORDER_FINI)
             .StartsWith(".hash", ORDER_HASH).Default(ORDER_TEXT);
    }

    Probably not ideal, but makes many cases much more readable.

    The changes to overriding-ftemplate-comments.cpp don't seem better or
    worse. We should address those soon.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172804 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7d1185de4405637094d64f960f2b6d01f8bce04e
Author: Daniel Jasper <djasper@google.com>
Date:   Fri Jan 18 09:19:33 2013 +0000

    Also align trailing line comments in include directives.

    Before:
      #include <a> // for x
      #include <a/b/c> // for yz
    After:
      #include <a>     // for x
      #include <a/b/c> // for yz

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172799 91177308-0d34-0410-b5e6-96231b3b80d8

commit dcc2a6269ba86285b20ee76487807b9cd20cefbe
Author: Daniel Jasper <djasper@google.com>
Date:   Fri Jan 18 08:44:07 2013 +0000

    Let the formatter align trailing line comments where possible.

    Before:
    int a; // comment
    int bbbbb; // comment

    After:
    int a;     // comment
    int bbbbb; // comment

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172798 91177308-0d34-0410-b5e6-96231b3b80d8

commit 94fb72932c806c549f5c51f4bfa99fa7b481324a
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Fri Jan 18 05:50:57 2013 +0000

    Formatter: After case blocks, "break" goes on the same line as the "}", PR14907.

    Before:
    switch (foo) {
    case a: {
      int a = g();
      h(a);
    }
      break;
    }

    Now:
    switch (foo) {
    case a: {
      int a = g();
      h(a);
    } break;
    }

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172789 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5dfe9b47a5d52b97ba6452d40edb7ea0e04c4435
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Fri Jan 18 05:11:47 2013 +0000

    Formatter: Enable @encode test.

    This doesn't work right with pointers to pointers, but that's likely just a
    dupe of PR14884.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172785 91177308-0d34-0410-b5e6-96231b3b80d8

commit d3b036efdf0bf4ec216c701183a4b990cd041cd6
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Jan 18 04:34:14 2013 +0000

    Revert Clang r172620 and r172629, which caused a hang when building
    complicated modules (<rdar://problem/13038265>). Unfortunately, this
    un-fixes <rdar://problem/13016031>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172783 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6a21a556a728325e1fae4387128d149927a4fbff
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Fri Jan 18 02:43:57 2013 +0000

    Formatter: The contents of @selector() should be formatted as a selector.

    Before: @selector(foo: )
    Now: @selector(foo:)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172781 91177308-0d34-0410-b5e6-96231b3b80d8

commit f373c5d0b7f04fc3fa4e34bdfb868d118de6a641
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Jan 18 01:41:40 2013 +0000

    When checking the parameter types of an Objective-C method, don't
    decay the parameter type immediately; let CheckParameter() do its
    job. Fixes <rdar://problem/12071218>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172780 91177308-0d34-0410-b5e6-96231b3b80d8

commit 96bd14bf5833e26db0744fb94cfc85b2a67ae5c5
Author: Chad Rosier <mcrosier@apple.com>
Date:   Fri Jan 18 00:51:29 2013 +0000

    [ms-inline asm] Test case for r172773.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172774 91177308-0d34-0410-b5e6-96231b3b80d8

commit 92d1387ca9a1b2becdf7d72e0111872cff135197
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Jan 17 23:59:28 2013 +0000

    One can override an Objective-C ARC ownership qualifier that came from
    a template parameter; make that also include one that came from
    'auto'. Fixes <rdar://problem/12078752>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172770 91177308-0d34-0410-b5e6-96231b3b80d8

commit ba57183965f117279342903edec19766e478c9a8
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Jan 17 23:46:04 2013 +0000

    Some builtins do not evaluate their arguments. Teach EvaluatedExprVisitor not
    to visit them.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172769 91177308-0d34-0410-b5e6-96231b3b80d8

commit 02dd79830979e6d83d4420377e8f4c9e4a77439b
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Jan 17 23:36:45 2013 +0000

    In Objective-C ARC, completely ignore ownership qualifiers on the
    return type of a function by canonicalizing them away. They are
    useless anyway, and conflict with our rules for template argument
    deduction and __strong. Fixes <rdar://problem/12367446>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172768 91177308-0d34-0410-b5e6-96231b3b80d8

commit fa2b53c5780a8a6f38803a26e3c6f9f0a9ba8b4d
Author: Anna Zaks <ganna@apple.com>
Date:   Thu Jan 17 23:24:58 2013 +0000

    [analyzer] DirectIvarAssignment: allow suppression annotation on Ivars.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172766 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1a2dcd55a1924b46c919474390a3f0cdf2cebeb0
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Jan 17 23:18:09 2013 +0000

    Defer checking for unsequenced operations on the RHS of && and || in order to
    reduce stack usage and hopefully bring back the linux x86_64 buildbot.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172765 91177308-0d34-0410-b5e6-96231b3b80d8

commit cdbe1e0d85d7d32452dd1c52758d7bfaa1c0663b
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Jan 17 22:34:10 2013 +0000

    Format strings: don't ever convert %+d to %lu.

    Presumably, if the printf format has the sign explicitly requested, the user
    wants to treat the data as signed.

    This is a fix-up for r172739, and also includes several test changes that
    didn't make it into that commit.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172762 91177308-0d34-0410-b5e6-96231b3b80d8

commit de03c15ad92b44a4be11507ca2501bb9dd014dce
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Jan 17 22:16:11 2013 +0000

    Parsing support for C11's _Noreturn keyword. No semantics yet.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172761 91177308-0d34-0410-b5e6-96231b3b80d8

commit 995e4a7530d705147c875b63608532c483c011a8
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Jan 17 22:06:26 2013 +0000

    -Wunsequenced: if the LHS of an &&, || or ?: is not constant, check for
    unsequenced operations in the RHS. We don't compare the RHS with the rest of
    the expression yet; such checks will need care to avoid diagnosing unsequenced
    operations which are both in conditionally-evaluated subexpressions which
    actually can't occur together, such as in '(b && ++x) + (!b && ++x)'.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172760 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0234179282d59e6dfccc8b2da72a9a71bf5b6ac3
Author: Kevin Enderby <enderby@apple.com>
Date:   Thu Jan 17 21:38:06 2013 +0000

    We want the dwarf AT_producer for assembly source files to match clang's
    AT_producer.  Which includes clang's version information so we can tell
    which version of the compiler was used.

    This is second of the two steps to allow us to do this.  The first was a
    change to llvm-mc with revision 172630 to provide a method to set the
    AT_producer string.  This second step has the clang driver passing the value
    of getClangFullVersion() via the new flag -dwarf-debug-producer when invoking
    the integrated assembler on assembly source files.  Then using the new
    setDwarfDebugProducer() method to set the AT_producer string.

    rdar://12888242

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172758 91177308-0d34-0410-b5e6-96231b3b80d8

commit 17d481fb97b304a58e45a136e3f3e2a2a22b76c8
Author: Peter Collingbourne <peter@pcc.me.uk>
Date:   Thu Jan 17 20:17:16 2013 +0000

    Do not pass -pie flag to linker if -shared specified.  This matches
    the gcc driver and makes it possible to add -pie to $CC or similar and
    have it apply in the right places.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172753 91177308-0d34-0410-b5e6-96231b3b80d8

commit 205ecf01939d6e9c903f0e1d51455b2d882d076b
Author: Chad Rosier <mcrosier@apple.com>
Date:   Thu Jan 17 19:22:48 2013 +0000

    [ms-inline asm] Updates and test case for r172743.
    Part of rdar://12576868

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172744 91177308-0d34-0410-b5e6-96231b3b80d8

commit b8b5cbc169c9f6c523ada0d37dd126f7af65f3f8
Author: Chad Rosier <mcrosier@apple.com>
Date:   Thu Jan 17 19:21:24 2013 +0000

    [ms-inline asm] Extend the Sema interface to get the size and length of a
    VarDecl.
    Part of rdar://12576868

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172742 91177308-0d34-0410-b5e6-96231b3b80d8

commit 242ae3d6805185fcb4fd45e96af5beba93e3532c
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Jan 17 18:47:16 2013 +0000

    Format strings: correct signedness if already correcting width (%d,%u).

    It is valid to do this:
      printf("%u", (int)x);

    But if we see this:
      printf("%lu", (int)x);

    ...our fixit should suggest %d, not %u.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172739 91177308-0d34-0410-b5e6-96231b3b80d8

commit c8145bbab03caba4b7ef5540727487529c7effeb
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Jan 17 18:47:12 2013 +0000

    Convert test/FixIt/format-darwin.m to use relative line numbers.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172738 91177308-0d34-0410-b5e6-96231b3b80d8

commit 617bb317a7aeb6c3468a4170a5d6c1058da7cea1
Author: Joey Gouly <joey.gouly@arm.com>
Date:   Thu Jan 17 17:35:00 2013 +0000

    Add some semantic checks for OpenCL. Variadic macros, VLAs and bitfields are not supported.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172732 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5096a44f2ec5ab9e5b801424e04919f4fcf29f1d
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Thu Jan 17 17:17:19 2013 +0000

    Formatter: Get bit tests in ifs right.

    It's generally not possible to know if 'a' '*' 'b' is a multiplication
    expression or a variable declaration with a purely lexer-based approach. The
    formatter currently uses a heuristic that classifies this token sequence as a
    multiplication in rhs contexts (after '=' or 'return') and as a declaration
    else.

    Because of this, it gets bit tests in ifs, such as "if (a & b)" wrong. However,
    declarations in ifs always have to be followed by '=', so this patch changes
    the formatter to classify '&' as an operator if it's at the start of an if
    statement.

    Before:
      if (a& b)
      if (int* b = f())

    Now:
      if (a & b)
      if (int* b = f())

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172731 91177308-0d34-0410-b5e6-96231b3b80d8

commit 21937c6f1fd277b0b61e2621256c15ca3a6b0cc6
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Thu Jan 17 17:04:54 2013 +0000

    Documentation: formatting

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172729 91177308-0d34-0410-b5e6-96231b3b80d8

commit 60ca75d4d1878f8a45799316f462d4d0114238b4
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Jan 17 13:31:52 2013 +0000

    Allow breaking after the trailing const after a function declaration.

    Before:
    void aaaaaaaaaaaa(int aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) const GUARDED_BY(
        aaaaaaaaaaaaa);

    After:
    void aaaaaaaaaaaa(int aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) const
        GUARDED_BY(aaaaaaaaaaaaa);

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172718 91177308-0d34-0410-b5e6-96231b3b80d8

commit df96e022e95b8540c51e1bdaed03f66d851c6f93
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Thu Jan 17 13:19:29 2013 +0000

    Add initial rough support for synthesizing linker options when passed
    -fopenmp in the link step on Linux. There is probably more tweaking that
    will need to take place to get good support for linking the relevant
    libraries on all Linux distributions and/or on other platforms, but this
    get's the ball moving and allows Clang to build programs which contain
    OpenMP pragmas that can be safely ignored by a compiler that doesn't
    implement them, and yet makes direct calls into the OpenMP runtime.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172715 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2c6cc48a38455969b4602a2d37ce620101b7eebc
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Jan 17 12:53:34 2013 +0000

    Improve handling of comments in static initializers.

    Also adding more tests.

    We can now keep the formatting of something like:

    static SomeType type = { aaaaaaaaaaaaaaaaaaaa, /* comment */
                             aaaaaaaaaaaaaaaaaaaa /* comment */,
                             /* comment */ aaaaaaaaaaaaaaaaaaaa,
                             aaaaaaaaaaaaaaaaaaaa, // comment
                             aaaaaaaaaaaaaaaaaaaa };

    Note that the comment in the first line is handled like a trailing line comment
    as that is likely what the user intended.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172711 91177308-0d34-0410-b5e6-96231b3b80d8

commit ee000bb236fd99f297c253206e5f110a8f49661e
Author: David Blaikie <dblaikie@gmail.com>
Date:   Thu Jan 17 08:49:22 2013 +0000

    Improve -Wreorder to handle cases of anonymous class member ordering

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172707 91177308-0d34-0410-b5e6-96231b3b80d8

commit 334111d0be8bf3cd186ae9c66c8f2eb194003677
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Jan 17 07:27:55 2013 +0000

    clang/test/Index/code-completion-skip-bodies.cpp: Check stdout and stderr individually, rather than mixed output of stdout and stderr with 2>&1.

    XFAIL(s) are removed.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172705 91177308-0d34-0410-b5e6-96231b3b80d8

commit aab60054553c35f6761cf96f3476997f250f1f4a
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Thu Jan 17 06:14:50 2013 +0000

    Revert most of r172140.

    r172140 changed the formatter to produce "-(id) foo" instead of "- (id)foo"
    in google style, with a link to
    http://google-styleguide.googlecode.com/svn/trunk/objcguide.xml#Method_Declarations_and_Definitions
    as reference.  But now that I look at that link again, it seems I didn't
    read it very carefully the first time round.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172703 91177308-0d34-0410-b5e6-96231b3b80d8

commit 93c8617bec98aeb769ee9f569d7ed439eec03249
Author: David Blaikie <dblaikie@gmail.com>
Date:   Thu Jan 17 05:26:25 2013 +0000

    ArrayRef-ize some ctor initializer related APIs

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172701 91177308-0d34-0410-b5e6-96231b3b80d8

commit 72190da43924db7d0238fe5c696ecab2bb5bf196
Author: David Blaikie <dblaikie@gmail.com>
Date:   Thu Jan 17 05:26:21 2013 +0000

    Remove some unnecessary casts

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172700 91177308-0d34-0410-b5e6-96231b3b80d8

commit 459455b9868974e2bb98032f768fe111ff376ada
Author: David Blaikie <dblaikie@gmail.com>
Date:   Thu Jan 17 02:43:00 2013 +0000

    Add test for PR12938, fixed by Richard Smith in r172691

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172697 91177308-0d34-0410-b5e6-96231b3b80d8

commit 87b73ba920f523ef13f2420cbdb958a281aa6f33
Author: Matt Beaumont-Gay <matthewbg@google.com>
Date:   Thu Jan 17 02:06:08 2013 +0000

    Suppress all -Wunused-value warnings from macro body expansions.

    This is inspired by a number of false positives in real code, including
    PR14968. I've added test cases reduced from these false positives to
    test/Sema/unused-expr.c, as well as corresponding test cases that pass the
    offending expressions as arguments to a no-op macro to ensure that we do warn
    there.

    This also removes my previous tweak from r166522/r166534, so that we warn on
    unused cast expressions in macro arguments.

    There were several test cases that were using -Wunused-value to test general
    diagnostic emission features; I changed those to use other warnings or warn on
    a macro argument expression. I stared at the test case for PR14399 for a while
    with Richard Smith and we believe the new test case exercises the same
    codepaths as before.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172696 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6987e8d59ca1bde58e90f2df9486679c1943b862
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Jan 17 01:58:31 2013 +0000

    Add a comment for Daniel

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172695 91177308-0d34-0410-b5e6-96231b3b80d8

commit dca97dd5dab315e82be6dad0d90c51b030bea531
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Jan 17 01:46:13 2013 +0000

    Test that we correctly handle reversion of line splicing etc in raw string
    literals. As suggested by Sean Silva.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172694 91177308-0d34-0410-b5e6-96231b3b80d8

commit e5096c8f2f2e64d5ac98531ff9aa952bbe60d5fc
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Jan 17 01:40:50 2013 +0000

    Attempt to work around bug in older GCCs to fix buildbot.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172693 91177308-0d34-0410-b5e6-96231b3b80d8

commit f9d03c15e8642d4bd3686b8c8e8269242a0f37c6
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Thu Jan 17 01:35:06 2013 +0000

    [IRgen] Update modules autolink metadata to use module flags (as now specified
    in the LangRef).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172692 91177308-0d34-0410-b5e6-96231b3b80d8

commit cd8ab51a44e80625d84126780b0d85a7732e25af
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Jan 17 01:30:42 2013 +0000

    Implement C++11 semantics for [[noreturn]] attribute. This required splitting
    it apart from [[gnu::noreturn]] / __attribute__((noreturn)), since their
    semantics are not equivalent (for instance, we treat [[gnu::noreturn]] as
    affecting the function type, whereas [[noreturn]] does not).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172691 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6c3af3d0e3e65bcbca57bfd458d684941f6d0531
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Jan 17 01:17:56 2013 +0000

    Add -Wunsequenced (with compatibility alias -Wsequence-point) to warn on
    expressions which have undefined behavior due to multiple unsequenced
    modifications or an unsequenced modification and use of a variable.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172690 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4637d18deb6a9789e9ab1717c9ddde53dff9aead
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Jan 17 01:07:09 2013 +0000

    clang/test/Modules/compiler_builtins.m: Mark this as XFAIL:win32 for now. Investigating.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172689 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0f9b9f37941ea709104f02d7dbe4ea18ab457605
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Jan 17 00:38:46 2013 +0000

    Treat hidden Objective-C protocol definitions as if they were
    undefined, and don't find methods or protocols within those protocol
    definitions. This completes <rdar://problem/10634711>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172686 91177308-0d34-0410-b5e6-96231b3b80d8

commit a6f97071338e525d18e607ca286e338639dd2a5e
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Thu Jan 17 00:26:13 2013 +0000

    Implement a fixit for -Wmain-return-type

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172684 91177308-0d34-0410-b5e6-96231b3b80d8

commit 90a2d39d3082518566d5a22409a7bbba0d42f054
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Jan 17 00:25:06 2013 +0000

    objC block layout: Patch reorders block layout to
    produce more inline layout metadata. // rdar://12752901

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172683 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1c2397539d1b105eacee2a69ece4775d0af45618
Author: Matt Beaumont-Gay <matthewbg@google.com>
Date:   Thu Jan 17 00:21:55 2013 +0000

    Fix a typo introduced in r172665.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172682 91177308-0d34-0410-b5e6-96231b3b80d8

commit a44b97004298a4eb7c270009ea4cb12aad49c543
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Jan 16 23:54:48 2013 +0000

    [objcmt] Rewrite a NSDictionary dictionaryWithObjects:forKeys: to a dictionary literal
    if we can see the elements of the arrays.

    for example:

     NSDictionary *dict = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:@"1", @"2", nil] forKeys:[NSArray arrayWithObjects:@"A", @"B", nil]];

    -->

     NSDictionary *dict = @{ @"A" : @"1", @"B" : @"2" };

    rdar://12428166

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172679 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4d8a33b4cea46948f86afccf0ad3675aff924148
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Wed Jan 16 23:49:06 2013 +0000

    Delay linkage checks when validating the weakref attribute.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172678 91177308-0d34-0410-b5e6-96231b3b80d8

commit afb7ce3f877594362381926eaeac8ed6bbe18069
Author: Aaron Ballman <aaron@aaronballman.com>
Date:   Wed Jan 16 23:39:10 2013 +0000

    Fixes crash when illegal function definitions are deleted or defaulted.  Fixes PR14577.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172676 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2df0df8de44845a441f07a37db5bfcadd0215019
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Wed Jan 16 23:21:32 2013 +0000

    Simplify code. No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172673 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0a3cbd02ef4971d169cc1677ba7bb7be1c605cae
Author: David Blaikie <dblaikie@gmail.com>
Date:   Wed Jan 16 23:18:16 2013 +0000

    Remove unnecessary initialization i Added in r172668.

    echristo already fixed this in r172649, but I'll leave the reformatting in
    since I'm in the blame history for it now anyway.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172672 91177308-0d34-0410-b5e6-96231b3b80d8

commit 41a5fc56b5d66372318a984e30bae5a832787691
Author: David Blaikie <dblaikie@gmail.com>
Date:   Wed Jan 16 23:13:42 2013 +0000

    Readd an open paren that was lost while reformatting code.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172669 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4944606962e32babc4d67804f29874ba4f6a2b41
Author: David Blaikie <dblaikie@gmail.com>
Date:   Wed Jan 16 23:13:36 2013 +0000

    Fix -Wreorder warning.

    Rewrapping courtesy of clang-format.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172668 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2a5bb509e2d33a0f7aa4bb0ba53c73b5dfdd6bb4
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Wed Jan 16 23:11:15 2013 +0000

    Check for internal weak decls after merging.

    This fixes pr14946. The problem was that the linkage computation was done too
    early, so things like "extern int a;" would be given external linkage, even if
    a previous declaration was static.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172667 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4f918aed75d4927e88365541c7200f0b5fe5014b
Author: David Blaikie <dblaikie@gmail.com>
Date:   Wed Jan 16 23:08:36 2013 +0000

    PR14964: intrinsic headers using non-reserved identifiers

    Several of the intrinsic headers were using plain non-reserved identifiers.
    C++11 17.6.4.3.2 [global.names] p1 reservers names containing a double
    begining with an underscore followed by an uppercase letter for any use.

    I think I got them all, but open to being corrected. For the most part I
    didn't bother updating function-like macro parameter names because I don't
    believe they're subject to any such collission - though some function-like
    macros already follow this convention (I didn't update them in part because
    the churn was more significant as several function-like macros use the double
    underscore prefixed version of the same name as a parameter in their
    implementation)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172666 91177308-0d34-0410-b5e6-96231b3b80d8

commit d329724745b49f894b768d47275b7c2713106e89
Author: Douglas Gregor <dgregor@apple.com>
Date:   Wed Jan 16 23:00:23 2013 +0000

    Rework the traversal of Objective-C categories and extensions to
    consider (sub)module visibility.

    The bulk of this change replaces myriad hand-rolled loops over the
    linked list of Objective-C categories/extensions attached to an
    interface declaration with loops using one of the four new category
    iterator kinds:

      visible_categories_iterator: Iterates over all visible categories
      and extensions, hiding any that have their "hidden" bit set. This is
      by far the most commonly used iterator.

      known_categories_iterator: Iterates over all categories and
      extensions, ignoring the "hidden" bit. This tends to be used for
      redeclaration-like traversals.

      visible_extensions_iterator: Iterates over all visible extensions,
      hiding any that have their "hidden" bit set.

      known_extensions_iterator: Iterates over all extensions, whether
      they are visible to normal name lookup or not.

    The effect of this change is that any uses of the visible_ iterators
    will respect module-import visibility. See the new tests for examples.

    Note that the old accessors for categories and extensions are gone;
    there are *Raw() forms for some of them, for those (few) areas of the
    compiler that have to manipulate the linked list of categories
    directly. This is generally discouraged.

    Part two of <rdar://problem/10634711>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172665 91177308-0d34-0410-b5e6-96231b3b80d8

commit 804381d8ce78f60c40dd59f5a0b468a7de78b025
Author: Peter Collingbourne <peter@pcc.me.uk>
Date:   Wed Jan 16 22:37:09 2013 +0000

    Use getProcessTriple in clang-interpreter.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172664 91177308-0d34-0410-b5e6-96231b3b80d8

commit f109afdc0a36f835470e8c48bdf71a88c4130882
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Jan 16 21:43:09 2013 +0000

    Add raw string literal versus C preprocessor test, suggested by James Dennett.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172660 91177308-0d34-0410-b5e6-96231b3b80d8

commit 04c226aab970da86fc9f59ec3a808cf916458261
Author: Tim Northover <Tim.Northover@arm.com>
Date:   Wed Jan 16 20:35:54 2013 +0000

    Fix recent test for more diverse environments.

    I think the main issue was the lack of -ffreestanding, which pulled in
    the host's stdint.h. After that things went rapidly downhill.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172653 91177308-0d34-0410-b5e6-96231b3b80d8

commit c4a04010f676ce9ff0049b0fc5d1f96a2dbe81be
Author: Tim Northover <Tim.Northover@arm.com>
Date:   Wed Jan 16 20:13:15 2013 +0000

    Correct order of operands forwarding NEON vfma to LLVM fma

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172650 91177308-0d34-0410-b5e6-96231b3b80d8

commit 214ea9de659f4bfb3cf45ec361cf8be35bc0218d
Author: Eric Christopher <echristo@gmail.com>
Date:   Wed Jan 16 20:09:36 2013 +0000

    Move initialization of ParsingIfOrElifDirective down next to the macro
    initializations to fix Wreorder warning.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172649 91177308-0d34-0410-b5e6-96231b3b80d8

commit c3ad1003fda622abc091827a4dca8e5f81cc26d5
Author: Eric Christopher <echristo@gmail.com>
Date:   Wed Jan 16 19:54:35 2013 +0000

    Add testcase missed yesterday. Patch from Paul Robinson.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172648 91177308-0d34-0410-b5e6-96231b3b80d8

commit f5a45ea642b826a2312aa604a2e3fbf5269fc077
Author: Aaron Ballman <aaron@aaronballman.com>
Date:   Wed Jan 16 19:51:19 2013 +0000

    Adding verbiage to the Language Extensions document about __has_include and __has_include_next only being allowed within preprocessor directives.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172643 91177308-0d34-0410-b5e6-96231b3b80d8

commit 31672b1745195d709b641f1c0f44e203742fa73b
Author: Aaron Ballman <aaron@aaronballman.com>
Date:   Wed Jan 16 19:32:21 2013 +0000

    No longer crashing with an assert when __has_include or __has_include_next is used outside of a preprocessor directive.  This fixes PR14837.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172639 91177308-0d34-0410-b5e6-96231b3b80d8

commit f0e00046711280d494f3ef2d85ae67a442b97406
Author: Douglas Gregor <dgregor@apple.com>
Date:   Wed Jan 16 18:47:38 2013 +0000

    Teach global selector lookup to ignore hidden methods, which occur
    when the methods are declared in a submodule that has not yet been
    imported. Part of <rdar://problem/10634711>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172635 91177308-0d34-0410-b5e6-96231b3b80d8

commit d7bf4a4e9c100fb5fe098b0e1870d61891c09dd3
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Jan 16 18:13:00 2013 +0000

    [libclang] In clang_reparseTranslationUnit_Impl, move the check whether TU is
    null before using it.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172632 91177308-0d34-0410-b5e6-96231b3b80d8

commit f7f12646e8f8a45abea3ebcb81928fbe08187f97
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Jan 16 17:42:07 2013 +0000

    [PCH/Modules] The iterator may become invalidated because a new macro can be added
    while deserializing a macro, make sure to copy/move what we need from it.

    Fixes clang-x86_64-debian-fast bot.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172629 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7dfd18275259df609f8574a25302fc73a000aa64
Author: Reed Kotler <rkotler@mips.com>
Date:   Wed Jan 16 17:10:28 2013 +0000

    First step in implementation of mips16 and nomips16 attributes.
    Waiting for new llvm attribute code for the next step.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172626 91177308-0d34-0410-b5e6-96231b3b80d8

commit 93cf969df9afb22028aa8b4d575fa55681d1ec56
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Jan 16 17:04:31 2013 +0000

    [libclang] In clang_getCursorType, don't crash if the translation unit is not
    set on the cursor; return a null type in such a case.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172625 91177308-0d34-0410-b5e6-96231b3b80d8

commit 16618240a8a28d84de6d950f89145a78645e26e7
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Jan 16 17:00:50 2013 +0000

    Fix a bug where we would move a following line into a comment.

    Before: Constructor() : a(a), // comment a(a) {}
    After:  Constructor() : a(a), // comment
                            a(a) {}

    Needed this as a quick fix. Will add more tests for this in a future
    commit.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172624 91177308-0d34-0410-b5e6-96231b3b80d8

commit 36845474e217b952c720f4f87923bc78059640c5
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Jan 16 16:52:44 2013 +0000

    [preprocessor] Call the MacroUndefined callback even when the macro was not defined.

    Patch by Enea Zaffanella!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172623 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1f2b07898f66524fd7fe1b177fb0d7c58016e93b
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Jan 16 16:23:19 2013 +0000

    Fix parsing error in conditional expressions.

    We used to incorrectly parse

    aaaaaa ? aaaaaa(aaaaaa) : aaaaaaaa;

    Due to an l_paren being followed by a colon, we assumed it to be part of
    a constructor initializer. Thus, we never found the colon belonging to
    the conditional expression, marked the line as bing incorrect and did
    not format it.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172621 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7f69b1ab4f63ded511dddd7fb7e1cd8860757016
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Jan 16 16:19:38 2013 +0000

    [PCH/Modules] Change how macro [re]definitions are de/serialized.

    Previously we would serialize the macro redefinitions as a list, part of
    the identifier, and try to chain them together across modules individually
    without having the info that they were already chained at definition time.

    Change this by serializing the macro redefinition chain and then try
    to synthesize the chain parts across modules. This allows us to correctly
    pinpoint when 2 different definitions are ambiguous because they came from
    unrelated modules.

    Fixes bogus "ambiguous expansion of macro" warning when a macro in a PCH
    is redefined without undef'ing it first.

    rdar://13016031

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172620 91177308-0d34-0410-b5e6-96231b3b80d8

commit 48bd7b72b8911147ec9bdeaa8ebb211543fd23a9
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Jan 16 16:04:06 2013 +0000

    Improve understanding of unary operators.

    Before: int x = ** a;
    After:  int x = **a;

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172619 91177308-0d34-0410-b5e6-96231b3b80d8

commit df3736aa70443ac0f33af094989b4ba88d73f568
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Jan 16 15:44:34 2013 +0000

    Disable inlining of short ifs in Google style.

    Various reasons seem to speak against it, so I am disabling this for
    now.

    Changed tests to still test this option.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172618 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0df6acdf4f6faf7579775a739e1c09448c076c0f
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Jan 16 14:59:02 2013 +0000

    Add option to avoid "bin-packing" of parameters.

    "Bin-packing" here means allowing multiple parameters on one line, if a
    function call/declaration is spread over multiple lines.

    This is required by the Chromium style guide and probably desired for
    the Google style guide. Not making changes to LLVM style as I don't have
    enough data.

    With this enabled, we format stuff like:
    aaaaaaaaaaaaaaa(aaaaaaaaaa,
                    aaaaaaaaaa,
    		aaaaaaaaaaaaaaaaaaaaaaa).aaaaaaaaaaaaaaaaaa();

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172617 91177308-0d34-0410-b5e6-96231b3b80d8

commit ca547dbbb1e10c801158f2eecaf3d49e1071b0e3
Author: Manuel Klimek <klimek@google.com>
Date:   Wed Jan 16 14:55:28 2013 +0000

    Add debugging support for split penalties.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172616 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8fa37999164844a926448ef4656bbf7c42070235
Author: Manuel Klimek <klimek@google.com>
Date:   Wed Jan 16 12:31:12 2013 +0000

    Use standard llvm Debug.h support for debugging output.

    Leave a quick "// Uncomment this." hint to enable the debug output in
    tests. FIXME: figure out whether we want to enable debug command line
    handling for all tests.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172608 91177308-0d34-0410-b5e6-96231b3b80d8

commit 51c23fa34bb29b77fc0867b233147d3427757573
Author: Alexander Kornienko <alexfh@google.com>
Date:   Wed Jan 16 11:45:16 2013 +0000

    Clang Format: A couple of tests for the trailing stuff case

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172607 91177308-0d34-0410-b5e6-96231b3b80d8

commit d881875b6c78386c4f0da911c1110f9ed1235c6a
Author: Alexander Kornienko <alexfh@google.com>
Date:   Wed Jan 16 11:43:46 2013 +0000

    Clang Format: Handle missing semicolon

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172606 91177308-0d34-0410-b5e6-96231b3b80d8

commit a40548c36d91189506cb61fc66ab915fb91906e3
Author: Alexey Samsonov <samsonov@google.com>
Date:   Wed Jan 16 11:34:36 2013 +0000

    Fix uninitialized bool flag access in SanitizerArgs parser

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172605 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3f8cdbf9932c874b7ca4ee3d850a236d9c729961
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Jan 16 10:41:46 2013 +0000

    Calculate the total length of a line up to each token up front.

    This makes the tedious fitsIntoLimit() method unnecessary and I can
    replace one hack (constructor initializers) by a slightly better hack.

    Furthermore, this will enable calculating whether a certain part of a
    line fits into the limit for future modifications.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172604 91177308-0d34-0410-b5e6-96231b3b80d8

commit cbb6c41f3cec4a940201a8e2e65743c9f26c3673
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Jan 16 09:10:19 2013 +0000

    Change the datastructure for UnwrappedLines.

    It was quite convoluted leading to us accidentally introducing O(N^2)
    complexity while copying from UnwrappedLine to AnnotatedLine. We might
    still want to improve the datastructure in AnnotatedLine (most
    importantly not put them in a vector where they need to be copied on
    vector resizing but that will be done as a follow-up.

    This fixes most of the regression in llvm.org/PR14959.

    No formatting changes intended.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172602 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6b825c2e1e691deca41c6f979164b5d20c203593
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Jan 16 07:19:28 2013 +0000

    Never merge < and ::, as it produces different tokens.

    Before: vector<::Type> t;
    After:  vector< ::Type> t;

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172601 91177308-0d34-0410-b5e6-96231b3b80d8

commit 55b08e769f05987942c307fde8eb168df01e504f
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Jan 16 07:02:34 2013 +0000

    Remove errors were if statements were incorrectly put on a single line.

    Before: if (a)  // This comment confused clang-format f();
    After:  if (a)  // No more confusion
              f();

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172600 91177308-0d34-0410-b5e6-96231b3b80d8

commit 05a10ff30bd7c93f689c002963e6ba536e83904a
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Wed Jan 16 06:10:16 2013 +0000

    clang/test/Driver/darwin-sdkroot.c: Suppress this on msys bash, to introduce the feature "shell-preserves-root".

    MSYS transforms '/' to 'X:/mingwroot/'.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172598 91177308-0d34-0410-b5e6-96231b3b80d8

commit d7b1d2467d8bf01be5068dbbad1a6324cee8bf4a
Author: Anna Zaks <ganna@apple.com>
Date:   Wed Jan 16 01:36:00 2013 +0000

    [analyzer] Add an annotation to allow suppression of direct ivar
    assignment

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172597 91177308-0d34-0410-b5e6-96231b3b80d8

commit 79ccd5635495fb4588d0ec47c0bf05764441a14c
Author: Anna Zaks <ganna@apple.com>
Date:   Wed Jan 16 01:35:57 2013 +0000

    [analyzer] Fix warning typo.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172596 91177308-0d34-0410-b5e6-96231b3b80d8

commit 64eb070234bc4cd4fd2debf3a91c6e2d8f0d32d8
Author: Anna Zaks <ganna@apple.com>
Date:   Wed Jan 16 01:35:54 2013 +0000

    [analyzer] Refactor: parameter rename.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172595 91177308-0d34-0410-b5e6-96231b3b80d8

commit f43b7214e812ddca74a6213608c69c960e067956
Author: Douglas Gregor <dgregor@apple.com>
Date:   Wed Jan 16 01:23:41 2013 +0000

    Add -fmodules-autolink/-fno-modules-autolink (defaults to on) so that
    users can explicitly enable/disable modules autolinking.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172592 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0395de36004a718e265cc256b1bbee3bd3a791dc
Author: Eric Christopher <echristo@gmail.com>
Date:   Wed Jan 16 01:22:32 2013 +0000

    Collect both normal and static data members of a class in source
    order. Describe static data members to metadata using new interfaces.

    Part of PR14471.

    Patch by Paul Robinson!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172591 91177308-0d34-0410-b5e6-96231b3b80d8

commit 44a1efe44ea43a194499719d3b230054f28845cc
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Wed Jan 16 01:17:05 2013 +0000

    Documentation: fix typo

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172588 91177308-0d34-0410-b5e6-96231b3b80d8

commit 52fb37a52c73d16f129b3f3bda698cda087f9b93
Author: Douglas Gregor <dgregor@apple.com>
Date:   Wed Jan 16 01:12:31 2013 +0000

    Document the redeclaration and overriding restrictions on the
    availability attribute.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172587 91177308-0d34-0410-b5e6-96231b3b80d8

commit 72daa3f2de226952825f19d7e60a3e9d77ea8c81
Author: Douglas Gregor <dgregor@apple.com>
Date:   Wed Jan 16 00:54:48 2013 +0000

    One can have an unavailable method overridden by an available method,
    but not vice-versa. Fix bug introduced in r172567 and noticed by
    Jordan, thanks!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172586 91177308-0d34-0410-b5e6-96231b3b80d8

commit b9df75f1b83d36be7bfbafc2f25d9fcf768874a3
Author: Douglas Gregor <dgregor@apple.com>
Date:   Wed Jan 16 00:52:15 2013 +0000

    Apply adjustment to function- and array-typed non-type template
    parameters (per C++ [temp.param]p8) when computing the type of a
    reference to a non-type template parameter. Fixes <rdar://problem/13000548>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172585 91177308-0d34-0410-b5e6-96231b3b80d8

commit ed6355d56cbeb1cd1a77cc46e0a519af25523ccb
Author: David Greene <greened@obbligato.org>
Date:   Tue Jan 15 23:13:49 2013 +0000

    Fix signed/unsigned Compare

    Do some casting to avoid a signed/unsigned compare.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172571 91177308-0d34-0410-b5e6-96231b3b80d8

commit cc41a94688615b551505e0e7c287e1c444f53a3f
Author: David Greene <greened@obbligato.org>
Date:   Tue Jan 15 23:13:47 2013 +0000

    Avoid unsigned Compare to int

    Cast arithmetic results to avoid comparison of an unsigned to an int.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172570 91177308-0d34-0410-b5e6-96231b3b80d8

commit f4d918fdf7da64215db8abe63945798c66e6d132
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Jan 15 22:43:08 2013 +0000

    When checking availability attributes for consistency between an
    overriding and overridden method, allow the overridden method to have
    a narrower contract (introduced earlier, deprecated/obsoleted later)
    than the overriding method. Fixes <rdar://problem/12992023>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172567 91177308-0d34-0410-b5e6-96231b3b80d8

commit 041e6aab2f48574009aebfb41ffcb74d00758a1f
Author: David Greene <greened@obbligato.org>
Date:   Tue Jan 15 22:09:51 2013 +0000

    Fix Casting

    Use const_cast<> to avoid a cast-away-const error.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172565 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3cfa5324ef1c5f75fe5e142bef8050aaf2f03704
Author: David Greene <greened@obbligato.org>
Date:   Tue Jan 15 22:09:49 2013 +0000

    Fix Casting

    Use const_cast<> to avoid a cast-away-const error.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172564 91177308-0d34-0410-b5e6-96231b3b80d8

commit 527ce9fb91cc462abfe88843d3b8addf6c0f7365
Author: David Greene <greened@obbligato.org>
Date:   Tue Jan 15 22:09:48 2013 +0000

    Fix Casting

    Use const_cast<> to avoid a cast-away-const error.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172563 91177308-0d34-0410-b5e6-96231b3b80d8

commit 61eacf0f4f912ef4834ff4ed5d7072b655fe91bf
Author: David Greene <greened@obbligato.org>
Date:   Tue Jan 15 22:09:46 2013 +0000

    Fix Casting

    Use const_cast<> to avoid a cast-away-const error.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172562 91177308-0d34-0410-b5e6-96231b3b80d8

commit 16303fcc569ea149dc2de38ff9e367d2d4831cee
Author: David Greene <greened@obbligato.org>
Date:   Tue Jan 15 22:09:45 2013 +0000

    Fix Cast

    Properly use const_cast to fix a cast-away-const error.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172561 91177308-0d34-0410-b5e6-96231b3b80d8

commit 644448393e5592563f5f53842e1b0c6299f31d6c
Author: David Greene <greened@obbligato.org>
Date:   Tue Jan 15 22:09:43 2013 +0000

    Fix Casting

    Make the const_cast explicit to silence a compiler warning.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172560 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5ba58a1b3cbe79497380e7ccecbe45c8bdd498c1
Author: David Greene <greened@obbligato.org>
Date:   Tue Jan 15 22:09:41 2013 +0000

    Fix Const Cast

    Do proper casting to avoid a cast-away-const error.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172559 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3f7b3a754e9698d613672dd1f7af3ccd1b42470a
Author: David Greene <greened@obbligato.org>
Date:   Tue Jan 15 22:09:40 2013 +0000

    Fix Cast

    Avoid a cast-away-const error by properly using const_cast<>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172558 91177308-0d34-0410-b5e6-96231b3b80d8

commit c23e69d761e369bb7ffeef52926ab0442c41670f
Author: David Greene <greened@obbligato.org>
Date:   Tue Jan 15 22:09:39 2013 +0000

    Fix Cast Code

    Eliminate a cast and resulting cast-qual warning by using a temporary
    as the target of memcpy.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172557 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6b716c58565ebd325f3fb989cfa92ed0934db8c5
Author: Aaron Ballman <aaron@aaronballman.com>
Date:   Tue Jan 15 21:59:46 2013 +0000

    Typo correction; no functional change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172555 91177308-0d34-0410-b5e6-96231b3b80d8

commit 321425445f4ce31ccf477bea3240d05e0b1625b2
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Tue Jan 15 20:33:56 2013 +0000

    [driver/Darwin] Adjust SDKROOT handling code to not generate "-isysroot /".

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172548 91177308-0d34-0410-b5e6-96231b3b80d8

commit ef8e498b3abfc42968fa0749835e155c5ceb9685
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Tue Jan 15 18:29:04 2013 +0000

    Add a test for -Wsemicolon-before-method-body fixit

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172545 91177308-0d34-0410-b5e6-96231b3b80d8

commit 19132303666ca434aefae2e725d76f9c57336e44
Author: Manuel Klimek <klimek@google.com>
Date:   Tue Jan 15 16:41:02 2013 +0000

    Do not traverse the break-state when we know we cannot break anyway.

    This is an optimization that djasper spottet. For now, we do not format
    anything after the first token that belongs to such an implicit string
    literal. All our state is not made for handling that anyway, so we'll
    revisit this if we find a problem.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172537 91177308-0d34-0410-b5e6-96231b3b80d8

commit 407a31afffc936291d719665b9edb72532c0ed3b
Author: Manuel Klimek <klimek@google.com>
Date:   Tue Jan 15 15:50:27 2013 +0000

    Fix formatting of preprocessor directives (incluces, warnings & errors).

    Treat tokens inside <> for includes and everything from the second token
    of a warning / error on as an implicit string literal, e.g. do not
    change its whitespace at all.

    Now correctly formats:
     #include < path with space >
     #error Leave     all         white!!!!! space* alone!

    Note that for #error and #warning we still format the space up to the
    first token of the text, so:
       #  error   Text
    will become
     #error Text

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172536 91177308-0d34-0410-b5e6-96231b3b80d8

commit b369c2cb31358f749b9ced97440a6c457f38eaae
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Jan 15 14:27:39 2013 +0000

    Improve operator kind detection in presence of comments.

    We used to incorrectly identify some operators (*, &, +, -, etc.) if
    there were comments around them.

    Example:
    Before: int a = /**/ - 1;
    After:  int a = /**/ -1;

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172533 91177308-0d34-0410-b5e6-96231b3b80d8

commit 47ea7f64108163491ed74dc746c8d94e10764704
Author: Manuel Klimek <klimek@google.com>
Date:   Tue Jan 15 13:38:33 2013 +0000

    Fixes various bugs around the keywords class, struct and union.

    This switches to parsing record definitions only if we can clearly
    identify them. We're specifically allowing common patterns for
    visibility control through macros and attributes, but we cannot
    currently fix all instances. This fixes all known bugs we have though.

    Before:
    static class A f() {
      return g();
    } int x;

    After:
    static class A f() {
      return g();
    }
    int x;

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172530 91177308-0d34-0410-b5e6-96231b3b80d8

commit 51ccafd66682ecbccc0a63364291dc7a8f6ec0f0
Author: Alexander Kornienko <alexfh@google.com>
Date:   Tue Jan 15 12:20:21 2013 +0000

    Resolved merge error with r172323 (llvm::X -> X)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172528 91177308-0d34-0410-b5e6-96231b3b80d8

commit 02d65ee373feb1cb029185aa0de04d0c214eda3d
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Jan 15 07:58:29 2013 +0000

    Don't crash when binding a reference to a temporary pointer created from
    resolving an overloaded function reference within an initializer list.
    Previously we would try to resolve the overloaded function reference without
    first stripping off the InitListExpr wrapper.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172517 91177308-0d34-0410-b5e6-96231b3b80d8

commit a121eb3af061a9402aa88630a0eb535d92962e2c
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Jan 15 07:12:59 2013 +0000

    PR14950: Fix out-of-bounds function parameter access in literal operator lookup.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172514 91177308-0d34-0410-b5e6-96231b3b80d8

commit d3e723e28848e4d33e58249042ca14df9308d1b9
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Jan 15 06:49:38 2013 +0000

    PR14918: Don't confuse braced-init-lists after template variable declarations
    with function definitions.

    We really should remove Parser::isDeclarationAfterDeclarator entirely, since
    it's meaningless in C++11 (an open brace could be either a function definition
    or an initializer, which is what it's trying to differentiate between). The
    other caller of it happens to be correct right now...

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172510 91177308-0d34-0410-b5e6-96231b3b80d8

commit 50a70cd11801fd9a700d06e447095249c34c261f
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Jan 15 06:45:29 2013 +0000

    Add -fopenmp -cc1 option and wire it up to define _OPENMP, from Alexey Bataev!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172509 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5c52166525f8714c3e3a979b156ec23426947fd3
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Jan 15 02:48:13 2013 +0000

    Fix behavior of [[gnu::]] function attributes. Per g++'s behavior, these
    attributes appertain to a declaration, even though they would be much more
    naturally modelled as appertaining to a function type. Previously, we would
    try to distribute them from the declarator to the function type, then
    reject them for being at an incorrect location. Now, we just distribute them
    as far as the declarator; the existing attribute handling code can actually
    apply them there just fine.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172504 91177308-0d34-0410-b5e6-96231b3b80d8

commit 08e79d2f075d1326ff7a849fd1bc88dadf99d574
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Jan 15 01:21:53 2013 +0000

    [driver] Warnings for warning options are handled by the frontend.  The driver needs to process the
    warning options to setup diagnostic state, but should not be emitting warnings as these would be
    rudndant with what the frontend emits.
    rdar://13001556

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172497 91177308-0d34-0410-b5e6-96231b3b80d8

commit 714911f092edeb8b329932f457ef0875725d1c07
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Mon Jan 14 22:44:07 2013 +0000

    Document that we should recognize attributes supported by gcc with C++11
    [[gnu::...]] syntax

    Pointed out by Richard Smith on the mailing list.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172487 91177308-0d34-0410-b5e6-96231b3b80d8

commit 419563768ef4929a622d7c2b066856e82901bb91
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Mon Jan 14 22:39:08 2013 +0000

    Refactor to call ActOnFinishFullExpr on every full expression. Teach
    ActOnFinishFullExpr that some of its checks only apply to discarded-value
    expressions. This adds missing checks for unexpanded variadic template
    parameter packs to a handful of constructs.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172485 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7c9dbb76f6847fb30527c8e74ef9a25a3d4eb731
Author: Michael Gottesman <mgottesman@apple.com>
Date:   Mon Jan 14 21:44:30 2013 +0000

    Multiprecision subtraction builtins.

    We lower these into 2x chained usub.with.overflow intrinsics.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172476 91177308-0d34-0410-b5e6-96231b3b80d8

commit 858afb3c22144027bcd8ba75e27262eede093a60
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Jan 14 20:53:57 2013 +0000

    Topologically sort the link options generated for modules based on
    module-import dependencies, so we'll get the link order correct for
    those silly linkers that need it.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172459 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3baad29d4413e1409fc69a472d374cf5de1d78ec
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Jan 14 19:00:05 2013 +0000

    When forming the link options for an imported module, also include the
    link options for the modules it imports.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172448 91177308-0d34-0410-b5e6-96231b3b80d8

commit bdc691f1d61765dd806d5ae3b75ae004f676a7c9
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Mon Jan 14 18:58:42 2013 +0000

    [analyzer] Add ProgramStatePartialTrait<const void *>.

    This should fix cast-away-const warnings reported by David Greene.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172446 91177308-0d34-0410-b5e6-96231b3b80d8

commit 469e73035c745f39edf7fe882edb09c06559e581
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Mon Jan 14 18:58:38 2013 +0000

    [analyzer] Fix cast-away-const warning by using const_cast.

    Patch by David Greene, modified by me.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172445 91177308-0d34-0410-b5e6-96231b3b80d8

commit 14a372bb7d7681cdfbcebe71b109e773327e4e1c
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Mon Jan 14 18:58:33 2013 +0000

    [analyzer] -drain is not an alias for -release.

    This was previously added to support -[NSAutoreleasePool drain], which
    behaves like -release under non-GC and "please collect" under GC. We're
    not currently modeling the autorelease pool stack, though, so we can
    just take this out entirely.

    Fixes PR14927.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172444 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5d75ea72d6eee3df0c6acdb282145dc4cc3a9a1b
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Jan 14 18:28:43 2013 +0000

    Switch autolinking metadata format over to actual linker options, e.g.,

      !0 = metadata !{metadata !"-lautolink"}
      !1 = metadata !{metadata !"-framework", metadata !"autolink_framework"}

    referenced from llvm.module.linkoptions, e.g.,

      !llvm.module.linkoptions = !{!0, !1, !2, !3}

    This conceptually moves the logic for figuring out the syntax the
    linker will accept from LLVM into Clang. Moreover, it makes it easier
    to support MSVC's

      #pragma comment(linker, "some option")

    in the future, should anyone care to do so.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172441 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8767dc29ec23f96e71658f760333bdf5d87283d5
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Jan 14 17:57:51 2013 +0000

    Infer "link" lines for top-level frameworks. Essentially, a framework
    will have a shared library with the same name as its framework (and no
    suffix!) within its .framework directory. Detect this both when
    inferring the whole top-level framework and when parsing a module map.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172439 91177308-0d34-0410-b5e6-96231b3b80d8

commit 19f8e85d2e0ba2b97ad848b5f879ec96ebc1660e
Author: Bill Schmidt <wschmidt@linux.vnet.ibm.com>
Date:   Mon Jan 14 17:45:36 2013 +0000

    This patch addresses varargs processing for small complex types under
    the 64-bit PowerPC ELF ABI.

    The ABI requires that the real and imaginary parts of a complex argument
    each occupy their own doubleword.  Arguments smaller than 8 bytes are
    right-adjusted within the doubleword.

    Clang expects EmitVAARG() to return a pointer to a structure in which
    the real and imaginary parts are packed adjacently in memory.  To accomplish
    this, we generate code to load the code appropriately from the varargs
    location and pack the values into a temporary variable in the form Clang
    expects, returning a pointer to that structure.

    The test case demonstrates correct code generation for all "small" complex
    types on PPC64:  int, short, char, and float.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172438 91177308-0d34-0410-b5e6-96231b3b80d8

commit b6cbe517237c3c223beb064d60d5b49e56d65c06
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Jan 14 17:21:00 2013 +0000

    Implement parsing, AST, (de-)serialization, and placeholder global
    metadata for linking against the libraries/frameworks for imported
    modules.

    The module map language is extended with a new "link" directive that
    specifies what library or framework to link against when a module is
    imported, e.g.,

      link "clangAST"

    or

      link framework "MyFramework"

    Importing the corresponding module (or any of its submodules) will
    eventually link against the named library/framework.

    For now, I've added some placeholder global metadata that encodes the
    imported libraries/frameworks, so that we can test that this
    information gets through to the IR. The format of the data is still
    under discussion.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172437 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2c7739e3cbf1357c0ef8d894045a300331053565
Author: Manuel Klimek <klimek@google.com>
Date:   Mon Jan 14 16:41:43 2013 +0000

    Fixes formatting of nested brace initializers.

    We now format this correctly:
    Status::Rep Status::global_reps[3] = {
      { kGlobalRef, OK_CODE, NULL, NULL, NULL },
      { kGlobalRef, CANCELLED_CODE, NULL, NULL, NULL },
      { kGlobalRef, UNKNOWN_CODE, NULL, NULL, NULL }
    };

    - fixed a bug where BreakBeforeClosingBrace would be set on the wrong
      state
    - added penalties for breaking between = and {, and between { and any
      other non-{ token

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172433 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6f5bb2c93c31a7977382c5079d85db8ca3267cd0
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Jan 14 16:24:39 2013 +0000

    Make single-line if statements optional.

    Now, "if (a) return;" is only allowed, if this option is set.

    Also add a Chromium style which is currently identical to Google style
    except for this option.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172431 91177308-0d34-0410-b5e6-96231b3b80d8

commit fd0ca976bd55167364ba1178e884d275cc6ef30b
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Jan 14 16:02:06 2013 +0000

    Fix a bug in the line merging.

    If the first line of a merge would exactly fit into the column limit,
    an unsigned overflow made us not break.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172426 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2b9c10bd8f80c004756308a5163fa7eda27eb5ce
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Jan 14 15:52:06 2013 +0000

    Fix bug that would lead to joining preprocessor directives.

    Before: #include "a.h" #include "b.h"
    After:  #include "a.h"
            #include "b.h"

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172424 91177308-0d34-0410-b5e6-96231b3b80d8

commit e0b15ea7edeceb41decddfeabaf6fac935ed7baf
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Jan 14 15:40:57 2013 +0000

    Put simple preprocessor directives on a single line.

    Before: #define A  \
              A
    After:  #define A A

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172423 91177308-0d34-0410-b5e6-96231b3b80d8

commit d3e8074ac9b8b2c3068b6b1dab8867f43b902715
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Mon Jan 14 15:00:48 2013 +0000

    Turns out there is a simpler way of getting a set difference in bash than parsing diff output.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172420 91177308-0d34-0410-b5e6-96231b3b80d8

commit feb18f5ff2cfa952fec4e751eb9665706c4674af
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Jan 14 14:14:23 2013 +0000

    Put short if statements on a single line.

    Before: if (a)
              return;
    After:  if (a) return;

    Not yet sure, whether this is always desired, but we can add options and
    make this a style parameter as we go along.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172413 91177308-0d34-0410-b5e6-96231b3b80d8

commit acd356e18ecb8213d65f1454bb3c1bb4f6892bab
Author: Alexander Kornienko <alexfh@google.com>
Date:   Mon Jan 14 14:07:11 2013 +0000

    Dump comments in -ast-dump.
    http://llvm-reviews.chandlerc.com/D269

    "Added dumping of declaration comments in ASTDumper. This required moving the
    comment dumping code from CommentDumper so that the indentation is correct."

    Patch by Philip Craig!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172409 91177308-0d34-0410-b5e6-96231b3b80d8

commit fe1d594c3912f88f54786a6a9380c4359eb61b23
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Mon Jan 14 13:16:02 2013 +0000

    clang/test/SemaCXX/cxx11-gnu-attrs.cpp: Add explicit -triple x86_64-unknown-unknown, or it doesn't work for targetting win32.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172404 91177308-0d34-0410-b5e6-96231b3b80d8

commit 995e8207877f6f5c8ed7d63f9b61e156dd171e50
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Jan 14 13:08:07 2013 +0000

    Refactor datastructure used in clang-format.

    Main difference, add an AnnotatedLine class to hold information about a
    line while formatting. At the same time degrade the UnwrappedLine class
    to a class solely used for communicating between the UnwrappedLineParser
    and the Formatter.

    No functional changes intended.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172403 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4abbb535f0f050aea6373e26e769643c3c61a9b1
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Jan 14 12:18:19 2013 +0000

    Improve understanding post increment and decrement.

    Before: (a->f()) ++;
            a[42] ++;
    After:  (a->f())++;
            a[42]++;

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172400 91177308-0d34-0410-b5e6-96231b3b80d8

commit a4ae9f30ef7bccdaa3feef8036af07fbb91f107c
Author: Alexander Kornienko <alexfh@google.com>
Date:   Mon Jan 14 11:34:14 2013 +0000

    Custom DiagnosticConsumer parameter of reformat() + silence diagnostics in unit tests.

    Summary:
    Added tests for clang-format diagnostics. Added DiagnosticConsumer
    argument to clang::format::reformat().

    Reviewers: klimek, djasper

    Reviewed By: djasper

    CC: cfe-commits, thakis, rafael.espindola

    Differential Revision: http://llvm-reviews.chandlerc.com/D290

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172399 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1b6f4bd8d7e75e775053b1cb1281c6a127746e93
Author: Manuel Klimek <klimek@google.com>
Date:   Mon Jan 14 10:58:01 2013 +0000

    Adds some more tests for * and &.

    While reviewing r172303 I noticed that I wasn't sure whether we still
    format those correctly and didn't see any tests.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172396 91177308-0d34-0410-b5e6-96231b3b80d8

commit d6e7fae82b857eaeb487ceb591942b8969afdd96
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Mon Jan 14 08:57:42 2013 +0000

    Add extra tests for [[gnu::...]] attributes, missed from r172382.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172391 91177308-0d34-0410-b5e6-96231b3b80d8

commit 714fcc1bcb42508983f9fd3435aa1dcd06212a8c
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Mon Jan 14 08:00:39 2013 +0000

    Fix regression in r172376. Don't try to detect missing 'constexpr' specifiers
    on redeclarations, since that makes us pick wrong prior declarations under
    some circumstances.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172384 91177308-0d34-0410-b5e6-96231b3b80d8

commit f7a052732c2b6c82f74708038f75fa92c9b4dba0
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Mon Jan 14 07:53:01 2013 +0000

    Accept [[gnu::*]] for all __attribute__((*))s which are:
     1) Supported by Clang, and
     2) Supported by GCC, and
     3) Documented in GCC's manual.

    g++ allows its C++11-style attributes to appertain only to the entity being
    declared, and never to a type (even for a type attribute), so we do the same.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172382 91177308-0d34-0410-b5e6-96231b3b80d8

commit efaddc0705cfc7c36b76da9ebc33b69843e31996
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Mon Jan 14 05:49:49 2013 +0000

    Formatter: Add a test for bitfields.

    They work fine, but this fifth use of colons (after labels, in ?:,
    in initalizer lists in constructors, in objc method expressions, and in
    bitfields) wasn't covered by tests yet.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172377 91177308-0d34-0410-b5e6-96231b3b80d8

commit 21c8fa87a3517d835072193a59a955ec7f6bf408
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Mon Jan 14 05:37:29 2013 +0000

    PR12008: defer adding the implicit 'const' to a constexpr member function until
    we know whether it is static.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172376 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7b19cb116d0909de72dc8242b0a4e6c5ed39d421
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Mon Jan 14 01:55:13 2013 +0000

    *this is const in a trailing-return-type for a constexpr member function.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172375 91177308-0d34-0410-b5e6-96231b3b80d8

commit 05756dc8d11cd2054e0cb94f0302e4eb39acc68e
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Mon Jan 14 00:46:27 2013 +0000

    libclang: remove a few const_casts

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172373 91177308-0d34-0410-b5e6-96231b3b80d8

commit b3958476b21702a15f64f09d2862506d03dffe7b
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Mon Jan 14 00:36:42 2013 +0000

    Constify argument of Preprocessor::getMacroInfoHistory and propagate to
    callers, removing unneeded const_cast

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172372 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0446f51e1c0e16bc9e3f1311967e31ac6dc40bab
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Mon Jan 14 00:25:25 2013 +0000

    Remove an unneeded const_cast

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172370 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1c030e9a3f290a1eea5de82fe1e63dfde2bd8f1e
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sun Jan 13 20:46:02 2013 +0000

    ArrayRef'ize Sema APIs related to format string checking

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172367 91177308-0d34-0410-b5e6-96231b3b80d8

commit b4b970f7653ca4936e7401780a5bffa05d2ea1ee
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sun Jan 13 16:37:18 2013 +0000

    Document behavior of -Wformat-nonliteral, it is different from GCC

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172362 91177308-0d34-0410-b5e6-96231b3b80d8

commit 487f64b2ae3f991216eb1346a62ea18156f0b519
Author: Daniel Jasper <djasper@google.com>
Date:   Sun Jan 13 16:10:20 2013 +0000

    Stronger respect the input codes line breaks wrt. comments.

    clang-format should not change whether or not there is a line break
    before a line comment as this strongly influences the percieved binding.

    User input: void f(int a,
                       // b is awesome
    		   int b);
                void g(int a, // a is awesome
    		   int b);
    Before:     void f(int a, // b is awesome
                       int b);
                void g(int a, // a is awesome
    		   int b);
    After:      <unchanged from input>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172361 91177308-0d34-0410-b5e6-96231b3b80d8

commit a5bec298d96f7eb5309df5aab9d19eb7f8b75a81
Author: Michael J. Spencer <bigcheesegs@gmail.com>
Date:   Sun Jan 13 16:00:51 2013 +0000

    Fix LLP64 build.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172357 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1774603d8b34f86bd254d85a125592fcb323a488
Author: Daniel Jasper <djasper@google.com>
Date:   Sun Jan 13 14:39:04 2013 +0000

    Format unions like structs and classes.

    Note that I don't know whether we should put {} on a single line in this
    case, but it is probably a theoretical issue as in practice such
    structs, classes or unions won't be empty.

    Before: union A {}
            a;
    After:  union A {} a;

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172355 91177308-0d34-0410-b5e6-96231b3b80d8

commit 700d4e44793697288dd827c272ad363945f590a9
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Sun Jan 13 11:46:33 2013 +0000

    Refactor the x86 CPU name logic in the driver and pass -march and -mcpu
    flag information down from the Clang driver into the Gold linker plugin
    for LTO. This allows specifying -march on the linker commandline and
    should hopefully have it pass all the way through to the LTO optimizer.

    Fixes PR14697.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172354 91177308-0d34-0410-b5e6-96231b3b80d8

commit 563fb903fab15972e2d9c66b0ae046a94be86a71
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Sun Jan 13 11:26:44 2013 +0000

    CGBuiltin.cpp: Fix abuse of ArrayRef in EmitOverflowIntrinsic().

    In ArrayRef<T>(X), X should not be temporary value. It could be rewritten more redundantly;

      llvm::Type *XTy = X->getType();
      ArrayRef<llvm::Type *> Ty(XTy);
      llvm::Value *Callee = CGF.CGM.getIntrinsic(IntrinsicID, Ty);

    Since it is safe if both XTy and Ty are temporary value in one statement, it could be shorten;

      llvm::Value *Callee = CGF.CGM.getIntrinsic(IntrinsicID, ArrayRef<llvm::Type*>(X->getType()));

    ArrayRef<T> has an implicit constructor to create uni-entry of T;

      llvm::Value *Callee = CGF.CGM.getIntrinsic(IntrinsicID, X->getType());

    MSVC-generated clang.exe crashed.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172352 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4e9008ac62b4c403c5c30724953664dcbb03d02e
Author: Daniel Jasper <djasper@google.com>
Date:   Sun Jan 13 08:19:51 2013 +0000

    Always put a space after ",".

    I am not aware of a case where that would be wrong. The specific case I
    am fixing are function parameters wrapped in parenthesis (e.g. in
    macros).

    Before: function(a,(b));
    After:  function(a, (b));

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172351 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8134e1e575f862799c361b9c146eae7672010fa0
Author: Daniel Jasper <djasper@google.com>
Date:   Sun Jan 13 08:12:18 2013 +0000

    Don't put spaces around hyphens in include paths.

    Before: #include <a - a>
    After:  #include <a-a>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172350 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4981bd0ca215570ef1e2e1c1c64a2c399069dc42
Author: Daniel Jasper <djasper@google.com>
Date:   Sun Jan 13 08:01:36 2013 +0000

    Improve identification of c-style casts.

    A ")" before any of "=", "{" or ";" won't be a cast. This fixes issues
    with the formatting of unnamed parameters.

    Before: void f(int *){}
    After:  void f(int *) {}

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172349 91177308-0d34-0410-b5e6-96231b3b80d8

commit 377b8c66b48b01fdd3f308d33f49af64ad632e87
Author: Michael Gottesman <mgottesman@apple.com>
Date:   Sun Jan 13 04:35:31 2013 +0000

    Updated documentation to reflect new multiprecision builtin functions.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172345 91177308-0d34-0410-b5e6-96231b3b80d8

commit ced7fdfc932604a81c211df521b2551c7160d4fd
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Sun Jan 13 03:55:21 2013 +0000

    clang/test/CodeGen/builtins-multiprecision.c: Enhance for each test to run on theree targets, i686, amd64, win64.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172344 91177308-0d34-0410-b5e6-96231b3b80d8

commit e7c588a4dfc08854d492503d596e417156039a85
Author: Michael Gottesman <mgottesman@apple.com>
Date:   Sun Jan 13 03:44:31 2013 +0000

    Fixed spelling of test name: builtins-multipercision.c => builtins-multiprecision.c.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172343 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5a808c0adc44bffc1391815d6b40cf6e20994293
Author: Michael Gottesman <mgottesman@apple.com>
Date:   Sun Jan 13 03:40:23 2013 +0000

    Added a triple to the test builtins-multiprecision.c.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172342 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0cf07bcc6c53f1df421d4c40ce52d43e8d8adcd3
Author: Michael Gottesman <mgottesman@apple.com>
Date:   Sun Jan 13 02:22:39 2013 +0000

    Added builtins for multiprecision adds.

    We lower all of these intrinsics into a 2x chained usage of
    uadd.with.overflow.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172341 91177308-0d34-0410-b5e6-96231b3b80d8

commit a4fa9008988985f9cf01712a99ddd923aea278a0
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sun Jan 13 02:11:23 2013 +0000

    Remove some duplication in the handling of __attribute__((ext_vector_size(N))).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172340 91177308-0d34-0410-b5e6-96231b3b80d8

commit cd458330d0cdced36a49f1d66cd9c5908f46d939
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Sat Jan 12 23:48:49 2013 +0000

    Formatter: Don't insert a space before unary operators after selector names.

    Before:
      [color getRed: &r green: &g blue: &b alpha: &a];

    Now:
      [color getRed:&r green:&g blue:&b alpha:&a];

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172337 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6292dd4be36f2dac5df121a8c81c043f6c6243cf
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Sat Jan 12 23:41:33 2013 +0000

    Formatter: Add a test for @selector in an ObjC method expression, which happens to work already.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172335 91177308-0d34-0410-b5e6-96231b3b80d8

commit ea86563962102149609f6442491d884bc337a175
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Sat Jan 12 22:51:13 2013 +0000

    Formatter: Remove debugging junk I accidentally landed in r172333.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172334 91177308-0d34-0410-b5e6-96231b3b80d8

commit e8ccc81a9f66361450148338b8457dd2c6ad11de
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Sat Jan 12 22:48:47 2013 +0000

    Formatter: Prefer breaking before ObjC selector names over breaking at their ':'

    Before:
      if ((self = [super initWithContentRect:contentRect styleMask:
                      styleMask backing:NSBackingStoreBuffered defer:YES])) {

    Now:
      if ((self = [super initWithContentRect:contentRect styleMask:styleMask
                      backing:NSBackingStoreBuffered defer:YES])) {

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172333 91177308-0d34-0410-b5e6-96231b3b80d8

commit d147f8fa3ef5dbebd1f24b72e52dedaebeaaa4b5
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Jan 12 22:39:30 2013 +0000

    Add a comment to test to clarify the intention here

    Comment is taken from the commit message of r151080, by Jean-Daniel Dupas

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172332 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1b65fe5ce35d330faf3c048dab2d9f931b2de1c8
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Jan 12 21:58:21 2013 +0000

    Prune an unused diagnostic, detected after improving the script in r172330

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172331 91177308-0d34-0410-b5e6-96231b3b80d8

commit 145494a25b984a6829493244ac22e32e0399f11e
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sat Jan 12 21:39:06 2013 +0000

    Speed up find-unused-diagnostics. Now runs in less than a second instead of more than a minute.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172330 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6c5d631deefb9c33df0dc415048bbf40234024cc
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Jan 12 20:32:43 2013 +0000

    Remove unused diagnostics

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172326 91177308-0d34-0410-b5e6-96231b3b80d8

commit cfa88f893915ceb8ae4ce2f17c46c24a4d67502f
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Jan 12 19:30:44 2013 +0000

    Remove useless 'llvm::' qualifier from names like StringRef and others that are
    brought into 'clang' namespace by clang/Basic/LLVM.h

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172323 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9cd506b7c983829a33ae7ac1297228d146c58a69
Author: Arnaud A. de Grandmaison <arnaud.adegm@gmail.com>
Date:   Sat Jan 12 18:37:52 2013 +0000

    Fix spurious output in JSONCompilationDatabase

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172321 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9946fc735d7285f2195f89635370f534afd9877e
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Jan 12 16:54:37 2013 +0000

    Add missing includes and forward declarations so that headers don't depend on
    other headers included before them.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172320 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6dcea67483a72e47db0a382e8d073340927ac27f
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Sat Jan 12 15:27:44 2013 +0000

    comment

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172317 91177308-0d34-0410-b5e6-96231b3b80d8

commit 508276c8895d0a52198a0fa5dd01471236a94d50
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Sat Jan 12 15:27:43 2013 +0000

    bar

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172316 91177308-0d34-0410-b5e6-96231b3b80d8

commit b14d1cae88b7966da5112ea58009140d49a0fb2d
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Sat Jan 12 14:22:42 2013 +0000

    Remove unused private field.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172314 91177308-0d34-0410-b5e6-96231b3b80d8

commit b312314cd7aaf8a4c3902aa28c8bc0a9662a8e9b
Author: Daniel Jasper <djasper@google.com>
Date:   Sat Jan 12 07:36:22 2013 +0000

    Fix incorrect comparison operator causing loooong formatting times.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172308 91177308-0d34-0410-b5e6-96231b3b80d8

commit f681fa8238b82822a3d939f0e4df80660666f8b1
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Sat Jan 12 07:05:25 2013 +0000

    Formatter: Remove an always-false condition.

    canBreakBefore() does not allow breaking after ':' for LT_ObjCMethodDecl lines,
    so if Newline is true in addTokenToState() for ':' then LT_ObjCMethodDecl
    cannot be set. No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172307 91177308-0d34-0410-b5e6-96231b3b80d8

commit 774b97312ddffe64435a1428f904211ee46cf289
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Sat Jan 12 07:00:16 2013 +0000

    Formatter: Remove a redundant CurrentLineType check.

    The containing if checks for this already. No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172306 91177308-0d34-0410-b5e6-96231b3b80d8

commit 838dc597e25614c653a062a124b06a04d6b7f5eb
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Sat Jan 12 06:42:30 2013 +0000

    Disable caching of visibility.

    The testcase in pr14929 shows that this is extremely hard to do. If we choose
    to apply the attribute, that causes the visibility of some decls to change and
    that can happen really late (during codegen).

    Current gcc warns and ignores the attribute in this testcase with a warning.
    This suggest that the correct solution is to find a point in the compilation
    where we can compute the visibility and
    * assert it was never computed before
    * reject any attempts to compute it again in the future (with warnings).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172305 91177308-0d34-0410-b5e6-96231b3b80d8

commit bcfdd263b79c766db9154b009bd831ef83090c83
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Sat Jan 12 06:18:40 2013 +0000

    Formatter: Initial support for formatting Objective-C method expressions.

    This follows the approach suggested by djasper in PR14911: When a '[' is
    seen that's at the start of a line, follows a binary operator, or follows one
    of : [ ( return throw, that '[' and its closing ']' are marked as
    TT_ObjCMethodExpr and every ':' in that range that isn't part of a ternary
    ?: is marked as TT_ObjCMethodExpr as well.

    Update the layout routines to not output spaces around ':' tokens that are
    marked TT_ObjCMethodExpr, and only allow breaking after such tokens, not
    before.

    Before:
        [self adjustButton : closeButton_ ofKind : NSWindowCloseButton];

    Now:
        [self adjustButton:closeButton_ ofKind:NSWindowCloseButton];

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172304 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5e9f91c342f8efffe0423d516997ddbc408c9f53
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Sat Jan 12 05:50:48 2013 +0000

    Formatter: * and & are binary operators before ( and [.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172303 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2355cebe3847acd4ce175e3a88788b8effd93c6e
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Sat Jan 12 05:47:16 2013 +0000

    Formatter: * and & are binary operators after ) and ].

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172302 91177308-0d34-0410-b5e6-96231b3b80d8

commit cc191d1980101bba47d3d67acf782890076fa5c3
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Sat Jan 12 05:41:23 2013 +0000

    Formatter: + and - after { are unary operators.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172301 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1a4191d0697098c424646654784399b839f87bc4
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Sat Jan 12 02:16:29 2013 +0000

    clang/unittests: Fixup corresponding to r172290.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172295 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7a525acb2ba57ea03cfc8f843bfb2e5f81caf65f
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Sat Jan 12 01:47:40 2013 +0000

    Fix a regression from 171193: main cannot be overloaded.
    Thanks Eli Friedman for noticing it.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172292 91177308-0d34-0410-b5e6-96231b3b80d8

commit ca2ab45341c448284cf93770018c717810575f86
Author: Douglas Gregor <dgregor@apple.com>
Date:   Sat Jan 12 01:29:50 2013 +0000

    Provide Decl::getOwningModule(), which determines the (sub)module in
    which a particular declaration resides. Use this information to
    customize the "definition of 'blah' must be imported from another
    module" diagnostic with the module the user actually has to
    import. Additionally, recover by importing that module, so we don't
    complain about other names in that module.

    Still TODO: coming up with decent Fix-Its for these cases, and expand
    this recovery approach for other name lookup failures.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172290 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7d37b8bb101c872801e6d2ce82eec377a94ce042
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Sat Jan 12 01:28:06 2013 +0000

    Formatter: add a test for :? in []

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172289 91177308-0d34-0410-b5e6-96231b3b80d8

commit 193649c2a3ff0616777de934a2bf47eaeb4f1076
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sat Jan 12 01:05:20 2013 +0000

    Only produce one -Wc++98-compat warning when initializing a reference from an init list with multiple elements.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172285 91177308-0d34-0410-b5e6-96231b3b80d8

commit 013539cddae154cd1782984a7dc3bb471cac397e
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Sat Jan 12 01:01:06 2013 +0000

    Add a test from pr14898.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172283 91177308-0d34-0410-b5e6-96231b3b80d8

commit c3cd6f7a5d33ad44f6c9cf4faa7046c77baa128e
Author: Matt Beaumont-Gay <matthewbg@google.com>
Date:   Sat Jan 12 00:54:16 2013 +0000

    Fix -Wunused-comparison for comparisons in arguments to function-like macros.

    Previously, -Wunused-comparison ignored comparisons in both macro bodies and
    macro arguments, but we would still emit a -Wunused-value warning for either.
    Now we correctly emit -Wunused-comparison for expressions in macro arguments.

    Also, add isMacroBodyExpansion to SourceManager, to go along with
    isMacroArgExpansion.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172279 91177308-0d34-0410-b5e6-96231b3b80d8

commit c328d9c22a4397dd7313d06be5b82d700297b246
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Sat Jan 12 00:28:34 2013 +0000

    comment parsing: when property accessors don't have comment
    of their own (or are syntheszed), use prperty's comment.
    for them. // rdar://12791315

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172278 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9195caf28f2a5dcef1e299bf3e5232a018ca1c68
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Jan 11 23:36:25 2013 +0000

    Refine analyzer's handling of unary '!' and floating types to not assert.

    Fixes PR 14634 and <rdar://problem/12903080>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172274 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2246823e207a4846c842a27cf99d99920cd2b178
Author: Sean Callanan <scallanan@apple.com>
Date:   Fri Jan 11 23:17:47 2013 +0000

    Fixed a bug that caused the AST importer to erroneously
    import incomplete definitions for RecordDecls and then
    mark the resulting definition as complete.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172273 91177308-0d34-0410-b5e6-96231b3b80d8

commit e358fd50a9b56e36f3f0f1a8f85bbb6d869cd117
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Fri Jan 11 23:13:36 2013 +0000

    libclang: use C++ casts in CXString.cpp

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172272 91177308-0d34-0410-b5e6-96231b3b80d8

commit 689d747a498e7ead320af1fc84ed08050acbd527
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Fri Jan 11 23:08:18 2013 +0000

    libclang: constness for CXString

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172270 91177308-0d34-0410-b5e6-96231b3b80d8

commit 707a8659a546d32cf976d4c3927c793a643b18e1
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Jan 11 22:35:39 2013 +0000

    Correctly propagate uninitialized values within logical expressions.

    Fixes assertion failure reported in PR 14635 and
    <rdar://problem/12902945> respectively.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172263 91177308-0d34-0410-b5e6-96231b3b80d8

commit e8b61cfc0c9233b6983ad9ed052900800e7613d9
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Jan 11 22:29:49 2013 +0000

    [PCH] Make the const_cast explicit to silence a compiler warning.

    Patch by David Greene.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172262 91177308-0d34-0410-b5e6-96231b3b80d8

commit e2748288a04cda2e976a3fe859e4334afaf9274a
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Jan 11 22:29:47 2013 +0000

    [libclang] Add some constness in CXSourceLocation and CXSourceRange.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172261 91177308-0d34-0410-b5e6-96231b3b80d8

commit 814b51a3d572d4e4107e67d549c8a82484ce8160
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Jan 11 22:11:14 2013 +0000

    [libclang] In ASTUnit::getMainFileName() Invocation may be null because the ASTUnit
    came from loading a PCH/module.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172259 91177308-0d34-0410-b5e6-96231b3b80d8

commit f64c18ac9808c0e7baaf54f35803eaa6cd0e49bc
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Jan 11 21:49:36 2013 +0000

    Set process return code of 1 in set-xcode-analyzer when Xcode needs to be quit.  Fixes <rdar://problem/12983031>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172256 91177308-0d34-0410-b5e6-96231b3b80d8

commit 67015ed2f40d6f69ee9e15d79aa88530f4b4afe2
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Fri Jan 11 21:14:08 2013 +0000

    Formatter: Format ObjC static and instance methods consistently, add a test for that.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172254 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3315618561d19c99a7a52c72a31fb182111da716
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Fri Jan 11 21:06:06 2013 +0000

    libclang: remove unneeded casts

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172253 91177308-0d34-0410-b5e6-96231b3b80d8

commit 67812b2f94f4b5e7d2596db1705ffa1149ddc45a
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Fri Jan 11 21:01:49 2013 +0000

    libclang: change CXCursor to store 'const void *' pointers for
    const-correctness, and update all users

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172252 91177308-0d34-0410-b5e6-96231b3b80d8

commit 06d8c60e37cd8cfdff1bf73ec8d58c2373cfd8f1
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Fri Jan 11 20:32:41 2013 +0000

    Constify parameter of clang::getCursorKindForDecl

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172249 91177308-0d34-0410-b5e6-96231b3b80d8

commit 294ddc63398f2c9435fcfbdb4da4ac3a23c1cbba
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Fri Jan 11 19:34:23 2013 +0000

    Reject incompatible redeclarations of extern C symbols.

    Before we were only checking if the new declaration itself was marked extern
    C. Fixes prpr14766.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172243 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4d8efb48b9de9feee79c948ef9d05febd6d0c20b
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Jan 11 19:33:54 2013 +0000

    Improve diagnostic per Richard's suggestion
    (which may yet change if we move the diagnostic
     outside case value).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172242 91177308-0d34-0410-b5e6-96231b3b80d8

commit 46f92523918fd4ac4df5489265c7f85c1b28baea
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Fri Jan 11 19:28:44 2013 +0000

    libclang: use getCursorTU and getCursorASTUnit instead of explicit casts

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172241 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6eca03fcac1e408470d48e6309a280d3681f717d
Author: Manuel Klimek <klimek@google.com>
Date:   Fri Jan 11 19:23:05 2013 +0000

    Fix crashes in UnwrappedLineParser on missing parens.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172239 91177308-0d34-0410-b5e6-96231b3b80d8

commit d5688cf3e314819ca196053ac245c19a7c321332
Author: Manuel Klimek <klimek@google.com>
Date:   Fri Jan 11 19:17:44 2013 +0000

    Fix single-line optimization for ObjC.

    Puts blocks always into multiple lines when they start with an ObjC
    keyword or minus.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172238 91177308-0d34-0410-b5e6-96231b3b80d8

commit d465843f5376c7c1574fe61338cbf3dc50684d5b
Author: Manuel Klimek <klimek@google.com>
Date:   Fri Jan 11 18:28:36 2013 +0000

    Fix crash on invalid.

    if { foo; }
    would previously crash clang-format.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172232 91177308-0d34-0410-b5e6-96231b3b80d8

commit 606e07ecc0b7b0e01d23baa833b4b4c73af0d4f4
Author: Manuel Klimek <klimek@google.com>
Date:   Fri Jan 11 18:13:04 2013 +0000

    Fix parsing of initializer lists with elaborated type specifier.

    Now we correctly parse and format:
    verifyFormat("struct foo a = { bar };
    int n;

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172229 91177308-0d34-0410-b5e6-96231b3b80d8

commit 517e894c56211f57c487bdaba8ead0edc84396fe
Author: Manuel Klimek <klimek@google.com>
Date:   Fri Jan 11 17:54:10 2013 +0000

    Implements pulling simple blocks into a single line.

    void f() { return 42; }

    The final change that implements the feature.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172225 91177308-0d34-0410-b5e6-96231b3b80d8

commit 319437f457af59fa2efec6640d1e5565f4a45b3f
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Jan 11 17:33:57 2013 +0000

    Add -std=c++98 to the test and minor improvment in addition.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172221 91177308-0d34-0410-b5e6-96231b3b80d8

commit d088a5f966c31462280d5ace29febc6889834611
Author: Edwin Vane <edwin.vane@intel.com>
Date:   Fri Jan 11 17:04:55 2013 +0000

    Allow RefactoringTool to write to memory instead of always to disk

    RefactoringTool::run() always writes the result of rewrites to disk.
    Instead, make this optional and provide a method for getting the
    refactoring results in a memory buffer instead.

    Also made ClangTool polymorphic so RefactoringTool could inherit from it
    to properly express the IS-A relationship. This change also provides
    access to ClangTool's public interface, e.g. mapVirtualFile() which is
    important once refactored buffers start living in memory instead of on
    disk.

    Reviewers: klimek

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172219 91177308-0d34-0410-b5e6-96231b3b80d8

commit 088dab50b76d235cd5b0e701048efccfcea3677e
Author: Daniel Jasper <djasper@google.com>
Date:   Fri Jan 11 16:09:04 2013 +0000

    Correct spacing around new and delete.

    This fixes llvm.org/PR14913.

    Before:  A *a = new(placement) A;
    After:   A *a = new (placement) A;

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172212 91177308-0d34-0410-b5e6-96231b3b80d8

commit 276a209451b8724807f2741f49c90bf27fc280c7
Author: Alexander Kornienko <alexfh@google.com>
Date:   Fri Jan 11 16:03:45 2013 +0000

    clang-format: a bit nicer error message.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172211 91177308-0d34-0410-b5e6-96231b3b80d8

commit 65bd4ac6ffbf6de30cd6f36735539ff8172a904a
Author: David Chisnall <csdavec@swan.ac.uk>
Date:   Fri Jan 11 15:33:01 2013 +0000

    Enable the new (more C++-like, less broken) EH model when targeting the GNUstep
    Objective-C runtime 1.7 or greater.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172207 91177308-0d34-0410-b5e6-96231b3b80d8

commit 601e6e894c2a38243588b375bed0b9a9e60060bb
Author: Enea Zaffanella <zaffanella@cs.unipr.it>
Date:   Fri Jan 11 14:34:39 2013 +0000

    Fixed an assertion failure triggered by invalid code.

    Set invalid type of declarator after emitting error diagnostics,
    so that it won't be later considered when instantiating the template.
    Added test5_inst in test/SemaCXX/condition.cpp for non-regression.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172201 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7d19bc2c8882457e833dfe9741ac5a4a7198e46f
Author: Daniel Jasper <djasper@google.com>
Date:   Fri Jan 11 14:23:32 2013 +0000

    Improve handling of trailing declaration annotations.

    Before:
    void aaaaaaaaaaaa(int aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) GUARDED_BY(
        aaaaaaaaaaaaa);

    After:
    void aaaaaaaaaaaa(int aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)
        GUARDED_BY(aaaaaaaaaaaaa);

    Also did some formatting cleanups with clang-format on the way.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172200 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7e9bf8c249a5a9717447a00a8669596002a5569a
Author: Daniel Jasper <djasper@google.com>
Date:   Fri Jan 11 11:37:55 2013 +0000

    Improved formatting of constructor initializers

    Added option to put each constructor initializer on its own line
    if not all initializers fit on a single line. Enabling this for
    Google style now as the style guide (arguable) suggests it. Not
    sure whether we also want it for LLVM.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172196 91177308-0d34-0410-b5e6-96231b3b80d8

commit 67d472c19310c06efd5cb87c60b8489abf507233
Author: Enea Zaffanella <zaffanella@cs.unipr.it>
Date:   Fri Jan 11 11:37:08 2013 +0000

    Test commit.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172195 91177308-0d34-0410-b5e6-96231b3b80d8

commit 604eb4c741e58a114e2ae073991bb7944203b755
Author: Daniel Jasper <djasper@google.com>
Date:   Fri Jan 11 10:22:12 2013 +0000

    Refactor IndentState into two classes.

    As we keep adding more stuff to it, this structure is easier to
    maintain. At one point we might think about making it an actual
    class with specific accessors, etc.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172188 91177308-0d34-0410-b5e6-96231b3b80d8

commit ebf0fa87f28937543f38cd175c2e12afafa57247
Author: Nikola Smiljanic <popizdeh@gmail.com>
Date:   Fri Jan 11 08:33:05 2013 +0000

    Pass false instead of 0 since isStar parameter of getArray has type bool. No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172185 91177308-0d34-0410-b5e6-96231b3b80d8

commit 253de1f7fd76b5c4a5f874e7b7b24b3de196799b
Author: Nikola Smiljanic <popizdeh@gmail.com>
Date:   Fri Jan 11 07:23:53 2013 +0000

    Fix spelling error and remove the part about CMake having experimental Ninja support since 2.8.9 has been released some time ago.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172182 91177308-0d34-0410-b5e6-96231b3b80d8

commit c2345a9cb37a066ef383b9b944c1760af662a68f
Author: Nikola Smiljanic <popizdeh@gmail.com>
Date:   Fri Jan 11 07:14:58 2013 +0000

    Revert the line ending mess I made.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172179 91177308-0d34-0410-b5e6-96231b3b80d8

commit 81e84e54b84d747cafb3f7bd21506275455a3665
Author: Nikola Smiljanic <popizdeh@gmail.com>
Date:   Fri Jan 11 07:09:00 2013 +0000

    Fix spelling error and remove the part about CMake having experimental Ninja support since 2.8.9 has been released some time ago.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172177 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6de7daa60412744bcf168c6c0d521688435fe221
Author: Anna Zaks <ganna@apple.com>
Date:   Fri Jan 11 03:52:44 2013 +0000

    [analyzer] Rename the warning: state the issue before the hint of how it
    can be fixed

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172170 91177308-0d34-0410-b5e6-96231b3b80d8

commit b8f6678bdd54d4dabac416476993343837dd229c
Author: Anna Zaks <ganna@apple.com>
Date:   Fri Jan 11 03:52:40 2013 +0000

    [analyzer]Recognize ivar invalidation protocol even if it was redeclared

    This will get rid of some false positives as well as false negatives.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172169 91177308-0d34-0410-b5e6-96231b3b80d8

commit ae81e172e93b75594c7053f3226a16b9d8daa6fd
Author: Anna Zaks <ganna@apple.com>
Date:   Fri Jan 11 03:52:37 2013 +0000

    [analyzer] Ivar invalidation: track ivars declared in categories.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172168 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0214b992655df72b29bcc6ded9d48748224d3496
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Jan 11 02:37:47 2013 +0000

    Revert "tg-fixits.td: fixup for Linux"

    It's better to show no caret/ranges/fixits than to show them misaligned.
    (It scares me a bit that Clang is going to show them misaligned on
    systems without a proper llvm::sys::locale::columnWidth.) See PR14910.

    This reverts commit a03cc72bedd015b7eb76e9ac650992f58a48549d.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172163 91177308-0d34-0410-b5e6-96231b3b80d8

commit acbe4ba0bec71346e77a2f7360e8920212a07c81
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Fri Jan 11 02:23:13 2013 +0000

    Replace more usages of __func__ with LLVM_FUNCTION_NAME

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172161 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8153b5a6fed123b3a94302fcb951bbc03a93c2d3
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Fri Jan 11 01:15:02 2013 +0000

    libclang logging: fixup for MSVC, which does not have __func__

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172158 91177308-0d34-0410-b5e6-96231b3b80d8

commit e930ff5c34229dddfabb1709a9773a45bb8706bc
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Jan 11 00:55:44 2013 +0000

    Improve on my last test for patch for // rdar://12897704

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172154 91177308-0d34-0410-b5e6-96231b3b80d8

commit a03cc72bedd015b7eb76e9ac650992f58a48549d
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Fri Jan 11 00:37:33 2013 +0000

    tg-fixits.td: fixup for Linux, which does not have a correct implementation of
    llvm::sys::locale::columnWidth()

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172152 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5ea6ef490547917426d5e2ed14c9f36521bbeacf
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Jan 10 23:43:47 2013 +0000

    Truth in advertising: LocallyScopedExternalDecls actually only contains
    external declarations with C language linkage.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172150 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6503255e4fa0689f427b3b798180fceac29c98c2
Author: Anna Zaks <ganna@apple.com>
Date:   Thu Jan 10 23:34:16 2013 +0000

    [analyzer] Allow IvarInvalidation checker to suppress warnings via
    assertions.

    To ensure that custom assertions/conditional would also be supported,
    just check if the ivar that needs to be invalidated or set to nil is
    compared against 0.

    Unfortunately, this will not work for code containing 'assert(IvarName)'

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172147 91177308-0d34-0410-b5e6-96231b3b80d8

commit c2316db5decd9cb7f8768ca67fad41fd8cffc110
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Jan 10 23:28:43 2013 +0000

    c++ IRGen. In trivial cases that object is going into static
    storage and thus is implicitly zero-initialized, no need to
    do C++11 memory model. This patch unconditionally detects
    such condition and zeroinitializer's the variable.
    Patch has been commented on and OKed by Doug off-line.
    // rdar://12897704

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172144 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8e2999cd4cfcf6447ca1f6e41d5707305e2d8dd0
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Thu Jan 10 23:12:29 2013 +0000

    Formatter: Remove a fixme, Jordy says @synthesize is good as is.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172141 91177308-0d34-0410-b5e6-96231b3b80d8

commit cd52bdaaf076b0082c07c6b3d88937fb737054f1
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Thu Jan 10 23:11:41 2013 +0000

    Formatter: Put spaces in ObjC method decls in the right place for Google style.

    Objective-C method declarations look like this:

    - (returntype)name:(type)argname anothername:(type)arg2name;

    In google style, there's no space after the leading '-' but one after
    "(returntype)" instead (but none after the argument types), see
    http://google-styleguide.googlecode.com/svn/trunk/objcguide.xml#Method_Declarations_and_Definitions

    Not inserting the space after '-' is easy, but to insert the space after the
    return type, the formatter needs to know that a closing parenthesis ends the
    return type. To do this, I tweaked the code in parse() to check for this, which
    in turn required moving detection of TT_ObjCMethodSpecifier from annotate() to
    parse(), because parse() runs before annotate().

    (To keep things interesting, the return type is optional, but it's almost
    always there in practice.)

    http://llvm-reviews.chandlerc.com/D280

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172140 91177308-0d34-0410-b5e6-96231b3b80d8

commit 664566c37f81d70226df22c12aa05d1603b620f3
Author: Anna Zaks <ganna@apple.com>
Date:   Thu Jan 10 22:44:16 2013 +0000

    [analyzer] Fix non-determinizm introduced in r172104.

    In some cases, we just pick any ivar that needs invalidation and attach
    the warning to it. Picking the first from DenseMap of pointer keys was
    triggering non-deterministic output.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172134 91177308-0d34-0410-b5e6-96231b3b80d8

commit ca1ad5018da214b9ff584f57288258424eb76089
Author: Will Dietz <wdietz2@illinois.edu>
Date:   Thu Jan 10 22:20:02 2013 +0000

    ToolChains: Minor touchup to use correct type, avoid truncation.

    Truncation happens regularly when find_first_not_of returns npos,
    strings long enough to trigger bug here are implausible.

    No functionality change intended (ignoring absurd string lengths).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172127 91177308-0d34-0410-b5e6-96231b3b80d8

commit b0ed986e648153c7b8dac4a228f7174ca49a6af3
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Jan 10 22:17:49 2013 +0000

    Declare +new instead of -new in test.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172126 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3731a41acbab938f03708f05b1bff7c34b4d3484
Author: Chad Rosier <mcrosier@apple.com>
Date:   Thu Jan 10 22:11:28 2013 +0000

    [ms-inline asm] Add test case for r172121.
    Part of rdar://12991541

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172122 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3973f28f347bf8ca3cca31ea30da235c95701231
Author: Chad Rosier <mcrosier@apple.com>
Date:   Thu Jan 10 22:10:16 2013 +0000

    [ms-inline asm] Extend the inline asm Sema lookup interface to determine if the
    Decl is a VarDecl.
    Part of rdar://12991541

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172120 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7084823f8ec4367019940b26245e01684b62c7e1
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Thu Jan 10 21:30:42 2013 +0000

    Formatter: No spaces around '=' in @property lines.

    Before:
    @property(assign, getter = isEditable) BOOL editable;

    Now:
    @property(assign, getter=isEditable) BOOL editable;

    It'd be nice if some Apple person could let me know if spaces are preferred
    around '=' in @synthesize lines (see FIXME in the test).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172110 91177308-0d34-0410-b5e6-96231b3b80d8

commit b1fc673783dd0215a1426b2c411779cd05a16a07
Author: Anna Zaks <ganna@apple.com>
Date:   Thu Jan 10 20:59:51 2013 +0000

    [analyzer] Add more checks to the ObjC Ivar Invalidation checker.

    Restructured the checker so that it could easily find two new classes of
    issues:
     - when a class contains an invalidatable ivar, but no declaration of an
    invalidation method
     - when a class contains an invalidatable ivar, but no definition of an
    invalidation method in the @implementation.

    The second case might trigger some false positives, for example, when
    the method is defined in a category.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172104 91177308-0d34-0410-b5e6-96231b3b80d8

commit c5362d9dc013f02a84f5e14c54c9d5fd5c78a426
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Jan 10 20:47:57 2013 +0000

    In my last patch use InGroup<Switch> (per Dmitri's comment).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172103 91177308-0d34-0410-b5e6-96231b3b80d8

commit f6e65cc9a654d54411c43fd014e911a407ad4075
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Jan 10 20:26:42 2013 +0000

    Provide a better warning when case value overflows.
    // rdar://11577384

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172102 91177308-0d34-0410-b5e6-96231b3b80d8

commit d5bfae62aa53290d333211bc5886da786033cfd0
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Thu Jan 10 20:19:27 2013 +0000

    Formatter: Land header change I forgot to land in r172099.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172101 91177308-0d34-0410-b5e6-96231b3b80d8

commit e0fd429757fb4cf801643200b2fb709cd7a957ad
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Thu Jan 10 20:18:33 2013 +0000

    Formatter: Add test for template and protocol parameters in ObjC method declarations.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172100 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5f500df1b28e6b1c49d4256dda130ecd8696ea2e
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Thu Jan 10 20:12:55 2013 +0000

    Formatting: In @implementation etc lines, put a space before protocol lists.

    Don't do this in Google style though:
    http://google-styleguide.googlecode.com/svn/trunk/objcguide.xml#Protocols

    Most other places (function declarations, variable declarations) still get
    this wrong, and since this looks very similiar to template instantiations to
    the lexer (`id <MyProtocol> a = ...`), it's going to be hard to fix in some
    places.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172099 91177308-0d34-0410-b5e6-96231b3b80d8

commit f9ea2ed30a8dec954f3d78ca43afc0be914bb1db
Author: Manuel Klimek <klimek@google.com>
Date:   Thu Jan 10 19:49:59 2013 +0000

    Refactoring the outermost structure of the formatter.

    This is the last step of pure shuffling stuff around, the next step will
    be the actual feature.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172098 91177308-0d34-0410-b5e6-96231b3b80d8

commit fb8e82e9a2e6c89d1ec5f1d0112bfbdcff605954
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Thu Jan 10 19:43:44 2013 +0000

    [libclang] Address some coding style issues pointed out by Dmitri.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172096 91177308-0d34-0410-b5e6-96231b3b80d8

commit 81ed2f1cd7202e84bf1f3868a60a36904499c94c
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Thu Jan 10 19:36:35 2013 +0000

    Formatter: Don't put a space in ObjC number literals like @+50

    Before:
    @ -4.5

    Now:
    @-4.5

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172095 91177308-0d34-0410-b5e6-96231b3b80d8

commit 75dcea57daa9bd6316a04ebdeee7c0a08781473d
Author: Ted Kremenek <kremenek@apple.com>
Date:   Thu Jan 10 19:29:31 2013 +0000

    ccc-analyzer: Forward -msse* options to the compiler.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172094 91177308-0d34-0410-b5e6-96231b3b80d8

commit ed91bbaa8c4c92a1c94c9a7a5f4141551718cf6b
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Thu Jan 10 19:19:14 2013 +0000

    Formatter: Add space before '(' in @implemenation, @interface, @protocol lines

    The first token in @implementation, @interface, and @protocol lines is now
    marked TT_ObjCDecl, and lines starting with a TT_ObjCDecl token are now marked
    LT_ObjCMethodDecl.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172093 91177308-0d34-0410-b5e6-96231b3b80d8

commit 94fc6f15d99a16abe6c28a7baa3f2358450920d1
Author: Manuel Klimek <klimek@google.com>
Date:   Thu Jan 10 19:17:33 2013 +0000

    Pull calculation whether a line fits one level up.

    This is the next step towards being able to configure multiple unwrapped
    lines into one.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172092 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6a3c70ec59804347c99e96aa13934f63f4fed573
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Jan 10 19:02:56 2013 +0000

    objectiveC++: When throwing c++ exception of
    an objectiveC object, use objc_exception_throw
    to raise the exception. // rdar://12605907

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172091 91177308-0d34-0410-b5e6-96231b3b80d8

commit d8d9b847bd7120ebd5be83a55d31d9c26142962e
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Thu Jan 10 18:58:44 2013 +0000

    [libclang] Add missing header file

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172090 91177308-0d34-0410-b5e6-96231b3b80d8

commit c6f5c6a58d34833d1fe458a518d5f59462926c7b
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Thu Jan 10 18:54:52 2013 +0000

    [libclang] Enhance logging capabilities of libclang.

    -provide a "raw_ostream'ish" class to make it convenient to output logging info.
    -use macros to automate a bit the logging functionality inside libclang functions
    -when logging, print a stack trace if "LIBCLANG_LOGGING=2" environment is set.
    -add logging to more functions.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172089 91177308-0d34-0410-b5e6-96231b3b80d8

commit 30f3b450c63a99ff5eef24b45cd999f8c2cf9b91
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Jan 10 18:50:51 2013 +0000

    Diagnostics: name all implicit groups used more than once.

    This will be a new style requirement going forwards: a diagnostic can only
    use the implicit InGroup<DiagGroup<"foo">> syntax if "foo" is not used by
    any other diagnostics; as soon as it is, it needs an explicit group.

    This also brings some stray "conversion" diagnostics into the
    "Value Conversion Issue" category, instead of the more generic
    "Semantic Issue" category. I consider this an improvement!
    - warn_impcast_complex_scalar
    - warn_impcast_float_integer
    - warn_impcast_float_precision
    - warn_impcast_integer_precision
    - warn_impcast_vector_scalar

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172088 91177308-0d34-0410-b5e6-96231b3b80d8

commit 98e7369d9ef5e53964cc8ae48ec2dfcf6c4633c0
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Jan 10 18:50:46 2013 +0000

    Error if an anonymous DiagGroup is referenced multiple times.

    Not only is this inefficient for TableGen, it's annoying for maintenance
    when renaming warning flags (unusual) or adding those flags to a group
    (more likely).

    This uses the new fix-it infrastructure for LLVM's SourceMgr/SMDiagnostic,
    as well as a few changes to TableGen to track more source information.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172087 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3f8c7f3a07df65580a9ca0fe3e956b8a40956a79
Author: Manuel Klimek <klimek@google.com>
Date:   Thu Jan 10 18:45:26 2013 +0000

    Pulling formatFirstToken one level up.

    This prepares the code for single line optimizations and changes the
    dependencies between single-line-formats to the indent of the first
    token.

    Conceptually, the first token is "between" the lines anyway, as the
    whitespace for the first token includes the previous end-of-line, which
    needs to be escaped when inside a preprocessor directive.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172083 91177308-0d34-0410-b5e6-96231b3b80d8

commit c8c8a478639f1474f4c53d12befc405934083633
Author: Manuel Klimek <klimek@google.com>
Date:   Thu Jan 10 15:58:26 2013 +0000

    Fixes layout of right braces.

    We now decide whether a newline should go before the closing brace
    depending on whether a newline was inserted after the opening brace.

    For example, we now insert a newline before '};' in:
    static SomeClass WithALoooooooooooooooooooongName = {
      100000000, \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"
    };
    ... while not inserting a newline here:
    static SomeClass = { a, b, c, d, e, f, g, h, i, j,
                         looooooooooooooooooooooooooooooooooongname,
                         looooooooooooooooooooooooooooooong };

    Also fixes the formating of (column limit 25):
    int x = {
      avariable,
      b(alongervariable)
    };

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172076 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3048aeae0654b34dcae561494c1b28872c88a5c8
Author: Alexander Kornienko <alexfh@google.com>
Date:   Thu Jan 10 15:05:09 2013 +0000

    Basic support for diagnostics.

    Summary: Uses DiagnosticsEngine to output diagnostics.

    Reviewers: djasper, klimek

    Reviewed By: djasper

    CC: cfe-commits

    Differential Revision: http://llvm-reviews.chandlerc.com/D278

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172071 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2851c16443dcdb9d8bb509d321fb827a560b47bc
Author: Manuel Klimek <klimek@google.com>
Date:   Thu Jan 10 14:36:46 2013 +0000

    Fixes formatting of function calls etc inside an initializer list.

    We're now formatting (column limit 25):
    int x = {
      avariable,
      b(alongervariable) };

    This also fixes:
    Aaa({
      int i;
    }, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,
                                        ccccccccccccccccc));
    ... where we would previously break after the '},'.

    Putting the closing curly into an extra line when there's a break
    directly after the first curly will be done in a subsequent patch.

    Paired with djasper.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172070 91177308-0d34-0410-b5e6-96231b3b80d8

commit 36fab8d70eee342d66e03c9b09c029f126196103
Author: Manuel Klimek <klimek@google.com>
Date:   Thu Jan 10 13:24:24 2013 +0000

    Do not add newline in empty blocks.

    void f() {}
    now gets formatted in one line.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172067 91177308-0d34-0410-b5e6-96231b3b80d8

commit 46ef852618b18bc79e403b37a12c9b692e76126b
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Jan 10 13:08:12 2013 +0000

    Improvements to function type and ObjC block formatting.

    Before: int (^myBlock) (int) = ^(int num) {}
            A<void ()>;
    	int (*b)(int);

    After:  int (^myBlock)(int) = ^(int num) {}
            A<void()>;
    	int(*b)(int);

    For function types and function pointer types, this patch only makes
    the behavior consistent (for types that are keywords and other types).
    For the latter function pointer type declarations, we'll probably
    want to add a space after "int".

    Also added LangOpts.Bool = 1, so we handle "A<bool()>" appropriately
    Moved the LangOpts-settings to a public place for use by tests
    and clang-format binary.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172065 91177308-0d34-0410-b5e6-96231b3b80d8

commit e1d792f0ee02b5beb4b8e94506b3a0c353df43dd
Author: Simon Atanasyan <satanasyan@mips.com>
Date:   Thu Jan 10 12:36:19 2013 +0000

    [Mips] Pass a combination of +soft-float and -mips16-hard-float flags to
    the backend if hard float ABI is selected under -mips16 mode.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172062 91177308-0d34-0410-b5e6-96231b3b80d8

commit bb42bf1a8bfd18fa2beec7fcbcb73f738fb455ba
Author: Manuel Klimek <klimek@google.com>
Date:   Thu Jan 10 11:52:21 2013 +0000

    Fix layout of blocks inside statements.

    Previously, we would not indent:
    SOME_MACRO({
      int i;
    });
    correctly. This is fixed by adding the trailing }); to the unwrapped
    line starting with SOME_MACRO({, so the formatter can correctly match
    the braces and indent accordingly.

    Also fixes incorrect parsing of initializer lists, like:
    int a[] = { 1 };

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172058 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5cf7cf317f684dc61b8a0e4476440b5635b80db4
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Jan 10 11:14:08 2013 +0000

    Improve clang-format's understanding of casts.

    This fixes llvm.org/PR14684.

    Before: int *pa = (int *) & a;
    After:  int *pa = (int *)&a;

    We still don't understand all kinds of casts. I added a FIXME to
    address that.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172056 91177308-0d34-0410-b5e6-96231b3b80d8

commit a2d37a51846fc748833b744076098a5ea002ab00
Author: David Tweed <david.tweed@arm.com>
Date:   Thu Jan 10 10:42:08 2013 +0000

    r172047 lacked a test (due to incomplete OpenCL support in clang). Use a modified
    version of a test by Joey Gouly to use attributes to materialise the unsupported
    types and test vector shifts.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172053 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7266cf6464bc3ec65044c5783df739cfe7b6cd61
Author: Guy Benyei <guy.benyei@intel.com>
Date:   Thu Jan 10 10:41:05 2013 +0000

    Enable intel_ocl_bicc for x86_64 target only. Remove fix from 171969 that enabled this extension for multiple targets.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172052 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4c60fc6cb9928fe03b6b4794260edb779b2c44e1
Author: Manuel Klimek <klimek@google.com>
Date:   Thu Jan 10 10:05:08 2013 +0000

    Introduce a define to switch on debug output.

    After re-writing the same loop multiple times, we deicided it's time to
    add this as an optional debugging help.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172050 91177308-0d34-0410-b5e6-96231b3b80d8

commit 700e710544a50ec63f984b9b098530bf9107920a
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Jan 10 09:26:47 2013 +0000

    Do more error checking for '{}'.

    This fixes llvm.org/PR14883, where clang-format would run into an
    assertion on:

    void f() { return } 42

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172049 91177308-0d34-0410-b5e6-96231b3b80d8

commit f20318f9e27a064bdd9a3fbb51d2c3a4a4f3ac2e
Author: David Tweed <david.tweed@arm.com>
Date:   Thu Jan 10 09:11:33 2013 +0000

    Testing with a full OpenCL compiler (based on clang) reveals r71734 missed
    difference between type widths of a vector and the width of one of its elements
    in the case of vector shifts. Use correct witdth in the vector case.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172047 91177308-0d34-0410-b5e6-96231b3b80d8

commit f9c21665faa7e4936d484396469ee7afc46e1f00
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Jan 10 02:12:38 2013 +0000

    clang-c/Index.h: Clarify empty argument with (void) for C89.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172037 91177308-0d34-0410-b5e6-96231b3b80d8

commit b8a8be10038edd1454156d4c25cc86d4e93b6623
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Jan 10 02:04:18 2013 +0000

    Be more careful about updating the failed-modules set

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172035 91177308-0d34-0410-b5e6-96231b3b80d8

commit f91cbd54c97fceaf84539e7234b27ad54bba735b
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Thu Jan 10 01:46:29 2013 +0000

    Don't assert in codegen on static data members which have NoLinkage. Fixes
    PR14825!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172031 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7005b907ea159c8e74e81f85269777429bc18d3c
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Jan 10 01:43:00 2013 +0000

    Rework the realpath nonsense for framework lookups to deal more
    uniformly with symlinks between top-level and embedded frameworks.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172030 91177308-0d34-0410-b5e6-96231b3b80d8

commit 880e538536d1a7597eb5805d67a08e3941577c7f
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Thu Jan 10 00:42:07 2013 +0000

    Formatter: Remove unused @-formatting code.

    @optional @property is put on two different unwrapped lines now, so this is no
    longer necessary.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172024 91177308-0d34-0410-b5e6-96231b3b80d8

commit b530fa374a8d4d96e61bf1dae8f4a73f4b3d2436
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Thu Jan 10 00:25:19 2013 +0000

    Formatter: @optional and @required go on their own line.

    Previously:
    @protocol myProtocol
    - (void)mandatoryWithInt:(int)i;
    @optional - (void) optional;
    @required - (void) required;
    @end

    Now:
    @protocol myProtocol
    - (void)mandatoryWithInt:(int)i;
    @optional
    - (void)optional;
    @required
    - (void)required;
    @end

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172023 91177308-0d34-0410-b5e6-96231b3b80d8

commit 50767d8c8f2f667255bdb99692c0467ce992bc67
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Wed Jan 9 23:25:37 2013 +0000

    Formatter: Add support for @implementation.

    Just reuse the @interface code for this. It accepts slightly more than
    necessary (@implementation cannot have protocol lists), but that's ok.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172019 91177308-0d34-0410-b5e6-96231b3b80d8

commit d017e42af00c2e7c380d0f9b27c81734f4b2844e
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Jan 9 23:22:20 2013 +0000

    [PreprocessingRecord] A macro expansion can be reported out-of-order in cases when
    there are macro expansions inside macro arguments where the arguments are
    not expanded in the same order as listed; don't assert that all macro expansions
    are in source order.

    rdar://12397063

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172018 91177308-0d34-0410-b5e6-96231b3b80d8

commit 34983d5f8fbdced8f38d61a933ce32aff3e0886c
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Jan 9 23:22:08 2013 +0000

    [utils/ClangDataFormat.py] Don't use lldb.frame directly, get the frame from the value.

    Some lldb changes made lldb.frame not set until a script is invoked, which made the
    formatters not working after a restart.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172017 91177308-0d34-0410-b5e6-96231b3b80d8

commit a18e70b25c85d7e653e642b5e6e58d6063af3d83
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Jan 9 23:04:56 2013 +0000

    Issue warning when case value is too large to fit
    in case condition type. // rdar://11577384.
    Test is conditionalized on x86_64-apple triple as
    I am not sure if the INT_MAX/LONG_MAX values in the test
    will pass this test for other hosts.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172016 91177308-0d34-0410-b5e6-96231b3b80d8

commit 73189fb7077998a61e3251c65e136da3afcbc5af
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Wed Jan 9 22:22:51 2013 +0000

    ClangTools.rst: spelling and formatting

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172008 91177308-0d34-0410-b5e6-96231b3b80d8

commit ee1230cee4ed4b6ea600afd473925ef128cd0703
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Wed Jan 9 22:18:55 2013 +0000

    ClangFormat.rst: improve formatting

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172007 91177308-0d34-0410-b5e6-96231b3b80d8

commit 898dd70865e42962fbeba346f7abcdc937664e2b
Author: Hal Finkel <hfinkel@anl.gov>
Date:   Wed Jan 9 21:49:51 2013 +0000

    Remove the unused Parser::ParseTranslationUnit function

    Parser::ParseTranslationUnit is now dead because the loop over
    ParseTopLevelDecl is in ParseAST.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172005 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6d5b57a5c7b05ac092b6a4b9704bea937cc3ba23
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Jan 9 21:49:28 2013 +0000

    Add documentation for clang-format.

    This adds documentation for both LibFormat as well as the standalone
    tools and integrations built on top of it. It slightly restructures
    the ClangTools documentation.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172004 91177308-0d34-0410-b5e6-96231b3b80d8

commit 049c44767370b7257d17a5c32d407f19efa01c6f
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Wed Jan 9 21:42:32 2013 +0000

    Formatter: Make parseObjCUntilAtEnd() actually work.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172003 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1abe6ea5b8961a0fc14c2e0bdbd7451f643ca065
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Wed Jan 9 21:15:03 2013 +0000

    Formatting: Add support for @protocol.

    Pull pieces of the @interface code into reusable methods.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172001 91177308-0d34-0410-b5e6-96231b3b80d8

commit fa49c18071500d43c86a3c0029aecaea954a64ca
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Wed Jan 9 20:36:10 2013 +0000

    Fix test after r171995.

    I wasn't aware libFormat is used elsewhere already. Let me know if rebasing
    is not the right thing to do here.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171996 91177308-0d34-0410-b5e6-96231b3b80d8

commit 27d1367871a6eab347346497e87ea1adb2fd15a5
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Wed Jan 9 20:25:35 2013 +0000

    Formatter: Add support for @interface.

    Previously:
    @interface Foo + (id)init; @end

    Now:
    @interface Foo
    + (id)init;
    @end

    Some tweaking remains, but this is a good first step.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171995 91177308-0d34-0410-b5e6-96231b3b80d8

commit ccdb2a5e0ab4b0a7fc9d3859c6bb1676182169d5
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Wed Jan 9 19:54:57 2013 +0000

    unwind.h: Add include guards and don't mess with visibility if HIDE_EXPORTS is specified.

    For GCC compatibility.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171991 91177308-0d34-0410-b5e6-96231b3b80d8

commit beac9e3772e255f89dad0abe34811953121912b2
Author: Ted Kremenek <kremenek@apple.com>
Date:   Wed Jan 9 18:46:17 2013 +0000

    Do not model loads from complex types, since we don't accurately model the imaginary and real parts yet.

    Fixes false positive reported in <rdar://problem/12964481>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171987 91177308-0d34-0410-b5e6-96231b3b80d8

commit 719e53f64637c5ac41aac0c711e1977487ffc0d7
Author: David Blaikie <dblaikie@gmail.com>
Date:   Wed Jan 9 17:48:41 2013 +0000

    Suppress GCC -Wreturn warning.

    Modified from a patch by David Greene.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171982 91177308-0d34-0410-b5e6-96231b3b80d8

commit abe75ef905626d00358427a7a3c59480c1f03361
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Wed Jan 9 16:34:58 2013 +0000

    Handle static functions being redeclared in function scope.

    Fixes pr14861.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171978 91177308-0d34-0410-b5e6-96231b3b80d8

commit 526ed11ad9743c773df76bd1649d33fb92c2b8cb
Author: Manuel Klimek <klimek@google.com>
Date:   Wed Jan 9 15:25:02 2013 +0000

    Enables layouting unwrapped lines around preprocessor directives.

    Previously, we'd always start at indent level 0 after a preprocessor
    directive, now we layout the following snippet (column limit 69) as
    follows:

    functionCallTo(someOtherFunction(
        withSomeParameters, whichInSequence,
        areLongerThanALine(andAnotherCall,
      B
                           withMoreParamters,
                           whichStronglyInfluenceTheLayout),
        andMoreParameters),
                   trailing);

    Note that the different jumping indent is a different issue that will be
    addressed separately.

    This is the first step towards handling #ifdef->#else->#endif chains
    correctly.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171974 91177308-0d34-0410-b5e6-96231b3b80d8

commit 35eb8c3e12cac22f91d1cd4c74ae092ebc94fc40
Author: Guy Benyei <guy.benyei@intel.com>
Date:   Wed Jan 9 12:21:44 2013 +0000

    Enable intel_ocl_bicc for x86_64 target. This was missed in r171056.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171969 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3fc0bb779e751de71166c20a365cd5c28c3de8ed
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Jan 9 10:40:23 2013 +0000

    Only align after assignments on the top level.

    This fixes llvm.org/PR14870 and we no longer mess up:
    template <typename T1, typename T2 = char, typename T3 = char,
              typename T4 = char>
    void f();

    It removes the nice aligment for assignments inside other expressions,
    but I am not sure those are actually practically relevant. If so, we can
    fix those later.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171966 91177308-0d34-0410-b5e6-96231b3b80d8

commit ceb99ab9d721848c0851c59f3fdd9c1ca85c58be
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Jan 9 10:16:05 2013 +0000

    Don't simply give up when exceeding 80cols, choose an "ok" option.

    This addresses llvm.org/PR14847.

    We can now format something like:
    int aaaaaaaaaaaaaaaaaaaaaaaaaaa =
        // aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
        + bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb;

    clang-format unavoidably exceeds the column limit, but does not just
    flush everything into a single line. Moreover, it tries to minimize the
    number of characters beyond the column limit.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171964 91177308-0d34-0410-b5e6-96231b3b80d8

commit d64f73812f3e6473ef8b6b6ec909bb9d8a510843
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Jan 9 09:50:48 2013 +0000

    Correctly format wrapped function call parameters in templated functions.

    This fixes llvm.org/PR14846.

    Before:
    template <typename T>
    void aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
            int aaaaaaaaaaaaaaaaa);

    After:
    template <typename T>
    void aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
        int aaaaaaaaaaaaaaaaa);

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171963 91177308-0d34-0410-b5e6-96231b3b80d8

commit 41df16e2a835f547b9384643e1804e75940e74dd
Author: Manuel Klimek <klimek@google.com>
Date:   Wed Jan 9 09:38:21 2013 +0000

    Fixes dump_ast_matchers to parse all matcher macros and updates the
    docs.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171962 91177308-0d34-0410-b5e6-96231b3b80d8

commit 043835aa876b1edeca0a05def0cc0989faa15892
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Jan 9 09:33:39 2013 +0000

    Allow comments in the middle of statements to be on their own line.

    This fixes llvm.org/PR14860.

    Before, we messed up the format of:
    if (DeclaratorInfo.isFunctionDeclarator() &&
        //getDeclSpecContextFromDeclaratorContext(Context) == DSC_top_level &&
        Tok.is(tok::semi) && NextToken().is(tok::l_brace)) {
    }

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171961 91177308-0d34-0410-b5e6-96231b3b80d8

commit 886568dc24eb0a1ccf73bf32d1eafa8fd4008cc6
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Jan 9 08:36:49 2013 +0000

    Fix ObjC block declarations.

    Before: int ( ^ Block1) (int, int) = ^ (int i, int j)
    After:  int (^Block1) (int, int) = ^(int i, int j)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171959 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9c837d05c9e6d6971900d36b1e462ed3666b7487
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Jan 9 07:06:56 2013 +0000

    Improve formatting of conditional operators.

    This addresses llvm.org/PR14864.

    We used to completely mess this up and now format as:
    Diag(NewFD->getLocation(),
         getLangOpts().MicrosoftExt ? diag::ext_function_specialization_in_class :
             diag::err_function_specialization_in_class)
        << NewFD->getDeclName();

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171957 91177308-0d34-0410-b5e6-96231b3b80d8

commit 727d0d00fcd3f0aafb1dcfe362e2877b9aba8c53
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Wed Jan 9 05:06:41 2013 +0000

    Don't mention -fno-diagnostics-print-source-range-info in manual.

    Clang doesn't understand it.

    If someone wants to teach clang about that flag instead, please also add
    support for -fno-diagnostics-parseable-fixits for consistency.

    Until then, let the documentation match the current behavior.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171952 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4a5984cc6d176d8356529e7e5aee4856088d79f0
Author: Will Dietz <wdietz2@illinois.edu>
Date:   Wed Jan 9 03:39:41 2013 +0000

    [ubsan] Make static check data non-const so it can be used for deduplication.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171947 91177308-0d34-0410-b5e6-96231b3b80d8

commit 086cc83a84bfab60685b69e3afa3e4500daebb4d
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Wed Jan 9 03:16:42 2013 +0000

    Make sure clang puts tokens from different files on separate lines in "-E -P" mode.  <rdar://problem/12774044>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171944 91177308-0d34-0410-b5e6-96231b3b80d8

commit a0f2d02d166880e5d826074b6c2ecbf64f8ca70d
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Wed Jan 9 02:20:00 2013 +0000

    Make __has_include a bit more resilient in the presence of macros.  <rdar://problem/12748859>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171939 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7dc80e1c4dd44ce2b2da0fc3daff786c3d02348b
Author: Douglas Gregor <dgregor@apple.com>
Date:   Wed Jan 9 00:47:56 2013 +0000

    When name lookup for a redeclaration finds declarations that are known
    (because they are part of some module) but have not been made visible
    (because they are in a submodule that wasn't imported), filter out
    those declarations unless both the old declaration and the new
    declaration have external linkage. When one or both has internal
    linkage, there should be no conflict unless both are imported.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171925 91177308-0d34-0410-b5e6-96231b3b80d8

commit e178e70e14380cf8828a307f912fcdbd3882b752
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Jan 9 00:09:15 2013 +0000

    put back diagnostics when flexible members are captured
    in lambdas.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171921 91177308-0d34-0410-b5e6-96231b3b80d8

commit 080dc528c7016a107b94430b84cee6ad33e09155
Author: Michael Gottesman <mgottesman@apple.com>
Date:   Tue Jan 8 23:55:10 2013 +0000

    Removed extra "`" from ARC documentation.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171920 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6949ab1f5e81deccc8053dcb0eeeaa8498a91070
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Jan 8 23:51:48 2013 +0000

    [ms-inline asm] Add a test case for the offset operator where the operand is a
    global variable.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171919 91177308-0d34-0410-b5e6-96231b3b80d8

commit b20eb10c8f51d26b0c486f345db25e26f96acb06
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Jan 8 23:48:48 2013 +0000

    Fix typo (again).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171917 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4b3040f51a96248fa34ba14cf54914d361142bd7
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Jan 8 23:40:08 2013 +0000

    Remove lambda from my last patch.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171915 91177308-0d34-0410-b5e6-96231b3b80d8

commit 456cfc0010ceb785f1e41735935302884b8b4250
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Jan 8 23:21:22 2013 +0000

    Fixes typo in comment.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171913 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9c0816f36d9012c5ed1445ed969fba5b60bcec01
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Jan 8 23:17:51 2013 +0000

    objectiveC blocks: It is impractical to capture
    struct variables with flexiable array members in
    blocks (and lambdas). Issue error instead of
    crashing in IRGen. // rdar://12655829

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171912 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6a502c4430088fe3bac7b5886cd9425f7e306b63
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Jan 8 22:43:49 2013 +0000

    PR14855: don't silently swallow a nested-name-specifier after a type name.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171908 91177308-0d34-0410-b5e6-96231b3b80d8

commit d130fd2e141f1fef412c2d58e7385370801bd718
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Jan 8 22:31:36 2013 +0000

    Clear LV cache when dropping availability attributes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171906 91177308-0d34-0410-b5e6-96231b3b80d8

commit 51be6e3487c4b7f43d9f5b2db962382b79295acb
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Jan 8 22:04:34 2013 +0000

    Tighten types a bit. No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171902 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8c4222adbc0fd22928e751be6a75328fc9283a72
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Jan 8 21:30:32 2013 +0000

    Don't crash when trying to apply the availability attribute to a block.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171899 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0777cf5fcb8ca53bdc7e6455e9068742fbcc14db
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Jan 8 21:00:12 2013 +0000

    Tighten types a bit. No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171895 91177308-0d34-0410-b5e6-96231b3b80d8

commit fc35cbca942ccdfe43742c1d786ed168517e0a47
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Jan 8 20:44:06 2013 +0000

    Tighten types a bit. No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171894 91177308-0d34-0410-b5e6-96231b3b80d8

commit 27fdea9b64e0c47b3da8f8d178807f118c8dd2b2
Author: David Blaikie <dblaikie@gmail.com>
Date:   Tue Jan 8 20:28:13 2013 +0000

    Remove on-by-default warning from -Wmost.

    -Wint-to-pointer-cast, added to match GCC's warning by the same name, doesn't
    need to be in any other groups (as it isn't in any groups in GCC either).

    Found in post-commit review by Ted Kremenek.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171893 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3a2673e2e93376da249fae8b4aa805a6118ddd4e
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Tue Jan 8 20:16:23 2013 +0000

    Formatter: More tests for already-passing ObjC bits.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171892 91177308-0d34-0410-b5e6-96231b3b80d8

commit 41748f7d3ae36db1b1c52eaaf76631ed60c79c53
Author: Anna Zaks <ganna@apple.com>
Date:   Tue Jan 8 20:09:00 2013 +0000

    [analyzer] Bump down the max size of functions being analyzed.

    With the new setting, we are not going to inline any functions that are
    more than 50 basic blocks. (The analyzer is 20% faster on several
    especially bad benchmarks with the new default.)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171891 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2db356d619fbf56e342fbc3fd5301e2e539e51b6
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Jan 8 20:03:18 2013 +0000

    Don't break after unary operators.

    Before:
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaa, *
                                                     aaaaaaaaaaaaaaaaaaaaaaaaaaaaa);

    After:
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
        aaaaaaaaaaaaaaaaaaaaaaaaaaaa, *aaaaaaaaaaaaaaaaaaaaaaaaaaaaa);

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171890 91177308-0d34-0410-b5e6-96231b3b80d8

commit a6d2020412455ec582454811435202eadc037081
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Jan 8 19:58:34 2013 +0000

    Move loop variable update.
    Thanks to Dmitri Gribenko for the suggestion.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171889 91177308-0d34-0410-b5e6-96231b3b80d8

commit b9725cfb0a50731930a6331beb70f361b4d52a29
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Jan 8 19:43:34 2013 +0000

    Mark all subsequent decls used.

    In the source

      static void f();
      static void f();
      template<typename T>
      static void g() {
        f();
      }
      static void f() {
      }
      void h() {
        g<int>();
      }

    the call to f refers to the second decl, but it is only marked used at the end
    of the translation unit during instantiation, after the third f decl has been
    linked in.

    With this patch we mark all subsequent decls used, so that it is easy to check
    if a symbol is used or not.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171888 91177308-0d34-0410-b5e6-96231b3b80d8

commit cb4d690820295d93c1cea6c13fb4409b8c1db2cf
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Tue Jan 8 19:40:21 2013 +0000

    Formatter: Format @ literals better. Array and dictionary literals need more work.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171887 91177308-0d34-0410-b5e6-96231b3b80d8

commit f7fd7994a0c520d94e4dfd38848076e68da10a17
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Tue Jan 8 19:29:37 2013 +0000

    Various tweaks and updates to the analyzer website.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171885 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6dfb96045bebe00212d251da1dad4660cb8652ac
Author: Anna Zaks <ganna@apple.com>
Date:   Tue Jan 8 19:19:46 2013 +0000

    [analyzer] Only include uniqueling location as issue_hash when available

    This makes us more optimistic when matching reports in a changing code
    base. Addresses Jordan's feedback for r171825.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171884 91177308-0d34-0410-b5e6-96231b3b80d8

commit c31689a4aa1e1a534482349fabaebedaae2ea17d
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Tue Jan 8 19:15:23 2013 +0000

    Formatter: More ObjC tests.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171883 91177308-0d34-0410-b5e6-96231b3b80d8

commit d1d9df688baf384f1ca1220e51104c3b30d6a81a
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Jan 8 18:23:28 2013 +0000

    [libclang] In clang_equalCursors, clear out the "FirstInDeclGroup" part in a declaration cursor
    before doing the comparison.

    This is because we can't set "FirstInDeclGroup" consistently; for example, when visiting a DeclStmt we will set
    it but we don't set it on the result of clang_getCursorDefinition for a reference of the same declaration.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171878 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7cdc45751cb5b200ad5fff0de28c5d1a64b6fce3
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Jan 8 18:16:18 2013 +0000

    Use Decl::getAvailability() rather than checking for the "unavailable"
    attribute when determining whether we need to see an implementation of
    a property. Fixes <rdar://problem/12958191>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171877 91177308-0d34-0410-b5e6-96231b3b80d8

commit cf4a79c3ec035521170d1913b7918a2f962118e1
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Tue Jan 8 17:56:31 2013 +0000

    Formatter: Add tests for some ObjC bits that happen to be formatted correctly.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171875 91177308-0d34-0410-b5e6-96231b3b80d8

commit 409474f9bd37ecb99fc8197c55254c50b8deba52
Author: Ted Kremenek <kremenek@apple.com>
Date:   Tue Jan 8 17:33:58 2013 +0000

    Repost checker-270, which for some reason got deleted.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171870 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7bb7fb634d20d9f3f5c6b5058a514a4b41b6f33d
Author: Manuel Klimek <klimek@google.com>
Date:   Tue Jan 8 16:33:20 2013 +0000

    clang-format can now format #defines.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171865 91177308-0d34-0410-b5e6-96231b3b80d8

commit 765561ff8fa636cc88d133b85ecb592094104554
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Jan 8 16:17:54 2013 +0000

    Don't put spaces around ##.

    In Clang/LLVM this seems to be the more common formatting for ##s. There
    might still be case that we miss, but we'll fix those as we go along.

    Before:

      #define A(X)
        void function ## X();

    After:

      #define A(X)
        void function##X();

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171862 91177308-0d34-0410-b5e6-96231b3b80d8

commit a879a164495db6daa4d809fbaba1617c9ade5919
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Jan 8 16:09:04 2013 +0000

    Add missing spaces. This doesn't cause problems in practice because we only warn
    about _Static_assert with -pedantic.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171860 91177308-0d34-0410-b5e6-96231b3b80d8

commit ef3c69406f73b892a3d5023ea42b3d7ed9c99d33
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Jan 8 14:58:32 2013 +0000

    Clear the LV cache when setting the instantiated from link.
    Fixes pr14835.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171857 91177308-0d34-0410-b5e6-96231b3b80d8

commit 26f7e78018ed6ce8aa11b5eef94c772ca4ee48bf
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Jan 8 14:56:18 2013 +0000

    Change the data structure used in clang-format.

    This is a first step towards supporting more complex structures such
    as #ifs inside unwrapped lines. This patch mostly converts the array-based
    UnwrappedLine into a linked-list-based UnwrappedLine. Future changes will
    allow multiple children for each Token turning the UnwrappedLine into a
    tree.

    No functional changes intended.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171856 91177308-0d34-0410-b5e6-96231b3b80d8

commit f8a6cb1f755fe1530a0fcdf3c4cb1706d7fce822
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Tue Jan 8 14:47:41 2013 +0000

    CodeGen/compound-assign-overflow.c: include stdint.h in freestanding mode

    This hopefully fixes the ARM buildbot.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171853 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8c19d3944747fc68119c336bcc594030da0655db
Author: Sean Silva <silvas@purdue.edu>
Date:   Tue Jan 8 04:42:09 2013 +0000

    docs: "clang tools" are not a different interface.

    I spotted someone confused about this, so remove the heading to make it
    clear that they really are a part of Tooling.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171841 91177308-0d34-0410-b5e6-96231b3b80d8

commit d63b19ea855a66df8c58764604d48497c48829d9
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Jan 8 04:04:30 2013 +0000

    Clear the LV cache when merging the availability attribute.

    The availability implies default visibility, so it can change the computed
    visibility.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171840 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2fcadfe262e7574183c6cd1af5dbde2901f92275
Author: Eric Christopher <echristo@gmail.com>
Date:   Tue Jan 8 01:54:13 2013 +0000

    Add a test to make sure that vector output happens for debug info.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171834 91177308-0d34-0410-b5e6-96231b3b80d8

commit cbb99efceb3a2c27ba2382df97f3b69c75974f94
Author: Ted Kremenek <kremenek@apple.com>
Date:   Tue Jan 8 01:50:40 2013 +0000

    Don't warn about undefined varargs argument behavior in unreachable code.

    Fixes <rdar://problem/12322000>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171831 91177308-0d34-0410-b5e6-96231b3b80d8

commit b9d61ca9209262df6a74f7ad27a420d9f30ddc9e
Author: David Blaikie <dblaikie@gmail.com>
Date:   Tue Jan 8 01:12:59 2013 +0000

    Add [artificial] debug info annotation to test matching r171826

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171830 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4ce831cba3ae3030674fd9d90f8a69f7b3938d63
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Jan 8 00:58:25 2013 +0000

    [arcmt] Follow-up for r171484; make sure when adding brackets enclosing case statements,
    that the case does not "contain" a declaration that is referenced "outside" of it,
    otherwise we will emit un-compilable code.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171828 91177308-0d34-0410-b5e6-96231b3b80d8

commit aa46d513f47280a9786e8e9aa77f7089b3f8fee6
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Jan 8 00:50:27 2013 +0000

    Move ref qualifiers from Type bitfields into FunctionProtoType, stealing two
    bits from the number of parameters. This brings the bitfields down from 33 bits
    to 32 bits, reducing the size of Types by 4 bytes on 32-bit systems.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171827 91177308-0d34-0410-b5e6-96231b3b80d8

commit 97bfb558f69c09b01a5c1510f08dc91eb62329a7
Author: Anna Zaks <ganna@apple.com>
Date:   Tue Jan 8 00:25:29 2013 +0000

    [analyzer] Include the bug uniqueing location in the issue_hash.

    The issue here is that if we have 2 leaks reported at the same line for
    which we cannot print the corresponding region info, they will get
    treated as the same by issue_hash+description. We need to AUGMENT the
    issue_hash with the allocation info to differentiate the two issues.

    Add the "hash" (offset from the beginning of a function) representing
    allocation site to solve the issue.

    We might want to generalize solution in the future when we decide to
    track more than just the 2 locations from the diagnostics.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171825 91177308-0d34-0410-b5e6-96231b3b80d8

commit c1c6a4981a4b50476d71c88f8dac81a1430885ed
Author: Anna Zaks <ganna@apple.com>
Date:   Tue Jan 8 00:25:22 2013 +0000

    [analyzer] Plist: change the type of issue_hash from int to string.

    This gives more flexibility to what could be stored as issue_hash.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171824 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9da34f900b1651dfa83ec7e552a287879542691e
Author: Anna Zaks <ganna@apple.com>
Date:   Tue Jan 8 00:25:14 2013 +0000

    [analyzer] Extend the Representing Values section of the dev manual.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171823 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6647986cd986521b5607b82d770f57d001f46acf
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Jan 8 00:15:53 2013 +0000

    clang/test/CodeGenOpenCL/shifts.cl: Fixup for -Asserts.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171820 91177308-0d34-0410-b5e6-96231b3b80d8

commit 774d8b4679ce1317da0f18336c3d27bdb11e5f63
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Jan 8 00:08:23 2013 +0000

    PR14838: When a member reference is bound to a temporary, don't forget to
    perform the semantic checks associated with the destruction of that temporary.
    It'll be destroyed at the end of the constructor.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171818 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3c7236e01dfb69b370857ccd71c7bcf5ce80b36f
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Jan 8 00:01:45 2013 +0000

    Back out my no-op change from r171783.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171817 91177308-0d34-0410-b5e6-96231b3b80d8

commit c117f39a772a3f1e42915d79916013e9fa9f29a9
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Mon Jan 7 23:55:47 2013 +0000

    Correct OpenBSD profiling test

    The test should be looking for gcrt0.o not crt0.o.  Clang was already printing
    "gcrt0", but the test was looking for "{{.*}}crt0.o", and the .* regexp
    consumed "g".

    Patch by Brad Smith.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171815 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9c78f9bddc42dbdeb05a7183b4770d33b0bda7d3
Author: David Blaikie <dblaikie@gmail.com>
Date:   Mon Jan 7 23:06:35 2013 +0000

    Extract the instance-method case for debug info out into a separate function.

    This is in preparation for using this to construct the function type for
    pointers to member functions to include the implicit/artificial 'this'
    parameter in that case as well. (feedback from GDB indicates that this might be
    all that's necessary to get it to behave well with Clang's pointer-to-member
    function debug output)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171809 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3c4e481a7c6ddfc577923f85c3fcf43ba9add664
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Mon Jan 7 23:04:04 2013 +0000

    add a triple

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171808 91177308-0d34-0410-b5e6-96231b3b80d8

commit 822023a5531cfa66bc2735d434032c9bf403a490
Author: Will Dietz <wdietz2@illinois.edu>
Date:   Mon Jan 7 22:25:52 2013 +0000

    [ubsan] Use correct type for compound assignment ops.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171801 91177308-0d34-0410-b5e6-96231b3b80d8

commit 67f8b5ef212eee155f69b6f90968fe18c8052122
Author: David Blaikie <dblaikie@gmail.com>
Date:   Mon Jan 7 22:24:59 2013 +0000

    Simplify computing debug info type for static member functions.

    No (intended) functional change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171800 91177308-0d34-0410-b5e6-96231b3b80d8

commit a65e076e2e50dd8812cde1071bae9fa522938029
Author: Michael Gottesman <mgottesman@apple.com>
Date:   Mon Jan 7 22:24:45 2013 +0000

    Converted Block-ABI-Apple.txt => Block-ABI-Apple.rst.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171799 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9987ce279d2dc1aa79da047b919091c984d6485c
Author: Sean Silva <silvas@purdue.edu>
Date:   Mon Jan 7 21:46:47 2013 +0000

    docs: Fix inconsistent titles.

    Sphinx was whining about this.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171796 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7ce3170f2d105a029a833ff3a3424307e5050fd7
Author: Sean Silva <silvas@purdue.edu>
Date:   Mon Jan 7 21:46:35 2013 +0000

    docs: Copy Block-ABI-Apple.txt to output.

    This fixes the URL permanence of that URL. This is a bit of a hack. See
    the FIXME in the patch for what the "real" solution should be.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171795 91177308-0d34-0410-b5e6-96231b3b80d8

commit cc5a28a1a10e966ae176957d9fd21b03951f600e
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Mon Jan 7 21:31:08 2013 +0000

    Minor refactoring of my last patch
    related to // rdar://12958878

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171792 91177308-0d34-0410-b5e6-96231b3b80d8

commit 546dbef5e46a7da14583e70e138ae7a81b4b9ccc
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Mon Jan 7 20:44:37 2013 +0000

    [docs/analyzer] Test commit (for auto-update).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171788 91177308-0d34-0410-b5e6-96231b3b80d8

commit e3fc097b6ab0c7e62912219083c3a220879f3525
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Mon Jan 7 20:43:06 2013 +0000

    [docs] Fix an inconsistent title level, and a sphinx warning.
     - We don't need any static files currently, so drop that dir.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171787 91177308-0d34-0410-b5e6-96231b3b80d8

commit a6a87f1e620c6cd8d9cfaba2861d525f6690e7ba
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Mon Jan 7 20:38:55 2013 +0000

    [docs/analyzer] Convert existing debug-checks document to Sphinx and link into doctree.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171786 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7520fcab8a7084729901c5edfd3ade79acfa2672
Author: Chad Rosier <mcrosier@apple.com>
Date:   Mon Jan 7 20:34:40 2013 +0000

    Test case for r171784.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171785 91177308-0d34-0410-b5e6-96231b3b80d8

commit 57cbb141ca7ee020d6853cd098065a9e0c2d69cc
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Jan 7 20:03:16 2013 +0000

    Use the C++11 POD definition in C++11 mode to determine whether one
    can create a VLA of class type. Fixes <rdar://problem/12151822>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171783 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0b1de54fd69da1424084588196883ad4c0a57a57
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Mon Jan 7 20:01:57 2013 +0000

    Use getter. Fixes the build from a bad merge.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171782 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8e721b714a92de803000c65fb8a57a1d8a810322
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Mon Jan 7 19:58:54 2013 +0000

    Add support for attribute((mode(unwind_word))).
    Patch by Nick Lewycky. Fixes pr8703.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171781 91177308-0d34-0410-b5e6-96231b3b80d8

commit 32b94bedc6a789e4091626e7433e73555cf9df00
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Mon Jan 7 19:21:03 2013 +0000

    objective-C: when searching for declarations in protocol
    list of classes, etc., make sure to look into protocol
    definitions. // rdar://12958878

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171777 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3453bf7da9ac88cd2421b7fdccebf5cd2b8a9d87
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Mon Jan 7 19:16:32 2013 +0000

    [libclang] When annotating preprocessor tokens, if we are in a macro definition,
    check if the token was ever a macro name and annotate it if that's the case.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171776 91177308-0d34-0410-b5e6-96231b3b80d8

commit c059f89d888cd214e18ed09a7b47339201526381
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Mon Jan 7 19:16:30 2013 +0000

    [libclang] Simplify annotation of preprocessing tokens and remove the AnnotateTokensData
    DenseMap and the lookups associated with it.

    Instead of lexing for preprocessor tokens, associating the annotation with the location in a map,
    and later lookup in the map in order to adjust the cursor annotation, just annotate the cursor
    while lexing for preprocessor tokens.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171775 91177308-0d34-0410-b5e6-96231b3b80d8

commit e9de485169b76acba3a3cb16399fa3d63e43ec2c
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Mon Jan 7 19:16:27 2013 +0000

    [libclang] Make token annotation of type/storage qualifiers accurate.

    Previously type/storage qualifiers would not be annotated as the declaration they belonged to.
    Just use the resulting source range of getRawCursorExtent() which is more correct
    than what AnnotateTokensWorker::Visit() was adjusting it to.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171774 91177308-0d34-0410-b5e6-96231b3b80d8

commit 664b06f9bd2ea83443ddc8553feba8ba48880752
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Mon Jan 7 19:16:25 2013 +0000

    [libclang] When getting the cursor for an identifier inside a macro definition, check if
    this was ever a macro name and return a specific CXCursor_MacroExpansion cursor in such a case,
    instead of the generic CXCursor_MacroDefinition.

    Checking for macro name makes sure the identifier is not part of the identifier list in a
    function macro.
    While, in general, resolving identifiers in macro definitions to other macros may not be completely accurate,
    it greatly improves functionality such as give-me-the-definition-of-this, which was not working at all
    inside macro definitions.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171773 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8169b671974fc15b6059b1e9532f7f3207d79786
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Mon Jan 7 19:16:23 2013 +0000

    [PCH] (De)serialize the end location of MacroInfo.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171772 91177308-0d34-0410-b5e6-96231b3b80d8

commit d93335c43fd462145fee3ea8f4d84d430577c821
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Mon Jan 7 19:16:18 2013 +0000

    Pull the bulk of Lexer::MeasureTokenLength() out into a new function,
    Lexer::getRawToken().

    No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171771 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0b67c75c988f7188743059713a04ca2320c9f15a
Author: Anna Zaks <ganna@apple.com>
Date:   Mon Jan 7 19:13:00 2013 +0000

    [analyzer] Fix a false positive in Secure Keychain API checker.

    Better handle the blacklisting of known bad deallocators when symbol
    escapes through a call to CFStringCreateWithBytesNoCopy.

    Addresses radar://12702952.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171770 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5879fb3f6d559863c18df7132ee3d5fdb62b6ae5
Author: Anna Zaks <ganna@apple.com>
Date:   Mon Jan 7 19:12:56 2013 +0000

    [analyzer] Fix a false positive in the ivar invalidation checker.

    When a property is "inherited" through both a parent class and directly
    through a protocol, we should not require the child to invalidate it
    since the backing ivar belongs to the parent class.
    (Fixes radar://12913734)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171769 91177308-0d34-0410-b5e6-96231b3b80d8

commit 975b1203baeb04b13cdaa017b7fdd384f5adcad0
Author: Alexander Kornienko <alexfh@google.com>
Date:   Mon Jan 7 19:09:15 2013 +0000

    Fixed a number of -Wcovered-switch-default diagnostics in tools/clang/include/clang/AST/AttrDump.inc

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171768 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6092d4ed09a2368871993d9a45717f24394329ce
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Mon Jan 7 19:05:19 2013 +0000

    Formatter: Support @public/@protected/@package/@private.

    @package is an Objective-C 2 feature, so turn on ObjC2 as well.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171766 91177308-0d34-0410-b5e6-96231b3b80d8

commit 27c2cb24d5e2e9fda68b929c6d03c761196d8e2d
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Mon Jan 7 18:45:48 2013 +0000

    Comment to XML conversion: no, we don't want to print instantiations for the
    <Declaration> tag

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171763 91177308-0d34-0410-b5e6-96231b3b80d8

commit de7685487c5d628dd9fe64c4f861cd1888f50fc7
Author: Manuel Klimek <klimek@google.com>
Date:   Mon Jan 7 18:10:23 2013 +0000

    Fix parsing of variable declarations directly after a class / struct.

    Previous indent:
    class A {
    }
    a;
    void f() {
    };

    With this patch:
    class A {
    } a;
    void f() {
    }
    ;

    The patch introduces a production for classes and structs, and parses
    the rest of the line to the semicolon after the class scope.
    This allowed us to remove a long-standing wart in the parser that would
    just much the semicolon after any block.
    Due to this suboptimal formating some tests were broken.

    Some unrelated formatting tests broke; those hit a bug in the ast
    printing, and need to be fixed separately.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171761 91177308-0d34-0410-b5e6-96231b3b80d8

commit c3cd2b0d538e4db78f1bcbedd0085e2005ce5c51
Author: Alexander Kornienko <alexfh@google.com>
Date:   Mon Jan 7 17:53:08 2013 +0000

    Implement Attr dumping for -ast-dump.
    http://llvm-reviews.chandlerc.com/D234

    Patch by Philip Craig!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171760 91177308-0d34-0410-b5e6-96231b3b80d8

commit 07fc1ba7553f2f5bf26984091197311decd9028e
Author: Michael Han <fragmentshaders@gmail.com>
Date:   Mon Jan 7 16:57:11 2013 +0000

    Add fixit hints for misplaced C++11 attributes around class specifiers.

    Following r168626, in class declaration or definition, there are a combination of syntactic locations
    where C++11 attributes could appear, and among those the only valid location permitted by standard is
    between class-key and class-name. So for those attributes appear at wrong locations, fixit is used to
    move them to expected location and we recover by applying them to the class specifier.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171757 91177308-0d34-0410-b5e6-96231b3b80d8

commit 589dae7d52043af6085967fae0c31d32365de229
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Jan 7 16:56:53 2013 +0000

    updateOutOfDateIdentifier() can cause the identifier table to be
    rehashed, invaliding the iterator walking through the identifier
    table. Separate out the identification of out-of-date identifiers from
    updating them.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171756 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7a83421776416d6a9044fb03b5b02208b47646c1
Author: David Tweed <david.tweed@arm.com>
Date:   Mon Jan 7 16:43:27 2013 +0000

    Scalar shifts in the OpenCL specification (as of v. 1.2) are defined to be
    with respect to the lower "left-hand-side bitwidth" bits, even when negative);
    see OpenCL spec 6.3j. This patch both implements this behaviour in the code
    generator and "constant folding" bits of Sema, and also prevents tests
    to detect undefinedness in terms of the weaker C99 or C++ specifications
    from being applied.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171755 91177308-0d34-0410-b5e6-96231b3b80d8

commit a9ccdd1b8ef31d1942193ffa6bc32781055cf493
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Mon Jan 7 16:36:17 2013 +0000

    Formatter: Add tests for try/catch. Let 'throw' start an expression.

    Before:
      throw a *b;

    Now:
      throw a * b;

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171754 91177308-0d34-0410-b5e6-96231b3b80d8

commit d0af4b46741560cf2e52d819e1f3a2506a1e7a3c
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Mon Jan 7 16:14:28 2013 +0000

    Formatter: Don't put spaces betwen @ and objc keywords.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171753 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4a293a2edaf1b24cbc810c162a4a6a76713d8471
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Mon Jan 7 16:07:07 2013 +0000

    Test all @keywords. Turns out some of them are not formatted correctly yet.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171752 91177308-0d34-0410-b5e6-96231b3b80d8

commit 581f5577e8e42d72faef571e0e15ddb5da661f5a
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Mon Jan 7 15:56:25 2013 +0000

    Slightly expand the @ test to cover whitespace between @ and keyword.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171751 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6a0ff179799c0dcbbd76b311923162e3be343f4b
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Mon Jan 7 15:45:20 2013 +0000

    libclang/Makefile: Reorder USEDLIBS along driver/clang.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171750 91177308-0d34-0410-b5e6-96231b3b80d8

commit da92771074afd709cbea552ae38717ac73d8011b
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Jan 7 15:36:15 2013 +0000

    Small refactoring of the formatter code.

    This should make it slightly more readable as it more clearly separates
    what happens where. No intended functional changes. More of this to
    come..

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171748 91177308-0d34-0410-b5e6-96231b3b80d8

commit efcfe733970b994b75ba5fc728a97357b3a6a0e1
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Mon Jan 7 15:17:23 2013 +0000

    Add a test that checks that the formatter doesn't discard '@' with ObjC1 set.

    Also set ObjC1 in the formatter tests.

    The only effect of this flag in the lexer is that '@' now gets turned into
    tok::at instead of tok::unknown.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171742 91177308-0d34-0410-b5e6-96231b3b80d8

commit decf7bcafd71af8c31cbc17eec1d6d050e2a1ea2
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Mon Jan 7 15:15:29 2013 +0000

    Fix typo.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171740 91177308-0d34-0410-b5e6-96231b3b80d8

commit f0ab0a38d9482eef5495db845ff53ee689f9c80e
Author: Manuel Klimek <klimek@google.com>
Date:   Mon Jan 7 14:56:16 2013 +0000

    s/parseStatement/parseStructuralElement/g in the UnwrappedLineParser.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171737 91177308-0d34-0410-b5e6-96231b3b80d8

commit cd162384a552ef4e4913244f4f14b9a3e5a791e1
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Jan 7 13:26:07 2013 +0000

    Reformat clang-formats source code.

    All changes done by clang-format itself. No functional changes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171732 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9cda8000434be3360abb38fe1690fa24ae3d48be
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Jan 7 13:08:40 2013 +0000

    Prefer not to break after assignments.

    This addresses llvm.org/PR14830.

    Before:
    unsigned Cost =
        TTI.getMemoryOpCost(I->getOpcode(), VectorTy, SI->getAlignment(),
                            SI->getPointerAddressSpace());
    CharSourceRange LineRange =
        CharSourceRange::getTokenRange(TheLine.Tokens.front().Tok.getLocation(),
                                       TheLine.Tokens.back().Tok.getLocation());

    After:
    unsigned Cost = TTI.getMemoryOpCost(I->getOpcode(), VectorTy,
                                        SI->getAlignment(),
                                        SI->getPointerAddressSpace());
    CharSourceRange LineRange = CharSourceRange::getTokenRange(
                                    TheLine.Tokens.front().Tok.getLocation(),
                                    TheLine.Tokens.back().Tok.getLocation());

    This required rudimentary changes to static initializer lists, but we
    are not yet formatting them in a reasonable way. That will be done in a
    subsequent patch.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171731 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7ad4effaa96905ef9dbc3815760b06b1d1639390
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Jan 7 11:09:06 2013 +0000

    Add style option for number of spaces before trailing comments.

    In LLVM style, a single space should be enough. In Google style, two
    spaces are required.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171725 91177308-0d34-0410-b5e6-96231b3b80d8

commit 71607512cb70db3c1be8f0287153b681531687fc
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Jan 7 10:48:50 2013 +0000

    Do not break before "0" in pure virtual function declarations.

    Before:
    virtual void write(ELFWriter *writer, OwningPtr<FileOutputBuffer> &buffer) =
        0

    After:
    virtual void write(ELFWriter *writerrr,
                       OwningPtr<FileOutputBuffer> &buffer) = 0;

    This addresses llvm.org/PR14815.

    To implement this I introduced a line type during parsing and moved the
    definition of TokenType out of the struct for increased readability.
    Should have done the latter in a separate patch, but it would be hard to
    pull apart now.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171724 91177308-0d34-0410-b5e6-96231b3b80d8

commit dd5b1018d97a9666da92d320485a727ac63ee89a
Author: Manuel Klimek <klimek@google.com>
Date:   Mon Jan 7 10:03:37 2013 +0000

    Fix incorrect FIXME.

    The case that we wanted to write a test for cannot happen, as the
    UnwrappedLineParser already protects against it. Added an assert to
    prevent regressions of that assumption.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171720 91177308-0d34-0410-b5e6-96231b3b80d8

commit dac62528c1a66db867e21cfa7cfc439d557d6f0c
Author: Will Dietz <wdietz2@illinois.edu>
Date:   Mon Jan 7 09:51:17 2013 +0000

    CFG.cpp: Fix wrapping logic when printing block preds/succs.

    First check only wrapped with i==8, second wrapped at i==2,8,18,28,...
    This fix restores the intended behavior: i==8,18,28,...

    Found with -fsanitize=integer.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171718 91177308-0d34-0410-b5e6-96231b3b80d8

commit c3d0c82ab0ce17c684c0192f14059d8e4d63156c
Author: Manuel Klimek <klimek@google.com>
Date:   Mon Jan 7 09:34:28 2013 +0000

    Remove outdated FIXME and add explanation for error handling strategy
    while parsing #define's.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171717 91177308-0d34-0410-b5e6-96231b3b80d8

commit f39f6ff8ea2c9136f890a47f0ab784359e9706e6
Author: Manuel Klimek <klimek@google.com>
Date:   Mon Jan 7 09:25:37 2013 +0000

    Remove outdated fixme.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171716 91177308-0d34-0410-b5e6-96231b3b80d8

commit d544c574ccbcbfcb5b3c3edd19956143826008cf
Author: Manuel Klimek <klimek@google.com>
Date:   Mon Jan 7 09:24:17 2013 +0000

    Do not ever allow using the full line in preprocessor directives.

    We would format:
      #define A \
        int f(a); int i;
    as
      #define A \
        int f(a);\
        int i

    The fix will break up macro definitions that could fit a line, but hit
    the last column; fixing that is more involved, though, as it requires
    looking at the following line.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171715 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6cf581436e9e59a18f6a362027a69eaaa9b67597
Author: Manuel Klimek <klimek@google.com>
Date:   Mon Jan 7 08:54:53 2013 +0000

    Fix layouting of single-line-comments preceded by an escaped newline.

    Previously, we'd format
      int i;\
      // comment
    as
      int i; // comment

    The problem is that the escaped newline is part of the next token, and
    thus the raw token text of the comment doesn't start with "//".

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171713 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9541938d4e3b9cbafdf0e1a28900c535b82767a4
Author: Manuel Klimek <klimek@google.com>
Date:   Mon Jan 7 07:56:50 2013 +0000

    Fix layouting of tokens with a leading escaped newline.

    If a token follows directly on an escaped newline, the escaped newline
    is stored with the token. Since we re-layout escaped newlines, we need
    to treat them just like normal whitespace - thus, we need to increase
    the whitespace-length of the token, while decreasing the token length
    (otherwise the token length contains the length of the escaped newline
    and we double-count it while indenting).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171706 91177308-0d34-0410-b5e6-96231b3b80d8

commit 46a46a20a3ec397192550915964cb227e87b79b2
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Jan 7 07:13:20 2013 +0000

    Put a higher penalty on breaking before "." or "->".

    This fixes llvm.org/PR14823.

    Before:
        local_state->SetString(prefs::kApplicationLocale, parent_local_state
                                    ->GetString(prefs::kApplicationLocale));
    After:
        local_state->SetString(
            prefs::kApplicationLocale,
            parent_local_state->GetString(prefs::kApplicationLocale));

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171705 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0028ee3dd32c5e3b089c0ef176b97ebcdd2c4cf6
Author: David Blaikie <dblaikie@gmail.com>
Date:   Mon Jan 7 05:55:03 2013 +0000

    PR14759: Improve/correct support for debug info for C++ member pointers.

    Using added LLVM functionality in r171698. This works in GDB for member
    variable pointers but not member function pointers. See the LLVM commit and
    GDB bug 14998 for details.

    Un-xfailing cases in the GDB 7.5 test suite will follow.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171699 91177308-0d34-0410-b5e6-96231b3b80d8

commit d938e87458f18ffe4314936c5ab985b6b232c31f
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Mon Jan 7 01:38:01 2013 +0000

    Switch to asking the target machine to add any relevant analysis passses
    rather than doing it ourselves. This reflects the API changes in r171681.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171683 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4a2ef80d896c1bac38ce113ec19a8d509a619288
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Mon Jan 7 01:21:02 2013 +0000

    Simplify. No behavior change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171680 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2626a2ad844a762dfda50b861c46918924eb44aa
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sun Jan 6 20:19:09 2013 +0000

    ClangTools doc: add ideas for new tools in clang-tools-extra to ensure that
    these ideas don't get lost

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171667 91177308-0d34-0410-b5e6-96231b3b80d8

commit a5342db6fcc6ee3fae084f584ecb019726de9cca
Author: Manuel Klimek <klimek@google.com>
Date:   Sun Jan 6 20:07:31 2013 +0000

    Fixes handling of unbalances braces.

    If we find an unexpected closing brace, we must not stop parsing, as
    we'd otherwise not layout anything beyond that point.

    If we find a structural error on the highest level we'll not re-indent
    anyway, but we'll still want to format within unwrapped lines.

    Needed to introduce a differentiation between an expected and unexpected
    closing brace.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171666 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1834a048052e95195b71b6fa9189ecaf00e7d10d
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sun Jan 6 13:38:34 2013 +0000

    Clang docs: add some information about the difference between 'clang' and 'clang -cc1'

    This is coming up again and again on the mailing list and IRC.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171656 91177308-0d34-0410-b5e6-96231b3b80d8

commit b17185204db26c59e329f6f0af96e7265fd084ba
Author: Sylvestre Ledru <sylvestre@debian.org>
Date:   Sun Jan 6 08:09:29 2013 +0000

    Prepare for the upcoming version of Debian (jessie)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171655 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8da06bbd90d070c9a43557b6ecd55583db5b4083
Author: Sean Silva <silvas@purdue.edu>
Date:   Sun Jan 6 07:49:41 2013 +0000

    use early returns to simplify and de-nest

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171654 91177308-0d34-0410-b5e6-96231b3b80d8

commit f6fd00b12ae7d89436d32851c9bcc8dd3d046ad3
Author: Manuel Klimek <klimek@google.com>
Date:   Sat Jan 5 22:56:06 2013 +0000

    Fixes parsing of hash tokens in the middle of a line.

    To parse # correctly, we need to know whether it is the first token in a
    line - we can deduct this either from the whitespace or seeing that the
    token is the first in the file - we already calculate this information.
    This patch moves the identification of the first token into the
    getNextToken method and stores it inside the FormatToken, so the
    UnwrappedLineParser can stay independent of the SourceManager.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171640 91177308-0d34-0410-b5e6-96231b3b80d8

commit c37b4d60f926bf440dfcc312bd6482fed3176e33
Author: Manuel Klimek <klimek@google.com>
Date:   Sat Jan 5 22:14:16 2013 +0000

    Fixes PR14801 - preprocessor directives shouldn't be indented

    Uses indent 0 for macros for now and resets the indent state to the
    level prior to the preprocessor directive.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171639 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ef1518fb0e7ab7586655265de5f69c9310bc2e6
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Sat Jan 5 21:54:55 2013 +0000

    Fixes a breakage in dejagnu++ test suite where it included
    <objc/Protocol.h>. Caused by my recent changes for
    various builtin declarations of objc_msgSendSuper
    variety. // rdar://12489098

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171638 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6b6bd10d3025b978b8c345926db4b84cd916dee3
Author: David Blaikie <dblaikie@gmail.com>
Date:   Sat Jan 5 21:41:59 2013 +0000

    Make checking for 'protected' access in debug info more legible.

    Based on code review feedback for r171604 from Chandler Carruth &
    Eric Christopher. Enabled by improvements to LLVM made in r171636.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171637 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6f8424b79863fc9810393c95ecdee97895ab6f26
Author: Manuel Klimek <klimek@google.com>
Date:   Sat Jan 5 21:34:55 2013 +0000

    Fixes PR14811: Crash when formatting some macros

    A preprocessor directive cannot be started while we're parsing one.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171635 91177308-0d34-0410-b5e6-96231b3b80d8

commit d8180cf9877cd793949ae94edbf2ee84341041c5
Author: David Blaikie <dblaikie@gmail.com>
Date:   Sat Jan 5 20:03:07 2013 +0000

    PR14573: Unnamed parameters in debug info, Part 2

    Catch some cases I'd missed in r171605 related to unnamed parameters of record
    type. This resolves all remaining cases of PR14573 suppression in the GDB 7.5
    test suite. Fix to the test suite to follow.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171633 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3de93c883d3253c38e90d0a3a050899eeb806eee
Author: David Blaikie <dblaikie@gmail.com>
Date:   Sat Jan 5 18:22:42 2013 +0000

    FileCheck-ize test/CodeGen/inline.c.

    A rather egregious example of the grep-style checking of old that I randomly
    came across.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171631 91177308-0d34-0410-b5e6-96231b3b80d8

commit d826f11d2cc16993a5bdfa9d4bb2763882392ac6
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Sat Jan 5 11:45:12 2013 +0000

    Companion patch to r171621 which changed the interface for creating TTI
    passes to a create-pass function instead of a direct constructor call.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171622 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1b15e856e1c31b56fea0b86c99f1ea8313ccd31d
Author: Ted Kremenek <kremenek@apple.com>
Date:   Sat Jan 5 07:31:54 2013 +0000

    Fix set-xcode-analyzer to only modify the ExecPath for the analyzer when using --use-xcode-clang.

    Turns out that the ExecPath for the ObjC migrator would also get set.

    Fixes <rdar://problem/12961769>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171607 91177308-0d34-0410-b5e6-96231b3b80d8

commit 436653be0ca4eb696b31315a83a44390cc8bc0b3
Author: David Blaikie <dblaikie@gmail.com>
Date:   Sat Jan 5 05:58:35 2013 +0000

    Emit debug info for unnamed parameters.

    LLVM ignores this data for now - patch for that to follow.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171605 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5f2bd163107122f8c8ab56ff3975abaa007b4ff0
Author: David Blaikie <dblaikie@gmail.com>
Date:   Sat Jan 5 05:48:08 2013 +0000

    Change test/CodeGenCXX/debug-info-method.cpp an IR (rather than asm) test.

    Referring back to the original commit (r115090) which was a frontend only test
    I adjusted this test to verify the frontend change that was made, to emit the
    protected access value in the flags metadata field.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171604 91177308-0d34-0410-b5e6-96231b3b80d8

commit 42368b5f28186cf44bee8308164fef4fcd564f72
Author: David Blaikie <dblaikie@gmail.com>
Date:   Sat Jan 5 05:39:21 2013 +0000

    FileCheck-ize test/CodeGenCXX/debug-info-method.cpp

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171602 91177308-0d34-0410-b5e6-96231b3b80d8

commit 390a70f718871933cbfd751f8c3dfde28a762a18
Author: Akira Hatanaka <ahatanaka@mips.com>
Date:   Sat Jan 5 02:04:34 2013 +0000

    [mips] Fix data layout string. Add 64 to the list of native integer widths
    and add stack alignment information.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171588 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6acc4bc44db341d499a925cfe68bea89390039a4
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Sat Jan 5 01:28:37 2013 +0000

    Assert that redeclarations have the same linkage.

    It is somewhat hard to test linkage, so I decided to try to add an assert. This
    already found some interesting cases where there were different.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171585 91177308-0d34-0410-b5e6-96231b3b80d8

commit ba3c9ca16b3992248ec654ce9ec8c841c1c6d1e9
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Sat Jan 5 00:32:13 2013 +0000

    In my last patch initialize the destination to null (with a simple store) before doing a storeStrong to it.
    // rdar://12530881

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171572 91177308-0d34-0410-b5e6-96231b3b80d8

commit df0be6d03beffabd3449216f036db65cae60c2ad
Author: Manman Ren <mren@apple.com>
Date:   Sat Jan 5 00:01:42 2013 +0000

    Fix testing case for Release build (r171493)

    rdar://11562117

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171564 91177308-0d34-0410-b5e6-96231b3b80d8

commit e695677108da12a520e62e87601205d84d594e22
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Jan 4 23:52:16 2013 +0000

    Update checker build to checker-270

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171560 91177308-0d34-0410-b5e6-96231b3b80d8

commit d4397b99e2fcb189002d04410d7c3bf85ab4bba3
Author: Manuel Klimek <klimek@google.com>
Date:   Fri Jan 4 23:34:14 2013 +0000

    Various fixes to clang-format's macro handling.

    Some of this is still pretty rough (note the load of FIXMEs), but it is
    strictly an improvement and fixes various bugs that were related to
    macro processing but are also imporant in non-macro use cases.

    Specific fixes:
    - correctly puts espaced newlines at the end of the line
    - fixes counting of white space before a token when escaped newlines are
      present
    - fixes parsing of "trailing" tokens when eof() is hit
    - puts macro parsing orthogonal to parsing other structure
    - general support for parsing of macro definitions

    Due to the fix to format trailing tokens, this change also includes a
    bunch of fixes to the c-index tests.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171556 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7a77f1994bdbe67db361b851a0907cf49fddfd91
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Jan 4 23:32:24 2013 +0000

    objective-C arc: in copy helper function for
    __strong __block variables, perform objc_storeStrong on
    source and destination instead of direct move. This
    is done with -O0 and to improve some analysis.
    // rdar://12530881

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171555 91177308-0d34-0410-b5e6-96231b3b80d8

commit e3b29886ab053123feeb256e92bf8af23ba136cc
Author: Chad Rosier <mcrosier@apple.com>
Date:   Fri Jan 4 22:40:33 2013 +0000

    Fix indent and remove parameter with a matching default value.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171545 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7ac928b4dc15b5eeb13ea62e96330a145cc71068
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Fri Jan 4 21:18:45 2013 +0000

    Style fix: We don't use lowercase-and-underscored template parameter names.
    Thanks for dgregor for noticing it.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171532 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9bb0d280faaedd528d2af7eeaf06c9f262345ad2
Author: Daniel Jasper <djasper@google.com>
Date:   Fri Jan 4 20:46:38 2013 +0000

    Correctly format dereference and address of in array parameters.

    Before: InvalidRegions[ &R] = 0;
    After:  InvalidRegions[&R] = 0;

    This fixes llvm.org/PR14793

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171522 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2b721f52655bc75f8b9d5dcc761298829d5a7c8e
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Fri Jan 4 20:41:40 2013 +0000

    Fix typo. Thanks to dgregor for noticing it.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171521 91177308-0d34-0410-b5e6-96231b3b80d8

commit c792d6d0b39cd6926be28ccb925992204d1af0e1
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Fri Jan 4 20:34:32 2013 +0000

    Unqualify the parameter type.
    This fixes a regression from 168895.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171519 91177308-0d34-0410-b5e6-96231b3b80d8

commit aa60f9cee8fa29cac1848de75ad48cdc0520e993
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Jan 4 19:44:26 2013 +0000

    realpath'ify the mapping from header includes to module imports.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171516 91177308-0d34-0410-b5e6-96231b3b80d8

commit 34b3366820626278be37bbf8f41f54e4b66309ac
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Jan 4 19:04:47 2013 +0000

    Update CMakeLists.txt

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171505 91177308-0d34-0410-b5e6-96231b3b80d8

commit e4057c203c71873d93aead38d626b3cd29584d8a
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Jan 4 19:04:44 2013 +0000

    Add __has_feature support to detect if clang supports the explicit "atomic" keyword for ObjC properties.

    Fixes <rdar://problem/12953378>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171504 91177308-0d34-0410-b5e6-96231b3b80d8

commit e756b65deb75be660232a63d7e23f76123d76480
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Jan 4 19:04:42 2013 +0000

    Require set-xcode-analyzer to run with Python 2.7 or later.

    Addresses LLVM PR 11661.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171503 91177308-0d34-0410-b5e6-96231b3b80d8

commit a620bd8fb8c6f2080898e4aecf77b46e7e1a8f16
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Jan 4 19:04:40 2013 +0000

    NSErrorChecker: remove quoting the parameter name in the diagnostic until we actually include it's name.

    This is a possible regression of moving to using ImplicitNullDerefEvent.
    Fixing this for real (including the parameter name) requires more
    plumbing in ImplicitNullDerefEvent.  This is just a stop gap fix.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171502 91177308-0d34-0410-b5e6-96231b3b80d8

commit a4a1759ba11892b510a3b09ad8605aa82602d33e
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Jan 4 19:04:36 2013 +0000

    Tighten code.  No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171501 91177308-0d34-0410-b5e6-96231b3b80d8

commit c9c3907e66659e4457593fdec4a27c671c12e041
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Jan 4 18:58:28 2013 +0000

    Add the module name to the 'incomplete umbrella header' warning.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171497 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1f42f11870325d1869eb7d51b98ebf5e6d7bcc26
Author: Daniel Jasper <djasper@google.com>
Date:   Fri Jan 4 18:52:56 2013 +0000

    Let the formatter ignore UnwrappedLines containing errors.

    This prevents code like:

    namespace {
    class Foo {
      Foo(
      };
    }  // comment

    from causing segfaults (see llvm.org/PR14774).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171495 91177308-0d34-0410-b5e6-96231b3b80d8

commit 463b383bcd0269ab56dfa13a3b86fb382c97b515
Author: Filipe Cabecinhas <me@filcab.net>
Date:   Fri Jan 4 18:52:29 2013 +0000

    Add file added in r171484 to CMakelists.txt.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171494 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3c7a0e1a75ebe13366a646a9eb8c4aa61e4728d3
Author: Manman Ren <mren@apple.com>
Date:   Fri Jan 4 18:51:35 2013 +0000

    Debug Info: fix the line location for cleanup code of a block function

    The line information was changed when emitting debug information for all the
    DeclRefExprs and we should change it back to get ready for PopClenupBlocks
    called from FinishFunction.

    rdar://11562117

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171493 91177308-0d34-0410-b5e6-96231b3b80d8

commit f7992132207d7ddc8810a135cec97ebe5805e500
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Jan 4 18:45:40 2013 +0000

    Fix up various builtin declaration of objc_msgSend families
    to match those foung in objc.h an avoid spurious warnings.
    // rdar://12489098

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171492 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2d5c133d3dd95507db63147997109f06e8cfa833
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Jan 4 18:30:13 2013 +0000

    [libclang] Introduce clang_getFileLocation.

    Uses of clang_getSpellingLocation should eventually move to calling
    clang_getFileLocation, and clang_getSpellingLocation should do what
    its name represents and actually point at the 'spelling' location, e.g.
    inside a macro definition if the spelling of a token came from that.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171486 91177308-0d34-0410-b5e6-96231b3b80d8

commit 20bcd4ead46e3764a5d1279845f8ed351f4d3984
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Jan 4 18:30:11 2013 +0000

    [arcmt] Allow removing an -autorelease of a variable initialized in the previous statement.

    rdar://11074996

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171485 91177308-0d34-0410-b5e6-96231b3b80d8

commit ea2224d7078c4d31ad32adbaba4bdc2d85a3d609
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Jan 4 18:30:08 2013 +0000

    [arcmt] Adds brackets in case statements that "contain" initialization of retaining
    variable, thus emitting the "switch case is in protected scope" error.

    rdar://12952016

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171484 91177308-0d34-0410-b5e6-96231b3b80d8

commit 81cc2f1ecd31d8e3bca2c936fb9538a9d9c39695
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Jan 4 18:30:04 2013 +0000

    Move the common source locations of CastStmt & DefaultStmt into their base class, SwitchCase.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171483 91177308-0d34-0410-b5e6-96231b3b80d8

commit af1c08f216cf1ed541d9f502f6c8944d5fd4320c
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Jan 4 18:29:59 2013 +0000

    [arcmt] Don't error if an autoreleased variable is returned after the -autorelease.

    rdar://12952025

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171482 91177308-0d34-0410-b5e6-96231b3b80d8

commit 86ebd03380dd5d1b5744fe48405445ea27faf1d6
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Jan 4 18:22:19 2013 +0000

    Remove -Wmodule-build; it was a dumb idea anyway. <rdar://problem/12957525>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171478 91177308-0d34-0410-b5e6-96231b3b80d8

commit fd5ac0d75abd6ead8dd39bf526b34eeaff81cef6
Author: Eric Christopher <echristo@gmail.com>
Date:   Fri Jan 4 17:59:07 2013 +0000

    Fix fieldNo usage for lambdas. No behavior change since the
    field number was 0 anyhow.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171472 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6769ccb6853871c085c8366ab5e993841ad56d00
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Thu Jan 3 04:29:20 2013 +0000

    Warn on unused auto variables.

    To do so we have to wait until we know that the type of a variable has been
    deduced. Sema::FinalizeDeclaration is the first callback that is used for
    decl with or without initializers.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171458 91177308-0d34-0410-b5e6-96231b3b80d8

commit da844b3483669c64d02082ff2a9e68d46bd00c1f
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Thu Jan 3 04:05:19 2013 +0000

    Use early returns to reduce indentation.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171457 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5d2faa41bc63a2a29535ae3dbbc99daabf14ea2f
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Thu Jan 3 03:17:17 2013 +0000

    [arcmt] Rewrite uses of Block_copy/Block_release macros.

      c = Block_copy(b);
      Block_release(c);
     ---->
      c = [b copy];
      <removed>

    rdar://9408211

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171454 91177308-0d34-0410-b5e6-96231b3b80d8

commit bcde478a5f2600718a225eade94549c9792166b8
Author: Ted Kremenek <kremenek@apple.com>
Date:   Thu Jan 3 01:30:20 2013 +0000

    Fix capitalization of Objective-C in diagnostic.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171440 91177308-0d34-0410-b5e6-96231b3b80d8

commit c37fad6d8b483b636e96f568202f24cb2b714db4
Author: Ted Kremenek <kremenek@apple.com>
Date:   Thu Jan 3 01:30:12 2013 +0000

    Make MallocChecker debug output useful.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171439 91177308-0d34-0410-b5e6-96231b3b80d8

commit 89e19b43b81a6b5d092a81d2ebf6ec9a4097a48d
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Thu Jan 3 00:39:26 2013 +0000

    Don't assert/crash on reference variables in lambdas bound to a
    static local variable from the parent scope.  PR14773.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171433 91177308-0d34-0410-b5e6-96231b3b80d8

commit 344c77aac25e5d960aced3f45fbaa09853383f6d
Author: Anna Zaks <ganna@apple.com>
Date:   Thu Jan 3 00:25:29 2013 +0000

    [analyzer] Rename callback EndPath -> EndFunction

    This better reflects when callback is called and what the checkers
    are relying on. (Both names meant the same pre-IPA.)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171432 91177308-0d34-0410-b5e6-96231b3b80d8

commit 589ddc2d27e556605b7b633136ad8a218ca9f22a
Author: Sean Silva <silvas@purdue.edu>
Date:   Wed Jan 2 23:25:41 2013 +0000

    Add docs/README.txt to point to llvm/docs/README.txt.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171426 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0f48f9d5548b0617d6f17d11727d752aecb7da0c
Author: Sean Silva <silvas@purdue.edu>
Date:   Wed Jan 2 23:07:22 2013 +0000

    analyzer: add initial Sphinx configuration

    This is just the output of sphinx-quickstart. Now all that is needed
    to begin converting the analyzer docs to reST is the server-side setup.

    The analyzer folks have asked me to keep this segregated from the other
    clang docs since the analyzer is a logically separate project (and has
    its own separate web page) even though it resides in the clang tree.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171425 91177308-0d34-0410-b5e6-96231b3b80d8

commit bdaeb8ab3c7ff30e736be46cbd9f66ebcfa8ea79
Author: Sean Silva <silvas@purdue.edu>
Date:   Wed Jan 2 22:48:50 2013 +0000

    Exclude docs/analyzer/ from the default Sphinx build.

    This paves the way for converting the analyzer docs to Sphinx (by
    setting up a nested Sphinx tree in this directory).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171424 91177308-0d34-0410-b5e6-96231b3b80d8

commit d829379ed95cdce29497118c6c6c39bd7f62f307
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Jan 2 22:31:57 2013 +0000

    [python bindings] Expose cursor.referenced (clang_getCursorReferenced).

    Patch by Matthew King!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171423 91177308-0d34-0410-b5e6-96231b3b80d8

commit f5e208c06e8b7cf68be841cfad983a17e76e6846
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Wed Jan 2 22:30:14 2013 +0000

    hexagon-target-basic.c test: add REQUIRES line for hexagon target

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171422 91177308-0d34-0410-b5e6-96231b3b80d8

commit 35abfcd3285ad82fa269b8f2468dee01a4dceb52
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Jan 2 22:26:07 2013 +0000

    DiagnosticIds: Fix offset/ID calculation, no impact outside this code.

    Patch by Will Dietz:

    Minor touchup so the values of Offset/ID reflect their intention.
    Previously, the sum (Offset+ID) was correct, but Offset/ID
    individually were wrong.

    Caught by investigating unsigned overflow reported by -fsanitize=integer.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171421 91177308-0d34-0410-b5e6-96231b3b80d8

commit 28c1f7524ca221fa206d547bea959049e6291093
Author: Sean Silva <silvas@purdue.edu>
Date:   Wed Jan 2 22:05:33 2013 +0000

    docs: Mark ReleaseNotes as "In-Progress"

    Even though we do have a `.. warning::` directive on the page, hopefully
    having "In-Progress" in the title will help to condition people's
    expectations a bit for when they run into the extremely bare-bones
    release notes.

    Also, when release season comes around again, maybe this will get
    people's attention and avoid confusion about what is going into the
    upcoming release, and what is for changes to trunk for the next version.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171419 91177308-0d34-0410-b5e6-96231b3b80d8

commit e132c89dead982487e341bdc99c3b6b391ada5b1
Author: Sean Silva <silvas@purdue.edu>
Date:   Wed Jan 2 21:50:48 2013 +0000

    docs: Take advantage of extra level of headings.

    The way Sphinx treats the "top-level" adornments is weird. It usually
    uses the first top-level adornment as the page title, even if the
    top-level adornment is just one "section" out of many (i.e. if the first
    section is "Introduction", then it will make the page title be
    "Introduction"). This behavior can be overriden by using an explicit
    `..  title::` directive to set the title.

    Since the Sphinx stylesheet that Clang is currently using ('haiku')
    nicely puts the document title at the top of the page in the header,
    this weird default behavior was resulting in a redundant "title" in the
    body content. Getting rid of this redundant level of headings
    effectively "exposes" one more level of heading from the stylesheet to
    which now makes the real "sections" more distinct.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171417 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1a090f1b239889d0b48e1413152e88ed07e6e09d
Author: Anshuman Dasgupta <adasgupt@codeaurora.org>
Date:   Wed Jan 2 21:25:57 2013 +0000

    Correct Hexagon DataLayout string. Fixes bug 14744.

    Patch by Krzysztof Parzyszek!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171415 91177308-0d34-0410-b5e6-96231b3b80d8

commit ee3d9f0be3d2080abb1cf76d7d327a044791b22a
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Wed Jan 2 21:12:03 2013 +0000

    Type safety attributes: add tests for enumerations (users are actually doing
    this, ensure we don't regress)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171412 91177308-0d34-0410-b5e6-96231b3b80d8

commit 55d3f944be7052a12c5e36528e84fc399cac5f75
Author: Sean Silva <silvas@purdue.edu>
Date:   Wed Jan 2 21:09:58 2013 +0000

    docs: Curb excessive table-of-contents depth.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171410 91177308-0d34-0410-b5e6-96231b3b80d8

commit a0c392d0ad5da5ecb52d5aa8bac770b76e23986e
Author: Sean Silva <silvas@purdue.edu>
Date:   Wed Jan 2 21:03:11 2013 +0000

    docs: Reorganize landing page.

    Language extensions are highly relevant to using clang as a compiler, so
    move LanguageExtensions up into `Using Clang as a Compiler` on the
    landing page.

    The other documents from the now-gone `Language Extensions and Specs`
    section on the landing page nicely fit hierarchically under
    LanguageExtensions.rst, so put them under LanguageExtensions.rst's
    toctree instead of on the landing page.

    Impetus from Jordan Rose.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171409 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6fad57501897a98bb36469ee9d9120af4c01b6e6
Author: Sean Silva <silvas@purdue.edu>
Date:   Wed Jan 2 20:22:14 2013 +0000

    docs: Fix spelling error.

    Spotted by Nikola Smiljanic.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171407 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1b46eade5cd4f4e146d74610b9e0b719e3ab2fc8
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Jan 2 19:10:22 2013 +0000

    Remove the anonymous namespace from lib/Sema/TreeTransform.h

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171402 91177308-0d34-0410-b5e6-96231b3b80d8

commit 060143e4ad7f80c4349d472c06a63a953650c2a9
Author: Manuel Klimek <klimek@google.com>
Date:   Wed Jan 2 18:33:23 2013 +0000

    Fixes multiple formatting bugs.

    Fixes:
    - incorrect handling of multiple consecutive preprocessor directives
    - crash when trying to right align the escpaed newline for a line that
      is longer than the column limit
    - using only ColumnLimit-1 columns when layouting with escaped newlines
      inside preprocessor directives

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171401 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5eda31ee30106c769b5829683761d42e6e50467f
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Jan 2 18:30:06 2013 +0000

    Don't allow line breaks after template parameters.

    This fixes llvm.org/PR14786.

    We will need to split there as a last resort, but that should be done
    consistently independent of whether the type is a template type or not.

    Before:
    template <typename T>
    aaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaaa<T>
                        ::aaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);

    After:
    template <typename T>
    aaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaa,
                        aaaaaaaaaaaaaaaaaaaaaaaaaa<T>::aaaaaaaaaa,
                        aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171400 91177308-0d34-0410-b5e6-96231b3b80d8

commit ba3d3074e8ef4c4c05ac062b073b2e082e6a0206
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Jan 2 17:21:36 2013 +0000

    Format */& as binary operator if followed by a unary operator.

    This fixes llvm.org/PR14687.
    Also fixes segfault for lines starting with * or &.

    Before:
    a *~b;
    *a = 1;  // <- this segfaulted

    After:
    a * ~b;
    *a = 1;  // no segfault :-)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171396 91177308-0d34-0410-b5e6-96231b3b80d8

commit a080a187fa7e538da3212c7d5e678e4b7ae03253
Author: Manuel Klimek <klimek@google.com>
Date:   Wed Jan 2 16:30:12 2013 +0000

    Fixes use of unescaped newlines when formatting preprocessor directives.

    This is the first step towards handling preprocessor directives. This
    patch only fixes the most pressing issue, namely correctly escaping
    newlines for tokens within a sequence of a preprocessor directive.

    The next step will be to fix incorrect format decisions on #define
    directives.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171393 91177308-0d34-0410-b5e6-96231b3b80d8

commit ef5b9c3d38a1f6d0921591cb2749e529a8cc4a2e
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Jan 2 15:46:59 2013 +0000

    Correctly format pointers and references in casts.

    This fixes llvm.org/PR14747.

    Before: Type *A = (Type * ) P;
    After:  Type *A = (Type *) P;

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171390 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1f0754bf761f7d4910348ce3aba867d34473bceb
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Jan 2 15:26:16 2013 +0000

    Understand unary operators after "return" and "case".

    This fixes llvm.org/PR14746.

    Before: return - 1;
    After:  return -1;

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171389 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9a64fb5690ba2b53c761def068e20ec64c584d96
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Jan 2 15:08:56 2013 +0000

    Prefer splitting after "template <...>" and fix indentation.

    This addresses llvm.org/PR14699

    Before:
    template <typename T>
        void looooooooooooooooooooooongFunction(int Param1, int Param2);
    template <typename T> void looooooooooooooooooooongFunction(
        int Paaaaaaaaaaaaaaaaaaaaram1, int Paaaaaaaaaaaaaaaaaaaaram2);

    After:
    template <typename T>
    void looooooooooooooooooooooongFunction(int Param1, int Param2);
    template <typename T>
    void looooooooooooooooooooongFunction(int Paaaaaaaaaaaaaaaaaaaaram1,
                                          int Paaaaaaaaaaaaaaaaaaaaram2);

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171388 91177308-0d34-0410-b5e6-96231b3b80d8

commit 723f0304eaaf1aed20aece9021a1bb8578477e75
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Jan 2 14:40:02 2013 +0000

    Prefer to break after operators over breaking after "(".

    Before:
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
        aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa && aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);

    After:
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa &&
                                     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171386 91177308-0d34-0410-b5e6-96231b3b80d8

commit 41f693525df3577f5b96a8bc3595d51e0fef8e55
Author: Sean Silva <silvas@purdue.edu>
Date:   Wed Jan 2 13:25:05 2013 +0000

    docs: `3.2` -> `3.3`

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171384 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8cbdac65c520ef8239d00ac3d6bc184baaecb678
Author: Sean Silva <silvas@purdue.edu>
Date:   Wed Jan 2 13:23:37 2013 +0000

    docs: Remove useless discussion.

    The linked Makefile is always up to date, so there's no point in having
    a rotting list of libraries.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171383 91177308-0d34-0410-b5e6-96231b3b80d8

commit 159cc9e6f6c9cdfe571a90d341c29b31bf1007fe
Author: Sean Silva <silvas@purdue.edu>
Date:   Wed Jan 2 13:07:47 2013 +0000

    docs: Fix up HTML links to proper reST links.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171382 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9cc4c39c8b783355ffcb5cf3cb6d7989a067eac1
Author: Sean Silva <silvas@purdue.edu>
Date:   Wed Jan 2 12:49:25 2013 +0000

    docs: clang-format is coming down the pike, mention it

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171380 91177308-0d34-0410-b5e6-96231b3b80d8

commit aaf575bb8f9e2bb6d584d065211393a5c8a6a028
Author: Sean Silva <silvas@purdue.edu>
Date:   Wed Jan 2 12:41:24 2013 +0000

    docs: Reorganize landing page.

    I clustered the docs by some intuitive/fuzzy notion of "similarity", and
    some reasonable categories seemed to materialize. I tried to give the
    clusters useful names, but you may want to take a look at the landing
    page (<http://clang.llvm.org/docs/> for the lazy) and share your
    thoughts.

    I have to say, this small change really gives the docs a whole new life!
    It makes our documentation quite a bit easier to navigate and scope out.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171379 91177308-0d34-0410-b5e6-96231b3b80d8

commit e30561d57e01fe04763259cbeb697aafaad38206
Author: Sean Silva <silvas@purdue.edu>
Date:   Wed Jan 2 12:40:31 2013 +0000

    remove random spaces

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171378 91177308-0d34-0410-b5e6-96231b3b80d8

commit 13b5e1168106b3934af31fcbcdaad344b805d2bf
Author: Sean Silva <silvas@purdue.edu>
Date:   Wed Jan 2 12:40:15 2013 +0000

    docs: Change title.

    The core of this page is a set of pros/cons for the different ways to
    use clang as a library. The title should reflect that the page helps you
    choose between alternatives.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171377 91177308-0d34-0410-b5e6-96231b3b80d8

commit 112f778c34eb0f9def766d94f6e25decd4d31b06
Author: Sean Silva <silvas@purdue.edu>
Date:   Wed Jan 2 12:39:50 2013 +0000

    docs: Decrease toctree depth on landing page.

    Having the table of contents there was making it hard to easily see at a
    glance all the docs we have.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171376 91177308-0d34-0410-b5e6-96231b3b80d8

commit f267ff7fef8889a259ff28b50ad4450dbb2a6c72
Author: Sean Silva <silvas@purdue.edu>
Date:   Wed Jan 2 12:39:02 2013 +0000

    docs: Sphinx conversion is "done"

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171375 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4e24f0f711e2c9fde79f19fa1c80deaab3f3b356
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Jan 2 12:01:23 2013 +0000

    s/CXX0X/CXX11/g, except for __GNU_EXPERIMENTAL_CXX0X__, and update a few nearby 'C++0x' comments.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171372 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3b844ba7d5be205a9b4f5f0b0d1b7978977f4b8c
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Wed Jan 2 11:45:17 2013 +0000

    Rewrite #includes for llvm/Foo.h to llvm/IR/Foo.h as appropriate to
    reflect the migration in r171366.

    Re-sort the #include lines to reflect the new paths.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171369 91177308-0d34-0410-b5e6-96231b3b80d8

commit 80ad52f327b532bded5c5b0ee38779d841c6cd35
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Jan 2 11:42:31 2013 +0000

    s/CPlusPlus0x/CPlusPlus11/g

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171367 91177308-0d34-0410-b5e6-96231b3b80d8

commit b99083e60325a28063fb588f458a871151971fdc
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Wed Jan 2 10:28:36 2013 +0000

    Re-sort #include lines using the llvm/utils/sort_includes.py script.

    Removes a duplicate #include as well as cleaning up some sort order
    regressions since I last ran the script over Clang.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171364 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5d334407e68e45e3e7baa0cd140d4fd75e7483d6
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Jan 2 08:57:10 2013 +0000

    Understand * and & in ternary expressions.

    Before: "int a = b ? *c : * d;"
    After: "int a = b ? *c : *d;

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171358 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4dc41def6129bcecd4d08e5ffafe021aa7b1fa2a
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Jan 2 08:44:14 2013 +0000

    Don't break after pointer or reference specifier.

    This fixes llvm.org/PR14717.
    Buggy format:
    TypeSpecDecl *
        TypeSpecDecl::Create(ASTContext &C, DeclContext *DC, SourceLocation L,
                             IdentifierInfo *II, Type *T) {

    Now changed to:
    TypeSpecDecl *TypeSpecDecl::Create(ASTContext &C, DeclContext *DC,
                                       SourceLocation L, IdentifierInfo *II,
                                       Type *T) {

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171357 91177308-0d34-0410-b5e6-96231b3b80d8

commit 62a833eaebb1867d9950767288debdfa34dd8561
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Wed Jan 2 04:19:07 2013 +0000

    Convert an if that never happens to an assert.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171354 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0b2270892387bfeaf61aeca0ddfe5fc97b7fa652
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Tue Jan 1 20:08:10 2013 +0000

    Simplify vector splat code. No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171350 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7ff1e45cddd078c56bd18a77268b9eebd4289013
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Jan 1 10:00:19 2013 +0000

    Update the copyright coredits -- Happy new year 2013!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171342 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6cc2a68c1ecb20054819a0b154ccfb7ff7498595
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Mon Dec 31 22:41:36 2012 +0000

    Silence some warnings and allow passing down some feature flags to the linker.
    Patch by Brad Smith.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171329 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8c6fe1467094a8650bb0d3b19f0e001be13362f7
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Mon Dec 31 02:59:14 2012 +0000

    Fix minor copy-pasto. No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171274 91177308-0d34-0410-b5e6-96231b3b80d8

commit d32b94d4d685522d1552d3d1345ae9616d7f27ab
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Mon Dec 31 00:28:03 2012 +0000

    Remove some remnants of OwningExprResult / OwningStmtResult.

    These got deleted late 2010 during the Actions/Sema unification.
    No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171269 91177308-0d34-0410-b5e6-96231b3b80d8

commit d11f4355a77ab1f8897847d9a458b9f2447d44a4
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Sun Dec 30 23:36:56 2012 +0000

    Simplify. No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171268 91177308-0d34-0410-b5e6-96231b3b80d8

commit 87b8127c2c65c8229e5b874c10a33f1ce13493ad
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Sun Dec 30 21:42:26 2012 +0000

    Don't warn on unused member functions that are extern because of a typedef.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171267 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1f94f2b484dc74e09fe31dd5ea9d3f715be6c133
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sun Dec 30 21:27:25 2012 +0000

    Formatter: parse and format inline namespaces like regular namespaces

    This changes formatting from:

    inline namespace X {
      class A {
      };
    }

    to:

    inline namespace X {
    class A {
    };
    }

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171266 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2d382d149b442b928fd3fb8edcc8d82ea9325872
Author: Will Dietz <wdietz2@illinois.edu>
Date:   Sun Dec 30 20:53:28 2012 +0000

    [ubsan] Recover by default, use -fno-sanitize-recover to disable.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171264 91177308-0d34-0410-b5e6-96231b3b80d8

commit de210a51dc26de6bee00a9ab172111c6f245a9fe
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Sun Dec 30 20:40:41 2012 +0000

    Use hasCLanguageLinkage when warning about non C return types.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171263 91177308-0d34-0410-b5e6-96231b3b80d8

commit aa7dbafc3539868ce271cb336444ec544260905a
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sun Dec 30 19:45:46 2012 +0000

    Comment lexing: replace manual comparison with StringRef::find_first_of

    This gives an about 1.8% improvement on Clang bootstrap with -Wdocumentation

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171262 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9f0c692c4db9012248c65fab6cb703f2ce444dfe
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Sun Dec 30 17:23:09 2012 +0000

    Don't get confused if a extern "C" builtin function is redeclared without
    the extern "C".

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171260 91177308-0d34-0410-b5e6-96231b3b80d8

commit 01ad954459c9bdd21e55290859643e334e9c70f4
Author: Bill Wendling <isanbard@gmail.com>
Date:   Sun Dec 30 10:32:17 2012 +0000

    Remove the Function::getFnAttributes method in favor of using the AttributeSet
    directly.

    This is in preparation for removing the use of the 'Attribute' class as a
    collection of attributes. That will shift to the AttributeSet class instead.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171254 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9f409549fa36f1a69042d4793321e82004dbfea9
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Sat Dec 29 23:43:00 2012 +0000

    Don't warn for undefined but used decls that are external because of a typedef.

    This fixes pr14736. It is fairly ugly, but I don't think we can do much better
    as we have to wait at least until the end of the typedef to know if the
    function will have external linkage or not.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171240 91177308-0d34-0410-b5e6-96231b3b80d8

commit 07cf58c96dc599d1c25dae4efd9445b6f5d3596c
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Sat Dec 29 20:13:03 2012 +0000

    ArrayRefize CXXTryStmt.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171239 91177308-0d34-0410-b5e6-96231b3b80d8

commit d36aa359e2f45cd22c7366a015ad94de08044dbb
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Sat Dec 29 20:03:39 2012 +0000

    ArrayRefize a CompoundStmt constructor.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171238 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5ba0c8e4077902f53e5f3e8271e470a1d8c1c074
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Sat Dec 29 13:00:47 2012 +0000

    Fix a typo that caused a few standard library implementations of sort to
    get the wrong answer. Wasn't caught by my implementation sadly...

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171222 91177308-0d34-0410-b5e6-96231b3b80d8

commit f1757659dd59a0e07e8607fca8d3f052e04d0aec
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Sat Dec 29 12:01:08 2012 +0000

    Try to re-structure the GCCVersion comparison routine to make it easier
    to read and tell that it is a SWO -- we now descend through the
    components and return a result at the first inequal component.

    Also comment it a bit better and make it a total ordering by sorting on
    the text of the suffix if necessary.

    None of this should really be a visible change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171219 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2464e96f0a73cd9757a6fdec4faf10d751d267fa
Author: Erik Verbruggen <erikjv@me.com>
Date:   Sat Dec 29 11:27:03 2012 +0000

    Removed duplicate logic.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171218 91177308-0d34-0410-b5e6-96231b3b80d8

commit 20af49a7c5bdb6cca5f4d6586106ef1ce8579311
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Sat Dec 29 01:09:46 2012 +0000

    Minor cleanup.

    DS parameter  has a default (null) value anyway, so there's no need for an
    if/else here.
    Patch by Nikola Smiljanić.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171210 91177308-0d34-0410-b5e6-96231b3b80d8

commit 78eeba8c7d53b6b2983c76b77b23b45b89ed939d
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Fri Dec 28 14:21:58 2012 +0000

    Reject overloading of two static extern C functions.

    This patch moves hasCLanguageLinkage to be VarDecl and FunctionDecl methods
    so that they can be used from SemaOverload.cpp and then fixes the logic
    in Sema::IsOverload.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171193 91177308-0d34-0410-b5e6-96231b3b80d8

commit ceb59d91b3a7def4297ec8468621805777741963
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Dec 28 13:25:52 2012 +0000

    Replace magic numbers in CheckICE with an enum.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171192 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9b403c555a294530305f40dfee859b73070de542
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Dec 28 12:53:55 2012 +0000

    PR14729: Fix typo in CheckICE for BinaryConditionalOperators.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171191 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0f46e64947bdd570a499732c4b459961627d8745
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Dec 28 12:23:24 2012 +0000

    Improve diagnostic wording for when an implicitly-deleted special member
    function is selected by overload resolution.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171190 91177308-0d34-0410-b5e6-96231b3b80d8

commit e8c0322701ce6ece0c24ab1391915676dd2eba1c
Author: Alexey Samsonov <samsonov@google.com>
Date:   Fri Dec 28 09:31:34 2012 +0000

    Add proper support for -fsanitize-blacklist= flag for TSan and MSan. Clang part.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171184 91177308-0d34-0410-b5e6-96231b3b80d8

commit ebf75d75e2e78cd50b1e8f29f297a47246a525c0
Author: David Blaikie <dblaikie@gmail.com>
Date:   Fri Dec 28 01:16:31 2012 +0000

    Change this to an IR test instead of an assembly test (as per comment in r171134).

    This makes the test not dependent on LLVM & won't vary/break based on LLVM
    codegen related changes. Appropriately testing at the Clang level what was
    fixed at the Clang level originally (in r124210).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171175 91177308-0d34-0410-b5e6-96231b3b80d8

commit f42755ea9f0d8792e55dba28f1e013bc8223a676
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Dec 27 15:26:27 2012 +0000

    Simplify typeid 'potentially evaluated' check.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171162 91177308-0d34-0410-b5e6-96231b3b80d8

commit e57e3d3783586934e26191cfc06ed5f3d966ea9c
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Thu Dec 27 03:56:20 2012 +0000

    Implement dcl.link paragraph 5.

    The language linkage of redeclarations must match. GCC was already reporting
    an error for this.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171139 91177308-0d34-0410-b5e6-96231b3b80d8

commit 66c0899c132fcc678ad72cd4fde621fb572adf69
Author: Eric Christopher <echristo@gmail.com>
Date:   Thu Dec 27 02:20:24 2012 +0000

    Update test for backend change.

    TODO: This test should be moved to the backend.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171134 91177308-0d34-0410-b5e6-96231b3b80d8

commit 137d6625eb61a41e776d89b39f3cb958d4a21140
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Wed Dec 26 04:38:44 2012 +0000

    Fix a regression from the previous commit.
    Template instantiation can set the canonical decl to used after subsequent
    decls have been chained, so we have to check that too.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171088 91177308-0d34-0410-b5e6-96231b3b80d8

commit 485458aa998c12e43bc9883b49060425d58b351d
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Wed Dec 26 00:13:29 2012 +0000

    Use the most recent redecl to decide if it is needed.

    This fixes pr14691, which I think is a regression from r168519.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171077 91177308-0d34-0410-b5e6-96231b3b80d8

commit a57b3b4fea1c962678972af8fc74e121ff8b296d
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Dec 25 21:56:27 2012 +0000

    Produce an actual error before attempting to attach notes to it when bailing out
    due to FORCE_CLANG_DIAGNOSTICS_CRASH=1. Also add a test for that env var.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171074 91177308-0d34-0410-b5e6-96231b3b80d8

commit 65d78312ce026092cb6e7b1d4d06f05e18d02aa0
Author: Erik Verbruggen <erikjv@me.com>
Date:   Tue Dec 25 14:51:39 2012 +0000

    Fix for PR12222.

    Changed getLocStart() and getLocEnd() to be required for Stmts, and make
    getSourceRange() optional. The default implementation for getSourceRange()
    is build the range by calling getLocStart() and getLocEnd().

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171067 91177308-0d34-0410-b5e6-96231b3b80d8

commit 38980086c0f791e8c23cc882574f18e5b4a87db6
Author: Guy Benyei <guy.benyei@intel.com>
Date:   Tue Dec 25 08:53:55 2012 +0000

    Add intel_ocl_bicc calling convention as a function attribute to clang. The calling convention is already implemented in LLVM.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171056 91177308-0d34-0410-b5e6-96231b3b80d8

commit 140aadf5b927ae294388c680a7db44e5de39578a
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Dec 25 07:31:49 2012 +0000

    Add 171048 back but invalidate the cache of all redeclarations when setting
    the body of a functions. The problem was that hasBody looks at the entire chain
    and causes problems to -fvisibility-inlines-hidden if the cache was not
    invalidated.

    Original message:

    Cache visibility of decls.

    This unifies the linkage and visibility caching. I first implemented this when
    working on pr13844, but the previous fixes removed the performance advantage of
    this one.
    This is still a step in the right direction for making linkage and visibility
    cheap to use.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171053 91177308-0d34-0410-b5e6-96231b3b80d8

commit eaf5ec43ec52f650a00254d1c20d51fb7671aead
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Dec 25 04:47:44 2012 +0000

    Revert r171048, "Cache visibility of decls."

    It broke stage2.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171050 91177308-0d34-0410-b5e6-96231b3b80d8

commit dfb316613a40d0efc033c7bd0a49da59c915fc63
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Dec 25 00:39:58 2012 +0000

    Cache visibility of decls.

    This unifies the linkage and visibility caching. I first implemented this when
    working on pr13844, but the previous fixes removed the performance advantage of
    this one.

    This is still a step in the right direction for making linkage and visibility
    cheap to use.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171048 91177308-0d34-0410-b5e6-96231b3b80d8

commit a73d3db5bf38ec2c3908187c24fec7219c4e46b5
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Mon Dec 24 21:45:14 2012 +0000

    Simplify RUN lines. No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171045 91177308-0d34-0410-b5e6-96231b3b80d8

commit d7610b8a744b2459ce2e66fea7d3a3d56ce23dba
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Dec 24 16:51:15 2012 +0000

    Let clang-format format itself.

    Apply all formatting changes that clang-format would apply to its own source
    code. All choices seem to improve readability (or at least not make it worse).
    No functional changes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171039 91177308-0d34-0410-b5e6-96231b3b80d8

commit a4974cf6ae618f04d5dd7fc45bc18bff41ca86bf
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Dec 24 16:43:00 2012 +0000

    Penalize tokens with a lower parenthesis level than the start of the line.

    This prevents formattings like this (assuming "parameter" doesn't fit the line):
      bool f = someFunction() && someFunctionWithParam(
          parameter) && someOtherFunction();

    Here, "parameter" - the start of line 2 - has a parenthesis level of 2, but
    there are subsequent tokens ("&&" and "someOtherFunction") with a lower level.
    This is bad for readability as "parameter" hides "someOtherFunction". With this
    patch, this changes to:
      bool f = someFunction() &&
               someFunctionWithParam(parameter) &&
               someOtherFunction();

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171038 91177308-0d34-0410-b5e6-96231b3b80d8

commit cf225b67e66d7a85773b7bf7907c0fef4374c31b
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Dec 24 13:43:52 2012 +0000

    Align RHS after assignments and return statements.

    This changes:
      int Result = a +  // force break
          b;
      return Result +  // force break
          5;

    To:
      int Result = a +  // force break
                   b;
      return Result +  // force break
             5;

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171032 91177308-0d34-0410-b5e6-96231b3b80d8

commit f6aef6a25bd47f2a7bfc24938e29b746fdccdc72
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Dec 24 10:56:04 2012 +0000

    Fix formatting over overloaded operators.

    This fixes llvm.org/pr14686.

    We used to add too many spaces for different versions of overloaded operator
    function declarations/definitions. This patch changes, e.g.

      operator *() {}
      operator >() {}
      operator () () {}

    to

      operator*() {}
      operator>() {}
      operator()() {}

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171028 91177308-0d34-0410-b5e6-96231b3b80d8

commit 34ef11be9d09ebf916ab02a521e37be6e9e102d3
Author: Evgeniy Stepanov <eugeni.stepanov@gmail.com>
Date:   Mon Dec 24 08:42:34 2012 +0000

    Support -fsanitize-memory-track-origins.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171020 91177308-0d34-0410-b5e6-96231b3b80d8

commit cc6456c07a64ba4db7ab972d2519ad985e328289
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Mon Dec 24 02:03:30 2012 +0000

    CGClass.cpp: [PR14335] Remove comma-separated \param, for now. [-Wdocumentation]

    /// \param argBegin,argEnd the arguments to evaluate and pass to the constructor

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171015 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2f82c783c95dc05cf1a54cdeab0249f0b217f9cc
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Mon Dec 24 01:49:04 2012 +0000

    clang/AST/VTTBuilder.h: Prune one description in three methods, VTTBuilder::AddVTablePointer(), VTTBuilder::LayoutSecondaryVirtualPointers(), and VTTBuilder::LayoutSecondaryVirtualPointers(). [-Wdocumentation]

    /// \param AddressPoints - If the vtable is a construction vtable, this has the address points for it.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171014 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0a6b708add17894e355201d1e4fb9110beb608e5
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Mon Dec 24 01:48:59 2012 +0000

    CGDecl.cpp: Prune three descriptions in two methods, CodeGenFunction::pushIrregularPartialArrayCleanup() and CodeGenFunction::pushRegularPartialArrayCleanup(). [-Wdocumentation]

    /// \param array - a value of type elementType*
    /// \param destructionKind - the kind of destruction required
    /// \param initializedElementCount - a value of type size_t* holding the number of successfully-constructed elements

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171013 91177308-0d34-0410-b5e6-96231b3b80d8

commit 14f9b5d62861d7c672f5aa7d7fc20cfa38bc92a8
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Mon Dec 24 01:48:53 2012 +0000

    DiagnosticRenderer.cpp: Prune one description in DiagnosticRenderer::emitMacroExpansions(). [-Wdocumentation]

    /// \param MacroSkipEnd The depth to stop skipping macro expansions.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171012 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0481e54c1a181049d306224161bf43d1976a47e9
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Mon Dec 24 01:48:48 2012 +0000

    CGValue.h: Update one \param to Addr in MakeBitfield(). [-Wdocumentation]

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171011 91177308-0d34-0410-b5e6-96231b3b80d8

commit fa6efa8a43ca74a40086c094cf3e68031d1f7c5a
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Mon Dec 24 01:23:48 2012 +0000

    test/Index/preamble_macro_template.cpp: Tweak for win32.

    Using the file immediately after "> file 2>&1" causes weird behavior on win32.
    For example, "foo > %t 2>&1; FileCheck --input-file=%t"

    Use "foo 2>&1 | tee %t" instead.

    Note, mixing stdout and stderr to the same handle might cause unexpected behavior, due to buffering.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171009 91177308-0d34-0410-b5e6-96231b3b80d8

commit e2c7acf58856fec94ed2b8089116e1ad80e3c30f
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Dec 24 00:13:23 2012 +0000

    Take operator precedence into account when splitting lines.

    With this patch, splitting after binary operators has a panelty corresponding
    to the operator's precedence. We used to ignore this and eagerly format like:

      if (aaaaaaaaaaaaaaaaaaaaaaaaa || bbbbbbbbbbbbbbbbbbbbbbbbb &&
          ccccccccccccccccccccccccc) { .. }

    With this patch, this becomes:

      if (aaaaaaaaaaaaaaaaaaaaaaaaa ||
          bbbbbbbbbbbbbbbbbbbbbbbbb && ccccccccccccccccccccccccc) { .. }

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171007 91177308-0d34-0410-b5e6-96231b3b80d8

commit 029e70cef6355da737f69e3a88b3a7b06ac9a07f
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sun Dec 23 18:39:54 2012 +0000

    Documentation: PTHInternals: use correct adornments and fix typos

    Fixes PR14014

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171005 91177308-0d34-0410-b5e6-96231b3b80d8

commit 184e1c4495298fd1c39dc1fbd82ff6d969c17ecf
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sun Dec 23 18:36:44 2012 +0000

    Documentation: fix a syntax error: empty line required after code-block::

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171004 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5c0de4c0fb3042db470d655bc3eba91de64423d9
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sun Dec 23 18:35:58 2012 +0000

    Documentation: add MemorySanitizer to the toctree

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171003 91177308-0d34-0410-b5e6-96231b3b80d8

commit debc018be39668db5cefb6418cd210aa716d6e7a
Author: Sean Silva <silvas@purdue.edu>
Date:   Sun Dec 23 01:19:35 2012 +0000

    docs: Convert ReleaseNotes to reST.

    This is the last of the "regular" documents to convert to reST, and so
    I'm declaring the initial clang reST conversion "done".

    However,

    - There are some documents in clang/www/ which probably should
      be migrated into clang/docs/, such as www/OpenProjects.html

      The primary thing blocking me from doing this right now is not knowing
      how to set up a redirect so that the old URL's continue to work.

    - LibASTMatchersReference.html is not reST. This page is auto-generated
      by clang/docs/tools/dump_ast_matchers.py from the source and has some
      collapse/expand logic that isn't expressible directly with Sphinx, so
      just converting it to reST is not really a good strategy.

      Manuel Klimek and I discussed this and the general agreed-upon
      direction is making that page data-driven so that it, say, pulls in an
      auto-generated blob of JSON which describes the matchers and builds up
      the "matcher reference" part of the page with a small amount of JS.

    - There are some rogue .txt files hanging around.

    Also, I dropped the little dragon logo at the top because Sphinx was
    warning about an external image reference (not sure why, but meh, I
    didn't want to fight it). If anything, we would want such a logo
    integrated into the site's overall theme, rather than hardcoded here.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170994 91177308-0d34-0410-b5e6-96231b3b80d8

commit 00d5a04dc0eaa0f067656033ab81fc352c5a991a
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Sun Dec 23 01:07:46 2012 +0000

    libFormat: Teach the *& usage heuristic that "return" starts a rhs too.

    "return a*b;" was formatted as "return a *b;" and is now formatted as "return a * b;".

    Fixes PR14687 partially.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170993 91177308-0d34-0410-b5e6-96231b3b80d8

commit e6bb76cde5488eca94e087e8929f29f3f3debfd3
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Sun Dec 23 00:40:46 2012 +0000

    Move a declaration closer to its use. No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170992 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9dbdfb8cc6796b36eba4bde9487397207eaa4670
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sat Dec 22 16:12:31 2012 +0000

    Clean out release notes for clang 3.3

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170987 91177308-0d34-0410-b5e6-96231b3b80d8

commit bb06b5000b9639a92e92c368ff3e5e5f8bb1e724
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Sat Dec 22 04:48:10 2012 +0000

    [libclang] Fix crash when code-completing a macro invocation that
    reached EOF and did not expand the argument into the source context.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170980 91177308-0d34-0410-b5e6-96231b3b80d8

commit ac504561cd888455a48bf85d21ada20a932ebd94
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Sat Dec 22 04:48:08 2012 +0000

    [libclang] Don't try to translate diagnostics from the precompiled preamble to the
    code-completion results, the SourceManager state may be slightly
    different when code-completing.

    And we don't even care for diagnostics when code-completing, anyway.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170979 91177308-0d34-0410-b5e6-96231b3b80d8

commit 772e71310bd06a30b81db981cb5d9cc20120ff83
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Sat Dec 22 04:48:07 2012 +0000

    [libclang] Check for the 'LIBCLANG_NOTHREADS' environment variable before creating
    a separate thread for code-completion.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170978 91177308-0d34-0410-b5e6-96231b3b80d8

commit 19e0d959171860e207205d31af223b27c925fbec
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sat Dec 22 02:46:14 2012 +0000

    PR14695: Fix assert from bad cast<>. Not every namespace is a NamespaceDecl; it might instead be a TranslationUnitDecl.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170976 91177308-0d34-0410-b5e6-96231b3b80d8

commit a734a0eab27678262bea07786b6ff30d5c7a6356
Author: Ted Kremenek <kremenek@apple.com>
Date:   Sat Dec 22 01:34:09 2012 +0000

    Add back -Wduplicate-enum which I mistakenly removed.

    This was removed with -Wunique-enum, which is still removed.  The
    corresponding thread on cfe-comments for that warning is here:

      http://lists.cs.uiuc.edu/pipermail/cfe-dev/2012-September/024224.html

    If we get specific user feedback for -Wduplicate-enum we can evaluate
    whether or not to keep it.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170974 91177308-0d34-0410-b5e6-96231b3b80d8

commit a05d2741c40c71b59cf6d2f8bbc5d433a5d0e6de
Author: Ted Kremenek <kremenek@apple.com>
Date:   Sat Dec 22 00:34:48 2012 +0000

    Fix typo: objc_no_direct_instance_variable_assignmemt => objc_no_direct_instance_variable_assignment.

    Fixes <rdar://problem/12927551>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170971 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4b6bb40b22877472d0b3d2961689f1f0ac23cc71
Author: Anna Zaks <ganna@apple.com>
Date:   Sat Dec 22 00:18:39 2012 +0000

    [analyzer] Convert SimpleStreamChecker to use the PointerEscape callback

    The new callback greatly simplifies the checker.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170969 91177308-0d34-0410-b5e6-96231b3b80d8

commit 335153679daf37c13a8c89266056b4be061e34e3
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Dec 21 23:03:27 2012 +0000

    Use a safe default width for template-diff'ing integral arguments, in
    case we can't find an exact width to use. Fixes crash in
    <rdar://problem/12456626>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170951 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9b3f02c3526e31fcb9c41afef143eae73643e257
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Dec 21 22:51:18 2012 +0000

    Adding to FormatTest.cpp test for a very long ObjC method
    declaration requiring formatting of wrap-arounds.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170946 91177308-0d34-0410-b5e6-96231b3b80d8

commit d3292c88ad6360823818b78d67875eceb3caedfb
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Dec 21 22:46:35 2012 +0000

    Tweak Sema::CheckLiteralKind() to also include block literals

    This simplifies some diagnostic logic in checkUnsafeAssignLiteral(),
    hopefully making it less error prone.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170945 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0a19ee8334aebdf73383f165e26477cd146e1178
Author: Matt Beaumont-Gay <matthewbg@google.com>
Date:   Fri Dec 21 22:43:20 2012 +0000

    Insulate this test from the whims of the random number generator.

    Our internal buildbot just failed because the tempfile happened to be named
    'nodefaultlib-lcGA7k.o', which contains the substring '-lc'.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170941 91177308-0d34-0410-b5e6-96231b3b80d8

commit 67a0f6ef5ae38e1abddb278544e18aede6ea7833
Author: Chad Rosier <mcrosier@apple.com>
Date:   Fri Dec 21 22:38:37 2012 +0000

    Add comments back that were accidentally removed in r170933.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170938 91177308-0d34-0410-b5e6-96231b3b80d8

commit a193e3b1e675f2d149802dc7e6f061bf3eb1ab27
Author: Chad Rosier <mcrosier@apple.com>
Date:   Fri Dec 21 22:33:20 2012 +0000

    Fix a warning due to an extraneous comma.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170935 91177308-0d34-0410-b5e6-96231b3b80d8

commit 22aa6901b8134c51771245255b32cd7d026e7913
Author: Chad Rosier <mcrosier@apple.com>
Date:   Fri Dec 21 22:24:43 2012 +0000

    Remove unused arguments and rename to conform to coding standards.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170933 91177308-0d34-0410-b5e6-96231b3b80d8

commit f530ff76de3b270f2287d3555d93b5d270643eeb
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Dec 21 21:59:39 2012 +0000

    Change checkUnsafeAssignLiteral() to use the new Sema::CheckLiteralKind().

    Along the way, fix a bug in CheckLiteralKind(), previously in diagnoseObjCLiteralComparison, where we didn't ignore parentheses
    in boxed expressions for purpose of classification.

    In other words, both @42 and @(42) should be classified as numeric
    literals.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170931 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3ee069bddb538ebafff2068e99136cc526fb9fdd
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Dec 21 21:59:36 2012 +0000

    Hoist logic for classifying Objective-C literals into Sema (proper) for use with other diagnostics.

    No immediate (intended) functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170930 91177308-0d34-0410-b5e6-96231b3b80d8

commit 96e12a264f9268a5fb73020a5d318474f0bfe429
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Dec 21 21:52:01 2012 +0000

    Switch FrontendOptions to using an initializer list rather than initializing
    the values in the constructor.  The constructor implementation is trivial
    beyond the value initialisations. Patch by Saleem Abdulrasool!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170929 91177308-0d34-0410-b5e6-96231b3b80d8

commit d4ae6535a667d515afc0af3e67ca287548aba985
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Dec 21 21:43:05 2012 +0000

    Fixes couple of friend declaration -ast-print bug
    found by running -ast-print on all-std-headers.cpp
    which caused it to go into infinite loop. Now
    -ast-print prints all declarations found in
    all-std-headers.cpp.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170928 91177308-0d34-0410-b5e6-96231b3b80d8

commit ccbb4027d9fec8247b7af08f9134515da8e470a4
Author: Chad Rosier <mcrosier@apple.com>
Date:   Fri Dec 21 21:27:13 2012 +0000

    Indent.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170925 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9cab1c9281e7477f66b8217077baef41c1df5558
Author: Chad Rosier <mcrosier@apple.com>
Date:   Fri Dec 21 21:22:20 2012 +0000

    Remove unnecessary checks.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170924 91177308-0d34-0410-b5e6-96231b3b80d8

commit e63a603c797b1a83c844923fb17dc31b4d96a031
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Dec 21 19:45:33 2012 +0000

    Use descriptive enum instead of raw integers for checkUnsafeAssignLiteral().

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170920 91177308-0d34-0410-b5e6-96231b3b80d8

commit b29b30f9631937916786dc2e06c2842acf9c1500
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Dec 21 19:45:30 2012 +0000

    Sink call to checkUnsafeAssignLiteral() into checkUnsafeAssignObject().

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170919 91177308-0d34-0410-b5e6-96231b3b80d8

commit eb4c01ec1743caa49e68a1afa12744e57522ec9e
Author: Chad Rosier <mcrosier@apple.com>
Date:   Fri Dec 21 19:43:33 2012 +0000

    Fix indent.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170918 91177308-0d34-0410-b5e6-96231b3b80d8

commit 30f102b2782d08eb3ea61dd20a2ff7326a15fe1e
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Dec 21 18:26:48 2012 +0000

    [analyzer] Don't perform an expensive assertion in release builds.

    Unfortunately, we don't seem to have a standard way to do this. I'm using
    the __OPTIMIZE__ GNU extension that Clang also defines, but that doesn't
    help MSVC. I suppose we could remove the check entirely, but it's useful
    for developing new constraint managers.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170915 91177308-0d34-0410-b5e6-96231b3b80d8

commit b23ae0c5104a4fec4c2ff603143fe142ec409249
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Fri Dec 21 18:21:56 2012 +0000

    format: Handle #import as include directive too.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170914 91177308-0d34-0410-b5e6-96231b3b80d8

commit d29b45580a5ffa5318cbe69b619d4d36ff7f8c78
Author: Quentin Colombet <qcolombet@apple.com>
Date:   Fri Dec 21 18:00:32 2012 +0000

    Add a testcase for ARM cortex-r5 subtarget

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170912 91177308-0d34-0410-b5e6-96231b3b80d8

commit cd1a32b1f02016fe5ebb1142aadccc54bbdf5d89
Author: Daniel Jasper <djasper@google.com>
Date:   Fri Dec 21 17:58:39 2012 +0000

    clang-format: No spaces around directory specifiers

    This fixes PR14683. We used to format like this:
      #include <a / b>

    And this patch changes this to:
      #include <a/b>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170910 91177308-0d34-0410-b5e6-96231b3b80d8

commit ab13751d76be4473e9317d3885cb351b79f18492
Author: Quentin Colombet <qcolombet@apple.com>
Date:   Fri Dec 21 17:57:47 2012 +0000

    Add ARM cortex-r5 subtarget as available mcpu

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170909 91177308-0d34-0410-b5e6-96231b3b80d8

commit 08165d8c9e954574408de59988b3331be58c3b36
Author: Anna Zaks <ganna@apple.com>
Date:   Fri Dec 21 17:27:04 2012 +0000

    [analyzer] Fix typos.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170907 91177308-0d34-0410-b5e6-96231b3b80d8

commit bd80231672a7418aa1a99d3dbbe1774205c88f74
Author: Anna Zaks <ganna@apple.com>
Date:   Fri Dec 21 17:27:01 2012 +0000

    [analyzer] Re-apply r170826 and make the dumping of the GallGraph
    deterministic.

    Commit message for r170826:

    [analyzer] Traverse the Call Graph in topological order.

    Modify the call graph by removing the parentless nodes. Instead all
    nodes are children of root to ensure they are all reachable. Remove the
    tracking of nodes that are "top level" or global. This information is
    not used and can be obtained from the Decls stored inside
    CallGraphNodes.

    Instead of existing ordering hacks, analyze the functions in topological
    order over the Call Graph.

    Together with the addition of devirtualizable ObjC message sends and
    blocks to the call graph, this gives around 6% performance improvement
    on several large ObjC benchmarks.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170906 91177308-0d34-0410-b5e6-96231b3b80d8

commit 95f38f614c8005b5cc398021e1f9e28ed233d533
Author: Roman Divacky <rdivacky@freebsd.org>
Date:   Fri Dec 21 17:23:52 2012 +0000

    Sort the includes according to the coding standard.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170905 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5f04ef52837c82e99baac4e6041526f829c4e04b
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Dec 21 17:14:23 2012 +0000

    Fix typo.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170904 91177308-0d34-0410-b5e6-96231b3b80d8

commit 87aa2fbc75a897e7c4a4082374aaba3f50db6f0f
Author: Roman Divacky <rdivacky@freebsd.org>
Date:   Fri Dec 21 17:07:08 2012 +0000

    Remove duplicate includes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170903 91177308-0d34-0410-b5e6-96231b3b80d8

commit a324a0e673cf486de281c84af3f09ba58627bbd2
Author: Daniel Jasper <djasper@google.com>
Date:   Fri Dec 21 14:37:20 2012 +0000

    Basic support for formatting for-loops.

    We used to not really format them. Now we do:

      for (MachineBasicBlock::succ_iterator SI = BB->succ_begin(),
                                            SE = BB->succ_end();
           SI != SE; ++SI) {

    This is just one example and I am sure we still mess some of them up, but it
    is a step forward.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170899 91177308-0d34-0410-b5e6-96231b3b80d8

commit bb6a7e047aefd9ba4bab3ce1dcbb7ce2e2895b07
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Fri Dec 21 13:22:55 2012 +0000

    Update comments.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170890 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9c10d6157164ce3b6af1deef39d661c579e0afc3
Author: Daniel Jasper <djasper@google.com>
Date:   Fri Dec 21 12:10:20 2012 +0000

    Temporary fix of tests to make buildbots happy.

    Permanent solution coming up after checking back with Fariborz/Douglas.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170887 91177308-0d34-0410-b5e6-96231b3b80d8

commit 583acae858a3b9e0ae5077756d60cd52e55bff1e
Author: Evgeniy Stepanov <eugeni.stepanov@gmail.com>
Date:   Fri Dec 21 10:53:20 2012 +0000

    Slight rewording of -fsanitize=memory docs.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170880 91177308-0d34-0410-b5e6-96231b3b80d8

commit cc603e99b5ebdd437616ca8bf66711fe79ae839a
Author: Evgeniy Stepanov <eugeni.stepanov@gmail.com>
Date:   Fri Dec 21 10:50:00 2012 +0000

    User manual chapter on MemorySanitizer.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170879 91177308-0d34-0410-b5e6-96231b3b80d8

commit 675d2e34889a1b7e9d4cc659a4cdc33ce0f5b152
Author: Daniel Jasper <djasper@google.com>
Date:   Fri Dec 21 10:20:02 2012 +0000

    Use OperatorPrecedence.h in clang-format

    No indented functional changes other than handling more operators
    correctly.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170875 91177308-0d34-0410-b5e6-96231b3b80d8

commit 98e6b4a65fcc81b1be11f09837e0fc8fac85897b
Author: Daniel Jasper <djasper@google.com>
Date:   Fri Dec 21 09:41:31 2012 +0000

    Formatting fixes for PR14680

    Also, some (automated) formatting fixes and slight cleanups.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170873 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7f5e76b783159694b27cb9933afba387a63cbd41
Author: Dmitry Vyukov <dvyukov@google.com>
Date:   Fri Dec 21 08:21:25 2012 +0000

    Remove the working that ThreadSanitizer is *experimental*.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170868 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5cf1589db395371975bd3315b9126eb5c9be6701
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Dec 21 08:13:35 2012 +0000

    Fix regression in r170489: when instantiating a direct initializer which is a
    CXXScalarValueInitExpr (or an ImplicitValueInitExpr), strip it back down to an
    empty pair of parentheses so that the initialization code can tell that we're
    performing value-initialization.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170867 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9d0840141a0922e2d8b1d322f21ef51803ede23d
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Dec 21 08:04:28 2012 +0000

    Extend checkUnsafeAssigns() to also handle assigning an object literal to a weak reference.

    Thanks to Jordan Rose and John McCall for their sage code review.

    Fixes <rdar://problem/12569201>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170864 91177308-0d34-0410-b5e6-96231b3b80d8

commit b1ea510de0ef4ebfbbe8fa7668ab1635410fc080
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Dec 21 08:04:20 2012 +0000

    Refactor checkUnsafeAssigns() to avoid code duplication with while loop.

    This is just a minor bit of refactoring, but it is nice cleanup for
    the subsequent patch that adds warning support for assigning literals
    to weak variables.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170863 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0dbe2fb7758fe64568206b5bc0f1c5b106b9c806
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Dec 21 03:17:28 2012 +0000

    Reinstate r170806, reverted in r170835, with a fix use i1 instead of i8 for a value-initialized bool!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170837 91177308-0d34-0410-b5e6-96231b3b80d8

commit 98ab776a8a9e19c7bf1bd04d610ec2b2c37aef7a
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Dec 21 02:50:38 2012 +0000

    Revert r170806, "Fix some bugs where we would sometimes use 0, not -1, when emitting a null constant of type pointer-to-data-member."

    It broke stage2.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170835 91177308-0d34-0410-b5e6-96231b3b80d8

commit f1e5b155088203f88a8172aa61c1d84185966bf0
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Dec 21 01:51:12 2012 +0000

    [libclang] Follow-up to r170824, provide the correct number of arguments for
    a not-fully-formed macro invocation during code-completion.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170833 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1655bcd052a67a3050fc55df8ecce57342352e68
Author: Anna Zaks <ganna@apple.com>
Date:   Fri Dec 21 01:50:14 2012 +0000

    [analyzer] Address Jordan's nitpicks as per code review of r170625.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170832 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6d42f4d8b8a176336a8c49ec3cf5f7fb6545ccfd
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Fri Dec 21 01:30:23 2012 +0000

    Revert r170826. The output of

    ./bin/clang -cc1 -internal-isystem /home/espindola/llvm/build/lib/clang/3.3/include/ -analyze -analyzer-checker=debug.DumpCallGraph /home/espindola/llvm/clang/test/Analysis/debug-CallGraph.c -fblocks

    changes in each run.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170829 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0db661e67f613f49d047cdf53da29b9741234ad8
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Fri Dec 21 01:21:33 2012 +0000

    Don't eagerly emit a global static merged with a local extern.

    When we are visiting the extern declaration of 'i' in

    static int i = 99;
    int foo() {
      extern int i;
      return i;
    }

    We should not try to handle it as if it was an function static. That is, we
    must consider the written storage class.

    Fixing this then exposes that the assert in EmitGlobalVarDeclLValue and the
    if leading to its call are not completely accurate. They were passing before
    because the second decl was marked as having external storage. I changed them
    to check the linkage, which I find easier to understand.

    Last but not least, there is something strange going on with cuda and opencl.
    My guess is that the linkage computation for these languages needs to be
    audited, but I didn't want to change that in this patch so I just updated
    the storage classes to keep the current behavior.

    Thanks to Reed Kotler for reporting this.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170827 91177308-0d34-0410-b5e6-96231b3b80d8

commit e34e1939ad67576293b2b205b2169488cc6b3b14
Author: Anna Zaks <ganna@apple.com>
Date:   Fri Dec 21 01:19:22 2012 +0000

    [analyzer] Traverse the Call Graph in topological order.

    Modify the call graph by removing the parentless nodes. Instead all
    nodes are children of root to ensure they are all reachable. Remove the
    tracking of nodes that are "top level" or global. This information is
    not used and can be obtained from the Decls stored inside
    CallGraphNodes.

    Instead of existing ordering hacks, analyze the functions in topological
    order over the Call Graph.

    Together with the addition of devirtualizable ObjC message sends and
    blocks to the call graph, this gives around 6% performance improvement
    on several large ObjC benchmarks.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170826 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4f858dfd42c89b67200dac0afc228a0baa323691
Author: Anna Zaks <ganna@apple.com>
Date:   Fri Dec 21 01:19:15 2012 +0000

    [analyzer] Add blocks and ObjC messages to the call graph.

    This paves the road for constructing a better function dependency graph.
    If we analyze a function before the functions it calls and inlines,
    there is more opportunity for optimization.

    Note, we add call edges to the called methods that correspond to
    function definitions (declarations with bodies).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170825 91177308-0d34-0410-b5e6-96231b3b80d8

commit cd0fd18909e3b89ed6f2cc1118809003db64e67a
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Dec 21 01:17:20 2012 +0000

    [libclang] Make sure we can code-complete inside a macro argument even though
    the macro invocation is not fully formed.

    rdar://11290992

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170824 91177308-0d34-0410-b5e6-96231b3b80d8

commit f50b8f0a8ea2a6537c112390bc4054eba390326b
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Dec 21 00:21:02 2012 +0000

    EditedSource.cpp: Appease msvc, to add <cctype>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170817 91177308-0d34-0410-b5e6-96231b3b80d8

commit f3a1ff32d8d41a849504430f0431297651ac4d0d
Author: Sean Silva <silvas@purdue.edu>
Date:   Fri Dec 21 00:17:02 2012 +0000

    docs: Convert ObjectiveCLiterals to reST.

    Sphinx's syntax highlighter doesn't recognize the new literals, so the
    syntax highlighting is pretty pathetic.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170814 91177308-0d34-0410-b5e6-96231b3b80d8

commit 72958b3b9483a3762a9cc797ad342c7e2e195ebb
Author: Sean Silva <silvas@purdue.edu>
Date:   Fri Dec 21 00:16:58 2012 +0000

    docs: fix Sphinx toctree warning.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170813 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0a7d2feb6536d4a82e77a77cafa63172983f36aa
Author: Sean Silva <silvas@purdue.edu>
Date:   Fri Dec 21 00:16:53 2012 +0000

    docs: Convert DriverInternals to reST.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170812 91177308-0d34-0410-b5e6-96231b3b80d8

commit d8af340e27a1ecabec925a1090a3e4984688b5b1
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Dec 20 23:49:09 2012 +0000

    Fix some bugs where we would sometimes use 0, not -1, when emitting a null constant of type pointer-to-data-member.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170806 91177308-0d34-0410-b5e6-96231b3b80d8

commit bf85d9d518e5120fb976e824ff681c21947e006d
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Dec 20 23:36:52 2012 +0000

    Revert r170801, which breaks the mingw build.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170804 91177308-0d34-0410-b5e6-96231b3b80d8

commit d672bae5a3074e63e5e5c5d98f5f9fbe4fe9661c
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Dec 20 23:11:42 2012 +0000

    Eliminate errors when running the 'PrintFunctionNames' plugin, from Li Qun!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170801 91177308-0d34-0410-b5e6-96231b3b80d8

commit 904a326e6297ad75aab353c1957fb874b36260c9
Author: Ted Kremenek <kremenek@apple.com>
Date:   Thu Dec 20 22:31:27 2012 +0000

    Revert "Warn if a __weak variable is initialized with an Objective-C object literal."

    Per code feedback, I want to see if there is a more general way to do this.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170777 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5964df144c21c548b9963f2ca35e0fa852b2f6f7
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Thu Dec 20 21:05:53 2012 +0000

    Use some heuristics so that when a fixit removes a source range, we try
    to also remove a trailing space if possible.

    For example, removing '__bridge' from:

    i = (__bridge I*)p;

    should result in:

    i = (I*)p;

    not:

    i = ( I*)p;

    rdar://11314821

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170764 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7c441069a41e164498047aaed542d0d64bc11962
Author: Ted Kremenek <kremenek@apple.com>
Date:   Thu Dec 20 20:55:03 2012 +0000

    Warn if a __weak variable is initialized with an Objective-C object literal.

    Such variables may immediately become nil or may have unpredictable
    behavior.

    Fixes <rdar://problem/12569201>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170763 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7b00b84752b7f3cbd4079f88ddb359170b7073c1
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Thu Dec 20 20:51:59 2012 +0000

    Documentation: use monospaced font in BlockLanguageSpec, and fix a link to this
    document

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170762 91177308-0d34-0410-b5e6-96231b3b80d8

commit 16f90bfe53ed637156c315cbbeddcf2d91266d67
Author: Chad Rosier <mcrosier@apple.com>
Date:   Thu Dec 20 20:37:53 2012 +0000

    Use the MaybeParseMicrosoftAttributes function.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170761 91177308-0d34-0410-b5e6-96231b3b80d8

commit 65548b305a29748d8365b10040a9681ba9423c78
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Dec 20 20:31:38 2012 +0000

    Remove namespace qualifier that lead to build breakage.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170759 91177308-0d34-0410-b5e6-96231b3b80d8

commit 909610266e67ce40a9d8a4df8be81b3de999b120
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Dec 20 20:25:19 2012 +0000

    Move operator precedence calculation to new header

    Thereby, it can be reused by clang-format and others.
    Review: http://llvm-reviews.chandlerc.com/D229

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170757 91177308-0d34-0410-b5e6-96231b3b80d8

commit 154120cde4f56ed04261bab302fdbbed1a7f080b
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Dec 20 19:54:13 2012 +0000

    Add objective-C style formatting to clang format and
    use it to format xml declaration tags.
    // rdar://12378714

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170727 91177308-0d34-0410-b5e6-96231b3b80d8

commit bbf4d53343c2bbd082b7c1488f34650a7d07ae3b
Author: Ted Kremenek <kremenek@apple.com>
Date:   Thu Dec 20 19:36:22 2012 +0000

    Update RetainCountChecker to understand attribute ns_returns_autoreleased.

    Fixes <rdar://problem/12887356>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170724 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5810f5c82788c79ca250cddd302c85300a3258ad
Author: Ted Kremenek <kremenek@apple.com>
Date:   Thu Dec 20 19:36:20 2012 +0000

    Attribute 'cf_returns_autoreleased' doesn't really exist.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170723 91177308-0d34-0410-b5e6-96231b3b80d8

commit 72390b39c545426023ec104afe8706395d732bad
Author: Bill Wendling <isanbard@gmail.com>
Date:   Thu Dec 20 19:27:06 2012 +0000

    Rename llvm::Attributes to llvm::Attribute.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170722 91177308-0d34-0410-b5e6-96231b3b80d8

commit ad017fa7a4df7389d245d02a49b3c79ed70bedb9
Author: Bill Wendling <isanbard@gmail.com>
Date:   Thu Dec 20 19:22:21 2012 +0000

    Revert r170500. It over-zealously converted *ALL* things named Attributes, which is wrong here.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170721 91177308-0d34-0410-b5e6-96231b3b80d8

commit a367a0236211dd2c81a363c4b47b40e0ac6a8797
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Thu Dec 20 16:15:07 2012 +0000

    Fix Generic_GCC::GCCVersion::operator<

    Without this patch comparing two equal versions without patch numbers (4.7 for
    example) will result in A < B and B < A.

    Patch by Simon Atanasyan.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170705 91177308-0d34-0410-b5e6-96231b3b80d8

commit aee388b93e2b17a1047fe40482238562f47fe365
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Dec 20 13:30:10 2012 +0000

    c-index-test/Makefile: Add clangFormat to USEDLIBS for libclang-unavailable hosts.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170693 91177308-0d34-0410-b5e6-96231b3b80d8

commit 02db365820a5ee4b9a6d41c3793d0e4e8366fea7
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Dec 20 13:30:05 2012 +0000

    c-index-test/Makefile: Reformat.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170692 91177308-0d34-0410-b5e6-96231b3b80d8

commit c939453846395abc860cdb0239784daf4df4fb54
Author: Alexander Kornienko <alexfh@google.com>
Date:   Thu Dec 20 12:23:54 2012 +0000

    Minor coding style issue: NULL -> 0

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170688 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5c70ef4ae43dbfd501bedb8e8952fc3881527110
Author: Evgeniy Stepanov <eugeni.stepanov@gmail.com>
Date:   Thu Dec 20 12:03:13 2012 +0000

    Add __has_feature(memory_sanitizer).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170686 91177308-0d34-0410-b5e6-96231b3b80d8

commit ad7bb3601d57e7d41c199a4367490b705f669e67
Author: Alexander Kornienko <alexfh@google.com>
Date:   Thu Dec 20 11:08:38 2012 +0000

    ASTDumper coding style fixes.
    http://llvm-reviews.chandlerc.com/D226

    Patch by Philip Craig!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170684 91177308-0d34-0410-b5e6-96231b3b80d8

commit 30fd6714a1c7525ac7aaa633f76eba4adb03d2c4
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Dec 20 11:08:13 2012 +0000

    clang/test/Driver/warning-options.cpp: Appease MSYS bash.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170683 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6c3e1805b92b644cc251d563a43c4ffd8d5c421f
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Dec 20 03:30:30 2012 +0000

    clang/test/Misc/ast-dump-decl.c: Add triple. __thread is not supported on all targets.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170645 91177308-0d34-0410-b5e6-96231b3b80d8

commit 76f98b646ef1a45fcde58d5f311704197b84a152
Author: Michael Gottesman <mgottesman@apple.com>
Date:   Thu Dec 20 03:23:52 2012 +0000

    Updated link in LanguageExtensions.rst to point to BlockLanguageSpec.rst instead of BlockLanguageSpec.txt.

    Thanks to Jean-Daniel Dupas for comments!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170644 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3714e75eb8aa6108055ac2e718f5104bab8338d4
Author: Michael Gottesman <mgottesman@apple.com>
Date:   Thu Dec 20 03:23:49 2012 +0000

    Changed UTF-8 emdashes to --- ala Dmitri Gribenko's comments.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170643 91177308-0d34-0410-b5e6-96231b3b80d8

commit a89479081e0ee1589736d987771de609c5505832
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Dec 20 02:47:01 2012 +0000

    Fix another uninitialized bool member bug found by -fsanitize=bool. This one
    appears to currently be benign (we happen to test the flags in the right
    order, so we never depend on the uninitialized value).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170640 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3624e9e55d98507863d0731a0942cd874f2a1574
Author: John McCall <rjmccall@apple.com>
Date:   Thu Dec 20 02:45:14 2012 +0000

    Robustify the @encode code and add support for _Atomic.

    Fixes PR14628.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170639 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5b9268f26ac53a74d2c504279fe577d988d5615d
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Dec 20 02:22:15 2012 +0000

    Fix code that attempted to produce a diagnostic with one DiagnosticEngine, then
    produce a note for that diagnostic either with a different DiagnosticEngine or
    after calling DiagnosticEngine::Reset(). That didn't make any sense, and did the
    wrong thing if the original diagnostic was suppressed.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170636 91177308-0d34-0410-b5e6-96231b3b80d8

commit 88d158c631c4c08831855f601990f36f2234f975
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Dec 20 02:20:09 2012 +0000

    Provide couple of DeclPrint tests for my last patch.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170635 91177308-0d34-0410-b5e6-96231b3b80d8

commit d538ed9b2a617239d5bd56357663de62f6f9224c
Author: Alexander Kornienko <alexfh@google.com>
Date:   Thu Dec 20 02:09:13 2012 +0000

    Implement AST dumper for Decls.
    http://llvm-reviews.chandlerc.com/D52

    Patch by Philip Craig!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170634 91177308-0d34-0410-b5e6-96231b3b80d8

commit bf53dfac8195835028bd6347433f7dbebcc29fc1
Author: Anna Zaks <ganna@apple.com>
Date:   Thu Dec 20 00:38:25 2012 +0000

    [analyzer] Add the pointer escaped callback.

    Instead of using several callbacks to identify the pointer escape event,
    checkers now can register for the checkPointerEscape.

    Converted the Malloc checker to use the new callback.
    SimpleStreamChecker will be converted next.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170625 91177308-0d34-0410-b5e6-96231b3b80d8

commit b29740ae158f9421096a28bcc7ad6af7171b1874
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Dec 19 23:55:44 2012 +0000

    [preprocessor] When "merging" macro argument tokens into one SLocEntry chunk,
    make sure they came from the same kind of FileIDs.

    Thanks to Abramo Bagnara for providing the test case.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170616 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6b248dbd6347d73bb2c44103a4f3b2a521050107
Author: Chad Rosier <mcrosier@apple.com>
Date:   Wed Dec 19 23:47:16 2012 +0000

    Typo.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170613 91177308-0d34-0410-b5e6-96231b3b80d8

commit d7dfd98f07f6af9416b342825217022f2e970a66
Author: Chad Rosier <mcrosier@apple.com>
Date:   Wed Dec 19 23:41:50 2012 +0000

    [driver] Have -isysroot warn on nonexistent paths.
    rdar://12282267

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170611 91177308-0d34-0410-b5e6-96231b3b80d8

commit 40902d817e5a73850045d8a0c9795bc5047ee000
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Dec 19 23:36:00 2012 +0000

    Audit DeclPrinter with -ast-dump on Cocoa.h and
    fix any bad objectiveC syntax coming out of
    DeclPrinter. This is on going. Also, introduce a new
    PrintPolicy and use it as needed when declaration tag
    is to be produced via DeclPrinter.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170606 91177308-0d34-0410-b5e6-96231b3b80d8

commit ca40f30a20d0329900fa3d1e4b3252cece86ccc0
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Dec 19 22:21:18 2012 +0000

    [PCH/Modules] In ASTReader::completeVisibleDeclsMap, make sure to visit all
    modules when getting the decls for a namespace or translation unit.

    Otherwise the code-completion results will not be complete.

    rdar://12889089

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170596 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0bd9e727b0cb63275839a1534006ba73510271dc
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Wed Dec 19 22:06:59 2012 +0000

    Documentation: UsersManual.rst: some cleanups after semi-automatic conversion

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170590 91177308-0d34-0410-b5e6-96231b3b80d8

commit 277076a4cdf684e6ea102197a635d4a352998018
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Dec 19 18:58:55 2012 +0000

    objective-C: Don't warn of unimplemented property of protocols in
    category, when those properties will be implemented in category's
    primary class or one of its super classes. // rdar://12568064

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170573 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0e704ed7a54759fa3e07a050a283ba093fe7c8ac
Author: Michael Gottesman <mgottesman@apple.com>
Date:   Wed Dec 19 18:42:42 2012 +0000

    Forgot to remove trailing whitespace when I converted the BlockLanguageSpec.txt => BlockLanguageSpec.rst. It has been eliminated.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170572 91177308-0d34-0410-b5e6-96231b3b80d8

commit 822dd4c7aceb469ae6d05991c1bd9f3dbf2538d9
Author: Michael Gottesman <mgottesman@apple.com>
Date:   Wed Dec 19 18:41:09 2012 +0000

    Converted BlockLanguageSpec.txt => BlockLanguageSpec.rst.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170571 91177308-0d34-0410-b5e6-96231b3b80d8

commit 89d852ac445cd7f6a10734c0eb5949ea1eac6ab5
Author: Ted Kremenek <kremenek@apple.com>
Date:   Wed Dec 19 18:30:38 2012 +0000

    Change test to dump Filecheck output to an intermediate file.  This makes it easier to update this test.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170570 91177308-0d34-0410-b5e6-96231b3b80d8

commit ca57ccdf480fc002202c74011bdf14687f164a5a
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Wed Dec 19 17:34:55 2012 +0000

    Fix PR14591: Windows newlines in doxygen comments cause failed assertion in
    TextDiagnostic

    Patch by Janusz Chorko.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170566 91177308-0d34-0410-b5e6-96231b3b80d8

commit d7ebf3eead93232af7c7f0d30385a1f4c890f904
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Wed Dec 19 17:29:30 2012 +0000

    Add a missing 'else'.  Found by grep '} if'

    No testcase because this did not affect correctness: a declaration can only be
    ClassTemplateDecl or a FunctionTemplateDecl, not both.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170565 91177308-0d34-0410-b5e6-96231b3b80d8

commit eb34db715f1130ad7793fc0cc50c8191c2157c53
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Wed Dec 19 17:17:09 2012 +0000

    Comment parsing: add a missing 'else'.  Found by inspection.

    No testcase because we were just building an extra AST node and eventually
    throwing it away, so it did not affect correctness.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170563 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4547fb55370b80f468fec19903ecb4a5cfd6d734
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Dec 19 17:03:46 2012 +0000

    Improve on header comment suggested by James Dennet.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170555 91177308-0d34-0410-b5e6-96231b3b80d8

commit 094dbf917127a1228147587076d59ca45b7c258d
Author: Bill Wendling <isanbard@gmail.com>
Date:   Wed Dec 19 07:18:12 2012 +0000

    Rename the 'Attributes' class to 'Attribute'. It's going to represent a single attribute in the future.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170500 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4b6ebe390fb0e38f6871d32db15cac29d22eb752
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Dec 19 03:15:32 2012 +0000

    Attempt to clarify a vexing-parse diagnostic.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170492 91177308-0d34-0410-b5e6-96231b3b80d8

commit cd6d5f43908cb4c2cbd644c35b6f21e9ade9a697
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Dec 19 02:27:38 2012 +0000

    Fix assertion failure in self-host (and probably bogus template instantiation
    too). When instantiating a direct-initializer, if we find it has zero
    arguments, produce an empty ParenListExpr rather than returning a null
    expression.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170490 91177308-0d34-0410-b5e6-96231b3b80d8

commit c83c2300e1946fea78ecd3c2e93d9c2dd2638a2b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Dec 19 01:39:02 2012 +0000

    PR13470: Ensure that copy-list-initialization isntantiates as
    copy-list-initialization (and doesn't add an additional copy step):

    Fill in the ListInitialization bit when creating a CXXConstructExpr. Use it
    when instantiating initializers in order to correctly handle instantiation of
    copy-list-initialization. Teach TreeTransform that function arguments are
    initializations, and so need this special treatment too. Finally, remove some
    hacks which were working around SubstInitializer's shortcomings.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170489 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9fcc2ab2ec5e00802880e205568ff3afbd70a773
Author: Ted Kremenek <kremenek@apple.com>
Date:   Wed Dec 19 01:35:35 2012 +0000

    Pass AnalyzerOptions to PathDiagnosticConsumer to make analyzer options accessible there.

    This is plumbing needed for later functionality changes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170488 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6ee225c8d4381e728c73252ed589f13e9f546def
Author: Ted Kremenek <kremenek@apple.com>
Date:   Wed Dec 19 01:16:49 2012 +0000

    Simplify logic to use SourceManager::getFileLoc(), per Argyrios's feedback.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170487 91177308-0d34-0410-b5e6-96231b3b80d8

commit e3ec31a6c2ff37bbc1ebea523e9f1730e0b4b1c7
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Dec 19 01:00:36 2012 +0000

    fixes a doxygen comment.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170485 91177308-0d34-0410-b5e6-96231b3b80d8

commit 240c6ff9dcae0a19bb0ac0b86f6693de1da6ca21
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Wed Dec 19 00:57:48 2012 +0000

    test/Index/preamble_macro_template.cpp: Suppress this probably due to Lit/win32 issue. Investigating.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170484 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3bc93e3124ad5e7191c4a12dc981c8ee53578193
Author: David Blaikie <dblaikie@gmail.com>
Date:   Wed Dec 19 00:45:41 2012 +0000

    Change DeclContextLookup(Const)Result to (Mutable)ArrayRef<NamedDecl*>, as per review discussion in r170365

    This does limit these typedefs to being sequences, but no current usage
    requires them to be contiguous (we could expand this to a more general
    iterator pair range concept at some point).

    Also, it'd be nice if SmallVector were constructible directly from an ArrayRef
    but this is a bit tricky since ArrayRef depends on SmallVectorBaseImpl for the
    inverse conversion. (& generalizing over all range-like things, while nice,
    would require some nontrivial SFINAE I haven't thought about yet)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170482 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8a68da12c71efeeaca0ed24c39288a2117d07f9d
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Dec 19 00:35:23 2012 +0000

    Increas number of iterations before a new libclang format object
    is created to 1000.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170481 91177308-0d34-0410-b5e6-96231b3b80d8

commit e538d48957b10bfaac46bc6138b78cfcc28ee89e
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Wed Dec 19 00:26:58 2012 +0000

    Make sure CodeGen uses a value of the correct type as the result of
    of assignment to a bool bitfield.  PR14638.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170480 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7c10683c834f051e018c89b090d64bf5e4ca3bcc
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Dec 19 00:01:48 2012 +0000

    Some code refactoring per Dimitri's comment.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170478 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1850ac6ae954524c821723a0f87df62d004a7293
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Tue Dec 18 23:32:47 2012 +0000

    Fix a crash in diagnostic printing when a template class type is diff'ed
    against itself. PR14489.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170474 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0f6ef2879083d3c556b9b74d2df7a07dc0b227d5
Author: Nadav Rotem <nrotem@apple.com>
Date:   Tue Dec 18 23:10:16 2012 +0000

    Enable the loop vectorizer in clang via -fvectorize

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170472 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4d5b68b1a5966b4e8898c1f86e877b06d5915136
Author: Nadav Rotem <nrotem@apple.com>
Date:   Tue Dec 18 23:08:58 2012 +0000

    Fix the fvectorize testcase

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170469 91177308-0d34-0410-b5e6-96231b3b80d8

commit d9b877765cfbedc7cb1ee4b50aeb576a46d0df4e
Author: Ted Kremenek <kremenek@apple.com>
Date:   Tue Dec 18 23:07:30 2012 +0000

    Have clang_getSpellingLocation() use the same logic as DiagnosticRenderer for plowing through macros.

    This fixes a subtle bug reported in <rdar://problem/12584554> where a double-nested
    macro could lead to an incorrect fixit location with live issues.

    This fix also uncovers a bunch of subtle bugs in our indexer test cases which
    are now fixed (mostly around source ranges for attributes).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170468 91177308-0d34-0410-b5e6-96231b3b80d8

commit 88b9521364735a6c9a7ccd23c5bd19d81a80cdd3
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Dec 18 23:02:59 2012 +0000

    This is the libclang patch providing minimal API to
    use clang's formatter. Currently, formatter is used
    to format declaration tags for xml comments. Since formatter
    is in flux and its change will break several of the clang comment
    tests, only a single tests is formatted using this facility.
    Doug has reviewed and approved it for check-in.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170467 91177308-0d34-0410-b5e6-96231b3b80d8

commit 813bc7faa74bda8162db3dede57e07bfe764e86e
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Dec 18 23:02:07 2012 +0000

    Be defensive when printing module import locations; the diagnostic printer needs to be robust

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170466 91177308-0d34-0410-b5e6-96231b3b80d8

commit e77372ac818cf202571dcbf8ab656c8f47ba3423
Author: Eli Bendersky <eliben@google.com>
Date:   Tue Dec 18 22:22:16 2012 +0000

    Similar to 170440 - fix build warning with gcc

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170461 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8bfb700a3ddcfffc32d97ad8a6565563e249d3ee
Author: Bill Wendling <isanbard@gmail.com>
Date:   Tue Dec 18 21:09:25 2012 +0000

    Add tests to check recent changes to some builtins.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170458 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1321eb593c8e13738dcaf72e409aa466c8cf6463
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Dec 18 21:05:13 2012 +0000

    Better support for constructor initializers.

    We used to format initializers like this (with a sort of hacky implementation):
    Constructor()
        : Val1(A),
          Val2(B) {

    and now format like this (with a somewhat better solution):
    Constructor()
        : Val1(A), Val2(B) {

    assuming this would not fit on a single line. Also added tests.

    As a side effect we now first analyze whether an UnwrappedLine needs to be
    split at all. If not, not splitting it is the best solution by definition. As
    this should be a very common case in normal code, not exploring the entire
    solution space can provide significant speedup.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170457 91177308-0d34-0410-b5e6-96231b3b80d8

commit 08cc03fcd97c3886b004d861aadbc28de70092c5
Author: Meador Inge <meadori@codesourcery.com>
Date:   Tue Dec 18 20:58:04 2012 +0000

    CodeGen: Expand creal and cimag into complex field loads

    PR 14529 was opened because neither Clang or LLVM was expanding
    calls to creal* or cimag* into instructions that just load the
    respective complex field.  After some discussion, it was not
    considered realistic to do this in LLVM because of the platform
    specific way complex types are expanded.  Thus a way to solve
    this in Clang was pursued.  GCC does a similar expansion.

    This patch adds the feature to Clang by making the creal* and
    cimag* functions library builtins and modifying the builtin code
    generator to look for the new builtin types.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170455 91177308-0d34-0410-b5e6-96231b3b80d8

commit e35ec2b10c2a0d53ae76a7a6c383fa6aaf7645bd
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Dec 18 19:56:56 2012 +0000

    Make the format scrambler understand line comments.

    This allows for writing tests including line comments easier and more readable.
    We will need more of those tests in the future and also line comments are
    useful to force line breaks in tests.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170446 91177308-0d34-0410-b5e6-96231b3b80d8

commit a34173e6783f8334b3a120131adba7d3f6c6509f
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Dec 18 19:39:40 2012 +0000

    CMake: Make sure to detect LibXml2 when Clang is built standalone

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170444 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6bd120387a0d36bb5a748d4100b3eaa399eb53c5
Author: Eli Bendersky <eliben@google.com>
Date:   Tue Dec 18 18:53:14 2012 +0000

    Fix a compilation warning with gcc 4.6

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170440 91177308-0d34-0410-b5e6-96231b3b80d8

commit b13621d08e20ac7aa550e05896de8a57ee99c1e8
Author: Guy Benyei <guy.benyei@intel.com>
Date:   Tue Dec 18 14:38:23 2012 +0000

    Re-commit r170428 changes with Linux style file endings.

    Add OpenCL images as clang builtin types.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170432 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7f92f2d8d9b7a07900c030183bc13a9ff60057cc
Author: Guy Benyei <guy.benyei@intel.com>
Date:   Tue Dec 18 14:30:41 2012 +0000

    Revert changes from r170428, as I accidentally changed the line endings of these files to Windows style.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170431 91177308-0d34-0410-b5e6-96231b3b80d8

commit 736104a7619c53ef92553780273d7357a3cdde81
Author: Guy Benyei <guy.benyei@intel.com>
Date:   Tue Dec 18 12:30:03 2012 +0000

    Add OpenCL images as clang builtin types.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170428 91177308-0d34-0410-b5e6-96231b3b80d8

commit 15cc355526cdd898f5e528c38c3e385c45746e06
Author: David Chisnall <csdavec@swan.ac.uk>
Date:   Tue Dec 18 10:24:07 2012 +0000

    Remove obsolete FIXMEs.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170425 91177308-0d34-0410-b5e6-96231b3b80d8

commit a49067092c0c6ffe10d1567f2c26b0e40b6911f3
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Dec 18 05:14:30 2012 +0000

    test/Misc/dev-fd-fs.c: Mark this as XFAIL:freebsd (since r169831).

    I don't want to suppress this to be excluded with the feature "dev-fd-fs". This should work also on freebsd.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170411 91177308-0d34-0410-b5e6-96231b3b80d8

commit 90f692611bd486198ffa67a0e097013a2e6e3d2e
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Dec 18 04:29:34 2012 +0000

    Inline hasAtomicCopyHelperAPI.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170408 91177308-0d34-0410-b5e6-96231b3b80d8

commit a7a2f2a96dc9d2e66a5e6ee7ca50cb04931f4c98
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Dec 18 04:18:55 2012 +0000

    Merge storage classes even when contexts don't match.

    This fixes the storage class of extern decls that are merged with file level
    statics. The patch also fixes the linkage computation so that they are
    considered internal.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170406 91177308-0d34-0410-b5e6-96231b3b80d8

commit 853c37018bd4c6f1a2118568d5ac59525f2a3b51
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Dec 18 03:54:29 2012 +0000

    Now that the uninitialized variable has been fixed in llvm, add this test back,
    but remove unneeded options and fix the comment.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170405 91177308-0d34-0410-b5e6-96231b3b80d8

commit c92384f871597902b8d5ffc33a662e8ac0d25db0
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Dec 18 03:04:38 2012 +0000

    Fix typo (thanks to Jordan for spotting it!).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170403 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2fcff83aa4f62b96b98cde967c8fbacc74f3ab9f
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Tue Dec 18 02:37:32 2012 +0000

    The underlying type for an enum should be an integer type, not another enum.
    (This change only affects ObjC.)

    <rdar://problem/12857117>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170402 91177308-0d34-0410-b5e6-96231b3b80d8

commit b52cc89e1bd43457f1f370670f85e518ae5329b0
Author: Sean Silva <silvas@purdue.edu>
Date:   Tue Dec 18 02:15:05 2012 +0000

    docs: Nuke AnalyzerRegions.rst.

    As per Ted's advice. It can be brought back from version control if
    needed.

    This also fixes a Sphinx warning.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170401 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8a0086cfd21e5a89f96715d7a504178c5fc0ca26
Author: Anders Carlsson <andersca@mac.com>
Date:   Tue Dec 18 01:29:20 2012 +0000

    When warning about a missing prototype because a function declaration is missing 'void', insert a fixit to add the void.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170399 91177308-0d34-0410-b5e6-96231b3b80d8

commit adff43ad96defb28bad20d8335ab30beadd72ee8
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Tue Dec 18 00:52:36 2012 +0000

    More conservative fix for <rdar://problem/12847524> (a crash printing diagnostic ranges).
    I'm not really happy with this fix, but I'm confident it's correct.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170397 91177308-0d34-0410-b5e6-96231b3b80d8

commit a6f8a6ed1ab163b3c4c863aa4a198fd1cb62fd97
Author: Bill Wendling <isanbard@gmail.com>
Date:   Tue Dec 18 00:37:10 2012 +0000

    Use the correct return type (size_t) for these builtins.
    <rdar://problem/12646344>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170393 91177308-0d34-0410-b5e6-96231b3b80d8

commit 13d288bab69d517430b7c9473abac58fb491e17d
Author: Bill Wendling <isanbard@gmail.com>
Date:   Tue Dec 18 00:34:49 2012 +0000

    Add an expected parameter for the size of the destination.
    <rdar://problem/12622659>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170392 91177308-0d34-0410-b5e6-96231b3b80d8

commit 27e2b983beb8b5a29869639637327725623069a8
Author: Eric Christopher <echristo@gmail.com>
Date:   Tue Dec 18 00:31:10 2012 +0000

    Add support for passing the main file name down to the assembler
    for location information.

    Part of PR14624

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170391 91177308-0d34-0410-b5e6-96231b3b80d8

commit 073fec91b73f08ba86ad46573141be14c7a0d262
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Dec 18 00:22:45 2012 +0000

    Rein ubsan's vptr sanitizer back a bit. Per core issue 453, binding a reference
    to an object outside its lifetime does not have undefined behavior.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170387 91177308-0d34-0410-b5e6-96231b3b80d8

commit 372df4548267ce5d6ecf1da68902f0d793271a4f
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Mon Dec 17 22:23:47 2012 +0000

    Fix isThisDeclarationADefinition for extern following tentative.

    An extern declaration following a tentative definition should not itself be
    considered a tentative definition.
    Fixes pr14614.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170377 91177308-0d34-0410-b5e6-96231b3b80d8

commit d566df67bed6381f6e859bbd21fd43ff89277cc0
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Mon Dec 17 21:40:04 2012 +0000

    Fix PR14625 by teaching the driver to detect PWD for assembly files.

    This also requires adding support to -cc1as for passing the detecting
    PWD down through LLVM's debug info (which in turn required the LLVM
    change in r170371).

    The test case is weak (we only test the driver behavior) because there
    is currently to infrastructure for running cc1as in the test suite. So
    those four lines are untested (much like all other lines in that file),
    but we have a test for the same pattern using llvm-mc in the LLVM
    repository.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170373 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2bff7e5a02495dabd26013c15613f082fce67633
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Mon Dec 17 20:19:56 2012 +0000

    [c-index-test] Fix warnings about unused results from chdir().
    Patch from Edwin Vane!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170366 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6e48a2e2d677d9ba97b457e0af3494d6b6387380
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Mon Dec 17 20:10:50 2012 +0000

    Just use begin()/end() instead of "&Vector[0], &Vector[0]+Vector.size()".

    No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170365 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8302767d5f577ce1729187abec30404a201804b1
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Mon Dec 17 20:10:49 2012 +0000

    Don't include the header outside the include guards, it defeats the purpose of the include guards.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170364 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7d033b209e87d1964ee2f8de668934bb1a77bde0
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Mon Dec 17 20:10:43 2012 +0000

    [parser] Push a semi token for recovery only when it is actually missing.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170363 91177308-0d34-0410-b5e6-96231b3b80d8

commit 39cf781d62daaec09e443c6e66a01cd7543ffb41
Author: Anna Zaks <ganna@apple.com>
Date:   Mon Dec 17 20:08:54 2012 +0000

    [analyzer] Tweak the NumFunctionsAnalyzed stat so that it's more useful.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170362 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7959671d456c916706a5f61af609d8f1fc95decf
Author: Anna Zaks <ganna@apple.com>
Date:   Mon Dec 17 20:08:51 2012 +0000

    [analyzer] Implement "do not inline large functions many times"
    performance heuristic

    After inlining a function with more than 13 basic blocks 32 times, we
    are not going to inline it anymore. The idea is that inlining large
    functions leads to drastic performance implications. Since the function
    has already been inlined, we know that we've analyzed it in many
    contexts.

    The following metrics are used:
     - Large function is a function with more than 13 basic blocks (we
    should switch to another metric, like cyclomatic complexity)
     - We consider that we've inlined a function many times if it's been
    inlined 32 times. This number is configurable with -analyzer-config
    max-times-inline-large=xx

    This heuristic addresses a performance regression introduced with
    inlining on one benchmark. The analyzer on this benchmark became 60
    times slower with inlining turned on. The heuristic allows us to analyze
    it in 24% of the time. The performance improvements on the other
    benchmarks I've tested with are much lower - under 10%, which is
    expected.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170361 91177308-0d34-0410-b5e6-96231b3b80d8

commit d397cfef01d49a41554309d67ea26340c39e1e94
Author: David Chisnall <csdavec@swan.ac.uk>
Date:   Mon Dec 17 18:54:24 2012 +0000

    Reapply r170344, this time without forgetting to commit the header changes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170354 91177308-0d34-0410-b5e6-96231b3b80d8

commit e315cb3b30a0461ae501f8942f9d012bbeee3f90
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Mon Dec 17 18:02:43 2012 +0000

    Revert "Added support for new property helpers (GNUstep runtime)."

    This reverts commit r170344. Doesn't even compile.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170351 91177308-0d34-0410-b5e6-96231b3b80d8

commit 648dd82196b09953c029d15679e32a799a1b1eb6
Author: David Chisnall <csdavec@swan.ac.uk>
Date:   Mon Dec 17 15:59:29 2012 +0000

    Added support for new property helpers (GNUstep runtime).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170344 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9a0b494f999dfd47152565f7bbeaa69b3fef8feb
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Dec 17 14:34:14 2012 +0000

    Add basic support for splitting before function calls if it can't be
    avoided.

    This required a minor modification of the memoization as now the
    "CurrentPenalty" depends on whether or not we break before the current
    token. Therefore, the CurrentPenalty should not be memoized but added
    after retrieving a value from memory. This should not affect the runtime
    behavior.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170337 91177308-0d34-0410-b5e6-96231b3b80d8

commit 61dde19d72a86ad180840ff858fa9a688de81bbc
Author: Dmitry Vyukov <dvyukov@google.com>
Date:   Mon Dec 17 13:07:35 2012 +0000

    tsan: correct llvm libc++ name

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170326 91177308-0d34-0410-b5e6-96231b3b80d8

commit 05b1ac8791ee89fdf0b275631ab8118febc7c33d
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Dec 17 11:29:41 2012 +0000

    Fix several formatting problems.

    More specifically:
    - Improve formatting of static initializers.
    - Fix formatting of lines comments in enums.
    - Fix formmating of trailing line comments.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170316 91177308-0d34-0410-b5e6-96231b3b80d8

commit 728e2127e858611750d560ee7692c322a8570faa
Author: Dmitry Vyukov <dvyukov@google.com>
Date:   Mon Dec 17 08:52:05 2012 +0000

    tsan: add __has_feature(thread_sanitizer)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170314 91177308-0d34-0410-b5e6-96231b3b80d8

commit c092cbab26ee4e2875a5d99d7d9ad16b25e8f36d
Author: Dmitry Vyukov <dvyukov@google.com>
Date:   Mon Dec 17 07:16:54 2012 +0000

    tsan: update docs

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170311 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2df16588ba95f76082b7dc5bb04a574ae009a1fb
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Mon Dec 17 06:24:36 2012 +0000

    Clean up a small (messy) section of Clang's release notes for 3.2.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170309 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9e6111ad10d29802d8eff99c941d262979e99084
Author: Bill Schmidt <wschmidt@linux.vnet.ibm.com>
Date:   Mon Dec 17 04:20:17 2012 +0000

    This patch fixes PR13624, which notes a 64-bit PowerPC ELF ABI
    incompatibility with how complex values are returned.  It is sufficient
    to flag all complex types as direct rather than indirect.

    A new test case is provided that checks correct IR generation for the
    various supported flavors of _Complex.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170302 91177308-0d34-0410-b5e6-96231b3b80d8

commit 355a1660d6a3c66546dfd2476b60fa7a19b70ee3
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Mon Dec 17 03:51:09 2012 +0000

    IdentifierResolver: Remove an unnecessary include and an unused parameter.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170297 91177308-0d34-0410-b5e6-96231b3b80d8

commit 24ee6ea5125dd1a4c5772f7f69662a80998d79f1
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sun Dec 16 19:55:39 2012 +0000

    Documentation: add a missing word

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170296 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4f35f74017aa581986927bb3602d98a1ce969093
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sun Dec 16 17:38:09 2012 +0000

    Clang ReleaseNotes: add information about documentation comments support

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170294 91177308-0d34-0410-b5e6-96231b3b80d8

commit b22acbb043a23fe0c862a8b61c01baeac5522a37
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sun Dec 16 11:25:45 2012 +0000

    Documentation: AutomaticReferenceCounting.rst: use CSS section numbering.
    This enables us to use the same document structure as in other files.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170283 91177308-0d34-0410-b5e6-96231b3b80d8

commit d53c2d30cf89eca5c165d682f6cc1261f54674fd
Author: Craig Topper <craig.topper@gmail.com>
Date:   Sun Dec 16 05:58:32 2012 +0000

    Don't use SourceLineCache in getColumnNumber if LastLineNoResult is past the end of the cache. Fixes PR14570.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170281 91177308-0d34-0410-b5e6-96231b3b80d8

commit b34b805b13ab54c7397379caaf3f84d86813f95e
Author: Sean Silva <silvas@purdue.edu>
Date:   Sun Dec 16 00:23:40 2012 +0000

    docs: Fix completely broken adornment structure.

    The adornment:

    ===
    Foo
    ===

    is for titles, not sections.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170278 91177308-0d34-0410-b5e6-96231b3b80d8

commit 97555a13681a194269fc866e6ce8e2c6232dc378
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Dec 15 21:10:51 2012 +0000

    Documentation: random cleanups.  Use monospaced font where appropriate,
    highlight console output with "code-block:: console", etc.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170276 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5cc0580c6c6e4f05bdff1a53c5ca9f088393f072
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Dec 15 20:41:17 2012 +0000

    Documentation: convert InternalsManual.html to reST

    Patch by Anastasi Voitova with with small fixes by me.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170275 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1228d66b5e866c88f96a3d23866f84389dd47e6c
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Dec 15 14:25:25 2012 +0000

    Documentation: LanguageExtensions.rst: convert link to :doc: style and fix up
    heading underline.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170272 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1bdbe4d23ed90f601772edd4aa00b8d757c6d6ca
Author: Will Dietz <wdietz2@illinois.edu>
Date:   Sat Dec 15 01:39:14 2012 +0000

    [ubsan] Emit branch weight metadata to hint towards common case.

    Results in better block placement that helps close the
    performance gap when making ubsan checks recoverable.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170263 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3115f5b67e31f50682457883f3864fce2feba1db
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Dec 15 00:37:01 2012 +0000

    Docs: redirect "static analysis extensions" section to the analyzer site.

    The notes on the objc_method_family and ns_returns_retained-type attributes
    have been moved to the Objective-C section, since both are used by ARC.
    The notes on analyzer_noreturn are now only on the analyzer site.

    The inadequacy of these docs was noticed months ago by Jonathan Sauer;
    I'm only just now getting around to cleaning them up.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170261 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2d3bad72e4f5ee9db82b5654f85d411aa5eac169
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Dec 15 00:36:53 2012 +0000

    Remove old description of analyzer internals from public docs.

    The file still exists in docs/analyzer/, but it won't be linked to from
    clang.llvm.org or processed as part of the default Sphinx doc-build.
    RegionStore has changed a lot from what Ted and Zhongxing describe here!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170260 91177308-0d34-0410-b5e6-96231b3b80d8

commit d74324371465a152387ac45e737ab7d23e543552
Author: Anton Yartsev <anton.yartsev@gmail.com>
Date:   Fri Dec 14 20:28:48 2012 +0000

    fixed line endings

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170238 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2bfa166a26edb6f26915abe38caa551dbb05ad19
Author: Anton Yartsev <anton.yartsev@gmail.com>
Date:   Fri Dec 14 19:48:34 2012 +0000

    added post-statement callback to CXXNewExpr and pre-statement callback to CXXDeleteExpr

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170234 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4ae711b5ef292378d5b88cede3d4b708174053e2
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Dec 14 19:44:11 2012 +0000

    Don't hit an assertion failure when calculating the __PRETTY_FUNCTION__
    of a member function with parenthesized declarator.

    Like this test case:

    class Foo {
      const char *(baz)() {
        return __PRETTY_FUNCTION__;
      }
    };

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170233 91177308-0d34-0410-b5e6-96231b3b80d8

commit 12b3e3199c530b72f3cc44dd24a1e20ed6086292
Author: Anna Zaks <ganna@apple.com>
Date:   Fri Dec 14 19:08:20 2012 +0000

    [analyzer] Propagate the checker's state from checkBranchCondition

    Fixes a bug, where we were dropping the state modifications from the
    checkBranchCondition checker callback.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170232 91177308-0d34-0410-b5e6-96231b3b80d8

commit b467051a9f212c57335f88f16e839e1dc8afc1c1
Author: Anna Zaks <ganna@apple.com>
Date:   Fri Dec 14 19:08:17 2012 +0000

    [analyzer] Refactor: Store visited Decls instead of CallGraphNodes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170231 91177308-0d34-0410-b5e6-96231b3b80d8

commit b1f67dbbb12dec8304434c76c72e01336bf186e4
Author: Edwin Vane <edwin.vane@intel.com>
Date:   Fri Dec 14 18:58:25 2012 +0000

    Style and Doc fix for CommonOptionsParser

    - Renaming GetCompilations() and GetSourcePathList() to follow LLVM
      style.
    - Updating docs to reflect name change.
    - Also updating help text to not mention clang-check since this class
      can be used by any tool.

    Reviewed By: Alexander Kornienko

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170229 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0ee8de7fe9c1fb74574c62b9d59ffe46a94435f4
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Dec 14 18:53:47 2012 +0000

    [preprocessor] For errors at a function macro invocation, also include
    a note about where the macro is defined.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170228 91177308-0d34-0410-b5e6-96231b3b80d8

commit af0e889e7e53e5e6b815ba0595bd3146f04fe3d6
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Dec 14 18:30:20 2012 +0000

    [CMake] Move libxml2 stuff from clang to llvm/cmake.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170225 91177308-0d34-0410-b5e6-96231b3b80d8

commit b707a4762fcc47c12b5f487856ba0781c9399295
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Fri Dec 14 18:22:38 2012 +0000

    Don't require a space between the two ">" in "vector<id<protocol>>" in objc++11.

    C++11 allowed writing "vector<vector<int>>" without a space between the two ">".
    This change allows this for protocols in template lists too in -std=c++11 mode,
    and improves the diagnostic in c++98 mode.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170223 91177308-0d34-0410-b5e6-96231b3b80d8

commit e72f4d93ed44e00e1b1433768f0515b9c4f38562
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Dec 14 10:17:26 2012 +0000

    Targets.cpp: [cygwin] Add the predefined macro "_X86_", according to newer version of cygwin/w32api.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170188 91177308-0d34-0410-b5e6-96231b3b80d8

commit a9990e80f5d1236277c87aa6fac03e0992c52341
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Dec 14 06:54:03 2012 +0000

    Have Sema::ActOnStartOfFunctionDef return the declaration that was passed it.

    This fixes the missing warning here:

    struct S {
        template <typename T>
        void meth() {
            char arr[3];
            arr[4] = 0; // warning: array index 4 is past the end of the array
        }
    };

    template <typename T>
    void func() {
        char arr[3];
        arr[4] = 0; // no warning
    }

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170180 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3abc76856fbd33d9af5a5c9bf8dfee596658df1b
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Dec 14 06:53:58 2012 +0000

    Remove code from Sema::ActOnStartOfFunctionTemplateDef that duplicates what
    Sema::ActOnStartOfFunctionDef is already doing.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170179 91177308-0d34-0410-b5e6-96231b3b80d8

commit f5e9d035840a4539222708032d75a0515e2508a8
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Fri Dec 14 02:41:18 2012 +0000

    fix another spello

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170177 91177308-0d34-0410-b5e6-96231b3b80d8

commit 001397e001108c04a56ea3995ebfffa279725398
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Fri Dec 14 02:40:09 2012 +0000

    fix spello

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170176 91177308-0d34-0410-b5e6-96231b3b80d8

commit 457d65ae105110c66e5d45b5fbb1e90dda7ad148
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Dec 14 02:35:04 2012 +0000

    clang/test/CodeGenCXX/lambda-expressions.cpp: Relax expression for -Asserts.

    "entry:" is not met in -Asserts build.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170175 91177308-0d34-0410-b5e6-96231b3b80d8

commit b0abacf2f1f77214e4c77d6ec8a02b097bb98f7a
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Dec 14 01:23:13 2012 +0000

    Refactor dump methods to make RegionBindingsRef printable in the debugger.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170170 91177308-0d34-0410-b5e6-96231b3b80d8

commit 877efce7a8691d7083c8cae9271181ef8568f715
Author: Nadav Rotem <nrotem@apple.com>
Date:   Fri Dec 14 00:26:15 2012 +0000

    Make the test less sensitive to the inline threshold.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170164 91177308-0d34-0410-b5e6-96231b3b80d8

commit 50f089a6e1837cb81f8d1830bda6db619e422a2e
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Thu Dec 13 23:37:17 2012 +0000

    Make sure the __invoke function for lambdas returns properly.  Per bug report on IRC>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170160 91177308-0d34-0410-b5e6-96231b3b80d8

commit c9a9177e699897a71670ae211fa053240f41460e
Author: David Blaikie <dblaikie@gmail.com>
Date:   Thu Dec 13 22:29:06 2012 +0000

    Debug Info: Emit vtables pointer members as artificial.

    I wasn't sure where to put the test case for this, but this seemed like as good
    a place as any. I had to reorder the tests here to make them legible while
    still matching the order of metadata output in the IR file (for some reason
    making it virtual changed the ordering).

    Relevant commit to fix up LLVM to actually respect 'artificial' member
    variables is coming once I write up a test case for it.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170154 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5e24f2d83099bb557b1d39c6420787eeaf072a81
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Thu Dec 13 21:38:23 2012 +0000

    [PCH] Make the new PCH format (control block) backwards compatible and
    don't crash when loading a PCH with the older format.

    The introduction of the control block broke compatibility with PCHs from
    older versions. This patch allows loading (and rejecting) PCHs from an older
    version and allows newer PCHs to be rejected from older clang versions as well.

    rdar://12821386

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170150 91177308-0d34-0410-b5e6-96231b3b80d8

commit de39d1752f1559060237f158e47af6527d5e4abe
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Thu Dec 13 20:26:05 2012 +0000

    Add support for current Ubuntu Quantal and the upcoming Raring.
    Patch by Martin Nowack.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170147 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5bdbc114da925304a774b726b0abb87d75bc3008
Author: Nadav Rotem <nrotem@apple.com>
Date:   Thu Dec 13 19:58:10 2012 +0000

    Revert 170049 because it fails with an assertion on one of the spec2000 workloads.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170143 91177308-0d34-0410-b5e6-96231b3b80d8

commit 45397f92bb3009dd5a1b399ef0885ccddc34838e
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Dec 13 18:26:05 2012 +0000

    [analyzer] Fix doc error (wrong param name) in ObjCSuperCallChecker.

    Thanks for the -Wdocumentation catch, Dmitri!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170139 91177308-0d34-0410-b5e6-96231b3b80d8

commit 68f22af4ea140508d26630bb00e0def48fb38aef
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Dec 13 16:24:59 2012 +0000

    Update CMake build corresponding to r170135.

    Thanks to Saleem Abdulrasool, aka compnerd!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170136 91177308-0d34-0410-b5e6-96231b3b80d8

commit fc2929fdb7cce47daf5b2857a56013fad0257cb6
Author: Roman Divacky <rdivacky@freebsd.org>
Date:   Thu Dec 13 16:09:42 2012 +0000

    Dont use/link ARCMT, StaticAnalyzer and Rewriter to clang when the user
    specifies not to. Dont build ASTMatchers with Rewriter disabled and
    StaticAnalyzer when it's disabled.

    Without all those three, the clang binary shrinks (x86_64) from ~36MB
    to ~32MB (unstripped).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170135 91177308-0d34-0410-b5e6-96231b3b80d8

commit 702baef6d636004db1a0bb6aa34b664650e594f6
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Thu Dec 13 16:06:00 2012 +0000

    Documentation: add AutomaticReferenceCounting.rst to the toctree

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170133 91177308-0d34-0410-b5e6-96231b3b80d8

commit 94b21a1765ef7adfd0a8809d57645e4d32e46420
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Thu Dec 13 16:04:37 2012 +0000

    Documentation: convert AutomaticReferenceCounting.html to reST

    Patch by Anastasi Voitova with with small fixes by me.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170132 91177308-0d34-0410-b5e6-96231b3b80d8

commit 40b66a000dca59be61117558bb54f3880a77cd14
Author: Alexander Kornienko <alexfh@google.com>
Date:   Thu Dec 13 13:59:55 2012 +0000

    Rename StmtDumper to ASTDumper.
    Patch contributed by Philip Craig!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170127 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8a03357d13daa40d341e5724ed47039b4d8af140
Author: Guy Benyei <guy.benyei@intel.com>
Date:   Thu Dec 13 13:22:48 2012 +0000

    Remove little endian specification from SPIR data layout - SPIR doesn't define endiannes in the data layout.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170125 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2dce7bec1ac2d03f1da98d261ad97b0a683f6ee5
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Dec 13 07:29:23 2012 +0000

    Point a hyperlink back to where it was before it got reStructured.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170110 91177308-0d34-0410-b5e6-96231b3b80d8

commit 463b48ba7eab6d7c96d23b59caea7f25de548293
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Dec 13 07:11:50 2012 +0000

    ubsan: Add -fsanitize=bool and -fsanitize=enum, which check for loads of
    bit-patterns which are not valid values for enumerated or boolean types.
    These checks are the ubsan analogue of !range metadata.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170108 91177308-0d34-0410-b5e6-96231b3b80d8

commit cdc2e82c317163693c99a8cbef76685e86420395
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Dec 13 05:41:48 2012 +0000

    Simplify. No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170100 91177308-0d34-0410-b5e6-96231b3b80d8

commit 27fa2364b05ab26138c2ecf0eac1937b7fc6c037
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Thu Dec 13 04:17:14 2012 +0000

    Initial support for FreeBSD on ARM.
    Patch by Andrew Turner.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170096 91177308-0d34-0410-b5e6-96231b3b80d8

commit e14999e768fe55f620719fc4fbc361759e990e80
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Dec 13 03:06:45 2012 +0000

    [analyzer] Generalize ObjCMissingSuperCallChecker.

    We now check a few methods for UIResponder, NSResponder, and NSDocument.

    Patch by Julian Mayer!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170089 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6febf1265b5a5c3025752193caa9714ed523b12d
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Thu Dec 13 01:43:21 2012 +0000

    Using CanQualType::getAs<ArrayType> is unsafe; fix the code currently using it,
    and make sure additional uses don't get introduced.  <rdar://problem/12858424>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170081 91177308-0d34-0410-b5e6-96231b3b80d8

commit 93ca0217a2aa3047c10518e991ab8578e90829e7
Author: Sean Silva <silvas@purdue.edu>
Date:   Thu Dec 13 01:10:46 2012 +0000

    docs: More reST conversion.

    Sorry for the large commit, but it is much faster to convert in batches.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170067 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1812652c24c5a7847654cef9b0875414000af27f
Author: Anna Zaks <ganna@apple.com>
Date:   Thu Dec 13 00:42:19 2012 +0000

    [analyzer] Fix a self-init checker false positive.

    This is a Band-Aid fix to a false positive, where we complain about not
    initializing self to [super init], where self is not coming from the
    init method, but is coming from the caller to init.

    The proper solution would be to associate the self and it's state with
    the enclosing init.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170059 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0c252fa8b751be50f8b53ffdc6563dca609870fc
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Dec 13 00:42:06 2012 +0000

    objc: DOn't complain if a (SEL) expression is typecast
    to (SEL). Fixes // rdar://12859590

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170058 91177308-0d34-0410-b5e6-96231b3b80d8

commit 206491dcbe1ed01ee8ce86a0ffe272d5d25491d3
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Thu Dec 13 00:37:17 2012 +0000

    Add missing check for error return from DefaultLvalueConversion.  Fixes <rdar://problem/12857416>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170056 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0fdcd1e81db7b8f5b3fd05154d966b215b20a2eb
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Thu Dec 13 00:14:59 2012 +0000

    More hacking on mapDiagnosticRanges to make it handle more cases.
    This still isn't quite right, but it fixes a crash.

    I factored out findCommonParent because we need it on the result of
    getImmediateExpansionRange: for a function macro, the beginning
    and end of an expansion range can come out of different
    macros/macro arguments, which means the resulting range is a complete
    mess to handle consistently.

    I also made some changes to how findCommonParent works; it works somewhat
    better in some cases, and somewhat worse in others, but I think overall
    it's a better balance.  I'm coming to the conclusion that mapDiagnosticRanges
    isn't using the right algorithm, though: chasing the caret is fundamentally
    more complicated than any algorithm which only considers one FileID for the
    caret can handle because each SourceLocation doesn't really have a single parent.
    We need to follow the same path of choosing expansion locations and spelling
    locations which the caret used to come up with the correct range
    in the general case.

    Fixes <rdar://problem/12847524>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170049 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3872b46ba9a5275ef0bf4fcefe2d7ef11ce75cc5
Author: Sean Silva <silvas@purdue.edu>
Date:   Wed Dec 12 23:44:55 2012 +0000

    docs: Convert some docs to reST.

    Converts:
        LanguageExtensions
        LibASTMatchers
        LibTooling
        PCHInternals
        ThreadSanitizer
        Tooling

    Patch by Mykhailo Pustovit!
    (with minor edits by Dmitri Gribenko and Sean Silva)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170048 91177308-0d34-0410-b5e6-96231b3b80d8

commit b34ae9be5297aac85a6241e18bfaa46fde23d924
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Wed Dec 12 23:35:03 2012 +0000

    docs: Another test commit (sphinx autoupdating).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170047 91177308-0d34-0410-b5e6-96231b3b80d8

commit 74061ee877edefcee5100f1722377d6099d981ed
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Wed Dec 12 23:33:24 2012 +0000

    docs: Test commit (sphinx autoupdating).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170046 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1c6ee67350cecfd1023dc1b82a727a96a8a66af2
Author: Sean Silva <silvas@purdue.edu>
Date:   Wed Dec 12 23:02:30 2012 +0000

    docs: Initial Sphinx setup for Clang.

    I don't think this will be visible just yet on <clang.llvm.org/docs/>
    since I don't think that the necessary server-side setup has taken
    place.

    Don't shoot me over the theme. I don't want to duplicate LLVM's theme
    into the clang repo at the moment, so I just used one of Sphinx's
    default themes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170042 91177308-0d34-0410-b5e6-96231b3b80d8

commit 489feee4eb18ace97a6296c9b20b4157af6c984f
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Dec 12 22:48:28 2012 +0000

    [arcmt] When capturing ARC errors, have a sanity check to make sure
    the diagnostic has a valid location.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170040 91177308-0d34-0410-b5e6-96231b3b80d8

commit 135aa60c613bdcc0e8e237b12bf93cab04284419
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Dec 12 22:48:25 2012 +0000

    [objc] For the ARC error that is emitted when a synthesized property implementation
    has inconsistent ownership with the backing ivar, point the error location to the
    ivar.

    Pointing to the ivar (instead of the @synthesize) is better since this is where a fix is needed.
    Also provide the location of @synthesize via a note.

    This also fixes the problem where an auto-synthesized property would emit an error without
    any location.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170039 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9b629fcb8b2606886ed30630f8a896a8bf606518
Author: Chad Rosier <mcrosier@apple.com>
Date:   Wed Dec 12 22:46:23 2012 +0000

    [ms-inline asm] Test case for r170037.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170038 91177308-0d34-0410-b5e6-96231b3b80d8

commit a923c9783e8bd8edd26e56df9eaacd872c43e20e
Author: John McCall <rjmccall@apple.com>
Date:   Wed Dec 12 22:21:47 2012 +0000

    Rewrite calls to bitcast unprototyped functions when emitting a definition.

    My variadics patch, r169588, changed these calls to typically be
    bitcasts rather than calls to a supposedly variadic function.
    This totally subverted a hack where we intentionally dropped
    excess arguments from such calls in order to appease the inliner
    and a "warning" from the optimizer.  This patch extends the hack
    to also work with bitcasts, as well as teaching it to rewrite
    invokes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170034 91177308-0d34-0410-b5e6-96231b3b80d8

commit b2c0887457ef509c1a93bcddf9ad8f5e87d9945e
Author: Chad Rosier <mcrosier@apple.com>
Date:   Wed Dec 12 20:06:31 2012 +0000

    [driver] Don't warn about an unused -flto option.
    rdar://12851905

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170010 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4f69eb4daa3c5ce8b88535fc560f2ee102a580f4
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Dec 12 19:13:44 2012 +0000

    [analyzer] Don't crash running destructors for multidimensional arrays.

    We don't handle array destructors correctly yet, but we now apply the same
    hack (explicitly destroy the first element, implicitly invalidate the rest)
    for multidimensional arrays that we already use for linear arrays.

    <rdar://problem/12858542>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170000 91177308-0d34-0410-b5e6-96231b3b80d8

commit df76f1ea801a60a422812b20bd0bfa6ab51cecf8
Author: Chad Rosier <mcrosier@apple.com>
Date:   Wed Dec 12 17:52:21 2012 +0000

    Marking the objc_autoreleaseReturnValue and objc_retainAutoreleaseReturnValue
    call sites as tail calls unconditionally.  While it's theoretically true that
    this is just an optimization, it's an optimization that we very much want to
    happen even at -O0, or else ARC applications become substantially harder to
    debug.  See r169796 for the llvm/fast-isel side of things.
    rdar://12553082

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169996 91177308-0d34-0410-b5e6-96231b3b80d8

commit 21fa5d182f7b0b65c8233d6e228fc374d6d6e8bb
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Wed Dec 12 14:17:17 2012 +0000

    PR14581: Make SourceLocation::printToString work, or it will always return an empty string.

    No test case, this is debugging code.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169980 91177308-0d34-0410-b5e6-96231b3b80d8

commit acaf110ec9f2622f76f32c23fd0c2488952bdd21
Author: Manuel Klimek <klimek@google.com>
Date:   Wed Dec 12 13:26:54 2012 +0000

    Speeds up parsing of global declarations in cases where the warning
    is switched of by about 0.8% (tested with int i<N>).

    Additionally, this puts computing the diagnostic class into the hot
    path more when parsing, in preparation for upcoming optimizations
    in this area.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169976 91177308-0d34-0410-b5e6-96231b3b80d8

commit 04ee66e1fee44e72ee57845c1405a7f498a9daf7
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Wed Dec 12 06:22:22 2012 +0000

    clang/lib/Driver/Driver.cpp: Split COMPILER_PATH according to llvm::sys::PathSeparator, that is ';' in Win32 hosts.

    Thanks to Bogon Kim!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169964 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1fbf6fb5c7ecbf803e692f0d1622870a36cf83b7
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Dec 12 02:46:14 2012 +0000

    Don't warn about disabled macro expansion if we see the name of a function-like macro which isn't immediately followed by '('. FreeBSD's stdio.h #defines foo(x) to (foo)(x), apparently.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169960 91177308-0d34-0410-b5e6-96231b3b80d8

commit b94b62c3b15967d29f63165e834fa4f12944394c
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Dec 12 01:05:25 2012 +0000

    [libclang] Make sure tokens from preprocessor directives are annotated as such,
    even if the directive is inside a declaration.

    Fixes rdar://11548788 & http://llvm.org/PR12970

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169949 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7533ebaec7bd63319a49dc980dcd49dbf7673702
Author: Richard Trieu <rtrieu@google.com>
Date:   Wed Dec 12 00:52:15 2012 +0000

    Fix line ending is tests.  No functional change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169947 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0faaa164282406f07328dad27d02f5d04334c829
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Wed Dec 12 00:51:38 2012 +0000

    clang/test: Suppress two tests on win32 for now, since, not sure, in r169829 to r169831.

    "ansi-escape-sequences" is easy convenient to exclude win32. Please be patient.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169945 91177308-0d34-0410-b5e6-96231b3b80d8

commit f19b5c0aa0242663a273e52d7079be35cf7e6c91
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Dec 11 22:31:46 2012 +0000

    Try to fix Win32 failures

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169923 91177308-0d34-0410-b5e6-96231b3b80d8

commit 299c22f806d0127b58f5cc53ce4ac14ccb21b209
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Dec 11 22:25:26 2012 +0000

    Don't use 'touch' in this test; it may be the cause of Windows-related failures.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169922 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1b257afbae854c6817f26b7d61c4fed8ff7aebad
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Dec 11 22:11:52 2012 +0000

    Use @import rather than @__experimental_modules_import, since the
    latter is rather a mess to type.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169919 91177308-0d34-0410-b5e6-96231b3b80d8

commit bd5da3ca593fbf354fd19c2894eee50694c96788
Author: Guy Benyei <guy.benyei@intel.com>
Date:   Tue Dec 11 21:38:14 2012 +0000

    Add SPIR32/SPIR64 targets to Clang

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169917 91177308-0d34-0410-b5e6-96231b3b80d8

commit 443c999c967d555f6942834b0924c60226b3e6f2
Author: Hal Finkel <hfinkel@anl.gov>
Date:   Tue Dec 11 19:59:32 2012 +0000

    Add -fslp-vectorize to enable bb-vectorize

    Add -fslp-vectorize (with -ftree-slp-vectorize as an alias for gcc compatibility)
    to provide a way to enable the basic-block vectorization pass. This uses the same
    acronym as gcc, superword-level parallelism (SLP), also common in the literature,
    to refer to basic-block vectorization.

    Nadav suggested this as a follow-up to the adding of -fvectorize.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169909 91177308-0d34-0410-b5e6-96231b3b80d8

commit 34db84fdb092f89ea3678a0792074a5b9253829a
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Dec 11 19:58:01 2012 +0000

    objective-C blocks: Check for record type when deciding if
    byref variable requires extended layout info. to prevent
    a crash involving arrays declared __block. // rdar://12787751

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169908 91177308-0d34-0410-b5e6-96231b3b80d8

commit 86f6cf6800fa7ea3669e057c56f3487c4da3ef46
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Dec 11 18:53:07 2012 +0000

    Don't complain about incomplete implementations for methods that are
    unavailable due to availability attributes. <rdar://problem/12798237>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169903 91177308-0d34-0410-b5e6-96231b3b80d8

commit a07b59e5e9b55033239c80552094421a01b75c8a
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Tue Dec 11 18:00:22 2012 +0000

    Speed up looking up static diagnostic infos.

    Instead of doing a binary search over the whole diagnostic table (which weighs
    a whopping 48k on x86_64), use the existing enums to compute the index in the
    table. This avoids loading any unneeded data from the table and avoids littering
    CPU caches with it. This code is in a hot path for code with many diagnostics.

    1% speedup on -fsyntax-only gcc.c, which emits a lot of warnings.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169890 91177308-0d34-0410-b5e6-96231b3b80d8

commit 10b5fa283359bd423f8624c4dda11899bcc8ca9c
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Dec 11 17:46:33 2012 +0000

    [driver] Add the -ftree-vectorize flag as a alias of -fvectorize to maintain
    compatibility with gcc.
    rdar://12839978

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169888 91177308-0d34-0410-b5e6-96231b3b80d8

commit 379ffe444f0a98f16f96470e0983bad50f282bc7
Author: Matt Beaumont-Gay <matthewbg@google.com>
Date:   Tue Dec 11 17:37:46 2012 +0000

    Fix a copypasto bug. Also rename the parameter in question to not shadow the
    'file' builtin, and fix up a docstring a little.

    Hat tip to Sebastian Kreft Carreno at Google for noticing the bug.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169887 91177308-0d34-0410-b5e6-96231b3b80d8

commit c04d0934dfc78038ec1c073d9215750bd6a39c76
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Dec 11 17:12:28 2012 +0000

    [driver] Add the -fvectorize flag to enable the loop vectorization passes.
    rdar://12839978

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169885 91177308-0d34-0410-b5e6-96231b3b80d8

commit 21c8b19a28f0140261a53f0cc006c8d55a433665
Author: Alexander Kornienko <alexfh@google.com>
Date:   Tue Dec 11 15:28:09 2012 +0000

    StmtDumper coding style changes

    Summary:
    A few small coding style changes for StmtDumper, including:
    - rename Dump* methods to dump*
    - uninline some methods
    - comment fixes
    - whitespace fixes

    Please review and commit if okay.

    Reviewers: alexfh

    Reviewed By: alexfh

    CC: cfe-commits, alexfh, klimek

    Differential Revision: http://llvm-reviews.chandlerc.com/D190

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169866 91177308-0d34-0410-b5e6-96231b3b80d8

commit d5bc359971fe9e3d78a44e9b25a909f01f3018ec
Author: Alexander Kornienko <alexfh@google.com>
Date:   Tue Dec 11 15:20:44 2012 +0000

    Rename StmtDumper::DumpSubTree() to dumpStmt()

    Summary:
    Also rename DumpDeclarator() to dumpDecl(). Once Decl dumping is added, these will be the two main methods of the class, so this is just for consistency in naming.

    There was a DumpStmt() method already, but there was no point in having it, so I have merged it into VisitStmt(). Similarly, DumpExpr() is merged into VisitExpr().

    Reviewers: alexfh

    Reviewed By: alexfh

    CC: cfe-commits, alexfh

    Differential Revision: http://llvm-reviews.chandlerc.com/D156

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169865 91177308-0d34-0410-b5e6-96231b3b80d8

commit e5d30e3b403539b10aaa52f03875a2243bf88904
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Dec 11 07:48:23 2012 +0000

    Extend stat query APIs to explicitly specify if the query is for
    a file or directory, allowing just a stat call if a file descriptor
    is not needed.

    Doing just 'stat' is faster than 'open/fstat/close'.
    This has the effect of cutting down system time for validating the input files of a PCH.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169831 91177308-0d34-0410-b5e6-96231b3b80d8

commit f64d25c633fc093528177c2e0fdd096d2f8706d2
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Dec 11 07:48:14 2012 +0000

    [PCH] Remove redundant stat call when validating the input files.

    This became redundant after we removed the stat cache.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169830 91177308-0d34-0410-b5e6-96231b3b80d8

commit a89b618a04409c93b3b3c56d606a97a317567436
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Dec 11 07:48:08 2012 +0000

    [PCH] When writing out the list of input files, avoid emitting duplicate
    entries of the same file.

    This can happen because the file was "included" multiple times and is
    referenced by multiple SLocEntries.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169829 91177308-0d34-0410-b5e6-96231b3b80d8

commit acb2b8dd66dd370fa70a02e84366ef52f909ed83
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Dec 11 07:23:52 2012 +0000

    clang/test/Driver/linker-opts.c: Fix XFAIL that I removed win32.

    Sorry for my 3rd commit :(

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169827 91177308-0d34-0410-b5e6-96231b3b80d8

commit cfe7c28e18d8ae8ed22c9504967e5b163f8eaf23
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Dec 11 07:16:15 2012 +0000

    clang/test/Driver/debug-options-as.c: Fixup not to use prefix=S. I didn't know "REQUIRES:" would match --check-prefix=S ...

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169826 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5e4ccb4d19e0f62c5f9ddb506297e86e3f2fc21c
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Dec 11 07:06:09 2012 +0000

    clang/test/Driver: Introduce the feature "clang-driver", set if gcc driver is not used.

    It is not set at targetting cygming. See PR12920.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169824 91177308-0d34-0410-b5e6-96231b3b80d8

commit 007c44ccbd048472469514284697f23a58475f35
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Dec 11 05:53:24 2012 +0000

    BackendUtil.cpp: Add #include "llvm/TargetTransformInfo.h"

    llvm/Target/TargetMachine.h will not provide "llvm/TargetTransformInfo.h" any more.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169816 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0aeb40f69be984e90678b7ab6e3563545cc57f37
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Dec 11 05:52:24 2012 +0000

    Add tests for a corner case of when to relax all instructions:

    We don't want to relax all instructions in

    $ clang -c test.s

    since most users don't pass -O when using the driver to assemble.

    On the other hand, -save-temps should not change the output unnecessary, so in

    $ clang -c test.c -save-temps

    we should relax all instructions.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169815 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1d28caf3b5254e60d3e3a1d2d37e5df2e5924111
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Dec 11 01:14:52 2012 +0000

    PR14558: Compute triviality of special members (etc) at the end of the class
    definition, rather than at the end of the definition of the set of nested
    classes. We still defer checking of the user-specified exception specification
    to the end of the nesting -- we can't check that until we've parsed the
    in-class initializers for non-static data members.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169805 91177308-0d34-0410-b5e6-96231b3b80d8

commit c2cca2361aeafdf9170de2695b17d8bcd1c6f7db
Author: Anna Zaks <ganna@apple.com>
Date:   Tue Dec 11 00:17:53 2012 +0000

    [analyzer] Don't generate a summary for "freeWhenDone" if method is
    inlined.

    Fixes a false positive that occurs if a user writes their own
    initWithBytesNoCopy:freeWhenDone wrapper.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169795 91177308-0d34-0410-b5e6-96231b3b80d8

commit 39450d0469e0d5589ad39fd0b20b5742750619a0
Author: Bill Wendling <isanbard@gmail.com>
Date:   Mon Dec 10 22:10:53 2012 +0000

    Remove until I can fix this.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169778 91177308-0d34-0410-b5e6-96231b3b80d8

commit d56f40341374ba5970283a15f27fb1999965967a
Author: Bill Wendling <isanbard@gmail.com>
Date:   Mon Dec 10 21:48:41 2012 +0000

    Add support to Darwin for the -export_dynamic' flag to the linker.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169775 91177308-0d34-0410-b5e6-96231b3b80d8

commit 41bde8c2fb193aaa8ebefe7d42b32fb0e12626e9
Author: Bill Wendling <isanbard@gmail.com>
Date:   Mon Dec 10 21:15:22 2012 +0000

    Use correct flags for this test.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169768 91177308-0d34-0410-b5e6-96231b3b80d8

commit 26df84a187e2757a41ca1478d26c8cd826232753
Author: Chad Rosier <mcrosier@apple.com>
Date:   Mon Dec 10 20:16:17 2012 +0000

    Fixup test case from r169755.  These are driver options, not frontend options.
    Also, add the -S option.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169763 91177308-0d34-0410-b5e6-96231b3b80d8

commit 44dfff681fdca5325bc684c46971efad1f3fedfd
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Mon Dec 10 20:08:37 2012 +0000

    Return true from HeaderSearch::isFileMultipleIncludeGuarded if the file
    was #import'ed.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169761 91177308-0d34-0410-b5e6-96231b3b80d8

commit 44f4a2d8a95e7f12c61530a9b57854be009aef38
Author: Bill Wendling <isanbard@gmail.com>
Date:   Mon Dec 10 19:47:53 2012 +0000

    Specify if `-mno-red-zone' was used when creating the GCOV instrucmentation pass.

    This prevents the functions generated by that pass from using the red zone.
    <rdar://problem/12843084>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169755 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8b39c6693aadd30f77ac039de69130c22e066994
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Dec 10 18:59:13 2012 +0000

    Addi formatting tests for pointer template parameters.

    Fix spacing before ",".

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169746 91177308-0d34-0410-b5e6-96231b3b80d8

commit 23add332da632c3cee7638b9d72b4ba8df67541c
Author: Michael Ilseman <milseman@apple.com>
Date:   Mon Dec 10 18:48:08 2012 +0000

    Remove unneeded typedef and volatile

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169743 91177308-0d34-0410-b5e6-96231b3b80d8

commit 56e49c5cc2b05e805c7aa9dc53672711e540d58b
Author: Alexander Kornienko <alexfh@google.com>
Date:   Mon Dec 10 16:34:48 2012 +0000

    Clang-format: error recovery for access specifiers

    Reviewers: klimek

    Reviewed By: klimek

    CC: cfe-commits

    Differential Revision: http://llvm-reviews.chandlerc.com/D198

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169738 91177308-0d34-0410-b5e6-96231b3b80d8

commit 31bdf071afc18bb9551e4f4254be297333200c4a
Author: Manuel Klimek <klimek@google.com>
Date:   Mon Dec 10 16:13:06 2012 +0000

    Clarifying comments for the MatchFinder and matchesNames matcher.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169737 91177308-0d34-0410-b5e6-96231b3b80d8

commit ec33b6f64480df41a6add1f112c7321ba96de378
Author: Manuel Klimek <klimek@google.com>
Date:   Mon Dec 10 07:08:53 2012 +0000

    Adding tests since when I was asked whether this works I wasn't
    100% sure.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169725 91177308-0d34-0410-b5e6-96231b3b80d8

commit 29573b0a825b888c233d7859a257e866ffc5276e
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sun Dec 9 21:58:24 2012 +0000

    Unbreak the clang build after r169712.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169713 91177308-0d34-0410-b5e6-96231b3b80d8

commit fff3248e69c478cfb4d1a1ffdefb808d5885535b
Author: Aaron Ballman <aaron@aaronballman.com>
Date:   Sun Dec 9 17:45:41 2012 +0000

    Virtual method overrides can no longer have mismatched calling conventions.  This fixes PR14339.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169705 91177308-0d34-0410-b5e6-96231b3b80d8

commit baab683a5a95fff67439dd069e004487a2c1bc8c
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Sun Dec 9 10:39:18 2012 +0000

    Add a triple to this test. It depends on little-endian bitfield layout.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169696 91177308-0d34-0410-b5e6-96231b3b80d8

commit b50d7a35c2f55be382d462a02fd4e21d6b582162
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Sun Dec 9 10:33:27 2012 +0000

    Cleanup and fix an assert that was mis-firing.

    Note that there is no test suite update. This was found by a couple of
    tests failing when the test suite was run on a powerpc64 host (thanks
    Roman!). The tests don't specify a triple, which might seem surprising
    for a codegen test. But in fact, these tests don't even inspect their
    output. Not at all. I could add a bunch of triples to these tests so
    that we'd get the test coverage for normal builds, but really someone
    needs to go through and add actual *tests* to these tests. =[ The ones
    in question are:

      test/CodeGen/bitfield-init.c
      test/CodeGen/union.c

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169694 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5588a6903eb644e51c5e9b77939de16c61894fa8
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Sun Dec 9 10:08:22 2012 +0000

    Add a test case that I've been using to clarify the bitfield layout for
    both LE and BE targets.

    AFAICT, Clang get's this correct for PPC64. I've compared it to GCC 4.8
    output for PPC64 (thanks Roman!) and to my limited ability to read power
    assembly, it looks functionally equivalent. It would be really good to
    fill in the assertions on this test case for x86-32, PPC32, ARM, etc.,
    but I've reached the limit of my time and energy... Hopefully other
    folks can chip in as it would be good to have this in place to test any
    subsequent changes.

    To those who care about PPC64 performance, a side note: there is some
    *obnoxiously* bad code generated for these test cases. It would be worth
    someone's time to sit down and teach the PPC backend to pattern match
    these IR constructs better. It appears that things like '(shr %foo,
    <imm>)' turn into 'rldicl R, R, 64-<imm>, <imm>' or some such. They
    don't even get combined with other 'rldicl' instructions *immediately
    adjacent*. I'll add a couple of these patterns to the README, but
    I think it would be better to look at all the patterns produced by this
    and other bitfield access code, and systematically build up a collection
    of patterns that efficiently reduce them to the minimal code.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169693 91177308-0d34-0410-b5e6-96231b3b80d8

commit ef8d516e7e015a905ca72ce99590803ca7c7e8f3
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Sun Dec 9 07:26:04 2012 +0000

    Fix the bitfield record layout in codegen for big endian targets.

    This was an egregious bug due to the several iterations of refactorings
    that took place. Size no longer meant what it original did by the time
    I finished, but this line of code never got updated. Unfortunately we
    had essentially zero tests for this in the regression test suite. =[

    I've added a PPC64 run over the bitfield test case I've been primarily
    using. I'm still looking at adding more tests and making sure this is
    the *correct* bitfield access code on PPC64 linux, but it looks pretty
    close to me, and it is *worlds* better than before this patch as it no
    longer asserts! =] More commits to follow with at least additional tests
    and maybe more fixes.

    Sorry for the long breakage due to this....

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169691 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2801d9afa1fabbc99b7c1ad9f2f3df0e0b24adb1
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sun Dec 9 06:48:56 2012 +0000

    Fix overload resolution for the initialization of a multi-dimensional
    array from a braced-init-list. There seems to be a core wording wart
    here (it suggests we should be testing whether the elements of the init
    list are implicitly convertible to the array element type, not whether
    there is an implicit conversion sequence) but our prior behavior appears
    to be a bug, not a deliberate effort to implement the standard as written.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169690 91177308-0d34-0410-b5e6-96231b3b80d8

commit afee0ff915b87f92e8c07c72d31c3165aacf6fa8
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sun Dec 9 05:55:43 2012 +0000

    PR14550: If a system header contains a bogus constexpr function definition,
    don't mark the function as invalid, since we suppress the error.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169689 91177308-0d34-0410-b5e6-96231b3b80d8

commit 569cdc82c1a99fe1e950a1ddbe5ff82df0b13f3d
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sun Dec 9 04:17:57 2012 +0000

    PR14549. Don't assert if we see an incomplete decltype specifier at the end of the file.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169688 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0f584640dce8f9d10e802b1e323a594f7850a465
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sat Dec 8 12:42:30 2012 +0000

    Escape % in the TextDiagnosticBuffer so they aren't interpreted twice when fed into the diagnostic formatting machinery again.

    Fixes PR14543.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169677 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6e399b42b5356d8ee59eb5dc4da8c89a0d0b7ae1
Author: David Chisnall <csdavec@swan.ac.uk>
Date:   Sat Dec 8 09:06:08 2012 +0000

    long double should be 64 bits on FreeBSD/MIPS64.  It possibly should be on
    Linux too, as I think we inherited it from there.  The ABI spec says 128-bit,
    although I think SGI's compiler on IRIX may be the only thing ever to support
    this.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169674 91177308-0d34-0410-b5e6-96231b3b80d8

commit bc2a35d5ff492107dab5bdb7682f0da2f4a88861
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sat Dec 8 08:32:28 2012 +0000

    Finish implementing 'selected constructor' rules for triviality in C++11. In
    the cases where we can't determine whether special members would be trivial
    while building the class, we eagerly declare those special members. The impact
    of this is bounded, since it does not trigger implicit declarations of special
    members in classes which merely *use* those classes.

    In order to determine whether we need to apply this rule, we also need to
    eagerly declare move operations and destructors in cases where they might be
    deleted. If a move operation were supposed to be deleted, it would instead
    be suppressed, and we could need overload resolution to determine if we fall
    back to a trivial copy operation. If a destructor were implicitly deleted,
    it would cause the move constructor of any derived classes to be suppressed.

    As discussed on cxx-abi-dev, C++11's selected constructor rules are also
    retroactively applied as a defect resolution in C++03 mode, in order to
    identify that class B has a non-trivial copy constructor (since it calls
    A's constructor template, not A's copy constructor):

    struct A { template<typename T> A(T &); };
    struct B { mutable A a; };

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169673 91177308-0d34-0410-b5e6-96231b3b80d8

commit 55798658f879915992ed0ebe30b0b63fd570ff1b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sat Dec 8 04:10:18 2012 +0000

    Remove some remnants of the assumption that there is at most one of each
    flavour of special member.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169670 91177308-0d34-0410-b5e6-96231b3b80d8

commit 93699d23cd07c021eac2e26f8e32b58276bfa912
Author: DeLesley Hutchins <delesley@google.com>
Date:   Sat Dec 8 03:46:30 2012 +0000

    Thread-safety analysis: check member access on guarded non-primitive types.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169669 91177308-0d34-0410-b5e6-96231b3b80d8

commit ac71351acdefc9de0c770c1d717e621ac9e684bf
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sat Dec 8 02:53:02 2012 +0000

    Properly compute triviality for explicitly-defaulted or deleted special members.
    Remove pre-standard restriction on explicitly-defaulted copy constructors with
    'incorrect' parameter types, and instead just make those special members
    non-trivial as the standard requires.

    This required making CXXRecordDecl correctly handle classes which have both a
    trivial and a non-trivial special member of the same kind.

    This also fixes PR13217 by reimplementing DiagnoseNontrivial in terms of the
    new triviality computation technology.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169667 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5f5250b140544436eb3c2fbd9f43e14019ef01f2
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Sat Dec 8 02:21:17 2012 +0000

    [libclang] Resolve a cursor that points to a macro name inside a #ifdef/#ifndef
    directive as a macro expansion.

    This is more of a "macro reference" than a macro expansion but it's close enough
    for libclang's purposes. If it causes issues we can revisit and introduce a new
    kind of cursor.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169666 91177308-0d34-0410-b5e6-96231b3b80d8

commit 61c1c8ee3fa1bd1f4866d246c72af854be834634
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Sat Dec 8 02:21:11 2012 +0000

    [Preprocessor] Enhance Ifdef/Ifndef/Defined preprocessor callbacks to also pass
    a MacroInfo object if the identifier was a macro name.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169665 91177308-0d34-0410-b5e6-96231b3b80d8

commit d5be2b5483757631cad00511b43ed7003defbfd9
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sat Dec 8 02:13:02 2012 +0000

    Add a FIXME.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169664 91177308-0d34-0410-b5e6-96231b3b80d8

commit d5bc867f6597ee8d4eb31ea217934e436fc7c7e3
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sat Dec 8 02:01:17 2012 +0000

    Implement C++03 [dcl.init]p5's checking for value-initialization of references
    properly, rather than faking it up by pretending that a reference member makes
    the default constructor non-trivial. That leads to rejects-valids when putting
    such types inside unions.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169662 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0ee69cc6d4fc547671303afbd715cb990e5c3af6
Author: Eli Bendersky <eliben@google.com>
Date:   Sat Dec 8 00:07:24 2012 +0000

    Currently when AST record layouts are dumped with -fdump-record-layouts, the
    following:

    sizeof=132, dsize=132, align=4
    nvsize=132, nvalign=4

    Is not indented, so when classes are nested there is no way to know to
    which class it belongs.

    Fix this problem by indenting the size summary properly for each class.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169654 91177308-0d34-0410-b5e6-96231b3b80d8

commit 785b778203a474c6e4b9e17ae91cd2a358868877
Author: Bill Wendling <isanbard@gmail.com>
Date:   Fri Dec 7 23:17:26 2012 +0000

    s/AttrListPtr/AttributeSet/g to better label what this class is going to be in the near future.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169652 91177308-0d34-0410-b5e6-96231b3b80d8

commit 12f37e411462b8388eb1309357bd62257debacac
Author: DeLesley Hutchins <delesley@google.com>
Date:   Fri Dec 7 22:53:48 2012 +0000

    Fix analysis based warnings so that all warnings are emitted when compiling
    with -Werror.  Previously, compiling with -Werror would emit only the first
    warning in a compilation unit, because clang assumes that once an error occurs,
    further analysis is unlikely to return valid results.  However, warnings that
    have been upgraded to errors should not be treated as "errors" in this sense.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169649 91177308-0d34-0410-b5e6-96231b3b80d8

commit 422daa1b838788c3ef564640f9d91f52d7deffbe
Author: Matt Beaumont-Gay <matthewbg@google.com>
Date:   Fri Dec 7 22:49:27 2012 +0000

    Appease -Wnon-virtual-dtor

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169648 91177308-0d34-0410-b5e6-96231b3b80d8

commit e1c2c2023ee160bd3051682faff04c4f9c5e8ebd
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Dec 7 22:41:46 2012 +0000

    [libclang] Declarations inside anonymous namespaces have internal linkage so
    their USR should contain a location.

    This uniques them from other declarations with the same name but in different translation units.
    rdar://10546541

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169647 91177308-0d34-0410-b5e6-96231b3b80d8

commit 60c4612d70229d1d079deaec62c7c8613070fbff
Author: Anna Zaks <ganna@apple.com>
Date:   Fri Dec 7 21:51:50 2012 +0000

    [analyzer] Rename the option help to reflect better what it does.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169640 91177308-0d34-0410-b5e6-96231b3b80d8

commit 75f31c4862643ab09479c979fabf754e7ffe1460
Author: Anna Zaks <ganna@apple.com>
Date:   Fri Dec 7 21:51:47 2012 +0000

    [analyzer] Optimization heuristic: do not reanalyze every ObjC method as
    top level.

    This heuristic is already turned on for non-ObjC methods
    (inlining-mode=noredundancy). If a method has been previously analyzed,
    while being inlined inside of another method, do not reanalyze it as top
    level.

    This commit applies it to ObjCMethods as well. The main caveat here is
    that to catch the retain release errors, we are still going to reanalyze
    all the ObjC methods but without inlining turned on.

    Gives 21% performance increase on one heavy ObjC benchmark, which
    suffered large performance regressions due to ObjC inlining.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169639 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8784b03d35ff99d1851ef63bc3cccb651c7672d9
Author: Daniel Jasper <djasper@google.com>
Date:   Fri Dec 7 20:34:49 2012 +0000

    AST matcher tutorial (Part I)

    This an AST matcher tutorial based on Sam Panzer's document
    (https://docs.google.com/a/google.com/document/d/1oTkVLhCdRJUEH1_LDaQdXqe8-aOqT5GLDL9e4MhoFF8/edit).

    Checking in now although some parts might be a bit rough so others can
    help improving it.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169632 91177308-0d34-0410-b5e6-96231b3b80d8

commit afa7cae15b117c4b75794c6c32424953d94b4359
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Dec 7 19:56:29 2012 +0000

    [analyzer] Fix r168019 to work with unpruned paths as well.

    This is the case where the analyzer tries to print out source locations
    for code within a synthesized function body, which of course does not have
    a valid source location. The previous fix attempted to do this during
    diagnostic path pruning, but some diagnostics have pruning disabled, and
    so any diagnostic with a path that goes through a synthesized body will
    either hit an assertion or emit invalid output.

    <rdar://problem/12657843> (again)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169631 91177308-0d34-0410-b5e6-96231b3b80d8

commit 18f860ee6cc43c8fc80834073b097eb5c02b22cf
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Dec 7 19:54:25 2012 +0000

    Reduce conversions between Store <-> ImmutableMapRef in RegionStore.

    This reduces canonicalization of ImmutableMaps.  This reduces analysis time
    of one heavy Objective-C file by another 1%.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169630 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0c312a90c5b9d27e1425bf8d0448e133a97806ce
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Dec 7 18:32:08 2012 +0000

    Add helper method to convert from a RegionStoreRefBindings to a Store.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169622 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3d8d4223813506df2f1b71cbb2f4a175faf85e6a
Author: Matthew Curtis <mcurtis@codeaurora.org>
Date:   Fri Dec 7 17:23:04 2012 +0000

    Hexagon TC: forward appropriate args to assembler

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169611 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2a907f8735cee8ae145ffded6d8dfb1e8cf29b28
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Dec 7 17:13:18 2012 +0000

    Driver/ToolChains.cpp: Add the name CentOS5 32bit gcc44 (aka i386-redhat-linux6E).

    Thanks to Bruce Stephens.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169610 91177308-0d34-0410-b5e6-96231b3b80d8

commit 469a21b14c8d00001ad30a925020ee5a81c9b8b5
Author: Alexander Kornienko <alexfh@google.com>
Date:   Fri Dec 7 16:15:44 2012 +0000

    Clang-format: extracted FormatTokenSource from UnwrappedLineParser.

    Summary: FormatTokenLexer is here, FormatTokenBuffer is on the way. This will allow to re-parse unwrapped lines when needed.

    Reviewers: djasper, klimek

    Reviewed By: klimek

    CC: cfe-commits

    Differential Revision: http://llvm-reviews.chandlerc.com/D186

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169605 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1dbaef5fe123c588ed6c995dd0a0b79c285433ae
Author: Matthew Curtis <mcurtis@codeaurora.org>
Date:   Fri Dec 7 13:52:44 2012 +0000

    Hexagon TC: add cc1 defaults for hexagon-gcc
     compatibility

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169599 91177308-0d34-0410-b5e6-96231b3b80d8

commit c74e2794bebaab41213f23b27c09c21cb1e1f81b
Author: Daniel Jasper <djasper@google.com>
Date:   Fri Dec 7 09:52:15 2012 +0000

    Small tweaks to clang-format.

    Now not joining keywords with '::' and not putting a space between
    a pointer pointer.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169594 91177308-0d34-0410-b5e6-96231b3b80d8

commit bf25fb1e2eaea0eadb90d1a9ce91e7d510c8972a
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Dec 7 07:30:19 2012 +0000

    Cache queries to lookupPrivateMethod() within ObjCMethodCall::getRuntimeDefinition().

    The same queries can happen thousands of times.  This reduces the analysis
    time on one heavy Objective-C file by 2.4%.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169589 91177308-0d34-0410-b5e6-96231b3b80d8

commit e56bb36e8eea89bae7dfe6eb6ea0455af126bf4a
Author: John McCall <rjmccall@apple.com>
Date:   Fri Dec 7 07:03:17 2012 +0000

    Fix the required args count for variadic blocks.

    We were emitting calls to blocks as if all arguments were
    required --- i.e. with signature (A,B,C,D,...) rather than
    (A,B,...).  This patch fixes that and accounts for the
    implicit block-context argument as a required argument.
    In addition, this patch changes the function type under which
    we call unprototyped functions on platforms like x86-64 that
    guarantee compatibility of variadic functions with unprototyped
    function types;  previously we would always call such functions
    under the LLVM type T (...)*, but now we will call them under
    the type T (A,B,C,D,...)*.  This last change should have no
    material effect except for making the type conventions more
    explicit;  it was a side-effect of the most convenient implementation.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169588 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8fda1ab0fbfeac24489906d0bd6714c337f66e0f
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Dec 7 06:57:40 2012 +0000

    clang/test: Remove "REQUIRES:LP64" in two tests. Each of them have explicit triple.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169587 91177308-0d34-0410-b5e6-96231b3b80d8

commit 23dca7d88f3e9a7925bfb2c5449499900c906633
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Dec 7 06:49:27 2012 +0000

    Further reduce analysis time by 0.2% on a heavy Objective-C example by avoiding over-eager canonicalization of clusters.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169586 91177308-0d34-0410-b5e6-96231b3b80d8

commit 75191fdbc3d3eec5f3447b285acf6cfcc2054b25
Author: David Blaikie <dblaikie@gmail.com>
Date:   Fri Dec 7 03:28:20 2012 +0000

    Unbreak the GCC (4.4 & other bot) builds from r169571.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169581 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6492c799b0135006ed7bea37a190bb03aedb3b9c
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Dec 7 02:26:01 2012 +0000

    Add file missed from r169574!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169576 91177308-0d34-0410-b5e6-96231b3b80d8

commit 504643934a1cb2f9d0c22b4895c777d8aa4c5139
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Dec 7 02:10:28 2012 +0000

    Per [dcl.fct.def.default]p1, don't allow variadic special members to be defaulted.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169574 91177308-0d34-0410-b5e6-96231b3b80d8

commit 29f5ccd7ef9bc066cb5894834945eaad2c4c7e53
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Dec 7 01:55:21 2012 +0000

    Change RegionStore to always use ImmutableMapRef for processing cluster bindings.

    This reduces analysis time by 1.2% on one test case (Objective-C), but
    also cleans up some of the code conceptually as well.  We can possible
    just make RegionBindingsRef -> RegionBindings, but I wanted to stage
    things.

    After this, we should revisit Jordan's optimization of not canonicalizing
    the immutable AVL trees for the cluster bindings as well.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169571 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5204d9e2fe0ea4e4b9c85087e355021c93221764
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Dec 7 01:54:38 2012 +0000

    [analyzer] Remove possible pessimizations from r169563.

    Thanks for reminding me about copy-elision, David. Passing references here
    doesn't help when we could get move construction in C++11. If we really
    cared, we'd use std::swap to steal the reference from the temporary arg,
    but it's probably not /that/ critical outside of Profile anyway.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169570 91177308-0d34-0410-b5e6-96231b3b80d8

commit de780d44244c93fbce059262ccebc8bae692f9ca
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Dec 7 00:05:36 2012 +0000

    test/Index/skip-parsed-bodies/compile_commands.json: Remove XFAIL on cygming.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169566 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0a6e09f67c719c318856be19d57e19972101f62c
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Dec 6 23:55:34 2012 +0000

    [analyzer] Avoid ProgramStateRef copy constructors.

    Suggested by David Blaikie. ExplodedNode, CallEvent, and CheckerContext all
    hang onto their ProgramState, so the accessors can return a reference to the
    internal state rather than preemptively copying it. This helps avoid
    temporary ProgramStateRefs, though local variables will still (correctly)
    do an extra retain and release.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169563 91177308-0d34-0410-b5e6-96231b3b80d8

commit c57d158c2900185d7828a92ca8db7b877ef1a621
Author: Logan Chien <tzuhsiang.chien@gmail.com>
Date:   Thu Dec 6 23:40:31 2012 +0000

    Revert r169557.  It seems that the test is too restricted
    and will break the build on buildbot.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169562 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2a06447fcd6bda9f1ee4eebbef1db0749d433881
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Thu Dec 6 23:04:24 2012 +0000

    [libclang] Add a test to make sure we skip bodies properly from "#pragma once" headers.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169558 91177308-0d34-0410-b5e6-96231b3b80d8

commit cd15652e632dea25ba5157dcef13963b7b0b79ea
Author: Logan Chien <tzuhsiang.chien@gmail.com>
Date:   Thu Dec 6 22:59:37 2012 +0000

    Add i686-linux-android for gcc toolchain detection.

    * Look for i686-linux-android under <sysroot>/lib/gcc.

    * This patch also slightly enhance the test suite for
      Android GCC toolchain detection.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169557 91177308-0d34-0410-b5e6-96231b3b80d8

commit 850532c7882e901623e482295d4d227f31ccf269
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Dec 6 22:40:09 2012 +0000

    Add extra truthiness.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169555 91177308-0d34-0410-b5e6-96231b3b80d8

commit c35fac11ecc1a55c5dd6ef1d10c2514bb274e3a1
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Dec 6 22:29:01 2012 +0000

    Fixes Makefile for Format unit tests.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169554 91177308-0d34-0410-b5e6-96231b3b80d8

commit 570514153b44515205454a7a77fd02a28d1c3f42
Author: Matthew Curtis <mcurtis@codeaurora.org>
Date:   Thu Dec 6 21:25:18 2012 +0000

    hexagon-toolchain.c now passes on win32

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169548 91177308-0d34-0410-b5e6-96231b3b80d8

commit 803ebf185a8554f7a6500a5e23ba61608a188caa
Author: Matthew Curtis <mcurtis@codeaurora.org>
Date:   Thu Dec 6 20:55:41 2012 +0000

    relax hexagon-toolchain.c even more to accomodate mingw32 targets

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169544 91177308-0d34-0410-b5e6-96231b3b80d8

commit a64d703a7df110f6385935dbe1c7aadd6896e274
Author: Matthew Curtis <mcurtis@codeaurora.org>
Date:   Thu Dec 6 20:21:20 2012 +0000

    relax hexagon-toolchain.c CHECK to accomodate mingw32 targets

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169543 91177308-0d34-0410-b5e6-96231b3b80d8

commit b283da20cb2ad5e386ae04e004fbe80576f508fb
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Thu Dec 6 20:12:03 2012 +0000

    Simplify PDiag's move assignment overload a bit, the self-move check isn't actually necessary.

    This just empties out the diag, which is fine.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169542 91177308-0d34-0410-b5e6-96231b3b80d8

commit fb4f3a2591782f8643f06724703d2e5b03af36d2
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Thu Dec 6 19:41:23 2012 +0000

    Make sure to initialize the HasSkippedBody bit.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169540 91177308-0d34-0410-b5e6-96231b3b80d8

commit 838eb7e8652e451d93494a4e583e4d11809bcb4a
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Thu Dec 6 19:41:16 2012 +0000

    [libclang] Introduce a new indexing mode where we skip function bodies
    that were already parsed in the same "indexing session".

    An indexing session is defined as using the same CXIndexAction object
    for multiple clang_indexSourceFile calls.
    Passing CXIndexOpt_SkipParsedBodiesInSession as an indexing option will
    enable the mode where we try to skip bodies that were already parsed in
    another translation unit.

    If a function's body was skipped, the "flags" field in the CXIdxDeclInfo
    structure will have "CXIdxDeclFlag_Skipped" bit was set.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169539 91177308-0d34-0410-b5e6-96231b3b80d8

commit 14491490a5276ff4da9b28100fb8e7d442944288
Author: Ted Kremenek <kremenek@apple.com>
Date:   Thu Dec 6 19:40:32 2012 +0000

    Revert "[analyzer] Aggressively cut back on the canonicalization in RegionStore."

    Jordan and I discussed this, and we are going to do this another way.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169538 91177308-0d34-0410-b5e6-96231b3b80d8

commit 407a82fb22acad58be27f096748e74c83a295c40
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Thu Dec 6 19:09:30 2012 +0000

    Add move semantics to PartialDiagnostic, which can be very expensive to copy.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169535 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2ab3b6d79434b57bb591dbb5493b3e400dae4eb8
Author: Matthew Curtis <mcurtis@codeaurora.org>
Date:   Thu Dec 6 19:03:09 2012 +0000

    Un-XFAIL hexagon-toolchain.c test for mingw32

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169533 91177308-0d34-0410-b5e6-96231b3b80d8

commit 35f3f36cb9451f347b83a6e7f01e3c702df4732d
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Thu Dec 6 18:59:10 2012 +0000

    Add a bit on FunctionDecl/ObjCMethodDecl to indicate if there was a body
    that was skipped by the parser.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169531 91177308-0d34-0410-b5e6-96231b3b80d8

commit c39f9fa39c472a6663111788b89c67fd365271d8
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Dec 6 18:58:29 2012 +0000

    [analyzer] Remove isa<> followed by dyn_cast<>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169530 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9428723d6730f4fd257e15b78d24991ae95bbd84
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Dec 6 18:58:26 2012 +0000

    [analyzer] Remove unused fields from ExprEngine.

    'currStmt', 'CleanedState', and 'EntryNode' were being set, but only ever
    used locally.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169529 91177308-0d34-0410-b5e6-96231b3b80d8

commit e9cd031c77a92015571425b6445e8867816997cd
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Dec 6 18:58:22 2012 +0000

    [analyzer] Remove checks that predate the linearized CFG.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169528 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4ee1c557c3ebddb8a9be8f6fb66605b971793820
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Dec 6 18:58:18 2012 +0000

    [analyzer] Simplify RetainCountChecker's handling of dead symbols.

    Previously we made three passes over the set of dead symbols, and removed
    them from the state /twice/. Now we combine the autorelease pass and the
    symbol death pass, and only have to remove the bindings for the symbols
    that leaked.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169527 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4ecca28e20410f5e2816c5ddff5cdeaf45fb74b5
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Dec 6 18:58:15 2012 +0000

    [analyzer] Use a smarter algorithm to find the last block in an inlined call.

    Previously we would search for the last statement, then back up to the
    entrance of the block that contained that statement. Now, while we're
    scanning for the statement, we just keep track of which blocks are being
    exited (in reverse order).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169526 91177308-0d34-0410-b5e6-96231b3b80d8

commit fbe4d36f1f83ca12b532e0a946cbffcdb54f904c
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Dec 6 18:58:12 2012 +0000

    [analyzer] Speed up ExplodedNode::Profile by avoiding copy constructors.

    ProgramStateRef::Retain isn't free!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169525 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6960d08b4ddf389d7c81504df7f16dc645120482
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Dec 6 18:58:09 2012 +0000

    [analyzer] Use optimized assumeDual for branches.

    This doesn't seem to make much of a difference in practice, but it does
    have the potential to avoid a trip through the constraint manager.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169524 91177308-0d34-0410-b5e6-96231b3b80d8

commit 426cc12317468d42ba4e603731ebe5971af098a6
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Dec 6 18:58:06 2012 +0000

    [analyzer] Aggressively cut back on the canonicalization in RegionStore.

    Whenever we touch a single bindings cluster multiple times, we can delay
    canonicalizing it until the final access. This has some interesting
    implications, in particular that we shouldn't remove an /empty/ cluster
    from the top-level map until canonicalization.

    This is good for a 2% speedup or so on the test case in
    <rdar://problem/12810842>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169523 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7affe151f5689b2d3547b8947c4099532c78a021
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Dec 6 18:58:01 2012 +0000

    [analyzer] Remove bindExprAndLocation, which does extra work for no gain.

    This feature was probably intended to improve diagnostics, but was currently
    only used when dumping the Environment. It shows what location a given value
    was loaded from, e.g. when evaluating an LValueToRValue cast.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169522 91177308-0d34-0410-b5e6-96231b3b80d8

commit 15757316d67cb7a854d53a0402d67ad58347600a
Author: Alexander Kornienko <alexfh@google.com>
Date:   Thu Dec 6 18:03:27 2012 +0000

    Clang-format: IndentCaseLabels option, proper namespace handling

    Summary: + tests arranged in groups, as their number is already quite large.

    Reviewers: djasper, klimek

    Reviewed By: djasper

    CC: cfe-commits

    Differential Revision: http://llvm-reviews.chandlerc.com/D185

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169520 91177308-0d34-0410-b5e6-96231b3b80d8

commit 762661a077ffa73580d556a9dd149830662d972e
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Dec 6 17:50:40 2012 +0000

    Fixes a typo in this test.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169519 91177308-0d34-0410-b5e6-96231b3b80d8

commit a3a2b3a1e86a93d2044106046a4dca13a3558fba
Author: Alexander Kornienko <alexfh@google.com>
Date:   Thu Dec 6 17:49:17 2012 +0000

    Clang-format: detect unbalanced braces.

    Reviewers: klimek, djasper

    Reviewed By: klimek

    CC: cfe-commits, silvas

    Differential Revision: http://llvm-reviews.chandlerc.com/D176

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169518 91177308-0d34-0410-b5e6-96231b3b80d8

commit 33c95f1178999ea06837769f90be8d7b8d57bb4d
Author: Matthew Curtis <mcurtis@codeaurora.org>
Date:   Thu Dec 6 17:49:03 2012 +0000

    Hexagon TC: Add/improve support for small data
     threshold, pic, pie

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169517 91177308-0d34-0410-b5e6-96231b3b80d8

commit c709c8adffdedde6d1b23f467f821339f92988e6
Author: Matthew Curtis <mcurtis@codeaurora.org>
Date:   Thu Dec 6 16:01:06 2012 +0000

    Fix hexagon-toolchain.c test to handle versioned clang executables.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169513 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5fdf350e39c6e260602dbbd709101a9bb55e75f1
Author: Matthew Curtis <mcurtis@codeaurora.org>
Date:   Thu Dec 6 15:46:07 2012 +0000

    Hexagon TC: Reimplement Link::ConstructJob to call
     linker directly

    Rather than calling gcc.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169512 91177308-0d34-0410-b5e6-96231b3b80d8

commit 42427409fd75a48381071e6da008a3c06897437a
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Thu Dec 6 15:42:21 2012 +0000

    Sema: Don't emit a warning when __func__ is used in a lambda outside of a function.

    Fixes PR14518.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169510 91177308-0d34-0410-b5e6-96231b3b80d8

commit 112aff155bae8fe11dce976dfd6e70285a769c3e
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Dec 6 14:42:56 2012 +0000

    test/Driver/hexagon-toolchain.c: Unbreak XPASS. Cygwin can be treated as unix-like system.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169509 91177308-0d34-0410-b5e6-96231b3b80d8

commit 30ace3715015b4a9bc5fa538a6515481abed40f9
Author: Manuel Klimek <klimek@google.com>
Date:   Thu Dec 6 14:42:48 2012 +0000

    Implements multiple parents in the parent map.

    Previously we would match the last visited parent, which in the
    case of template instantiations was the last instantiated template.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169508 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6781415fa6d98aed548e84a70f1cd3ec31bba7d3
Author: Matthew Curtis <mcurtis@codeaurora.org>
Date:   Thu Dec 6 14:16:43 2012 +0000

    Hexagon TC: Move getHexagonTargetCPU from Tools.cpp to
     ToolChains.cpp

    This is in anticipation of forthcoming library path changes.

    Also ...
    - Fixes some inconsistencies in how the arch is passed to tools.
    - Add test cases for various forms of arch flags

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169505 91177308-0d34-0410-b5e6-96231b3b80d8

commit d56a737842f28db4403430082c4d2686bc6cc3b3
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Dec 6 13:16:39 2012 +0000

    Improve clang-format's handling of unary operators.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169500 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4a29065eb189b6132b82c071f75af84799ede0e7
Author: Matthew Curtis <mcurtis@codeaurora.org>
Date:   Thu Dec 6 13:06:19 2012 +0000

    Disable hexagon toolchain test on windows targets

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169498 91177308-0d34-0410-b5e6-96231b3b80d8

commit b3489a0d355128f1cc96fdde2a6b11a8361d6740
Author: Matthew Curtis <mcurtis@codeaurora.org>
Date:   Thu Dec 6 12:43:18 2012 +0000

    Hexagon TC: Update toolchain to add appropriate include
     paths

    - Inherit from Linux rather than ToolChain
    - Override AddClangSystemIncludeArgs and AddClangCXXStdlibIncludeArgs
      to properly set include paths.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169495 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8fd7f67e243c075bdaa947aedbbc4d6b0568a365
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Dec 6 12:05:25 2012 +0000

    clang/test/CodeGen/2008-01-07-UnusualIntSize.c: Add triple x86_64. It doesn't assume 32-bit target, for now.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169492 91177308-0d34-0410-b5e6-96231b3b80d8

commit 72d2dab6058467036df73a5f668036a519043e5b
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Thu Dec 6 11:14:44 2012 +0000

    Rework the bitfield access IR generation to address PR13619 and
    generally support the C++11 memory model requirements for bitfield
    accesses by relying more heavily on LLVM's memory model.

    The primary change this introduces is to move from a manually aligned
    and strided access pattern across the bits of the bitfield to a much
    simpler lump access of all bits in the bitfield followed by math to
    extract the bits relevant for the particular field.

    This simplifies the code significantly, but relies on LLVM to
    intelligently lowering these integers.

    I have tested LLVM's lowering both synthetically and in benchmarks. The
    lowering appears to be functional, and there are no really significant
    performance regressions. Different code patterns accessing bitfields
    will vary in how this impacts them. The only real regressions I'm seeing
    are a few patterns where the LLVM code generation for loads that feed
    directly into a mask operation don't take advantage of the x86 ability
    to do a smaller load and a cheap zero-extension. This doesn't regress
    any benchmark in the nightly test suite on my box past the noise
    threshold, but my box is quite noisy. I'll be watching the LNT numbers,
    and will look into further improvements to the LLVM lowering as needed.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169489 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3b5943f535eca0e0b91f4bcda9d09c9c275cf855
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Dec 6 09:56:08 2012 +0000

    "<<" alignment for clang-format.

    Also, small fix for handling the first token correctly.

    Review: http://llvm-reviews.chandlerc.com/D177

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169488 91177308-0d34-0410-b5e6-96231b3b80d8

commit b929f6636c79565e9a34c0656a962f9b198c5e80
Author: Ted Kremenek <kremenek@apple.com>
Date:   Thu Dec 6 07:17:26 2012 +0000

    Use the BlockDecl captures list to infer the direct captures for a BlockDataRegion.  Fixes <rdar://problem/12415065>.

    We still need to do a recursive walk to determine all static/global variables
    referenced by a block, which is needed for region invalidation.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169481 91177308-0d34-0410-b5e6-96231b3b80d8

commit e3ce2c10c3f6ae7b26700d758de909deab190d42
Author: Ted Kremenek <kremenek@apple.com>
Date:   Thu Dec 6 07:17:20 2012 +0000

    Only provide explicit getCapturedRegion() and getOriginalRegion() from referenced_vars_iterator.

    This is a nice conceptual cleanup.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169480 91177308-0d34-0410-b5e6-96231b3b80d8

commit 24570c4c258545f8310e4bc96503a5668982cf67
Author: Ted Kremenek <kremenek@apple.com>
Date:   Thu Dec 6 07:17:13 2012 +0000

    Pull logic to map from VarDecl* to captured region using a helper function.  WIP.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169479 91177308-0d34-0410-b5e6-96231b3b80d8

commit e0c6c67d670588508da2d343193cfe2845bef7e0
Author: Ted Kremenek <kremenek@apple.com>
Date:   Thu Dec 6 07:17:04 2012 +0000

    Use 'getOriginalRegion()' rather than going through the logic to recreate it.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169478 91177308-0d34-0410-b5e6-96231b3b80d8

commit 030a6644f253818b81b4d8a7fc1770c0a3d35474
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Dec 6 06:44:44 2012 +0000

    Fix http://stackoverflow.com/questions/13521163

    Don't require that, during template deduction, a template specialization type
    as a function parameter has at least as many template arguments as one used in
    a function argument (not even if the argument has been resolved to an exact
    type); the additional parameters might be provided by default template
    arguments in the template. We don't need this check, since we now implement
    [temp.deduct.call]p4 with an additional check after deduction.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169475 91177308-0d34-0410-b5e6-96231b3b80d8

commit d5e839429771ad4d1a8b3db598cbbc6d93621f75
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Dec 6 03:04:50 2012 +0000

    Don't use dyn_cast on a Type* which might not be canonical. Fixes an extremely obscure record layout bug.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169467 91177308-0d34-0410-b5e6-96231b3b80d8

commit c213262e4a98fa16fd9acc099297f361fed0fda1
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Dec 6 01:09:31 2012 +0000

    Disable clang/test/Preprocessor/macro-multiline.c for now, while investigating lit.ShUtil.parser.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169458 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5c6ae4bd89dc374e47c570376db804be6c413efe
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Dec 6 00:57:28 2012 +0000

    more test of template declarations in a
    <declaration> XML tag. // rdar://12378714

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169457 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5e0ea1994be5b5b55fb8740548d7c7c151733b96
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Dec 6 00:09:40 2012 +0000

    More C++ testing of declarations embedded in
    <declaration> tag of Comment XML  and fixing
    DeclPrint of templates along the way - wip.
    //rdar://12378714

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169453 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4fb10d1c67fd9596998cf05016fa3a4ed6fd0fb3
Author: Chad Rosier <mcrosier@apple.com>
Date:   Wed Dec 5 23:35:10 2012 +0000

    [driver, ms-inline asm] -fms-compatibility enables -fms-extensions, so this should enable
    the AsmBlocks language extension as well.
    rdar://12808010

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169448 91177308-0d34-0410-b5e6-96231b3b80d8

commit e23fbf1fca9be5653ca706ccefc31d5e5a3a334d
Author: Chad Rosier <mcrosier@apple.com>
Date:   Wed Dec 5 23:08:09 2012 +0000

    [driver, ms-inline asm] Have -fms-extensions enable the AsmBlocks language
    option.  MS-style inline asm can now be enabled by either -fasm-blocks or
    -fms-extensions.
    rdar://12808010

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169445 91177308-0d34-0410-b5e6-96231b3b80d8

commit 95d8255917c6d84f35ecc6693e29d00ca121a238
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Dec 5 22:59:28 2012 +0000

    Looks like lit on Windows can't cope with parens here, and in any case, we shouldn't need them after r169441.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169442 91177308-0d34-0410-b5e6-96231b3b80d8

commit ddb2968ba69e14bafec765401d70f2477bc977f6
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Dec 5 22:53:06 2012 +0000

    In DeclPrint add printing of '= default'
    in constructors.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169440 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9867ebaac9efe9346fcdc3bc816c85a7a25c6bf2
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Dec 5 22:33:14 2012 +0000

    More workarounds for PR10867.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169437 91177308-0d34-0410-b5e6-96231b3b80d8

commit 65bcdabba34fddc303ab97f60dfea6079989306a
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Dec 5 22:19:06 2012 +0000

    In DeclPrint add printing of 'explicit'
    constructors.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169435 91177308-0d34-0410-b5e6-96231b3b80d8

commit ca952281611205fbc36d0516a595f9751e071d36
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Dec 5 22:18:04 2012 +0000

    Fix an egregiously broken test. This pattern doesn't work:

    RUN: a
    RUN: b || true

    lit expands it to a && b || true, and the || true applies to both commands (thus ignoring failures in 'a')! This is PR10867 again.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169434 91177308-0d34-0410-b5e6-96231b3b80d8

commit d10682f7d2944cafb4bc6555df5ab66cd24f8cd8
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Dec 5 21:53:37 2012 +0000

    [c-index-test] Introduce '-index-compile-db' which accepts a compilation database file
    and does an '-index-file' for all compile commands in the database.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169430 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5e45385ba764d657a88f3759b6f3e6a63e64034b
Author: Bill Wendling <isanbard@gmail.com>
Date:   Wed Dec 5 21:43:37 2012 +0000

    Fix name. The array is unboundED.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169429 91177308-0d34-0410-b5e6-96231b3b80d8

commit 15490fd42d7d8dca2f9b5b3a9dc074892ca1acd7
Author: Chad Rosier <mcrosier@apple.com>
Date:   Wed Dec 5 21:08:21 2012 +0000

    [driver, ms-inline asm] MS-Style inline assembly is controlled by the
    -fasm-blocks flag, not the -fms-extensions flag.
    rdar://12808010

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169422 91177308-0d34-0410-b5e6-96231b3b80d8

commit a3064c32d378d3a11f87945047c040276850ce4b
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Dec 5 20:10:11 2012 +0000

    fix comment.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169413 91177308-0d34-0410-b5e6-96231b3b80d8

commit 02a2e5a1dd0ad1b93f66040fc7aae6d69a918daf
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Dec 5 19:54:11 2012 +0000

    Testing C++ declarations embedded in
    <declaration> tag of Comment XML.
    Added DeclPrint support for constructors
    and fix tests accordingly.
    This is wip. // rdar://12378714

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169412 91177308-0d34-0410-b5e6-96231b3b80d8

commit e0c01963514ed158208cde1f3a0343a788156e27
Author: Chad Rosier <mcrosier@apple.com>
Date:   Wed Dec 5 19:52:05 2012 +0000

    [ms-inline asm] Add more tests.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169411 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2cd3440369d9241173e994485ddf2589a50a7d80
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Dec 5 18:44:49 2012 +0000

    Format strings: offer a cast to 'unichar' for %C in Objective-C contexts.

    For most cases where a conversion specifier doesn't match an argument,
    we usually guess that the conversion specifier is wrong. However, if
    the argument is an integer type and the specifier is %C, it's likely
    the user really did mean to print the integer as a character.

    (This is more common than %c because there is no way to specify a unichar
    literal -- you have to write an integer literal, such as '0x2603',
    and then cast it to unichar.)

    This does not change the behavior of %S, since there are fewer cases
    where printing a literal Unicode *string* is necessary, but this could
    easily be changed in the future.

    <rdar://problem/11982013>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169400 91177308-0d34-0410-b5e6-96231b3b80d8

commit 17ddc54b8b94c58286dec6f99ae1f9e12e30d297
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Dec 5 18:44:44 2012 +0000

    Format strings: add more expression types that don't need parens to cast.

    No functionality change (the test change is a comment only, and the new
    functionality can't be tested using the current test).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169399 91177308-0d34-0410-b5e6-96231b3b80d8

commit 448ac3e6d1f10264cea86c89cc14c266ba2da4a2
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Dec 5 18:44:40 2012 +0000

    Format strings: a character literal should be printed with %c, not %d.

    The type of a character literal is 'int' in C, but if the user writes a
    character /as/ a literal, we should assume they meant it to be a
    character and not a numeric value, and thus offer %c as a correction
    rather than %d.

    There's a special case for multi-character literals (like 'MooV'), which
    have implementation-defined value and usually cannot be printed with %c.
    These still use %d as the suggestion.

    In C++, the type of a character literal is 'char', and so this problem
    doesn't exist.

    <rdar://problem/12282316>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169398 91177308-0d34-0410-b5e6-96231b3b80d8

commit ff7be48165548c9c01492010609d166973607068
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Dec 5 18:44:37 2012 +0000

    Format strings: the correct conversion for 'char' is %c, not %d or %hhd.

    We tried to account for 'uint8_t' by saying that /typedefs/ of 'char'
    should be corrected as %hhd rather than %c, but the condition was wrong.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169397 91177308-0d34-0410-b5e6-96231b3b80d8

commit dfbb3197de8407a4209f328e4de1ae73bac70b8b
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Dec 5 16:24:48 2012 +0000

    Remove bad and useless enum to bool conversion.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169390 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2e97cfc78743fcaa988e3c45f7af1002063f780c
Author: Alexander Kornienko <alexfh@google.com>
Date:   Wed Dec 5 15:06:06 2012 +0000

    Clang-format: parse for and while loops

    Summary: Adds support for formatting for and while loops.

    Reviewers: djasper, klimek

    Reviewed By: klimek

    CC: cfe-commits

    Differential Revision: http://llvm-reviews.chandlerc.com/D174

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169387 91177308-0d34-0410-b5e6-96231b3b80d8

commit 33182dd0f7d5b5e913b1957c2cb6dc04942efd46
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Dec 5 14:57:28 2012 +0000

    Indentation fixes for clang-format.

    - Fix behavior of memoization together with optimization
    - Correctly attribute the PenaltyIndentLevel (breaking directly after "(" did
      not count towards the inner level)
    - Recognize more tokens as assignments

    Review: http://llvm-reviews.chandlerc.com/D172

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169384 91177308-0d34-0410-b5e6-96231b3b80d8

commit 720ffb644400661b927c6359aac5677dab036ed4
Author: Alexander Kornienko <alexfh@google.com>
Date:   Wed Dec 5 13:56:52 2012 +0000

    Follow-up to r169286, addresses comments in http://llvm-reviews.chandlerc.com/D164#comment-4 : comments and a method rename

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169382 91177308-0d34-0410-b5e6-96231b3b80d8

commit 99469f732efbd6600dfd0a70e0a36116a717dd06
Author: Evgeniy Stepanov <eugeni.stepanov@gmail.com>
Date:   Wed Dec 5 13:37:12 2012 +0000

    Reuse an existing diagnostic for tsan/msan needing -pie error.
    Add a diagnosting for -fsanitize=memory conflicting with other sanitizers.
    Extend tests.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169380 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ec98f26633ccbae8a8865f6fc6f08302f9eb518
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Wed Dec 5 11:52:45 2012 +0000

    test/Modules/build-fail-notes.m: Tweak to unbreak Win32 hosts to relax expressions, for now.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169375 91177308-0d34-0410-b5e6-96231b3b80d8

commit 37ec8d589c5de34d0e260f0599395519bd7498de
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Dec 5 11:34:06 2012 +0000

    In C++, if we hit an error in the class-head, don't try to parse the class body.
    Our error recovery path may have made the class anonymous, and that has a pretty
    disastrous impact on any attempt to parse a class body containing constructors.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169374 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5b10af7aa9e254a38d0a9f4d86caaccd61972124
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Dec 5 11:04:55 2012 +0000

    PR14049: Don't say "expanded from macro 'foo'" when 'foo' just happens to be
    the LHS of a token paste. Use "expanded from here" instead when we're not sure
    it's actually a macro.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169373 91177308-0d34-0410-b5e6-96231b3b80d8

commit 98cffc6b30dacd71434530fee368b1f7d03bd565
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Dec 5 09:47:49 2012 +0000

    Minor reorganization. No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169367 91177308-0d34-0410-b5e6-96231b3b80d8

commit aacadfea7a7174116dbde09937098763a3211396
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Dec 5 09:23:48 2012 +0000

    Add missing virtual destructors reported by -Wnon-virtual-dtor.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169365 91177308-0d34-0410-b5e6-96231b3b80d8

commit 112fb27ab48ae3256173806a073ba7b88aa6531a
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Dec 5 07:51:39 2012 +0000

    Small tweaks to automatic formatting.

    Recognize '!=' as a binary operator and assume that there are no
    type definitions on the RHS of an assignment.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169363 91177308-0d34-0410-b5e6-96231b3b80d8

commit ac31c8346f1ce3628b5a7fb862fefab5b94f8e82
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Dec 5 06:20:58 2012 +0000

    Simplify slightly by seperating out the responsibility for emission of a caret
    diagnostic from the emission of macro backtraces. Incidentally, we now get the
    displayed source location for a diagnostic and the location for the caret from
    the same place, rather than computing them separately. No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169357 91177308-0d34-0410-b5e6-96231b3b80d8

commit d515e62c7fc221b773b463a9c4de4eed258f39ec
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Dec 5 06:16:54 2012 +0000

    This test used to fail forever if it failed once, because it does not clean up after itself if it failed.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169356 91177308-0d34-0410-b5e6-96231b3b80d8

commit 88a8fa366e1a76507ae2212f9c3f110df865c3a5
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Wed Dec 5 04:56:27 2012 +0000

    Driver.cpp: Restore clang/Config/config.h to be included at last not to prevent llvm-config.h.

    Or "llvm/Support/system_error.h" could not be compiled on mingw.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169354 91177308-0d34-0410-b5e6-96231b3b80d8

commit 678839297204002df215e0be12bcd10b20a9a4a4
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Dec 5 03:18:16 2012 +0000

    Simplify diagnostic emission. No functionality change intended.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169351 91177308-0d34-0410-b5e6-96231b3b80d8

commit 91e2061763f5e59f57e59c6f141b74b5ff0408ad
Author: DeLesley Hutchins <delesley@google.com>
Date:   Wed Dec 5 01:20:45 2012 +0000

    Thread-safety analysis: check locks on method calls, operator=, and
    copy constructors.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169350 91177308-0d34-0410-b5e6-96231b3b80d8

commit 39a62fcd3003785d9cc913ab2820be2f6f27bb40
Author: Anna Zaks <ganna@apple.com>
Date:   Wed Dec 5 01:14:37 2012 +0000

    [analyzer] Implement an opt-in variant of direct ivar assignment.

    This will only check the direct ivar assignments in the annotated
    methods.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169349 91177308-0d34-0410-b5e6-96231b3b80d8

commit 47715cc201170952029a52806bcc26f69c38272d
Author: DeLesley Hutchins <delesley@google.com>
Date:   Wed Dec 5 00:52:33 2012 +0000

    Thread Safety Analysis: refactor to make more methods accept const pointers,
    adjust checkAccess.  No change in functionality.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169348 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8920eb7a957f3b0bc4a8213ecdaec9a7fcd139ea
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Dec 5 00:38:44 2012 +0000

    Testing C++ declarations embedded in
    <declaration> tag of Comment XML and
    added support for friend declaration printing.
    This is wip. // rdar://12378714

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169346 91177308-0d34-0410-b5e6-96231b3b80d8

commit fb4afc2fc659faff43a6df4c1d0e07df9c90479d
Author: DeLesley Hutchins <delesley@google.com>
Date:   Wed Dec 5 00:06:15 2012 +0000

    Thread safety analysis: Add a new "beta" warning flag: -Wthread-safety-beta.
    As the analysis improves, it will continue to add new warnings that are
    potentially disruptive to existing users.  From now on, such warnings will
    first be introduced under the "beta" flag.  Such warnings are not turned on by
    default; their purpose is to allow users to test their code against future
    planned changes, before those changes are actually made.  After a suitable
    migration period, beta warnings will be folded into the standard
    -Wthread-safety.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169338 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1d1539875bc0a00935ffb41e27a8fd327054c006
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Tue Dec 4 22:54:37 2012 +0000

    Add -whole-archive around the ASan runtime archive in the link command.

    This ensures that even though it comes first, we pick up its .o files.
    Note that if we can use this (or something similar / equivalent) on
    other platforms, we could potentially remove
    ReplaceOperatorsNewAndDelete from the ASan runtimes.

    We should probably do something similar for TSan and MSan as well.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169328 91177308-0d34-0410-b5e6-96231b3b80d8

commit 79762d3d6d82a314848cf4bfa6d2d58439536dbe
Author: Ted Kremenek <kremenek@apple.com>
Date:   Tue Dec 4 22:17:32 2012 +0000

    Alphabetize source files, just like they have been before.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169318 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9d05986cc590a0df3fcd38565068be554910ab31
Author: Bill Wendling <isanbard@gmail.com>
Date:   Tue Dec 4 21:33:58 2012 +0000

    Use the 'count' attribute to calculate the upper bound of an array.

    The count attribute is more accurate with regards to the size of an array. It
    also obviates the upper bound attribute in the subrange. We can also better
    handle an unbound array by setting the count to -1 instead of the lower bound to
    1 and upper bound to 0.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169311 91177308-0d34-0410-b5e6-96231b3b80d8

commit 45b27380a24dcd6a39faa888b5d31192801c43f4
Author: Matt Beaumont-Gay <matthewbg@google.com>
Date:   Tue Dec 4 21:18:26 2012 +0000

    Currently, with -fsanitize=address, the driver appends libclang_rt.asan.a to
    the link command. This all works fine when the driver is also responsible for
    adding -lstdc++ to the link command. But, if -lstdc++ (or libstdc++.a, etc) is
    passed explicitly to the driver, the ASan runtime will appear in the link
    command after the standard library, leading to multiple-definition errors for
    the global 'operator new' and 'operator delete'. Fix this in a painfully
    simple way, by inserting libclang_rt.asan.a at the start of the link command
    instead of the end.

    If we need to do something more clever, we can walk the link command looking
    for something that resembles libstdc++ and insert libclang_rt.asan.a as late
    as possible, but the simple solution works for now.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169310 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3e2fe86dd0dd65bff254e3bbdc0ea8df9282dc35
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Dec 4 21:15:23 2012 +0000

    Testing C declarations embedded in
    <declaration> tag of Comment XML and fixed a
    missing block literal printout as result of the testing.
    // rdar://12378714

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169307 91177308-0d34-0410-b5e6-96231b3b80d8

commit accb0b0ad36138855e7d81f210588ad9b3c9de48
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Dec 4 21:05:31 2012 +0000

    Add missing destructors found with -Wnon-virtual-dtor.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169303 91177308-0d34-0410-b5e6-96231b3b80d8

commit 441d9f7a36d3289eed0299823f05f70f810364ee
Author: Eli Bendersky <eliben@google.com>
Date:   Tue Dec 4 18:38:10 2012 +0000

    Adapt to LLVM commit 169291 which streamlines the usage of NaCl/NativeClient
    in the triple.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169292 91177308-0d34-0410-b5e6-96231b3b80d8

commit c2ef5ad5f498d327d5cf6c30b1e1bae861d124cd
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Dec 4 18:25:34 2012 +0000

    additional test for declaration tag of a class extension.
    // rdar://12378714

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169289 91177308-0d34-0410-b5e6-96231b3b80d8

commit cff563c0123bbb8d959c93ed371d27cbc6bc4a29
Author: Alexander Kornienko <alexfh@google.com>
Date:   Tue Dec 4 17:27:50 2012 +0000

    Error recovery part 2

    Summary: Adds recovery for structural errors in clang-format.

    Reviewers: djasper

    Reviewed By: djasper

    CC: cfe-commits, silvas

    Differential Revision: http://llvm-reviews.chandlerc.com/D164

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169286 91177308-0d34-0410-b5e6-96231b3b80d8

commit ff685c562c8fd5dfc6effec17377fde9dad6f271
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Dec 4 17:20:57 2012 +0000

    objective-c blocks: Consider padding due to alignment
    after the fixed size block header when generating
    captured block variable info. // rdar://12773256

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169285 91177308-0d34-0410-b5e6-96231b3b80d8

commit 393b008bcebb0a678a5a0a93ad69e28a30a62e84
Author: Alexander Kornienko <alexfh@google.com>
Date:   Tue Dec 4 15:40:36 2012 +0000

    Clang-format error recovery part 1

    Reviewers: klimek

    CC: cfe-commits

    Differential Revision: http://llvm-reviews.chandlerc.com/D163

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169278 91177308-0d34-0410-b5e6-96231b3b80d8

commit 02c1b863440b067f3d674bde237146ef54c17875
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Dec 4 15:32:03 2012 +0000

    c-index-test.c: Make C89-compliant.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169277 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1eb60825f0b858a4568c1a9497cc61b0d90c9b3a
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Tue Dec 4 15:13:46 2012 +0000

    libclang: Add a function to libclang for retrieving the bit width value

    Patch by Jyun-Yan You.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169276 91177308-0d34-0410-b5e6-96231b3b80d8

commit 20409155c75e78bceb622a5e0d1fad40df70f34d
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Dec 4 14:54:30 2012 +0000

    Make parenthesis counting and aligning a bit saner.

    Review: http://llvm-reviews.chandlerc.com/D162

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169274 91177308-0d34-0410-b5e6-96231b3b80d8

commit a166e73d39d2f554d0f35f94c9804284d1ff804a
Author: Alexander Kornienko <alexfh@google.com>
Date:   Tue Dec 4 14:46:19 2012 +0000

    Enum formatting implementation

    Reviewers: djasper, klimek

    Reviewed By: klimek

    CC: cfe-commits

    Differential Revision: http://llvm-reviews.chandlerc.com/D161

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169272 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8cb9bf577e3cfe31f1f023ed3a978d726f136edc
Author: Manuel Klimek <klimek@google.com>
Date:   Tue Dec 4 14:42:08 2012 +0000

    Fix spelling I ran over while proof-reading tests.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169271 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5542635a0fcfcd4b96eecf6f08e3648bd5bf739c
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Dec 4 14:31:59 2012 +0000

    ToolChains.cpp: Fixup r169260, clang/Config/config.h needs to be listed *last*, or llvm/Config/llvm-config.h could not be read in header files.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169268 91177308-0d34-0410-b5e6-96231b3b80d8

commit 987c2f590fade75245e32807ee83c31483e02d8a
Author: Manuel Klimek <klimek@google.com>
Date:   Tue Dec 4 13:40:29 2012 +0000

    Fixes crash in isDerivedFrom for recursive templates.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169262 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8822d3a99c07c7d874f8bfd81a7fe02059b9c19e
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Dec 4 13:02:32 2012 +0000

    Small fixes to unary operator recognition and handling of include
    directives.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169261 91177308-0d34-0410-b5e6-96231b3b80d8

commit 00a3cccb8cbd9accddfa0e77e85939e263d6a10d
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Tue Dec 4 12:24:59 2012 +0000

    Autotools has the same include guard for both Clang and LLVM's config.h.
    Shuffling order causes the wrong one to win.

    CMake didn't exhibit this problem because Clang's has *no* guards.

    I'll fix this properly tomorrow when Eric and I can check both build
    systems and get them to DTRT, but for now unbreak some bots by hoisting
    this header.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169260 91177308-0d34-0410-b5e6-96231b3b80d8

commit e0b89972cae100d60690e78973f53d2dac3c060e
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Dec 4 12:08:08 2012 +0000

    Update matcher documentation with script.

    We still need to make the python script understand some of the new
    matchers, but this should be an improvement.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169258 91177308-0d34-0410-b5e6-96231b3b80d8

commit 36e29d6732814e958aea4b2f403cec63d7ed3116
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Dec 4 11:54:27 2012 +0000

    Add parameterCountIs() matcher.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169257 91177308-0d34-0410-b5e6-96231b3b80d8

commit a88bb45f11c1e27f9caf60a85a8e1774d3e09ead
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Dec 4 10:50:12 2012 +0000

    Replace workarounds with correct fixes.

    Also fix header guard.

    http://llvm-reviews.chandlerc.com/D159

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169254 91177308-0d34-0410-b5e6-96231b3b80d8

commit 30bc63ffbab71522e5c5a9adc5054e462a0cbf65
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Tue Dec 4 09:53:39 2012 +0000

    Sort the #include lines under utils/...

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169245 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7cc315ccf80382fab7674735fbfda95990d28f8e
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Tue Dec 4 09:53:37 2012 +0000

    Really sort the #include lines in unittests/...

    I forgot to re-sort after fixing main module headers.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169244 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1050e8b2252d89a0004a6fd25a58dab88b5ee625
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Tue Dec 4 09:45:34 2012 +0000

    Sort the #include lines for unittests/...

    I've tried to place sensible headers at the top as main-module headers.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169243 91177308-0d34-0410-b5e6-96231b3b80d8

commit e0c6e93dddf4503d9b12ce09d7ab6ea5d523499f
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Tue Dec 4 09:37:22 2012 +0000

    Sort the #include lines for examples/...

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169241 91177308-0d34-0410-b5e6-96231b3b80d8

commit f59edb96b2d0bfe612b732f19519ab84bb995bd4
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Tue Dec 4 09:25:21 2012 +0000

    Sort #include lines for tools/...

    Completely automated with sort_includes.py

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169240 91177308-0d34-0410-b5e6-96231b3b80d8

commit 30a2e16f6c27f888dd11eba6bbbae1e980078fcb
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Tue Dec 4 09:18:49 2012 +0000

    Sort #include lines for all files under include/...

    This is a simpler sort, entirely automatic with the help of
    llvm/utils/sort_includes.py -- no manual edits here.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169238 91177308-0d34-0410-b5e6-96231b3b80d8

commit 55fc873017f10f6f566b182b70f6fc22aefa3464
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Tue Dec 4 09:13:33 2012 +0000

    Sort all of Clang's files under 'lib', and fix up the broken headers
    uncovered.

    This required manually correcting all of the incorrect main-module
    headers I could find, and running the new llvm/utils/sort_includes.py
    script over the files.

    I also manually added quite a few missing headers that were uncovered by
    shuffling the order or moving headers up to be main-module-headers.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169237 91177308-0d34-0410-b5e6-96231b3b80d8

commit d031c6aa0cb70000381b587574ce560ffbc59d00
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Dec 4 08:20:41 2012 +0000

    ASTTests, ASTMatchersTests: Move clangEdit before clangAst in USEDLIB.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169236 91177308-0d34-0410-b5e6-96231b3b80d8

commit bf5bc4cba590240e0e97eb529935fdfd512b02d5
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Dec 4 08:20:35 2012 +0000

    Untabify (in USEDLIBS, Makefile(s)).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169235 91177308-0d34-0410-b5e6-96231b3b80d8

commit b331b5e4c621309a94bcfd00983ed1a97ef3d429
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Dec 4 07:40:33 2012 +0000

    clang/Lex: [CMake] Update CMakefiles since r169229.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169233 91177308-0d34-0410-b5e6-96231b3b80d8

commit c4475eee423e2a07d79e9ab39e47b8de93a1971b
Author: Bill Wendling <isanbard@gmail.com>
Date:   Tue Dec 4 07:33:40 2012 +0000

    Don't test for ASM output but for IR output.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169232 91177308-0d34-0410-b5e6-96231b3b80d8

commit 37ed12720a35b7bfa1c4de73ad6f1c6c1c88ee17
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Dec 4 07:27:05 2012 +0000

    Refactor recording the preprocessor conditional directive regions out of
    PreprocessingRecord and into its own class, PPConditionalDirectiveRecord.

    Decoupling allows a client to use the functionality of PPConditionalDirectiveRecord
    without needing a PreprocessingRecord.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169229 91177308-0d34-0410-b5e6-96231b3b80d8

commit df1059cac42d613547d86b4e44c5e364bfc03073
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Dec 4 07:26:53 2012 +0000

    In the PreprocessingRecord, to identify the different conditional directive regions
    use the SourceLocation at the start of the respective region, instead of a unique integer.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169228 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9f9e0d2ecd4b9dd7ceeb57f662f6d8f549adca63
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Dec 4 07:26:48 2012 +0000

    [libclang] Avoid copying the CompileCommand related strings when wrapping them to a CXString.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169227 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7e96bfb4d507700a122f270a11ce3fc0e8e36c85
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Dec 4 07:26:44 2012 +0000

    Introduce CompilationDatabase::getAllCompileCommands() that returns all
    compile commands of the database and expose it via the libclang API.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169226 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1fec8fcfffb653a32fb147505677b3fe1fef2503
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Dec 4 06:58:05 2012 +0000

    clang/test/CodeGenCXX/debug-info-zero-length-arrays.cpp: Add explicit triple, x86_64-unknown-unknown. It was incompatible to i686.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169220 91177308-0d34-0410-b5e6-96231b3b80d8

commit 003ec237adbabe93d5f87d8c23b4d148b4767617
Author: Bill Wendling <isanbard@gmail.com>
Date:   Tue Dec 4 06:21:27 2012 +0000

    Add a 'count' field to the DWARF subrange.

    The count field is necessary because there isn't a difference between the 'lo'
    and 'hi' attributes for a one-element array and a zero-element array. When the
    count is '0', we know that this is a zero-element array. When it's >=1, then
    it's a normal constant sized array. When it's -1, then the array is unbounded.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169219 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5c5eaa83b3c1a6f393105a1f394e7ea422bfc839
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Dec 4 02:48:16 2012 +0000

    Document the existence of -fsanitize=bounds.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169207 91177308-0d34-0410-b5e6-96231b3b80d8

commit 60ef8b72664eda5e42910d38148d44de32ee117e
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Dec 4 01:03:31 2012 +0000

    clang/test/Index/comment-objc-decls.m: Try to fix r169193, to add x86_64-darwin.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169199 91177308-0d34-0410-b5e6-96231b3b80d8

commit 482b4fd1aabb880887f3982ae13fbbaadb0c7d8e
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Dec 4 00:47:33 2012 +0000

    Testing objective-C declarations embedded in
    <declaration> tag of Comment XML and fixed a
    missing declaration of ivars private to @implementation
    as result of the testing. // rdar://12378714

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169193 91177308-0d34-0410-b5e6-96231b3b80d8

commit cdeb7d57a4867c28e3e6a8c391cba6f13c781fa6
Author: Michael Ilseman <milseman@apple.com>
Date:   Tue Dec 4 00:36:06 2012 +0000

    Have clang use LLVM IR's fast-math flags when in FastMath or FiniteMathOnly modes. Test cases included.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169191 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9dce4b3d9d14ba2be2aad5bd7fd8d381a0263c36
Author: Michael Ilseman <milseman@apple.com>
Date:   Tue Dec 4 00:29:55 2012 +0000

    remove trailing whitespace

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169187 91177308-0d34-0410-b5e6-96231b3b80d8

commit e0af843b9ff0c63e552da82a9d8f3acd169788d3
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Mon Dec 3 23:29:49 2012 +0000

    clang/test/Driver/fsanitize-blacklist.c: Mark it as XFAIL:cygming, due to PR12920.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169180 91177308-0d34-0410-b5e6-96231b3b80d8

commit 73593eb5c68e28e0eaa4f2b6251dae167eef3a83
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Mon Dec 3 22:39:14 2012 +0000

    Fix test failure when building Clang with g++4.7 -- don't use a Twine temporary
    after its lifetime has ended!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169170 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0be4b36830a26026726d05aae5434c6658abc65f
Author: Manuel Klimek <klimek@google.com>
Date:   Mon Dec 3 20:55:42 2012 +0000

    Fixes a compile warning and crash in the tests.

    The necessity of this fix points to a problem with the design
    of the addToken during the optimiation phase, which we need to address
    in a much more principled way.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169151 91177308-0d34-0410-b5e6-96231b3b80d8

commit 91ecfa6af51836d3ccc90beddab1193b0c060739
Author: Alexey Samsonov <samsonov@google.com>
Date:   Mon Dec 3 19:12:58 2012 +0000

    Add Clang flags -fsanitize-blacklist and -fno-sanitize-blacklist. Make this flag usable for ASan. Blacklisting can be used to disable sanitizer checks for particular file/function/object.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169144 91177308-0d34-0410-b5e6-96231b3b80d8

commit 12feb121146805a117c5d3439907a6a48ebc7365
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Mon Dec 3 18:28:52 2012 +0000

    libclangFormat is not libclangTooling, but it depends on it.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169139 91177308-0d34-0410-b5e6-96231b3b80d8

commit 96a66392649f23e19bb9b2d512f2779b9dd420d0
Author: Alexey Samsonov <samsonov@google.com>
Date:   Mon Dec 3 18:28:12 2012 +0000

    Fix PR14474: don't emit debug info for interface types in -gline-tables-only mode.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169138 91177308-0d34-0410-b5e6-96231b3b80d8

commit bac016bd3f67ca2f4db1ddc619e611759352b84d
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Dec 3 18:12:45 2012 +0000

    Initial version of formatting library.

    This formatting library will be used by a stand-alone clang-format tool
    and can also be used when writing other refactorings.

    Manuel's original design document:
    https://docs.google.com/a/google.com/document/d/1gpckL2U_6QuU9YW2L1ABsc4Fcogn5UngKk7fE5dDOoA/edit

    The library can already successfully format itself.

    Review: http://llvm-reviews.chandlerc.com/D80

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169137 91177308-0d34-0410-b5e6-96231b3b80d8

commit 189f2e421d06526ea8b4a3dcd9f4a072e10a859c
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Dec 3 15:43:25 2012 +0000

    Make hasDeclaration work for enums.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169129 91177308-0d34-0410-b5e6-96231b3b80d8

commit 09ccf39c13cfca102deea2986f45cb908bc232fd
Author: Evgeniy Stepanov <eugeni.stepanov@gmail.com>
Date:   Mon Dec 3 13:20:43 2012 +0000

    Add -fsanitize=memory.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169124 91177308-0d34-0410-b5e6-96231b3b80d8

commit ad95481b2769ad61f23afc5e2c31f11c66090657
Author: Will Dietz <wdietz2@illinois.edu>
Date:   Sun Dec 2 19:50:33 2012 +0000

    [ubsan] Add flag to enable recovery from checks when possible.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169114 91177308-0d34-0410-b5e6-96231b3b80d8

commit c2b914fb6fed213a7e7d9847e543f1e7f94d852d
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sat Dec 1 20:58:01 2012 +0000

    Make helper classes anonymous. Make helper functions static instead of private members so the anonymous class doesn't leak out.

    No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169099 91177308-0d34-0410-b5e6-96231b3b80d8

commit bda07ace55e40bd1a620051156fa9b13ad3936aa
Author: Simon Atanasyan <satanasyan@mips.com>
Date:   Sat Dec 1 18:27:21 2012 +0000

    [MIPS] Add -mxgot/-mno-xgot command line options
    to enable/disable support of GOT larger than 64k.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169098 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9d5a78d5a0c724f35af5ea2f17b2b88b32335e24
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sat Dec 1 17:54:07 2012 +0000

    Add raw_ostream include to pacify MSVC.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169097 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8b9ed7106a40e8dacf212fa06eb859804b75a875
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sat Dec 1 17:22:05 2012 +0000

    Update unit tests not to rely on transitive includes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169096 91177308-0d34-0410-b5e6-96231b3b80d8

commit a93d0f280693b8418bc88cf7a8c93325f7fcf4c6
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sat Dec 1 17:12:56 2012 +0000

    Include pruning and general cleanup.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169095 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9852f58f50b4fc20914fbce5b4454135a42343f4
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sat Dec 1 16:35:25 2012 +0000

    Don't include Type.h in DeclarationName.h.

    Recursively prune some includes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169094 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1bf43cae5d3175838242060cbbc08f6f4fce3536
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sat Dec 1 15:18:03 2012 +0000

    Make ASTVector.h standalone without including all of ASTContext.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169093 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2fa67efeaf66a9332c30a026dc1c21bef6c33a6c
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sat Dec 1 15:09:41 2012 +0000

    Pull the Attr iteration parts out of Attr.h, so including DeclBase.h doesn't pull in all the generated Attr code.

    Required to pull some functions out of line, but this shouldn't have a perf impact.
    No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169092 91177308-0d34-0410-b5e6-96231b3b80d8

commit ac5586591aacfe86e14aab3d2524a2d5b936efd4
Author: Eli Bendersky <eliben@google.com>
Date:   Sat Dec 1 13:50:51 2012 +0000

    Fix a test that was redefining FileCheck variables while referencing old ones.

    In preparation for the FileCheck enhancement to support backreferences.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169090 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4247d9c39605c8ac4d897bd0975373edc339d3e8
Author: Joey Gouly <joey.gouly@arm.com>
Date:   Sat Dec 1 13:07:22 2012 +0000

    Switch to using -### as mentioned by chandlerc.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169089 91177308-0d34-0410-b5e6-96231b3b80d8

commit acb860f8f8c858d70b225b14322bfae9cf6250f5
Author: Joey Gouly <joey.gouly@arm.com>
Date:   Sat Dec 1 12:15:28 2012 +0000

    Add -emit-llvm to test/Driver/fsanitize.c to stop this failing on the ARM bot. Approved by d0k.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169088 91177308-0d34-0410-b5e6-96231b3b80d8

commit 78d289a6f2c337206268f3aced38b6a974bb8078
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sat Dec 1 12:08:08 2012 +0000

    Add .arcconfig to the repository. Useful if someone wants to use phabricator's command line tool.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169086 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1f19c76253ae95153d84355c80342e8eaab81fe1
Author: Michael Han <Michael.Han@autodesk.com>
Date:   Sat Dec 1 04:35:48 2012 +0000

    Fix a typo in comment.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169078 91177308-0d34-0410-b5e6-96231b3b80d8

commit b087248e32a993a3441436cffd10a4c9112eda6f
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sat Dec 1 03:15:03 2012 +0000

    Make these functions more clearly express the test they are performing. No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169077 91177308-0d34-0410-b5e6-96231b3b80d8

commit e5411b7c9af683dab6b035825b71c284bfec364d
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sat Dec 1 02:35:44 2012 +0000

    Consistently use 'needsImplicit<special member>' to determine whether we need
    an implicit special member, rather than sometimes using '!hasDeclared<special
    member>'. No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169075 91177308-0d34-0410-b5e6-96231b3b80d8

commit 19c8ce0cf534caa909955ba9a17b7841f574a3be
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Sat Dec 1 01:15:54 2012 +0000

    Try to make the source location information for token pastes a bit more consistent.

    Fixes a crash printing diagnostics on the gcc testsuite, and also makes
    diagnostic range printing print nicer results for token pastes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169068 91177308-0d34-0410-b5e6-96231b3b80d8

commit 056503786410c0e72b1389918719a37e9342817b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sat Dec 1 01:02:45 2012 +0000

    Remove restriction on combining ubsan with asan or tsan. This has worked for a while.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169066 91177308-0d34-0410-b5e6-96231b3b80d8

commit 464a01a67c2cf7c42c4d15f687f6b9a622468783
Author: Douglas Gregor <dgregor@apple.com>
Date:   Sat Dec 1 01:01:09 2012 +0000

    Fix the determination of whether a capture refers to an enclosing
    scope when dealing with nested blocks. Fixes <rdar://problem/12778708>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169065 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6e6330c07a42ace74637d0ad7356a2fa20de81ec
Author: Bill Wendling <isanbard@gmail.com>
Date:   Fri Nov 30 23:46:56 2012 +0000

    Don't emit a warning with an input/output parameter. We assume the user knows what they're doing here.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169059 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5a98f1da0e6eb5c4776f513eacc7756eaf15dff3
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Nov 30 23:40:49 2012 +0000

    Fix test for Windows path separators

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169058 91177308-0d34-0410-b5e6-96231b3b80d8

commit 14afab36c73c32a831838ba80f36136a80d9e6db
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Nov 30 23:32:31 2012 +0000

    Teach the serialized diagnostic writer to clone() itself, sharing
    state so that all of the various clones end up rendering their
    diagnostics into the same serialized-diagnostics file. This is
    important when we actually want failures during module build to be
    reported back to the translation unit that tried to import the
    not-yet-built or out-of-date module. <rdar://problem/12565727>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169057 91177308-0d34-0410-b5e6-96231b3b80d8

commit e2dbaa9f78be2b09b0723d1b614286412808b5d3
Author: Bill Wendling <isanbard@gmail.com>
Date:   Fri Nov 30 23:18:12 2012 +0000

    Don't warn if the input size is less than the register size. Also don't warn if
    the output size is greater than the register size. No truncation occurs with
    those. Reword warning to make it clearer what's the problem is.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169054 91177308-0d34-0410-b5e6-96231b3b80d8

commit d87de7bdbc25dd84ae3dbefffda4539c443000d2
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Fri Nov 30 23:09:29 2012 +0000

    Make -Wtautological-constant-out-of-range-compare behave sanely for enums with a signed fixed type.
    <rdar://problem/12780159>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169051 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4565e487531c7bf6d348dbe9f5529784966fc7ae
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Nov 30 22:11:57 2012 +0000

    Rename ModuleBuildPath -> ModuleBuildStack. Thanks, Dmitri!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169045 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6c3254316de2d0d554b19702f4b10117ae46b77b
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Nov 30 21:58:49 2012 +0000

    When we're emitting a diagnostic with a source location in an imported
    module, provide a module import stack similar to what we would get for
    an include stack, e.g.,

    In module 'DependsOnModule' imported from build-fail-notes.m:4:
    In module 'Module' imported from DependsOnModule.framework/Headers/DependsOnModule.h:1:
    Inputs/Module.framework/Headers/Module.h:15:12: note: previous definition is here
    @interface Module

    <rdar://problem/12696425>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169042 91177308-0d34-0410-b5e6-96231b3b80d8

commit bbe89d5670b458fc1e2fff49e96e119ffb1622c8
Author: Aaron Ballman <aaron@aaronballman.com>
Date:   Fri Nov 30 21:44:01 2012 +0000

    Fixing a precedence issue with my previous commit.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169041 91177308-0d34-0410-b5e6-96231b3b80d8

commit 99ecd9f50dc28cd8db90ddaab39e2c8843dc3500
Author: Aaron Ballman <aaron@aaronballman.com>
Date:   Fri Nov 30 21:15:20 2012 +0000

    Fixing an MSVC warning about an unsafe mixture of Boolean and unsigned types in a logical operator.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169037 91177308-0d34-0410-b5e6-96231b3b80d8

commit e74dc199e95cc523c8806e0de41d8814e8bc5c42
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Fri Nov 30 20:04:39 2012 +0000

    Comments: no need to escape any characters in \code ... \endcode.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169030 91177308-0d34-0410-b5e6-96231b3b80d8

commit fafd101e6b557595ffbb5e9e9b47a3fc0385dc19
Author: Aaron Ballman <aaron@aaronballman.com>
Date:   Fri Nov 30 19:52:30 2012 +0000

    Support for #pragma region/endregion for MSVC compatibility.  Patch thanks to pravic!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169028 91177308-0d34-0410-b5e6-96231b3b80d8

commit 87e2cfcec7231daaa3f367dc32df74b411251e46
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Nov 30 19:28:05 2012 +0000

    Actually keep track of the source locations at which particular module
    files are loaded.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169027 91177308-0d34-0410-b5e6-96231b3b80d8

commit 830ea5b7c75413526c19531f0180fa6e45b98919
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Nov 30 18:38:50 2012 +0000

    When an error occurs while building a module on demand, provide "While
    building module 'Foo' imported from..." notes (the same we we provide
    "In file included from..." notes) in the diagnostic, so that we know
    how this module got included in the first place. This is part of
    <rdar://problem/12696425>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169021 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7f2d4804510799a1a19d72b2b089e48370ab8686
Author: Manuel Klimek <klimek@google.com>
Date:   Fri Nov 30 13:45:19 2012 +0000

    Allow matchers to access the ASTContext.

    Patch by Edwin Vane.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169000 91177308-0d34-0410-b5e6-96231b3b80d8

commit 683b70c70dc47532af1215e4b1566de9d47a3be5
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Fri Nov 30 11:04:44 2012 +0000

    Update to reflect the change of macro name in r168993.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168994 91177308-0d34-0410-b5e6-96231b3b80d8

commit ecdc8d3e0fc65610746a4e074491ca0807fca7b2
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Fri Nov 30 06:19:40 2012 +0000

    Fix the computation of highlight ranges so we produce something sane when
    the beginning and end of the range are in different macro arguments.
    PR14399.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168984 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7d04d3a6855bc74d5c1a2213717eb5402b772ae6
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Nov 30 05:11:39 2012 +0000

    Refactor to reduce duplication in handling of special member functions. No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168977 91177308-0d34-0410-b5e6-96231b3b80d8

commit e5965df287efe0dfa694609e483b55c110c7b97c
Author: Quentin Colombet <qcolombet@apple.com>
Date:   Fri Nov 30 01:34:36 2012 +0000

    Add a test case for the new cortex-a5 switch

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168968 91177308-0d34-0410-b5e6-96231b3b80d8

commit dcd42fbb418cf662c136cb035e235a44b58ad91e
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Nov 30 01:15:32 2012 +0000

    Use the new LLVM_LVALUE_FUNCTION to ban two getAs() calls on rvalues.

    If 'x' is a temporary, x.getAs<Foo>() may not be safe if the result is
    supposed to persist (if its address is stored somewhere). Since getAs()
    can return a null value, the result is almost always stored into a
    variable, which of course is not safe when the original value dies.

    This has caused several bugs with GCC's "Temporaries May Vanish Sooner Than
    You Expect" optimization; in C++11 builds, at least, we'll be able to catch
    these problems now.

    I would suggest applying these to other getAs() and get*As() methods
    (castAs is "better" because sometimes the result is used directly, which
    means the temporary will still be live), but these two have both caused
    trouble in the analyzer in the past.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168967 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7dff05bf3019995798def5d1066e4282b8578df6
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Nov 30 00:01:57 2012 +0000

    Fix unit tests for ModuleLoader change in r168961.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168962 91177308-0d34-0410-b5e6-96231b3b80d8

commit 463d90986ec54c62bf8fe31193ef5db701db48a5
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Nov 29 23:55:25 2012 +0000

    Keep track of modules that have failed to build. If we encounter an
    import of that module elsewhere, don't try to build the module again:
    it won't work, and the experience is quite dreadful. We track this
    information somewhat globally, shared among all of the related
    CompilerInvocations used to build modules on-the-fly, so that a
    particular Clang instance will only try to build a given module once.

    Fixes <rdar://problem/12552849>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168961 91177308-0d34-0410-b5e6-96231b3b80d8

commit db748a380ab89b1c0b6e751e55291f57605cccce
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Thu Nov 29 23:21:04 2012 +0000

    Fix a small calling-convention bug for x86-32.  PR14453.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168959 91177308-0d34-0410-b5e6-96231b3b80d8

commit 74632aab3ad87c89823421d8239a47b6697b6e79
Author: Quentin Colombet <qcolombet@apple.com>
Date:   Thu Nov 29 23:15:27 2012 +0000

    Add ARM cortex-a5 subtarget

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168958 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9c196ac0fc7c7c6cad68d967c1a74959dd7e0f58
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Nov 29 23:09:57 2012 +0000

    Remove out-of-date comment.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168957 91177308-0d34-0410-b5e6-96231b3b80d8

commit 398b8e86ab421592f9e72b92c4558ea865b26e86
Author: Quentin Colombet <qcolombet@apple.com>
Date:   Thu Nov 29 23:07:08 2012 +0000

    Revert commit revision r168953, to change the commit message, which was empty

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168956 91177308-0d34-0410-b5e6-96231b3b80d8

commit b3233f5ed4411af458dc66fa566df2ba7510d26f
Author: Quentin Colombet <qcolombet@apple.com>
Date:   Thu Nov 29 22:58:40 2012 +0000

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168953 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4d1a6e41e1eaeaf5a4672c802519f15c8fb91e91
Author: Alexey Samsonov <samsonov@google.com>
Date:   Thu Nov 29 22:36:21 2012 +0000

    This patch exposes to Clang users three more sanitizers are experimental features of ASan:
    1) init-order sanitizer: initialization-order checker.
    Status: usable, but may produce false positives w/o proper blacklisting.
    2) use-after-return sanitizer
    Status: implemented, but heavily understed.
    Should be optional, as it significanlty slows program down.
    3) use-after-scope sanitizer
    Status: in progress.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168950 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2ec5f551cc455df30183e796a91498c5325b17f2
Author: Eli Bendersky <eliben@google.com>
Date:   Thu Nov 29 20:01:14 2012 +0000

    Make the test less sensitive to DWARF emission implementation details.

    Note: the ":" goes into the regex because FileCheck wrongly complains about
    unbalanced brackets otherwise.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168934 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6716d9443d5d13f4f49a39b9d02f2e256cb83a97
Author: Eric Christopher <echristo@gmail.com>
Date:   Thu Nov 29 18:51:05 2012 +0000

    Make sure that we put the rest of the sanitizer libraries on the link line
    before libstdc++ like we do with ubsan.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168918 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1fadc0e17aab9f1e131875f11f29db4a26896685
Author: Eric Christopher <echristo@gmail.com>
Date:   Thu Nov 29 18:08:24 2012 +0000

    Use newer command line option here.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168908 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4f000c34dbde53892bcda30f85ad57580208dcad
Author: Eric Christopher <echristo@gmail.com>
Date:   Thu Nov 29 18:08:22 2012 +0000

    Remove duplicate test run lines.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168907 91177308-0d34-0410-b5e6-96231b3b80d8

commit b2829203384ab529c0ba13696acca68f7c79d000
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Thu Nov 29 16:38:22 2012 +0000

    Now that the underlying problem has been fixed, add r168411 back.
    Original commit message:

    Remove redundant code.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168900 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8b8a09e496fbed361d4c8e9e8cc259454a094258
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Thu Nov 29 16:09:03 2012 +0000

    Merge function types in C.

    Among other differences, GCC accepts

      typedef int IA[];
      typedef int A10[10];
      static A10 *f(void);
      static IA  *f(void);
      void g(void) {
        (void)sizeof(*f());
      }

    but clang used to reject it with:

      invalid application of 'sizeof' to an incomplete type 'IA' (aka 'int []')

    The intention of c99's 6.2.7 seems to be that we should use the composite type
    and accept as gcc does.

    Doing the type merging required some extra fixes:
      * Use the type from the function type in initializations, even if an parameter
        is available.
      * Fix the merging of the noreturn attribute in function types.
      * Make CodeGen  handle the fact that an parameter type can be different from
        the corresponding type in the function type.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168895 91177308-0d34-0410-b5e6-96231b3b80d8

commit 96794f1f38119691879e99a3f4298cd442130cf2
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Nov 29 10:22:40 2012 +0000

    ASTTests/StmtPrinterTest/StmtPrinter.TestMSIntegerLiteral: Remove i128 stuff. Conditioning-out in macro argument was not accepted on MS cl.exe.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168867 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3b164774ad067557486dd1221f0ecbf2e905a816
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Nov 29 09:57:11 2012 +0000

    ASTTests/StmtPrinterTest/StmtPrinter.TestMSIntegerLiteral: Suppress i128 according to r168856, for now.

    I think "i128", that I conditioned out, could be completely removed.
    MS Compiler doesn't accept i128. We can assume no one would use i128.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168865 91177308-0d34-0410-b5e6-96231b3b80d8

commit 53c61c5c0c912b5032882471f5215d66a11bb0ce
Author: Timur Iskhodzhanov <timurrrr@google.com>
Date:   Thu Nov 29 08:58:47 2012 +0000

    [-cxx-abi microsoft] Also spill the argument-back-references context when mangling templates

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168862 91177308-0d34-0410-b5e6-96231b3b80d8

commit 84268904947ada7e251932a6f5b0f4364df7a2c7
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Nov 29 05:41:51 2012 +0000

    Reject uses of __int128 on platforms that don't support it. Also move the ugly
    'getPointerWidth(0) >= 64' test to be a method on TargetInfo, ready to be
    properly cleaned up.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168856 91177308-0d34-0410-b5e6-96231b3b80d8

commit bba91b881c946cbcd200c87dc0a83553506e2458
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Thu Nov 29 05:29:23 2012 +0000

    Fix sentence construction-o.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168855 91177308-0d34-0410-b5e6-96231b3b80d8

commit a70779f6b9a8135c3459bdeb1f0197b82ea0cb2a
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Thu Nov 29 03:13:49 2012 +0000

    Fix crash-on-invalid.  <rdar://problem/12765391>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168851 91177308-0d34-0410-b5e6-96231b3b80d8

commit afb49189d6962f3636d6a93d09c0b495e94ac782
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Nov 29 01:34:07 2012 +0000

    The declaration of a special member can require overload resolution to be
    performed, to determine whether that special member is deleted or constexpr.
    That overload resolution process can in turn trigger the instantiation of a
    template, which can do anything, including triggering the declaration of that
    very same special member function. When this happens, do not try to recursively
    declare the special member -- that's impossible. Instead, only try to realise
    the truth. There is no special member.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168847 91177308-0d34-0410-b5e6-96231b3b80d8

commit a4317709127e3b63c44a34f9fa1c3f8abe6a77a3
Author: Ted Kremenek <kremenek@apple.com>
Date:   Thu Nov 29 01:03:10 2012 +0000

    Change SValBuilder::getConditionType() to return BoolTy in C++.  Fixes <rdar://problem/12772656>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168846 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9c0466603f2051fec9270686dfcd270630e62530
Author: Ted Kremenek <kremenek@apple.com>
Date:   Thu Nov 29 00:50:20 2012 +0000

    Correctly handle IntegralToBool casts in C++ in the static analyzer.  Fixes <rdar://problem/12759044>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168843 91177308-0d34-0410-b5e6-96231b3b80d8

commit 586a061ad96f750e2a5aefcf3e2ce9e5474cdd61
Author: Chad Rosier <mcrosier@apple.com>
Date:   Thu Nov 29 00:42:06 2012 +0000

    [driver] -mkernel implies -mstrict-align; don't add the redundant option.
    rdar://12771737

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168841 91177308-0d34-0410-b5e6-96231b3b80d8

commit 52b501cd723d56efe3ad2ab708c2b75530fe6caa
Author: Michael Han <Michael.Han@autodesk.com>
Date:   Wed Nov 28 23:17:40 2012 +0000

    Implement C++11 [dcl.attr.grammar] p4: If an attribute-specifier-seq appertains to a friend declaration, that declaration shall be a definition.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168826 91177308-0d34-0410-b5e6-96231b3b80d8

commit b15c8984ea300624fbbde385d3907667ce1043fa
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Nov 28 23:12:17 2012 +0000

    objective-C blocks: Make sure that identical logic is used
    in deciding a copy/dispose field is needed in a byref structure
    and when generating the copy/dispose helpers. In certain
    cases, these fields were being added but no copy/dispose was
    being generated. This was uncovered in ARC, but not in MRR.
    // rdar://12759433

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168825 91177308-0d34-0410-b5e6-96231b3b80d8

commit a70c3f8738cc123ded68c183cedd6e93df670c2f
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Nov 28 22:52:42 2012 +0000

    Per C++11 [except.spec]p2, rvalue references are not permitted in exception specifications.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168824 91177308-0d34-0410-b5e6-96231b3b80d8

commit 21173b1080abaa2738f9e700a9d4b0d04f928930
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Nov 28 22:33:28 2012 +0000

    PR14388: An array or function type in an exception specification should be
    decayed to a pointer type. Patch by WenHan Gu, with a little tweaking and
    additional testcases by me.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168822 91177308-0d34-0410-b5e6-96231b3b80d8

commit 060f34d6d12a851faa9463da522f7dff1104d0e1
Author: Manman Ren <mren@apple.com>
Date:   Wed Nov 28 22:29:41 2012 +0000

    ABI: comments from Eli on r168820.

    rdar://12723368

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168821 91177308-0d34-0410-b5e6-96231b3b80d8

commit f51c61c78e8487061b6a434286488fa3e5b919e5
Author: Manman Ren <mren@apple.com>
Date:   Wed Nov 28 22:08:52 2012 +0000

    ABI: modify CreateCoercedLoad and CreateCoercedStore to not use load or store of
    the original parameter or return type.

    Since we do not accurately represent the data fields of a union, we should not
    directly load or store a union type.

    As an exmple, if we have i8,i8, i32, i32 as one field type and i32,i32 as
    another field type, the first field type will be chosen to represent the union.
    If we load with the union's type, the 3rd byte and the 4th byte will be skipped.

    rdar://12723368

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168820 91177308-0d34-0410-b5e6-96231b3b80d8

commit f641166066c7053300cada4ca5c9e69ad1cd2358
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Nov 28 21:47:39 2012 +0000

    PR13098: If we're instantiating an overloaded binary operator and we could
    determine which member function would be the callee from within the template
    definition, don't pass that function as a "non-member function" to
    CreateOverloadedBinOp. Instead, just rely on it to select the member function
    for itself.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168818 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2cbdd7d21e3902e568ce2a51a7459ab5a4fc236c
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Nov 28 19:12:44 2012 +0000

    [analyzer] scan-build: Don't forget to close our temp file for Clang's output.

    Also, minor whitespace/indentation fixes.

    Patch by Peeter Joot!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168805 91177308-0d34-0410-b5e6-96231b3b80d8

commit 501be138462d9d6fe1b55ea92c3a14a2d7501c5f
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Nov 28 19:12:29 2012 +0000

    [analyzer] scan-build: Treat '.C' files as C++.

    Part of PR14443.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168804 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3325b1617fce0c8c399b3010f8a65420e623d6f7
Author: Alexey Samsonov <samsonov@google.com>
Date:   Wed Nov 28 17:34:24 2012 +0000

    Refactor -fsanitize, -f*-sanitizer arguments parsing. Provide a more careful diagnostic for invalid sets of sanitizers

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168794 91177308-0d34-0410-b5e6-96231b3b80d8

commit 11c9a6e8cb078da45ee73e6771864576b207ac8b
Author: Kostya Serebryany <kcc@google.com>
Date:   Wed Nov 28 10:32:11 2012 +0000

    [asan] Split AddressSanitizer into two passes (FunctionPass, ModulePass), Clang part.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168782 91177308-0d34-0410-b5e6-96231b3b80d8

commit 037dbda82102473181de5cfbecdb05cb648762ad
Author: Andy Gibbs <andyg1001@hotmail.co.uk>
Date:   Wed Nov 28 08:14:36 2012 +0000

    Remove obsolete comment missed by r162937

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168778 91177308-0d34-0410-b5e6-96231b3b80d8

commit 30cddaec99fa6c3207613efdaedbb51dd8d70c77
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Nov 28 07:29:00 2012 +0000

    Teach Lexer::getSpelling about raw string literals. Specifically, if a raw
    string literal needs cleaning (because it contains line-splicing in the
    encoding prefix or in the ud-suffix), do not clean the section between the
    double-quotes -- that's the "raw" bit!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168776 91177308-0d34-0410-b5e6-96231b3b80d8

commit acf796b4797c5b3e9e237148fa622afdc04b3eff
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Nov 28 06:23:12 2012 +0000

    Store on the CXXRecordDecl whether the class has, or would have, a copy
    constructor/assignment operator with a const-qualified parameter type. The
    prior method for determining this incorrectly used overload resolution.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168775 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3881866dc782c5e13b21031bd363e93fbf367167
Author: Ted Kremenek <kremenek@apple.com>
Date:   Wed Nov 28 05:36:28 2012 +0000

    Remove workaround in RegionStore in r168741 since it is handled more generally by r168757.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168774 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2a82ca255b0f99f6201a75ed52b91fc024f6e9cf
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Nov 28 03:56:16 2012 +0000

    Introduce ASTUnresolvedSet, an UnresolvedSet-like class, whose contents are
    allocated using the allocator associated with an ASTContext.

    Use this inside CXXRecordDecl::DefinitionData instead of an UnresolvedSet to
    avoid a potential memory leak.

    rdar://12761275

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168771 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9d29543284e75648ac89c6e9586fc7cf786cf66f
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Nov 28 03:56:09 2012 +0000

    Don't return a pointer to an UnresolvedSetImpl in the CXXRecordDecl interface,
    expose only the iterators instead.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168770 91177308-0d34-0410-b5e6-96231b3b80d8

commit b8abff66a8d30356c82314c4734c692cdd479e5e
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Nov 28 03:45:24 2012 +0000

    C++ core issue 1344, PR10618: promote "addition of default argument makes this
    a special member" diagnostic from warning to error, and fix the cases where it
    produced diagnostics with incorrect wording.

    We don't support this as an extension, and we ban it even in C++98 mode. This
    breaks too much (for instance, the ABI-specified calling convention for a type
    can change if it acquires a copy constructor through the addition of a default
    argument).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168769 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1994e3993e5e2c606f4ab22563768af6f03dad30
Author: Ted Kremenek <kremenek@apple.com>
Date:   Wed Nov 28 01:49:01 2012 +0000

    Fix another false positive due to a CXX temporary object appearing in a C initializer.

    The stop-gap here is to just drop such objects when processing the InitListExpr.
    We still need a better solution.

    Fixes <rdar://problem/12755044>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168757 91177308-0d34-0410-b5e6-96231b3b80d8

commit 84c7519a3865a04f631bc8ddfb8372223d96acfc
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Nov 28 01:27:44 2012 +0000

    objective-C arc: Underline the selector when issuing
    arc specific diagnostic on the selector. This is objc-arc
    part of // rdar://11303469

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168756 91177308-0d34-0410-b5e6-96231b3b80d8

commit 831fb8d3ed7d090c9e20566c2062d011e11dd6c5
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Nov 27 23:34:28 2012 +0000

    docs: [CMake] Add Xcode to the list of project formats CMake can generate.

    Suggested by Sean McBride, thanks!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168745 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0dffb7b7feff937269c1ffeefb357701a91059fd
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Nov 27 23:34:08 2012 +0000

    clang/www/get_started.html: s/cmake/CMake/

    Suggested by Sean McBride, thanks!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168744 91177308-0d34-0410-b5e6-96231b3b80d8

commit bd8a11e224c3ec6cbc4bb9b1fc70a8aa3a633e43
Author: Ted Kremenek <kremenek@apple.com>
Date:   Tue Nov 27 23:05:37 2012 +0000

    Provide stop-gap solution to crash reported in PR 14436.

    This was also covered by <rdar://problem/12753384>.  The static analyzer
    evaluates a CXXConstructExpr within an initializer expression and
    RegionStore doesn't know how to handle the resulting CXXTempObjectRegion
    that gets created.  We need a better solution than just dropping the
    value, but we need to better understand how to implement the right
    semantics here.

    Thanks to Jordan for his help diagnosing the behavior here.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168741 91177308-0d34-0410-b5e6-96231b3b80d8

commit 82c458ea76bf8f0981e3d1b5070c0b0e5878d784
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Nov 27 23:02:53 2012 +0000

    objective-C arc: load of a __weak object happens via call to
    objc_loadWeak. This retains and autorelease the weakly-refereced
    object. This hidden autorelease sometimes makes __weak variable alive even
    after the weak reference is erased, because the object is still referenced
    by an autorelease pool. This patch overcomes this behavior by loading a
    weak object via call to objc_loadWeakRetained(), followng it by objc_release
    at appropriate place, thereby removing the hidden autorelease. // rdar://10849570

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168740 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7aa7eb9d0221bc67e2cd564e703a2427dc212b79
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Nov 27 22:49:42 2012 +0000

    [libclang] Remove WorkingDir field from CIndexer, it has been rendered useless.
    No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168738 91177308-0d34-0410-b5e6-96231b3b80d8

commit f88836d949e42452167d312e57a1425b3859d36b
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Tue Nov 27 21:57:34 2012 +0000

    Move PrettyStackTraceParserEntry to ParseAST.cpp

    r128056 moved PrettyStackTraceParserEntry construction from Parser.h
    to ParseAST.cpp, so there's no need to keep this class in a header.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168731 91177308-0d34-0410-b5e6-96231b3b80d8

commit d1bac8d46740eb00085ec816af0829fd75fb4d5c
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Nov 27 21:31:01 2012 +0000

    Allow an ASTConsumer to selectively skip function bodies while parsing. Patch
    by Olivier Goffart!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168726 91177308-0d34-0410-b5e6-96231b3b80d8

commit d0adeb65c743e01ca3436db1d47a97cdcc78df89
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Nov 27 21:20:31 2012 +0000

    Simplify checking for whether we should implicitly declare special members and
    add some assertions. No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168725 91177308-0d34-0410-b5e6-96231b3b80d8

commit f8fc6273ed33386f5081f5cd5d30abd339eec030
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Nov 27 17:31:26 2012 +0000

    Remove an extra semicolon.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168707 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9d8b5fc45e48bb913dcb7f253f005418ba979534
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Nov 27 16:16:02 2012 +0000

    Fix examples.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168705 91177308-0d34-0410-b5e6-96231b3b80d8

commit 17c874a944090a74aa890d7b5ef361be6e4a0184
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Nov 27 16:10:37 2012 +0000

    Remove some dead code. CLANG_IS_PRODUCTION is now just a build flag and
    is not used in any #ifdef.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168703 91177308-0d34-0410-b5e6-96231b3b80d8

commit b85403658a77e9c19c391c8f02bc7767544a25d9
Author: Will Dietz <wdietz2@illinois.edu>
Date:   Tue Nov 27 15:01:55 2012 +0000

    Add -fsanitize=integer for reporting suspicious integer behaviors.

    Introduces new sanitizer "unsigned-integer-overflow".

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168701 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5e7b43ed3071a98d68b6da4f22720b9076d6f18a
Author: Timur Iskhodzhanov <timurrrr@google.com>
Date:   Tue Nov 27 12:55:47 2012 +0000

    Remove outdated FIXME; should have removed that in r160782

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168698 91177308-0d34-0410-b5e6-96231b3b80d8

commit 93308b9aa4c254b0a82a79d1bc0c78b83b9fed50
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Nov 27 05:25:41 2012 +0000

    clang/test/lit.cfg: Disable dev-fd-fs on cygwin for now.

    open("/dev/fd/1-foobar") fails with EEXIST on cygwin.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168676 91177308-0d34-0410-b5e6-96231b3b80d8

commit 55f6c336b132b4b9bbbda070bb0f9ee8b03a6ed3
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Tue Nov 27 02:58:49 2012 +0000

    Test for r168674.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168675 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6902e4146d426998ff6a94b16776c1b3f805a048
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Tue Nov 27 02:58:24 2012 +0000

    Fix the definition of the vfork() builtin on Haiku.  PR14378.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168674 91177308-0d34-0410-b5e6-96231b3b80d8

commit c9715fc7c329c85e0b7aa0884c9209fa1fe5b819
Author: Bill Schmidt <wschmidt@linux.vnet.ibm.com>
Date:   Tue Nov 27 02:46:43 2012 +0000

    This patch addresses an incompatibility relative to the 64-bit PowerPC
    ELF ABI.

    Complex values are to be passed in registers as though the real and
    imaginary parts were passed as separate parameters.  Prior to this
    patch, complex values were passed as byval aggregates.  It turns out
    that specifying getDirect() for all complex types when classifying the
    argument type results in the desired behavior.

    The new Clang test case verifies that the correct LLVM IR is generated
    for caller and callee for each of the underlying types for _Complex.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168673 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3fa3c44d624d2df9ef2649ca1a7efa97d81b36d8
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Tue Nov 27 02:37:59 2012 +0000

    scan-build: Respect TMPDIR on all platforms, not just Darwin (PR14438).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168672 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6e99f9f56f320818d814a5474d76a2849e037c55
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Tue Nov 27 02:37:49 2012 +0000

    [analyzer] Fix test to work on non-LP64 systems.

    Thanks for the original catch in r168303, Takumi.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168671 91177308-0d34-0410-b5e6-96231b3b80d8

commit ec351f169dd608e566018829f4441ea18688ef38
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Nov 27 01:56:54 2012 +0000

    Add a testcase that r168411 would break.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168669 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8272be5ed3bf7c7ac5d32fa9fd83f9229bf455d0
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Nov 27 01:44:24 2012 +0000

    Revert r168411 for now.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168667 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4b98b2b555a9ad4f9a724fbddb94cd767ca6b2a1
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Nov 27 00:48:12 2012 +0000

    Duplicate some common owners between Clang and LLVM.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168650 91177308-0d34-0410-b5e6-96231b3b80d8

commit f18dd8e29bd89c235f0cd581a31d09a03659e9d9
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Nov 27 00:39:30 2012 +0000

    Move Clang code owners list from llvm/ to cfe/.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168639 91177308-0d34-0410-b5e6-96231b3b80d8

commit acf36129fa7ff2abef80d38ab6901a50b044c7d1
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Tue Nov 27 00:04:16 2012 +0000

    Frontend: Create a virtual file for named pipe inputs.
     - This ensures we see the right buffer size for the file.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168636 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2e39713a3d72c243a2bcd13cc8f5036ba6b487d9
Author: Michael Han <Michael.Han@autodesk.com>
Date:   Mon Nov 26 22:54:45 2012 +0000

    Improve diagnostic on C++11 attribute specifiers that appear at wrong syntactic locations around class specifiers.

    This change list implemented logic that explicitly detects several combinations of locations where C++11 attribute
    specifiers might be incorrectly placed within a class specifier. Previously we emit generic diagnostics like
    "expected identifier" for such cases; now we emit specific diagnostic against the misplaced attributes, this also
    fixed a bug in old code where attributes appear at legitimate locations were incorrectly rejected.

    Thanks to Richard Smith for reviewing!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168626 91177308-0d34-0410-b5e6-96231b3b80d8

commit f5824998702fad8eb2450e992b48d710a59723ff
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Mon Nov 26 21:57:28 2012 +0000

    Add missing "break".  Thanks to Craig for spotting it.

    I'm looking at ways to fix the relevant test so it can catch this sort of mistake.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168618 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9e4bafc321240278cfd7f848fd4c09dca21f9901
Author: Sebastian Pop <spop@codeaurora.org>
Date:   Mon Nov 26 20:44:46 2012 +0000

    check that always_inline attribute works with -fno-inline

    Clean up the existing test to use FileCheck.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168607 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7bd51ea64fd06b9a243faaacb0b15c168afe47a6
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Mon Nov 26 19:59:57 2012 +0000

    [analyzer] SATestBuild.py: allow make builds to disable parallelization

    Before, SATestBuild unilaterally added '-j<n>' to every project built with
    'make'. Now, we check and see if there's a -j option already specified, which
    allows a project to explicitly be marked '-j1'.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168603 91177308-0d34-0410-b5e6-96231b3b80d8

commit dac6cd533d90fa1f75e66f83f7d5ebc12e34bfb7
Author: Anna Zaks <ganna@apple.com>
Date:   Mon Nov 26 19:11:46 2012 +0000

    [analyzer] Fix a crash reported in PR 14400.

    The AllocaRegion did not have the superRegion (based on LocationContext)
    as part of it's hash. As a consequence, the AllocaRegions from
    different frames were uniqued to be the same region.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168599 91177308-0d34-0410-b5e6-96231b3b80d8

commit f419a856b56354781141a2a37f6190918be548ed
Author: Anton Korobeynikov <asl@math.spbu.ru>
Date:   Mon Nov 26 18:59:10 2012 +0000

    MSPGCC renamed ISR vectors from vector_<address> to __isr_<number>. This patch makes Clang reflect this scheme.
    Patch by Job Noorman!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168598 91177308-0d34-0410-b5e6-96231b3b80d8

commit 79b7cc59658ca477cd943561d2d30cdfe9e09a5a
Author: Timur Iskhodzhanov <timurrrr@google.com>
Date:   Mon Nov 26 08:55:48 2012 +0000

    Fix PR14413 - incorrect mangling of anonymous namespaces with -cxx-abi microsoft

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168583 91177308-0d34-0410-b5e6-96231b3b80d8

commit 73ed67cc36b06a380ddc3658beb7a84328c19ff6
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Mon Nov 26 08:32:48 2012 +0000

    PR14428: When instantiating a 'new' expression, if we had a non-dependent
    initialization, don't rebuild it. Remove a couple of hacks which were trying to
    work around this. Fix the special case for one-argument CXXConstructExprs to
    not apply if the one argument is a default argument.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168582 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8dbf697cf5e10824659bc5061ebf470fa43716fa
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Sun Nov 25 14:07:59 2012 +0000

    Add r168519 back, but with a fix to also merge the used flag in variables.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168564 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1c80b522e45243d91838bb9b549f844b762cd2bf
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Sun Nov 25 14:00:51 2012 +0000

    Add a basic testcase for the "variable is not needed" warning and one that
    regressed in r168519.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168563 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1059653db7ac43ff361663bea35352f82285cc22
Author: Alexey Samsonov <samsonov@google.com>
Date:   Sun Nov 25 13:40:21 2012 +0000

    Fix test case for linking with sanitizer opts added in r168428.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168562 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6df81a94fca403c7aa66918404caab19cffbca35
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Sat Nov 24 23:17:09 2012 +0000

    Revert r168519, "Merge used flags so that we don't have to iterate on isUsed. With this change"

    It brought bunch of (possibly false) warnings.

    llvm/unittests/VMCore/PassManagerTest.cpp:60:22: warning: variable 'ID' is not needed and will not be emitted [-Wunneeded-internal-declaration]
        char ModuleNDNM::ID=0;
                         ^
    llvm/unittests/VMCore/PassManagerTest.cpp:86:22: warning: variable 'ID' is not needed and will not be emitted [-Wunneeded-internal-declaration]
        char ModuleNDM2::ID=0;
                         ^
    llvm/unittests/VMCore/PassManagerTest.cpp:106:21: warning: variable 'ID' is not needed and will not be emitted [-Wunneeded-internal-declaration]
        char ModuleDNM::ID=0;
                        ^
    llvm/unittests/VMCore/PassManagerTest.cpp:217:16: warning: variable 'initcount' is not needed and will not be emitted [-Wunneeded-internal-declaration]
        int LPass::initcount=0;
                   ^
    llvm/unittests/VMCore/PassManagerTest.cpp:218:16: warning: variable 'fincount' is not needed and will not be emitted [-Wunneeded-internal-declaration]
        int LPass::fincount=0;
                   ^
    llvm/unittests/VMCore/PassManagerTest.cpp:259:16: warning: variable 'inited' is not needed and will not be emitted [-Wunneeded-internal-declaration]
        int BPass::inited=0;
                   ^
    llvm/unittests/VMCore/PassManagerTest.cpp:260:16: warning: variable 'fin' is not needed and will not be emitted [-Wunneeded-internal-declaration]
        int BPass::fin=0;
                   ^
    llvm/unittests/VMCore/PassManagerTest.cpp:283:24: warning: variable 'ID' is not needed and will not be emitted [-Wunneeded-internal-declaration]
        char OnTheFlyTest::ID=0;
                           ^
    8 warnings generated.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168549 91177308-0d34-0410-b5e6-96231b3b80d8

commit f9cb0bedb5c61fa270fd696113d4387456c70ebb
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Sat Nov 24 03:20:20 2012 +0000

    Make err_module_expected_semi consistent with all the other expected_semi diags.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168535 91177308-0d34-0410-b5e6-96231b3b80d8

commit 63b6ebe4e732f20fa24ea0666ed438dd5004cc20
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Fri Nov 23 17:04:52 2012 +0000

    Sema: Provide a valid source location when instantiating templates based on a CXXDefaultArgExpr.

    Fixes PR13758.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168521 91177308-0d34-0410-b5e6-96231b3b80d8

commit 919b7e69781daf68766bb9af11ca1b9f246ce935
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Fri Nov 23 16:26:30 2012 +0000

    Merge used flags so that we don't have to iterate on isUsed. With this change
    "clang -cc1 -fsyntax-only" on the preprocessed output of

    #define M extern int a;
    #define M2 M M
    #define M4 M2 M2
    #define M8 M4 M4
    #define M16 M8 M8
    #define M32 M16 M16
    #define M64 M32 M32
    #define M128 M64 M64
    #define M256 M128 M128
    #define M512 M256 M256
    #define M1024 M512 M512
    #define M2048 M1024 M1024
    #define M4096 M2048 M2048
    #define M8192 M4096 M4096
    #define M16384 M8192 M8192
    M16384

    goes from 2.994s to 1.416s. GCC is at 0.022s, so we still have a long way to go.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168519 91177308-0d34-0410-b5e6-96231b3b80d8

commit 385e1d9fd05cdebf00924489788409f6853579bf
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Fri Nov 23 14:29:54 2012 +0000

    Remove redundant check.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168515 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4875bf2dc8e4ac99863c4756857e553e02090b48
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Fri Nov 23 13:54:40 2012 +0000

    Check that we don't warn on this testcase. This is basically a test that
    Decl::isUsed checks the attribute. If the function had a body just the check
    is DeclMustBeEmitted would be sufficient.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168514 91177308-0d34-0410-b5e6-96231b3b80d8

commit 85489080807b47b70d26611ba543801e16bec4cd
Author: Joey Gouly <joey.gouly@arm.com>
Date:   Fri Nov 23 10:39:49 2012 +0000

    PR14306: Move -fbounds-checking to -fsanitize=bounds.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168510 91177308-0d34-0410-b5e6-96231b3b80d8

commit 66b8a6671bb5df540dd7200a5286f7ed7a72c1cc
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Fri Nov 23 06:14:39 2012 +0000

    Reapply a subset of r167567 to clean up Darwin-specific code for invoking gcc.

    Unlike my previous attempt at this, this patch leaves intact the check for
    whether clang can handle the input file type, and for non-Darwin toolchains it
    will invoke gcc for things it cannot handle. For Darwin toolchains, the
    behavior reported in pr14338 still occurs with this patch, but that is a
    definite improvement from what happens currently, where it just crashes with
    an assertion failure.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168505 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4d9f4e5bfa701fc870e3c481f93f1fcc52d327bb
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Thu Nov 22 15:02:44 2012 +0000

    Make helpers static/anonymous.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168500 91177308-0d34-0410-b5e6-96231b3b80d8

commit 746619a5ace6dcbd0970e904b1ebda838064ec03
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Nov 22 00:40:54 2012 +0000

    Fix regression in r168477. Use canonical decl when looking for base class
    specified as a qualified name.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168479 91177308-0d34-0410-b5e6-96231b3b80d8

commit f62c690c55fb920f3ba0a4f6e6e259e2ae7ce297
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Nov 22 00:24:47 2012 +0000

    Fix CXXRecordDecl::forallBases to not look through bases which are dependent
    and defined within the current instantiation, but which are not part of the
    current instantiation. Previously, it would look at bases which could be
    specialized separately from the current template.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168477 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1a6c43a9d215697dbe0418c145a6bd1c85ec654d
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Nov 22 00:21:13 2012 +0000

    Test that we correctly deal with multiple copy constructors when detecting
    non-trivial special members for varargs calls.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168476 91177308-0d34-0410-b5e6-96231b3b80d8

commit a6b2581f9595fb803fe7e2ef1d9f25e75b26d2fb
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Wed Nov 21 23:40:23 2012 +0000

    Fix the '-fuse-init-array' option to actually be an option.

    Previously, this flag to CC1 was never exposed at the clang driver
    layer, and if you happened to enable it (by being on Android or GCC 4.7
    platform), you couldn't *disable* it, because there was no 'no' variant.
    The whole thing was confusingly implemented.

    Now, the target-specific flag processing gets the driver arg list, and
    we use standard hasFlag with a default based on the GCC version and/or
    Android platform. The user can still pass the 'no-' variant to forcibly
    disable the flag, or pass the positive variant to clang itself to enable
    the flag.

    The test has also been substantially cleaned up and extended to cover
    these use cases.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168473 91177308-0d34-0410-b5e6-96231b3b80d8

commit 39ad0f03d53c3aae5ea8c6d0572fd63154d40e99
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Wed Nov 21 17:42:47 2012 +0000

    SemaCXX: an enumeral type can be of character or boolean type in a C++11 enum class. Make sure we create a literal of the right type.

    Fixes PR14386.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168441 91177308-0d34-0410-b5e6-96231b3b80d8

commit 21261f4f9775d1212b12be5a125ab9f3beca4c12
Author: Joey Gouly <joey.gouly@arm.com>
Date:   Wed Nov 21 16:54:35 2012 +0000

    Test commit: Remove blank line.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168436 91177308-0d34-0410-b5e6-96231b3b80d8

commit 803dd9e955e587a9125c1a07512bc061a654ee0d
Author: Alexey Samsonov <samsonov@google.com>
Date:   Wed Nov 21 15:52:36 2012 +0000

    Try to fix test from r168428 on mingw bot

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168431 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3ffa91aff27534c482a07deffd738f7730686183
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Wed Nov 21 14:45:57 2012 +0000

    clang/test/Driver/x86_64-nacl-defines.cpp: Specify filename generated.

    FIXME: It could be /dev/null.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168429 91177308-0d34-0410-b5e6-96231b3b80d8

commit 69b77d7fb3265e0e18c91badd50b4cb23dddf3e7
Author: Alexey Samsonov <samsonov@google.com>
Date:   Wed Nov 21 14:17:42 2012 +0000

    [Sanitizer] force linking with static sanitizer runtimes on Darwin even if they are not found in resource directory. Add test checking sanitizer linker flags on Darwin.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168428 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0061fe4094a088863fd47d2509a40cbfcb019f07
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Wed Nov 21 10:54:55 2012 +0000

    Use color for -ast-dump-filter only when it is supported

    Patch by Philip Craig.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168420 91177308-0d34-0410-b5e6-96231b3b80d8

commit 16c8cf1c3c5e4265b90103a7b5e924e567ab5cd1
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Wed Nov 21 02:53:22 2012 +0000

    Remove redundant code.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168411 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5175861336cf35cce8b2889282d9b55394a4380c
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Wed Nov 21 02:47:19 2012 +0000

    Remove redundant code.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168410 91177308-0d34-0410-b5e6-96231b3b80d8

commit 289994c1e7f965f2556b8b566738396659066669
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Nov 20 23:23:57 2012 +0000

    Don't walk a linked list twice in the same function. On my machine this takes
    "clang -cc1" on a file with 10k repetitions of
    extern int no_such_variable;
    from 1.434s to 1.133s.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168394 91177308-0d34-0410-b5e6-96231b3b80d8

commit dd851595cb9123558c9029efdadb1b4be9881a3d
Author: Bill Wendling <isanbard@gmail.com>
Date:   Tue Nov 20 05:09:43 2012 +0000

    Update method calls to the new interface re r168354.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168355 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0c5d005cd383e2d8c2bea388419ac26ace12e0f0
Author: David Blaikie <dblaikie@gmail.com>
Date:   Mon Nov 19 23:12:51 2012 +0000

    Fix some trailing whitespace (on a blank line) to cycle/test bots.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168340 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1a5bd5d680726f3d133da27791b228b2c8fe96c6
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Mon Nov 19 21:13:18 2012 +0000

    PR14381: Never skip constexpr function bodies when code-completing. We may need
    them in order to parse the rest of the file.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168327 91177308-0d34-0410-b5e6-96231b3b80d8

commit 728948fba8ce2249db0a6fd228d883f38434289a
Author: Kaelyn Uhrain <rikka@google.com>
Date:   Mon Nov 19 18:49:53 2012 +0000

    When adding a NamedDecl to a correction, add the underlying Decl (via
    getUnderlyingDecl()) so that derivatives of
    CorrectionCandidateCallback::ValidateCandidate(...) don't have to worry
    about being thrown by UsingDecls and such.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168317 91177308-0d34-0410-b5e6-96231b3b80d8

commit 529a73de04a108fe74503a19d9933dbb2b1a6cf0
Author: Logan Chien <tzuhsiang.chien@gmail.com>
Date:   Mon Nov 19 12:04:11 2012 +0000

    Add -ldl for non-static libgcc in Android.

    According to Android ABI, we have to link with
    libdl.so, if we are linking with non-static libgcc.

    Besides, this also fixes MIPS link error of
    undefined references to `_Unwind_Find_FDE' and
    `dl_iterate_phdr'.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168310 91177308-0d34-0410-b5e6-96231b3b80d8

commit 18c2842b014a3eafae40dccd713587fa2235772c
Author: Logan Chien <tzuhsiang.chien@gmail.com>
Date:   Mon Nov 19 11:45:31 2012 +0000

    Enable -fuse-init-array for Android X86/MIPS.

    The dynamic linker of Android does not support .ctors/.dtors.
    We should emit .init_array and .fini_array regardless the
    gcc version.

    NOTE: This patch does not affect the ARM backend, because
    it is required to generate .init_array and .fini_array
    for program targeting ARM AAPCS and AEABI.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168309 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7a29070e01c1b48f85b7d3fced5315db8958fae2
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Mon Nov 19 10:00:59 2012 +0000

    clang/test: Suppress two tests on LLP64 target, Windows x64.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168303 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7ce816a77dc79f71950e9e96185e3523ee08994b
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Mon Nov 19 03:52:03 2012 +0000

    Completely re-work how the Clang driver interprets PIC and PIE options.

    There were numerous issues here that were all entangled, and so I've
    tried to do a general simplification of the logic.
    1) The logic was mimicing actual GCC bugs, rather than "features". These
       have been fixed in trunk GCC, and this fixes Clang as well. Notably,
       the logic was always intended to be last-match-wins like any other
       flag.
    2) The logic for handling '-mdynamic-no-pic' was preposterously unclear.
       It also allowed the use of this flag on non-Darwin platforms where it
       has no actual meaning. Now this option is handled directly based on
       tests of how llvm-gcc behaves, and it is only supported on Darwin.
    3) The APIs for the Driver's ToolChains had the implementation ugliness
       of dynamic-no-pic leaking through them. They also had the
       implementation details of the LLVM relocation model flag names
       leaking through.
    4) The actual results of passing these flags was incorrect on Darwin in
       many cases. For example, Darwin *always* uses PIC level 2 if it uses
       in PIC level, and Darwin *always* uses PIC on 64-bit regardless of
       the flags specified, including -fPIE. Darwin never compiles in PIE
       mode, but it can *link* in PIE mode.
    5) Also, PIC was not always being enabled even when PIE was. This isn't
       a supported mode at all and may have caused some fallout in builds
       with complex PIC and PIE interactions.

    The result is (I hope) cleaner and clearer for readers. I've also left
    comments and tests about some of the truly strage behavior that is
    observed on Darwin platforms. We have no real testing of Windows
    platforms and PIC, but I don't have the tools handy to figure that out.
    Hopefully others can beef up our testing here.

    Unfortunately, I can't test this for every platform. =/ If folks have
    dependencies on these flags that aren't covered by tests, they may
    break. I've audited and ensured that all the changes in behavior of the
    existing tests are intentional and good. In particular I've tried to
    make sure the Darwin behavior (which is more suprising than the Linux
    behavior) also matches that of 'gcc' on my mac.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168297 91177308-0d34-0410-b5e6-96231b3b80d8

commit 72511f3adcc89a29c02e36283536beadf9ef555e
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Mon Nov 19 03:52:00 2012 +0000

    Remove a no-op 'const' from a by-value return type.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168296 91177308-0d34-0410-b5e6-96231b3b80d8

commit 86256af6c8515077278d0a78f183fb6d322518ac
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Mon Nov 19 00:51:37 2012 +0000

    RecursiveASTVisitor.h: Rework Doug's r160404, "Eliminating the GCC_CAST hack, take two."

    With this, ARCMT tests would not crash on certain hosts with g++ -O2, eg. cygwin g++-4.5.3.

    r160404 crashed mingw32-g++-4.4.0. I guess method's pointer in conditional expression could not be handled.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168295 91177308-0d34-0410-b5e6-96231b3b80d8

commit 898a7a298185c53a36e923f86fe3f938ebfea67f
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sun Nov 18 22:28:42 2012 +0000

    Remove redundant (duplicated) check.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168293 91177308-0d34-0410-b5e6-96231b3b80d8

commit bf823c09124def7057d6cfd13db0e16ac44af6fe
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Sun Nov 18 02:34:33 2012 +0000

    clang/test/Sema/warn-documentation.cpp: Try to fix up the testcase in r168277.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168278 91177308-0d34-0410-b5e6-96231b3b80d8

commit 36cbbe916f66f08d36492e75809fbf54416a5e8d
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sun Nov 18 00:30:31 2012 +0000

    Documentation parsing: propely handle a lone '\endverbatim' and emit a warning.

    We actually used to assert on this.

    Thanks to NAKAMURA Takumi for noticing this!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168277 91177308-0d34-0410-b5e6-96231b3b80d8

commit d9ffa0c39ff9c71e2729eac4cdcf32b377c1d3b6
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Nov 17 23:53:22 2012 +0000

    Fix Doxygen comment start sequence.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168276 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6d534d45a598e2ee1c24e5b286f8fab4ad89fb56
Author: Andy Gibbs <andyg1001@hotmail.co.uk>
Date:   Sat Nov 17 22:17:28 2012 +0000

    Clean up code according to coding standards

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168274 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5fa667612e0466982407ae678cdfeb68b878ed65
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Sat Nov 17 20:53:53 2012 +0000

    objective-C: Do not issue deprecated warning about implementation
    of a deprecated method in original class (or category), only
    in overrides. // rdar://12717705

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168270 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6d926ae667cca926e77ddce1734514911706ed0a
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Sat Nov 17 20:25:54 2012 +0000

    Fix crash on end-of-file after \ in a char literal, fixes PR14369.

    This makes LexCharConstant() look more like LexStringLiteral(), which doesn't
    have this bug. Add tests for eof after \ for several other cases.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168269 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3f03b586351779be6947466f530f22c491b1b70f
Author: Andy Gibbs <andyg1001@hotmail.co.uk>
Date:   Sat Nov 17 19:18:27 2012 +0000

    Prevent premature macro expansion in __has_builtin, __has_feature,
    __has_attribute, __has_extension, making them behave more akin to
    conventional macros.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168268 91177308-0d34-0410-b5e6-96231b3b80d8

commit 97f8461a2c553f68a258612d2322e4281c3f0915
Author: Andy Gibbs <andyg1001@hotmail.co.uk>
Date:   Sat Nov 17 19:16:52 2012 +0000

    Made the "expected string literal" diagnostic more expressive

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168267 91177308-0d34-0410-b5e6-96231b3b80d8

commit 02a176871d91bba3004e4f94b2d4d588ae4b2122
Author: Andy Gibbs <andyg1001@hotmail.co.uk>
Date:   Sat Nov 17 19:15:38 2012 +0000

    Refactored duplicate string literal lexing code within Preprocessor, into a
    common LexStringLiteral function.  In doing so, some consistency problems have
    been ironed out (e.g. where the first token in the string literal was lexed
    with macro expansion, but subsequent ones were not) and also an erroneous
    diagnostic has been corrected.

    LexStringLiteral is complemented by a FinishLexStringLiteral function which
    can be used in the situation where the first token of the string literal has
    already been lexed.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168266 91177308-0d34-0410-b5e6-96231b3b80d8

commit b9971bada4eeae74883b61ba96fc6d983b6b0e7f
Author: Andy Gibbs <andyg1001@hotmail.co.uk>
Date:   Sat Nov 17 19:14:53 2012 +0000

    Fix handling of invalid uses of the __has_warning builtin macro

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168265 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7baa711e61258a762db42e449e424bd0928318a6
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sat Nov 17 17:30:55 2012 +0000

    Enable inlining of 4 byte atomic ops on ppc32, 8 byte atomic ops on ppc64.

    Also fixes a bit/byte mismatch when checking if a target supports atomic ops of a certain size.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168260 91177308-0d34-0410-b5e6-96231b3b80d8

commit 48a7345a0bffcb01290447c73c6f17680d80f02f
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sat Nov 17 09:14:31 2012 +0000

    Remove copy ctor that provides no value over the default.

    It's also simpler to just copy the words than mangling bits like this ctor did.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168258 91177308-0d34-0410-b5e6-96231b3b80d8

commit eba76a4379997f66f8114eb7e63206a5932b1be8
Author: Ted Kremenek <kremenek@apple.com>
Date:   Sat Nov 17 07:18:30 2012 +0000

    Further reduce "-fsyntax-only -Wuninitialized" time on sqlite3.c by another 2.5% using intelligent pruning of blocks during the final reporting pass.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168257 91177308-0d34-0410-b5e6-96231b3b80d8

commit c1602581f7a4eab486489f09647d724ce35d3f23
Author: Ted Kremenek <kremenek@apple.com>
Date:   Sat Nov 17 02:00:00 2012 +0000

    Switch -Wuninitialized to use a reverse-post order traversal as
    an initial baseline for enqueued blocks, but use a simple DFS stack
    for propagating changes quickly up back edges.

    This provides a 3.5% reduction in -fsyntax-only time on sqlite3.c.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168241 91177308-0d34-0410-b5e6-96231b3b80d8

commit faf3538605ef3c5ba475639424f6f94ec4aa5179
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Sat Nov 17 01:43:10 2012 +0000

    Add missing features for misc x86 CPUs to CPU feature translation.  Patch by Jung-uk Kim.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168239 91177308-0d34-0410-b5e6-96231b3b80d8

commit 612db2aa100453710ce9eb9032268ae30b902d4e
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Sat Nov 17 01:16:19 2012 +0000

    Clean up X86 target feature translation code slightly.  No intended functional change.  Patch by Jung-uk Kim.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168237 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7db16db1ad37a77d45de26bd26725a296025981a
Author: Chad Rosier <mcrosier@apple.com>
Date:   Fri Nov 16 23:41:41 2012 +0000

    Typo.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168222 91177308-0d34-0410-b5e6-96231b3b80d8

commit c35f908d81c5fd62c6755766a422844fedd768ce
Author: Bill Wendling <isanbard@gmail.com>
Date:   Fri Nov 16 23:03:00 2012 +0000

    Revert r167799. It's not really correct, and it doesn't fix the problem that it was intended to fix.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168217 91177308-0d34-0410-b5e6-96231b3b80d8

commit e60729a17c5b5eb725be00ec986bf5675c0680e3
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Fri Nov 16 22:34:07 2012 +0000

    Testcase overriding-ftemplate-comments.cpp: use [[@LINE]] to make it less fragile.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168213 91177308-0d34-0410-b5e6-96231b3b80d8

commit ecf16265407c4d0edb860dc8259a6874d1a19f6e
Author: Chad Rosier <mcrosier@apple.com>
Date:   Fri Nov 16 22:31:39 2012 +0000

    [driver] Add the missing TY_PP_ObjCXX_Alias case to the isCXX function.

    This was causing different behavior when using -x objective-c++-cpp-output as
    compared to -x objc++-cpp-output.  Specifically, the driver was not adding the
    -fcxx-exceptions flag in the latter case.
    rdar://12680312

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168212 91177308-0d34-0410-b5e6-96231b3b80d8

commit 95f6190acb664b345b1395abaea84ee451740c5b
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Fri Nov 16 21:43:31 2012 +0000

    StmtDumper: remove incomplete support for limiting the maximum dump depth.
    There are better ways of limiting the amount of information if there is a need
    for that.

    Patch by Philip Craig.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168206 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5f684e90c2f44eda979573a01c2ed063d9adc7a8
Author: Daniel Jasper <djasper@google.com>
Date:   Fri Nov 16 18:39:22 2012 +0000

    Fix partial-match-bind-behavior with forEachDescendant() matchers.

    The problem is that a partial match of an (explicit or implicit) allOf matcher
    binds results, i.e.

    recordDecl(decl().bind("x"), hasName("A"))

    can very well bind a record that is not named "A". With this fix, the common
    cases of stumbling over this bug are fixed by the BoundNodesMap overwriting the
    results of a partial match. An error can still be created with a weird
    combination of anyOf and allOf (see inactive test). We need to decide whether
    this is worth fixing, as the fix will have performance impact.

    Review: http://llvm-reviews.chandlerc.com/D124

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168177 91177308-0d34-0410-b5e6-96231b3b80d8

commit 58782bee56bf5e6ab42e6695af9ae5befe1fd479
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Nov 16 17:41:21 2012 +0000

    [analyzer] SATestBuild.py: fix broken string concatenation

    This has been broken for a while, but the branch was never being taken.
    (We were trying to do 'str + floatVal'; now we do 'str % intVal' and use
    the '%d' format.)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168174 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ecf6428acd01f16202f5f1dcb00eab3635e181a
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Fri Nov 16 17:30:58 2012 +0000

    Make libASTMatchers link its dependencies. libRewriteFrontend depends on libRewriteCore.

    LLVM_USED_LIBS does nothing here.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168172 91177308-0d34-0410-b5e6-96231b3b80d8

commit 75fcb193aeeec5c4f10cc39df60a5ce7526b1b28
Author: Alexey Samsonov <samsonov@google.com>
Date:   Fri Nov 16 12:53:14 2012 +0000

    UBSan: enable proper linking with UBsan runtime on Darwin. Turn on building ubsan on OS X in 'make' build system. Patch by Jean-Daniel Dupas.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168168 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4a9e60fc7c36e323ae376601cc704fed4beb68ae
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Fri Nov 16 08:40:59 2012 +0000

    Store this Decl* as a Decl* instead of a uintptr_t. No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168145 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3a4c8cf5c0669f48a66da2df30c7963dce8348ff
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Nov 16 04:40:11 2012 +0000

    clang/unittests: Fixup corresponding to Doug's r168136.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168137 91177308-0d34-0410-b5e6-96231b3b80d8

commit 49a87549f4dc95ecb3d8a593b71df7c167a51f85
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Nov 16 04:24:59 2012 +0000

    Since CreateTargetInfo is taking ownership of the target options, pass
    it as a pointer.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168136 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8149a98f6691f2b6eb58389f329187d0f1b8ffd1
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Nov 16 04:10:20 2012 +0000

    Remove unused diagnostics

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168135 91177308-0d34-0410-b5e6-96231b3b80d8

commit 10310e2339380adeede0e91f4bf4d55cb28f63ae
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Nov 16 03:50:55 2012 +0000

    Revert r168132, "clang/test/lit.cfg: Suppress the feature 'dev-fd-fs' for now." I missed Daniel's r168095 by my accident.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168134 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7fdc8fdbfe0d2b4bc0f1a22b2560ca6d86a72c94
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Nov 16 03:34:57 2012 +0000

    [libclang] When caching code-completion results, pass the CachedCompletionAllocator
    to the CodeCompletionTUInfo that is going to be used to get the results.

    Previously we would use ASTUnit's CodeCompletionTUInfo which has its own allocator
    that will go away when we reparse. That could result in a use-after-free bug when
    getting the parent context name from a CodeCompletionString.

    Addresses rdar://12568377.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168133 91177308-0d34-0410-b5e6-96231b3b80d8

commit 03e1f76d6b65124b073f24a6d65dff8003954a67
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Nov 16 03:28:51 2012 +0000

    clang/test/lit.cfg: Suppress the feature 'dev-fd-fs' for now.

    None of my buildhost (centos6 x86-64 and cygwin) is passing. Investigating.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168132 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2a9be3e5b0c390f9189bb3dec2b2b6ba884f60cc
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Fri Nov 16 01:51:11 2012 +0000

    CPP Output: Do not emit an enter file marker for the main file.

     - This diverges from gcc, and confuses tools (like dtrace) which track # line
       markers as a way to determine which content is in the context of the main
       file.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168128 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8f50b24c8b17368f68c2e71240d487dde53f6da8
Author: Richard Trieu <rtrieu@google.com>
Date:   Fri Nov 16 01:32:40 2012 +0000

    Take into account the zero sign bit for positive numbers when computing the bit
    width of an enum with negative values in IntRange.  Include a test for
    -Wtautological-constant-out-of-range-compare where this had manifested.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168126 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0bbf1c668e8cb1a3e5b1385c2fd5cd6c73f481c0
Author: Matt Beaumont-Gay <matthewbg@google.com>
Date:   Fri Nov 16 01:14:52 2012 +0000

    Fix PR14321, a crash when Clang is built with GCC 4.7 at -O1 or greater.

    GCC 4.7 reuses stack slots fairly aggressively, which exposes more temporary
    lifetime bugs.

    No new test, this was caught by the existing CodeGenCXX/mangle-ms-templates.cpp.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168124 91177308-0d34-0410-b5e6-96231b3b80d8

commit 426391cd51af86f9d59eceb0fb1c42153eccbb9a
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Nov 16 00:53:38 2012 +0000

    A step towards sorting out handling of triviality of special members in C++11.

    Separate out the notions of 'has a trivial special member' and 'has a
    non-trivial special member', and use them appropriately. These are not
    opposites of one another (there might be no special member, or in C++11 there
    might be a trivial one and a non-trivial one). The CXXRecordDecl predicates
    continue to produce incorrect results, but do so in fewer cases now, and
    they document the cases where they might be wrong.

    No functionality changes are intended here (they will come when the predicates
    start producing the right answers...).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168119 91177308-0d34-0410-b5e6-96231b3b80d8

commit 40b48a1b924fb1f830421da315b5a6a5539a12a9
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Nov 16 00:25:28 2012 +0000

    Mention the lldb formatters in the clang wiki under debugging.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168118 91177308-0d34-0410-b5e6-96231b3b80d8

commit fc0eb2a77b3b48f4f7f9338b158fa913cda0f774
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Nov 16 00:25:26 2012 +0000

    [ClangDataFormat.py] Add summary for QualType.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168117 91177308-0d34-0410-b5e6-96231b3b80d8

commit 84fd6df966208b380cba072d2f2883962b9d270a
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Thu Nov 15 23:40:48 2012 +0000

    Make sure CodeGenTypes correctly reconverts function types.  Fixes PR14355, a crash in IR generation.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168112 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6f9a445760992a6fbff2c0b08becf35ae9eafa71
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Nov 15 22:54:20 2012 +0000

    PR9903: Recover from a member functon declared with the 'typedef' specifier by
    dropping the specifier, just like we do for non-member functions and function
    templates declared 'typedef'. Patch by Brian Brooks!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168108 91177308-0d34-0410-b5e6-96231b3b80d8

commit f0024960d5f9edc5728128b49cb758e689dd3746
Author: Anna Zaks <ganna@apple.com>
Date:   Thu Nov 15 22:42:44 2012 +0000

    [analyzer] CmpRuns: move the clang_version info into the run (out of
    report)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168105 91177308-0d34-0410-b5e6-96231b3b80d8

commit e8b5db4f2722991c37cc51ae9aa78e212c7e8514
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Thu Nov 15 22:21:42 2012 +0000

    Comment to XML conversion test: correct filename.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168101 91177308-0d34-0410-b5e6-96231b3b80d8

commit f55a9e5e70aa08a5a4d3f3ad79487b3ad1d19b46
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Nov 15 22:03:53 2012 +0000

    [analyzer] SATestBuild.py: correctly add -j option for projects using make.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168099 91177308-0d34-0410-b5e6-96231b3b80d8

commit 61322bc43b016d7dd6b19282adec8fdb27905840
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Thu Nov 15 22:03:13 2012 +0000

    Split annotate-comments.cpp into a fragile (that uses hardcoded line numbers)
    and a non-fragile (that uses [[@LINE]]) parts.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168098 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0278f1b9b64a99ae3545a20e31d8ce1665eca322
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Thu Nov 15 21:31:13 2012 +0000

    tests: Mark the /dev/fd test as requiring Darwin until I can test on other OSes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168095 91177308-0d34-0410-b5e6-96231b3b80d8

commit 596be9372b79842b74c0654ab3dab33200812e8a
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Thu Nov 15 20:59:00 2012 +0000

    [utils/ClangDataFormat.py] For invalid source locations just return
    "<invalid loc>" for summary.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168087 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5564e6c45401c37adb9444b6bf0ef8ce70b1fce8
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Thu Nov 15 20:24:58 2012 +0000

    tests: Check that we can output to /dev/fd filesystem.

     - An LLVM unique_file() bug could cause us to infinite loop on the later test
       case.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168082 91177308-0d34-0410-b5e6-96231b3b80d8

commit 84e1513beb8450f31d9589dcdfc33b0890405ab6
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Nov 15 20:10:05 2012 +0000

    [analyzer] Fix a use-after-free introduced in r168019.

    In code like this:

    void foo() {
         bar();
         baz();
    }

    ...the location for the call to 'bar()' was being used as a backup location
    for the call to 'baz()'. This is fine unless the call to 'bar()' is deemed
    uninteresting and that part of the path deleted.

    (This looks like a logic error as well, but in practice the only way 'baz()'
    could have an invalid location is if the entire body of 'foo()' is
    synthesized, meaning the call to 'bar()' will be using the location of the
    call to 'foo()' anyway. Nevertheless, the new version better matches the
    intent of the code.)

    Found by Matt Beaumont-Gay using ASan. Thanks, Matt!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168080 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0b95bd00533620ec5cb81041afbf790dfe976ca9
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Thu Nov 15 20:06:10 2012 +0000

    tests: Add a test for reading from named pipes.

     - Realized I could use the /dev/fd filesystem to make a simple portable test.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168079 91177308-0d34-0410-b5e6-96231b3b80d8

commit 71f49f5d8fc3c4980bed4bb7790c8d0e50586d3b
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Nov 15 19:47:16 2012 +0000

    If an excluded header does not exist, just ignore it

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168077 91177308-0d34-0410-b5e6-96231b3b80d8

commit 63bc186d6ac0b44ba4ec6fccb5f471b05c79b666
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Nov 15 19:11:43 2012 +0000

    [analyzer] Report leaks at the closing brace of a function body.

    This fixes a few cases where we'd emit path notes like this:

      +---+
     1|   v
      p = malloc(len);
      ^   |2
      +---+

    In general this should make path notes more consistent and more correct,
    especially in cases where the leak happens on the false branch of an if
    that jumps directly to the end of the function. There are a couple places
    where the leak is reported farther away from the cause; these are usually
    cases where there are several levels of nested braces before the end of
    the function. This still matches our current behavior for when there /is/
    a statement after all the braces, though.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168070 91177308-0d34-0410-b5e6-96231b3b80d8

commit f34a5791c5c9df0348714e275adb09b8cf858460
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Nov 15 19:11:38 2012 +0000

    [analyzer] StreamChecker: Remove now-unnecessary check::EndPath callback.

    Also, don't bother to stop tracking symbols in the return value, either.
    They are now properly considered live during checkDeadSymbols.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168069 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7f82bc87c99371df7adb2dbdf3464832031e4184
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Nov 15 19:11:35 2012 +0000

    [analyzer] MacOSKeychainAPIChecker: Remove now-unnecessary check::EndPath.

    Also, don't bother to stop tracking symbols in the return value, either.
    They are now properly considered live during checkDeadSymbols.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168068 91177308-0d34-0410-b5e6-96231b3b80d8

commit 65d4bd60ec6a734b814b7253b1026d35c8e46ce9
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Nov 15 19:11:33 2012 +0000

    [analyzer] MallocChecker: Remove now-unnecessary check::EndPath callback.

    Also, don't bother to stop tracking symbols in the return value, either.
    They are now properly considered live during checkDeadSymbols.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168067 91177308-0d34-0410-b5e6-96231b3b80d8

commit 84c484545c5906ba55143e212b4a5275ab55889f
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Nov 15 19:11:27 2012 +0000

    [analyzer] Mark symbol values as dead in the environment.

    This allows us to properly remove dead bindings at the end of the top-level
    stack frame, using the ReturnStmt, if there is one, to keep the return value
    live. This in turn removes the need for a check::EndPath callback in leak
    checkers.

    This does cause some changes in the path notes for leak checkers. Previously,
    a leak would be reported at the location of the closing brace in a function.
    Now, it gets reported at the last statement. This matches the way leaks are
    currently reported for inlined functions, but is less than ideal for both.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168066 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3d145f660a23d5bdabdd1ead83c51f3df1489b09
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Nov 15 19:02:45 2012 +0000

    block extended signatur option. Change previous option
    to a cc1 -fencode-extended-block-signature and pass it
    to cc1 and recognize this option to produce extended block
    type signature. // rdar://12109031

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168063 91177308-0d34-0410-b5e6-96231b3b80d8

commit 992d91742129c1f77563df0b3d0a40b36fd13e3e
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Thu Nov 15 18:57:27 2012 +0000

    [modules] Use a memory buffer directly as input for the module includes,
    instead of messing with virtual files.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168062 91177308-0d34-0410-b5e6-96231b3b80d8

commit 958bcaf3d4e0c1ae46de3e84e7c2a7638c3c5286
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Thu Nov 15 18:57:22 2012 +0000

    [modules] Setup the import location of a module file and use it
    as the include location of the main file of an imported module.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168061 91177308-0d34-0410-b5e6-96231b3b80d8

commit b164af6ae6f2338cc8e685740960715858bfa134
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Thu Nov 15 18:37:27 2012 +0000

    Comment to XML conversion: convert some tests to use the new [[@LINE]]
    FileCheck feature.  This will hopefully make tests less fragile.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168056 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2a683146db77a4dbeb2ef411345e97c9db30a247
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Thu Nov 15 18:32:56 2012 +0000

    Remove unused diagnostics from TableGen files.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168055 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8fd8ee9b718a7d6ebbcc382c1de39ed1260fe2d3
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Thu Nov 15 16:40:35 2012 +0000

    Simplify code. No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168047 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1b48633d308460049e1132960f3c33c850de5bd2
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Thu Nov 15 15:18:42 2012 +0000

    Do not cache a pointer to ExprEvalContexts.back().

    It may become a dangling pointer if the underlying SmallVector reallocates.
    Sadly the testcase is really large and doesn't reduce well because of
    SmallVector's reallocation patterns.

    Fixes PR14336.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168045 91177308-0d34-0410-b5e6-96231b3b80d8

commit c4a77906c259cba58c147d8468c406a430ecdcbb
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Thu Nov 15 14:28:07 2012 +0000

    Use empty parens for empty function parameter list instead of '(void)'.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168041 91177308-0d34-0410-b5e6-96231b3b80d8

commit e0d80f1852bff0bcf8f71b73773cdff71bc94f33
Author: Alexey Samsonov <samsonov@google.com>
Date:   Thu Nov 15 12:40:37 2012 +0000

    [UBSan] Add support for building ubsan runtime library on Linux with 'make'. Clang part.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168039 91177308-0d34-0410-b5e6-96231b3b80d8

commit 621ba4f0dba0accdf67fb38e98bbe14db22ddf8e
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Thu Nov 15 08:19:20 2012 +0000

    Teach the uninitialized field warning about anonymous structs and union members.
    Fixes PR14073!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168031 91177308-0d34-0410-b5e6-96231b3b80d8

commit 931c0833811c030884fa50b2ccbd3c34f0f4c4ee
Author: Lang Hames <lhames@gmail.com>
Date:   Thu Nov 15 07:51:26 2012 +0000

    Make -ffp-contract a codegen option, rather than a laguage option. This makes
    more sense anyway - it determines how expressions are codegen'd. It also ensures
    that -ffp-contract=fast has the intended effect when compiling LLVM IR.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168027 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5bab9ae87c41148ee2f92d312945c1e9303222e8
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Thu Nov 15 05:36:36 2012 +0000

    Revert r167567, restoring the ability of clang to run gcc in cases where it
    can't handle the input file type. This resulted in PR14338.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168024 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5d1cf4f292cb060b1973eb197607fc6d5716bd12
Author: Richard Trieu <rtrieu@google.com>
Date:   Thu Nov 15 03:43:50 2012 +0000

    Fix an off-by-one error by switching < to <= in -Wtautological-constant-out-of-range-compare and added test case.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168023 91177308-0d34-0410-b5e6-96231b3b80d8

commit 278057fd9f44684af832695cb01676c02a257b14
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Nov 15 03:29:05 2012 +0000

    Do not use data recursion in ASTMatchFinder.

    The matchers rely on the complete AST being traversed as shown by the new test cases.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168022 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5d23eeaaad325c5310591b0b8ae69298fecd21a0
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Nov 15 02:17:09 2012 +0000

    [analyzer] Fix test case broken by previous commit.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168020 91177308-0d34-0410-b5e6-96231b3b80d8

commit 368f3b070e8cb657a65bfa443d60256676d269e7
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Nov 15 02:07:23 2012 +0000

    [analyzer] Make sure calls in synthesized functions have valid path locations.

    We do this by using the "most recent" good location: if a synthesized
    function 'A' calls another function 'B', the path notes for the call to 'B'
    will be placed at the same location as the path note for calling 'A'.

    Similarly, the call to 'A' will have a note saying "Entered call from...",
    and now we just don't emit that (since the user doesn't have a body to look
    at anyway).

    Previously, we were doing this for the "Calling..." notes, but not for the
    "Entered call from..." or "Returning to caller". This caused a crash when
    the path entered and then exiting a call within a synthesized body.

    <rdar://problem/12657843>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168019 91177308-0d34-0410-b5e6-96231b3b80d8

commit 350aea7b794e4824f61d92f96140fbdcc0393588
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Thu Nov 15 01:31:39 2012 +0000

    [PCH] Reading expressions from attributes should be done using ReadExpr(),
    not ReadExpr().

    Also add a test case making sure the thread safety attributes work as expected
    when they come from a PCH.

    Fixes rdar://12584141 & http://llvm.org/PR13982

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168017 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5b64e77c2d51ca3e9313ed4107d3c4d927895cd6
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Thu Nov 15 01:21:59 2012 +0000

    Fix a trivial bool-related bug I spotted while skimming David Fang's
    current list of powerpc-darwin8 failures.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168016 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8a3e578ed7f21da4013297d3345a3f69f1f4df96
Author: Tanya Lattner <tonic@nondot.org>
Date:   Thu Nov 15 01:13:31 2012 +0000

    Add link to cfe-users mailing list.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168015 91177308-0d34-0410-b5e6-96231b3b80d8

commit d6537015745128064dc12fcc06af65372dfd5da9
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Nov 15 00:31:27 2012 +0000

    Per [basic.lookup.classref]p3, in an expression of the form p->~type-name, the
    type-name is looked up in the context of the complete postfix-expression. Don't
    forget to pass the scope into this lookup when the type-name is a template-id;
    it might name an alias template which can't be found within the class itself.

    Bug spotted by Johannes Schaub on #llvm.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168011 91177308-0d34-0410-b5e6-96231b3b80d8

commit ebbcd1de4f6b0a88b5c9108529b21306968bd79f
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Thu Nov 15 00:29:07 2012 +0000

    Fix DiagnoseBitwisePrecedence so it doesn't cast "-1" to the type
    BinaryOperator::Opcode.  This is bad form, and the behavior of the static_cast
    in this case is unspecified according to the standard.

    Fixes a warning that showed up from r167992 on self-host.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168010 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3dfb3fa859218272dcb6bf7a79dae533e245ba15
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Nov 15 00:01:28 2012 +0000

    objective-C blocks: make cc1 flag -encode-extended-block-signature
    the default. // rdar://12109031

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168007 91177308-0d34-0410-b5e6-96231b3b80d8

commit 924d5c9853fbdfabc54a473e680f3b6bb8a1b940
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Wed Nov 14 23:57:08 2012 +0000

    Make template diffing handle integral expressions of various widths correctly.
    PR14342.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168005 91177308-0d34-0410-b5e6-96231b3b80d8

commit 62221b17c90457df9ca0ff20bb54d634e8951def
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Nov 14 23:55:25 2012 +0000

    Add -cc1 option -fno-diagnostics-use-presumed-location, a handy mode for
    working with preprocessed testcases. This causes source locations in
    diagnostics to point at the spelling location instead of the presumed location,
    while still keeping the semantic effects of the line directives (entering and
    leaving system-header mode, primarily).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168004 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1a03b262d0f07d4a3091b0a9b7310100d9bd0aa9
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Nov 14 23:52:19 2012 +0000

    [utils/ClangDataFormat.py] Add data formatter for StringRef.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168003 91177308-0d34-0410-b5e6-96231b3b80d8

commit 29a67e8f3adbd433acf271f7be699c50ceb7bdef
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Nov 14 23:52:11 2012 +0000

    [utils/ClangDataFormat.py] In the summary of SourceLocation, include whether it is
    local or loaded.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168002 91177308-0d34-0410-b5e6-96231b3b80d8

commit 06cffc0511ba76d979fad9ef6944e685936b62f0
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Nov 14 23:11:38 2012 +0000

    objective-C blocks: under cc1 flag -encode-extended-block-signature,
    generate expanded signature encoding to include types as we
    already do this for protocol method lists.
    // rdar://12109031

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167997 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1fc9a647f9fbcb2374ebc569964c687576437920
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Nov 14 23:09:52 2012 +0000

    [analyzer] Fix test in previous commit.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167995 91177308-0d34-0410-b5e6-96231b3b80d8

commit 318fd66628d3ad43459c38d5bffb4ffe202028c3
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Nov 14 23:03:55 2012 +0000

    [analyzer] Add a test case for printing a path note at a PreStmt point.

    This is also a false-positive test case for <rdar://problem/12415065>.

    <rdar://problem/12687586>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167994 91177308-0d34-0410-b5e6-96231b3b80d8

commit 526e627d2bd7e8cbf630526d315c90864898d9ff
Author: Richard Trieu <rtrieu@google.com>
Date:   Wed Nov 14 22:50:24 2012 +0000

    Improve -Wtautological-constant-out-of-range-compare by taking into account
    type conversion between integers.  This allows the warning to be more accurate.

    Also, turned the warning off in an analyzer test.  The relavent test cases
    are covered by the tests in Sema.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167992 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1cef45955d87dde48c78b6878dc0ee67a3404b6c
Author: Douglas Gregor <dgregor@apple.com>
Date:   Wed Nov 14 22:29:20 2012 +0000

    Teach the AST importer to merge enumerator constants. Fixes
    <rdar://problem/12676166>, and tested on the LLDB side of the world.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167990 91177308-0d34-0410-b5e6-96231b3b80d8

commit f5bf912767ba19832bba7694fc679a5ec3c055ff
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Wed Nov 14 22:09:59 2012 +0000

    When evaluating variably modified types for function parameters, dig out the
    type as written from the ParmVarDecl; it's unclear whether the standard
    (C99 6.9.1p10) requires this, but we're following the precedent set by gcc,
    and hopefully nobody will ever ask about this again.

    PR9559 / <rdar://problem/12621983>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167985 91177308-0d34-0410-b5e6-96231b3b80d8

commit 825d386c1d66c2444117c0142c4d79246aaaa9bd
Author: Eric Christopher <echristo@gmail.com>
Date:   Wed Nov 14 22:08:59 2012 +0000

    Remove the cellspu port.

    Approved by Chris Lattner.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167983 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5a95d460290142cc84c0805411032dadb4970922
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Wed Nov 14 21:45:43 2012 +0000

    ParseTemplate.cpp: Prune obsolete descriptions in ParseSingleDeclarationAfterTemplate(), for now. [-Wdocumentation]

    /// \param TemplateParams if non-NULL, the template parameter lists
    /// that preceded this declaration. In this case, the declaration is a
    /// template declaration, out-of-line definition of a template, or an
    /// explicit template specialization. When NULL, the declaration is an
    /// explicit template instantiation.
    ///
    /// \param TemplateLoc when TemplateParams is NULL, the location of
    /// the 'template' keyword that indicates that we have an explicit
    /// template instantiation.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167982 91177308-0d34-0410-b5e6-96231b3b80d8

commit 25691f67b22b3ad02a07e66209cad492357f532c
Author: Anna Zaks <ganna@apple.com>
Date:   Wed Nov 14 21:32:16 2012 +0000

    [analyzer] Ensure that CmpRuns recursively walks the output directory.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167981 91177308-0d34-0410-b5e6-96231b3b80d8

commit b6ad9b163d50827d4cd7eccadb20432cd3c089d5
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Nov 14 19:16:13 2012 +0000

    In ExpressionEvaluationContextRecord manage LambdaMangle with a shared
    pointer, otherwise we will double free it when ExpressionEvaluationContextRecord
    gets copied.

    Fixes crash in rdar://12645424 & http://llvm.org/PR14252

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167946 91177308-0d34-0410-b5e6-96231b3b80d8

commit 70cd619e74306b1599d5579e6fd6a14bd9592281
Author: John McCall <rjmccall@apple.com>
Date:   Wed Nov 14 17:48:31 2012 +0000

    The ObjC++-to-C++ personality trick is only necessary on NeXT runtimes,
    which is not coincidentally the only place it works, either (because
    of how it tests for EH_TYPE symbols).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167935 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7d4b9fabf3778ca90aa45392a49cb9c082709929
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Nov 14 17:43:08 2012 +0000

    fixes a buildbot failure.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167934 91177308-0d34-0410-b5e6-96231b3b80d8

commit ccf57eab4ed02fca61e6996c8aebb5e04f46c0e7
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Nov 14 17:27:27 2012 +0000

    Fix 80-column violation.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167932 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3ca23d7dc6cb61e6f363a58d9256d548199d120c
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Nov 14 17:15:51 2012 +0000

    objective-C blocks: Provide layout map for byref
    variables captured in a block. // rdar://12184410

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167931 91177308-0d34-0410-b5e6-96231b3b80d8

commit accaf19bc1129c0273ec50dba52318e60bc29103
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Wed Nov 14 15:08:31 2012 +0000

    s/tranform/transform/

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167929 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2b07dd350a0d0b132ed529cb449fe2a5a56103b8
Author: John McCall <rjmccall@apple.com>
Date:   Wed Nov 14 09:08:34 2012 +0000

    Move some GNUStep-specific code out of CGObjCGNU.

    Patch by Jonathan Schleifer.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167925 91177308-0d34-0410-b5e6-96231b3b80d8

commit 93af2b839224badbb0555f8920c44fc9a1c793fe
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Nov 14 07:36:28 2012 +0000

    PR14279: Work around this major miscompilation by treating move operations as
    non-trivial if they would not call a move operation, even if they would in fact
    call a trivial copy operation. A proper fix is to follow, but this small
    directed fix is intended for porting to the 3.2 release branch.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167920 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4a030228d1bfa0cab89114a18d6b50b44eb3a1a8
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Nov 14 07:06:31 2012 +0000

    When we have a MemberExpr referring to an overloaded static member function,
    and we resolve it to a specific function based on the type which it's used as,
    don't forget to mark it as referenced.

    Fixes a regression introduced in r167514.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167918 91177308-0d34-0410-b5e6-96231b3b80d8

commit 38c5d0a8f33f11661501760c67398e66e327e501
Author: Logan Chien <tzuhsiang.chien@gmail.com>
Date:   Wed Nov 14 06:33:58 2012 +0000

    Code cleanup: Remove trailing whitespace in unwind.h.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167915 91177308-0d34-0410-b5e6-96231b3b80d8

commit 08db94f58e50263eb98ba1a05e967520e8e7f895
Author: David Blaikie <dblaikie@gmail.com>
Date:   Wed Nov 14 04:41:34 2012 +0000

    Remove debugging assert.

    Found by Richard Smith in post-commit review of r167906.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167911 91177308-0d34-0410-b5e6-96231b3b80d8

commit 49193c7b0a2deb0f4d1f7e8a44f46bd278f523d6
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Wed Nov 14 02:21:48 2012 +0000

    SemaTemplateDeduction.cpp: Prune two obsolete descriptions. [-Wdocumentation]

    * getMostSpecialized()

    /// \param Index if non-NULL and the result of this function is non-nULL,
    /// receives the index corresponding to the resulting function template
    /// specialization.

    * DeduceTemplateArguments()

    /// \param Name the name of the function being called. This is only significant
    /// when the function template is a conversion function template, in which
    /// case this routine will also perform template argument deduction based on
    /// the function to which

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167909 91177308-0d34-0410-b5e6-96231b3b80d8

commit 384d3fc80ffb24060480476b62744dc7412929ed
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Wed Nov 14 02:21:42 2012 +0000

    ParseTemplate.cpp: Doxygen fix in AnnotateTemplateIdToken(). [-Wdocumentation]

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167908 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4fa4b480270c14dfdcd0dfd4f76938e973082e3b
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Wed Nov 14 02:18:46 2012 +0000

    Suppress elided variadic macro argument extension diagnostic for macros using
    the related comma pasting extension.

    In certain cases, we used to get two diagnostics for what is essentially one
    extension.  This change suppresses the first diagnostic in certain cases
    where we know we're going to print the second diagnostic.  The
    diagnostic is redundant, and it can't be suppressed in the definition
    of the macro because it points at the use of the macro, so we want to
    avoid printing it if possible.

    The implementation works by detecting constructs which look like comma
    pasting at the time of the definition of the macro; this information
    is then used when the macro is used.  (We can't actually detect
    whether we're using the comma pasting extension until the macro is
    actually used, but we can detecting constructs which will be comma
    pasting if the varargs argument is elided.)

    <rdar://problem/12292192>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167907 91177308-0d34-0410-b5e6-96231b3b80d8

commit 66cff7257698d5528632917d38f9a3037bb1506d
Author: David Blaikie <dblaikie@gmail.com>
Date:   Wed Nov 14 01:52:05 2012 +0000

    Provide the correct mangling and linkage for certain unnamed nested classes.

    This corrects the mangling and linkage of classes (& their member functions) in
    cases like this:

      struct foo {
        struct {
          void func() { ... }
        } x;
      };

    we were accidentally giving this nested unnamed struct 'no' linkage where it
    should've had the linkage of the outer class. The mangling was incorrecty too,
    mangling as TU-wide unnamed type mangling of $_X rather than class-scoped
    mangling of UtX_.

    This also fixes -Wunused-member-function which would incorrectly diagnose
    'func' as unused due to it having no linkage & thus appearing to be TU-local
    when in fact it might be correctly used in another TU.

    Similar mangling should be applied to function local classes in similar cases
    but I've deferred that for a subsequent patch.

    Review/discussion by Richard Smith, John McCall, & especially Eli Friedman.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167906 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0aabf93bc8e0fe5da316a66470aa8584017d0f6e
Author: Anders Carlsson <andersca@mac.com>
Date:   Wed Nov 14 01:39:09 2012 +0000

    Use consistent spelling of 'behavior' in a C++ warning.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167902 91177308-0d34-0410-b5e6-96231b3b80d8

commit ad8070b6bddf2867fd3aba8354cff7016e568758
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Wed Nov 14 01:33:49 2012 +0000

    This function isn't called SaveFiles any more.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167901 91177308-0d34-0410-b5e6-96231b3b80d8

commit 35a2b798efd61fec425553f387d76be9c522f184
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Wed Nov 14 01:28:38 2012 +0000

    Fix an assertion failure printing the unused-label fixit in files using CRLF line endings.  <rdar://problem/12639047>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167900 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8c88953ff0cebd861643ab92309aba71d23c306b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Nov 14 00:50:40 2012 +0000

    Remove another questionable use of hasTrivial*. The relevant thing for this
    test was whether the /selected/ operator= was trivial, not whether the class
    had any trivial (or any non-trivial) operator=s.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167897 91177308-0d34-0410-b5e6-96231b3b80d8

commit b8a8de316dade43fff95d7bfd2cfaa367f53faea
Author: John McCall <rjmccall@apple.com>
Date:   Wed Nov 14 00:49:39 2012 +0000

    Accept and pass arguments to __unknown_anytype in argument
    positions of Objective-C methods.

    It is possible to recover a lot of type information about
    Objective-C methods from the reflective metadata for their
    implementations.  This information is not rich when it
    comes to struct types, however, and it is not possible to
    produce a type in the debugger's round-tripped AST which
    will really do anything useful during type-checking.
    Therefore we allow __unknown_anytype in these positions,
    which essentially disables type-checking for that argument.
    We infer the parameter type to be the unqualified type of
    the argument expression unless that expression is an
    explicit cast, in which case it becomes the type-as-written
    of that cast.

    rdar://problem/12565338

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167896 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6f0b00a2e286adc813beb0a55ce3ffcda10cce77
Author: Matt Beaumont-Gay <matthewbg@google.com>
Date:   Wed Nov 14 00:00:25 2012 +0000

    Fix typo

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167891 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0c949efad533330eee234d613712510db7376e44
Author: Eric Christopher <echristo@gmail.com>
Date:   Tue Nov 13 23:30:57 2012 +0000

    Revert "Use the 'count' attribute instead of the 'upper_bound' attribute."
    temporarily since it breaks the gdb bots.

    This reverts commit r167807/30305bec25cac981c6d4a3b8be004401310a82a7.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167887 91177308-0d34-0410-b5e6-96231b3b80d8

commit 25f071eedf5d20faf9e1614d5ff5dc39b6de5041
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Tue Nov 13 23:16:33 2012 +0000

    Don't try to save the assigned value in a Objective-C property assignment
    if the type of the value is a non-trivial class type.  Fixes PR14318.

    (There's a minor ObjC++ language change here: given that we can't save the
    value, the type of the assignment expression is void in such cases.)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167884 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0a26d7680d064653cb42e89e70c62402283003fd
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Tue Nov 13 22:09:44 2012 +0000

    [ms] Make mangleIntegerLiteral less aware of exact type of the literal.

    Integer literal mangling does not actually depend on exact type of the literal.
    This will simplify calling mangleIntegerLiteral when literal type is not known,
    for example, when sizes or offsets are mangled as integer literals.

    Also, call mangleNumber instead of directly printing mangled values of 0/1, to
    avoid this knowledge from being in multiple places.

    Patch from Evgeny Eltsin!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167878 91177308-0d34-0410-b5e6-96231b3b80d8

commit 97c81bfaf0b6c90576081c5af7ea22fab6f2b7f9
Author: Kaelyn Uhrain <rikka@google.com>
Date:   Tue Nov 13 21:23:31 2012 +0000

    For classes that have the warn_unused_result attribute, don't apply the
    attribute to the class' methods even when they return an instance of the
    class (e.g. assignment operators).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167873 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2ccecfaa4852c134191d4075d94e09399ab46fea
Author: Anna Zaks <ganna@apple.com>
Date:   Tue Nov 13 19:47:40 2012 +0000

    [analyzer] Address Jordan's code review for r167813.

    This simplifies logic, fixes a bug, and adds a test case.
    Thanks Jordan!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167868 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6e649737898ffb627c377fd8fa0a437d0a42ae4a
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Tue Nov 13 19:12:37 2012 +0000

    Revert r167801, "[preprocessor] When #including something that contributes no
    tokens at all,". This change broke External/Nurbs in LLVM test-suite.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167858 91177308-0d34-0410-b5e6-96231b3b80d8

commit e5afdcfd6a80efc20b0a2e5bde806c08c3bda887
Author: David Blaikie <dblaikie@gmail.com>
Date:   Tue Nov 13 18:51:45 2012 +0000

    Simplify function try/catch scope handling.

    Based on post-commit review feedback for r167766 by Richard Smith.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167856 91177308-0d34-0410-b5e6-96231b3b80d8

commit b55c67d5e3b44499fa92ac3a6eea2ce01ea78234
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Nov 13 17:14:11 2012 +0000

    Fix AST-matcher descendant visiting for Types, TypeLocs and NestedNamespecifierLocs.

    The RecursiveASTVisitor assumes that any given Traverse-method can be called with a NULL-node. So the subclass needs to handle these appropriately.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167850 91177308-0d34-0410-b5e6-96231b3b80d8

commit b12ecd3a3ef0a7010b33759b2310b83d51fbdc9a
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Tue Nov 13 15:32:35 2012 +0000

    This patch makes the behavior of clang consistent with the behavior of gcc 4.6 in cases where both -fPIC and -fPIE is used.

    - Separately check if -fPIE was specified in the command line and define both __PIC__ and __PIE__ when -fPIE is used. We need to check this separately because -fPIE will infer -fPIC even if its not explicitly used.
    - Fixed existing tests.
    - Added new tests for cases where both -fPIC and -fPIE is used.

    Author: Tareq A. Siraj <tareq.a.siraj@intel.com>
    Fixes: PR13221
    Review: http://llvm-reviews.chandlerc.com/D94

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167846 91177308-0d34-0410-b5e6-96231b3b80d8

commit dd81731d82a33a242e7b088e249e56873ef52807
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Tue Nov 13 06:25:15 2012 +0000

    UCNs in char literals are done (in LiteralSupport), remove FIXME. Expand UCN FIXME in LexNumericConstant.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167818 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8682b93b3491facc9a42eb87b78bb9d8c18a0739
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Nov 13 05:07:23 2012 +0000

    Copy the decls returned by DeclContext::lookup_result to a
    new container so we can safely iterate over them.

    The container holding the lookup decls can under certain conditions
    be changed while iterating (e.g. because of deserialization).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167816 91177308-0d34-0410-b5e6-96231b3b80d8

commit cbf5f60996fa2bd0ecd779b1472dc5cbad3ca464
Author: Anna Zaks <ganna@apple.com>
Date:   Tue Nov 13 03:34:49 2012 +0000

    Add a test that shows that reporting a leak after failure to free is
    tricky.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167814 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4141e4dcab6b175374710925aa90d547600a5e66
Author: Anna Zaks <ganna@apple.com>
Date:   Tue Nov 13 03:18:01 2012 +0000

    Fix a Malloc Checker FP by tracking return values from initWithCharacter
    and other functions.

    When these functions return null, the pointer is not freed by
    them/ownership is not transfered. So we should allow the user to free
    the pointer by calling another function when the return value is NULL.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167813 91177308-0d34-0410-b5e6-96231b3b80d8

commit 30305bec25cac981c6d4a3b8be004401310a82a7
Author: Bill Wendling <isanbard@gmail.com>
Date:   Tue Nov 13 02:31:58 2012 +0000

    Use the 'count' attribute instead of the 'upper_bound' attribute.

    If we have a type 'int a[1]' and a type 'int b[0]', the generated DWARF is the
    same for both of them because we use the 'upper_bound' attribute. Instead use
    the 'count' attrbute, which gives the correct number of elements in the array.
    <rdar://problem/12566646>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167807 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8187c7e488837698c5fb7a84107e3347d276f73f
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Tue Nov 13 02:05:15 2012 +0000

    Fix IR generation for bool on PPC (and any other target where bool is not 8 bits in memory).

    PR11777.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167802 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4d10b40ea8ee489c7b9194aa2b025df4ecd2ab01
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Nov 13 01:03:15 2012 +0000

    [preprocessor] When #including something that contributes no tokens at all,
    don't recursively continue lexing.

    This avoids a stack overflow with a sequence of many empty #includes.
    rdar://11988695

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167801 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3185d4ac30378995ef70421e2848f77524c2b5d5
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Nov 13 01:02:40 2012 +0000

    In Lexer::LexTokenInternal, avoid code duplication; no functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167800 91177308-0d34-0410-b5e6-96231b3b80d8

commit a50059e34309c3adf76c284a68f91c4ca3574782
Author: Bill Wendling <isanbard@gmail.com>
Date:   Tue Nov 13 00:54:24 2012 +0000

    Disable accelerator tables when compiling with LTO.

    LTO doesn't generate correct accelerator tables. This is due to the general lack
    correct of debug info for LTO. Disable it when using LTO.
    <rdar://problem/12401423>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167799 91177308-0d34-0410-b5e6-96231b3b80d8

commit 044c8aa39d582ebc6bca1720c65ddd06fb27780c
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Nov 13 00:54:12 2012 +0000

    Fix some wrong-code bugs in implicitly-defined assignment operators:
     - In C++11, perform overload resolution over all assignment operators, rather than just looking for copy/move assignment operators.
     - Clean up after temporaries produced by operator= immediately, rather than accumulating them until the end of the function.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167798 91177308-0d34-0410-b5e6-96231b3b80d8

commit d449c792d98f58277e02c0ddc8330cd9de5f82f5
Author: Kaelyn Uhrain <rikka@google.com>
Date:   Tue Nov 13 00:18:47 2012 +0000

    A couple of small fixes to r167783

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167791 91177308-0d34-0410-b5e6-96231b3b80d8

commit bae930d4c69a624881e66f1628ee615e149362f7
Author: Anna Zaks <ganna@apple.com>
Date:   Tue Nov 13 00:13:44 2012 +0000

    [analyzer] Address Jordan's feedback for r167780.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167790 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8f81acfa95a5d2a22fc875c1a10901eaa30b8405
Author: Ted Kremenek <kremenek@apple.com>
Date:   Tue Nov 13 00:12:13 2012 +0000

    Fix bad CFG construction bug when handling C++ 'try' statements.

    This code assigned the last created CFGBlock* to the variable 'Block',
    which is a scratch variable which is null'ed out after a block is
    completed.  By assigning the last created block to 'Block', we start
    editing a completed block, inserting CFGStmts that should be in
    another block.  This was the case with 'try'.  The test case that
    showed this had a while loop inside a 'try', and the logic before
    the while loop was being included as part of the "condition block"
    for the loop.  This showed up as a bogus dead store, but could
    have lots of implications.

    Turns out this bug was replicated a few times within CFG.cpp, so
    I went and fixed up those as well.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167788 91177308-0d34-0410-b5e6-96231b3b80d8

commit d05df512cd6dfa32a696bcdd3dced825efe94bc4
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Tue Nov 13 00:08:34 2012 +0000

    When filtering the list of associated namespaces so that we don't suggest people
    add functions to namespace 'std', also filter out namespaces with '__' anywhere
    in the name.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167786 91177308-0d34-0410-b5e6-96231b3b80d8

commit 51ceb7bab599ea7d39d290ff5e88e4a1f0f5bc5c
Author: Kaelyn Uhrain <rikka@google.com>
Date:   Mon Nov 12 23:48:05 2012 +0000

    Enable C++11 attribute syntax for warn_unused_result and allow it to be
    applied to CXXRecordDecls, where functions with that return type will
    inherit the warn_unused_result attribute.

    Also includes a tiny fix (with no discernable behavior change for
    existing code) to re-sync AttributeDeclKind enum and
    err_attribute_wrong_decl_type with warn_attribute_wrong_decl_type since
    the enum is used with both diagnostic messages to chose the correct
    description.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167783 91177308-0d34-0410-b5e6-96231b3b80d8

commit d51db4935736fd943bfd46dfa74d41e9a3c2d41f
Author: Anna Zaks <ganna@apple.com>
Date:   Mon Nov 12 23:40:29 2012 +0000

    [analyzer] Follow up to r167762 - precisely determine the adjustment
    conditions.

    The adjustment is needed only in case of dynamic dispatch performed by
    the analyzer - when the runtime declaration is different from the static
    one.

    Document this explicitly in the code (by adding a helper). Also, use
    canonical Decls to avoid matching against the case where the definition
    is different from found declaration.

    This fix suppresses the testcase I added in r167762, so add another
    testcase to make sure we do test commit r167762.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167780 91177308-0d34-0410-b5e6-96231b3b80d8

commit e7ce7094602ebb341220467c9a1d6643f45b9595
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Mon Nov 12 23:33:00 2012 +0000

    Factor duplicated implicit memcpy call generation code out of copy/move
    assignment generation. This incidentally avoids reusing the same Expr* across
    multiple statements in the same object; that was generating slightly broken
    ASTs, but I couldn't trigger any observable bad behavior, so no test.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167779 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6ceb377ae4e32eeed2647aacc4a7d5c4564641bf
Author: Eric Christopher <echristo@gmail.com>
Date:   Mon Nov 12 23:13:34 2012 +0000

    Finish reverting r167761, it's causing test failures.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167777 91177308-0d34-0410-b5e6-96231b3b80d8

commit 882995be7ca56efb2ae7beb64611a0fe460768cc
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Mon Nov 12 22:29:43 2012 +0000

    Remove duplicated line.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167767 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3a9fefed0749f7a293379156c22a24509c24cc3e
Author: David Blaikie <dblaikie@gmail.com>
Date:   Mon Nov 12 22:25:41 2012 +0000

    Fix more try scoping bugs introduced by r167650.

    Introduces more clear scoping flags & flag combinations which should hopefully
    be more understandable.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167766 91177308-0d34-0410-b5e6-96231b3b80d8

commit 41296e8a633fc3a9768ebe357a7284fdef278fd2
Author: Bill Wendling <isanbard@gmail.com>
Date:   Mon Nov 12 22:14:27 2012 +0000

    That's causing an error.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167763 91177308-0d34-0410-b5e6-96231b3b80d8

commit e7ad14e18247ec6fc3d46b208829e3dac6d85a1d
Author: Anna Zaks <ganna@apple.com>
Date:   Mon Nov 12 22:06:24 2012 +0000

    [analyzer] Fix a regression (from r 165079): compare canonical types.

    Suppresses a leak false positive (radar://12663777).

    In addition, we'll need to rewrite the adjustReturnValue() method not to
    return UnknownVal by default, but rather assert in cases we cannot
    handle. To make it possible, we need to correctly handle some of the
    edge cases we already know about.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167762 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5ece32e3359ca34fcdab07829f5e9fdbfd157f78
Author: Bill Wendling <isanbard@gmail.com>
Date:   Mon Nov 12 22:01:56 2012 +0000

    Don't test for incomplete types.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167761 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5f9a7e31d038843f1d3a5e2544fc365ffd563951
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Mon Nov 12 21:38:00 2012 +0000

    Remove abuse of hasTrivial*, and fix miscompile wherein global arrays with
    internal linkage, no uses, trivial construction, and nontrivial destruction
    were not emitted.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167756 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5af8de8c7255ca4df52cbb0d5e0d28d67c53524c
Author: Chad Rosier <mcrosier@apple.com>
Date:   Mon Nov 12 21:32:24 2012 +0000

    If we encounter a fatal error, exit with status 70.  For BSD systems this is
    defined as an internal software error.  This notifies the driver to report
    diagnostics information.
    rdar://11951540

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167754 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3078353fb56772193b9304510048ac075a2c95b5
Author: Ted Kremenek <kremenek@apple.com>
Date:   Mon Nov 12 21:20:48 2012 +0000

    Per discussion on cfe-dev, re-enable suppression of -Wimplicit-fallthrough on C, but also include dialects of C++ earlier than C++11.

    There was enough consensus that we *can* get a good language solution
    to have an annotation outside of C++11, and without this annotation
    this warning doesn't quite mean's completeness criteria for this
    kind of warning.  For now, restrict this warning to C++11 (where an
    annotation exists), and make this the behavior for the LLVM 3.2 release.
    Afterwards, we will hammer out a language solution that we are all
    happy with.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167749 91177308-0d34-0410-b5e6-96231b3b80d8

commit ba541d36f6891892efc3f17773ff2395bb97df44
Author: Bill Wendling <isanbard@gmail.com>
Date:   Mon Nov 12 21:13:35 2012 +0000

    Update testcase to show that we don't emit an error for sizes <= 32-bits.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167748 91177308-0d34-0410-b5e6-96231b3b80d8

commit b0afe833e41cac21ded36a4d98df502fa5b3d758
Author: Chad Rosier <mcrosier@apple.com>
Date:   Mon Nov 12 19:39:37 2012 +0000

    If we encounter a fatal error, call the interrupt handler to ensure any
    temporary files are removed.
    rdar://12282296

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167741 91177308-0d34-0410-b5e6-96231b3b80d8

commit 731de313f759bdb412d38df3d2a0f149437ef401
Author: David Blaikie <dblaikie@gmail.com>
Date:   Mon Nov 12 19:32:32 2012 +0000

    80 cols & unnecessary braces from r167736.

    Post-commit review feedback by Eli Friedman.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167739 91177308-0d34-0410-b5e6-96231b3b80d8

commit 383ec17ecaac9ac4fce2747640623274a139badf
Author: David Blaikie <dblaikie@gmail.com>
Date:   Mon Nov 12 19:12:12 2012 +0000

    Correct printing of nested anonymous type member accesses.

    Patch by Florent Bruneau!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167736 91177308-0d34-0410-b5e6-96231b3b80d8

commit f634bdfbf42758f7d49b468df09efa3686f7b699
Author: Bill Wendling <isanbard@gmail.com>
Date:   Mon Nov 12 18:52:32 2012 +0000

    The register constraint could mean a 16- or 8-bit register.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167735 91177308-0d34-0410-b5e6-96231b3b80d8

commit 68fd608c2c0866064e974c3d43778c47c1cbb080
Author: Bill Wendling <isanbard@gmail.com>
Date:   Mon Nov 12 06:42:51 2012 +0000

    Check that the input size is correct for the given constraint.

    The 'a', 'c', and 'd' constraints on i386 mean a 32-bit register. We cannot
    place a 64-bit value into the 32-bit register. Error out instead of causing the
    compiler to spew general badness.
    <rdar://problem/12415959>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167717 91177308-0d34-0410-b5e6-96231b3b80d8

commit c6b82c353bef4cbc0d1dde8580abf8d0a266e64b
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Mon Nov 12 04:32:23 2012 +0000

    Remove calls to getMostRecentDecl. The case they were added for in r117526 are
    now covered by attribute merging.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167714 91177308-0d34-0410-b5e6-96231b3b80d8

commit 538fb98685522bb7234c693f12e82b8893e290ff
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Mon Nov 12 04:10:23 2012 +0000

    In Sema::MergeVarDecl we handle merging of storage classes and visibility
    attributes. In cases where the merged declaration is fully equivalent to the
    two original ones, some of the code was getLVForDecl was duplicated.

    Cases that are still handled in getLVForDecl are things like

    __private_extern__ int N;
    int N;

    For which we cannot produce a single merged decl with all the information.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167703 91177308-0d34-0410-b5e6-96231b3b80d8

commit 778dd4a0b20cc176e441527734b1e3ccfd25e47a
Author: Justin Holewinski <jholewinski@nvidia.com>
Date:   Mon Nov 12 03:16:56 2012 +0000

    [NVPTX] Fix const modifier on builtins

    Some NVVM intrinsics were incorrectly labeled.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167700 91177308-0d34-0410-b5e6-96231b3b80d8

commit 11c98771ba5d7fb1ec5707f9e1c77a6cf65bbc59
Author: Daniel Jasper <djasper@google.com>
Date:   Sun Nov 11 22:14:55 2012 +0000

    Fix binding of nodes in case of forEach..() matchers.

    When recursively visiting the generated matches, the aggregated bindings need
    to be copied during the recursion. Otherwise, we they might not be properly
    overwritten (which is shown by the test), or there might be bound nodes present
    that were bound on a different matching branch.

    Review: http://llvm-reviews.chandlerc.com/D112

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167695 91177308-0d34-0410-b5e6-96231b3b80d8

commit 18f236886b02e999bea6ceff3aa90951198007cb
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Sun Nov 11 21:39:39 2012 +0000

    Remove unneeded includes from IdentifierTable

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167694 91177308-0d34-0410-b5e6-96231b3b80d8

commit 03e67fbf7a2646447972742b6bb97c82ce4698fb
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Sun Nov 11 21:02:03 2012 +0000

    Delete comment reference to non-existent method

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167692 91177308-0d34-0410-b5e6-96231b3b80d8

commit bb23628148f555a4cf71f98c27096a7a804c085c
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Sun Nov 11 07:02:14 2012 +0000

    s/BCPLComment/LineComment/

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167690 91177308-0d34-0410-b5e6-96231b3b80d8

commit a6600a339fee660cac2bd9b04cf578fa47ed491d
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Sun Nov 11 01:35:05 2012 +0000

    FileCheckize test

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167680 91177308-0d34-0410-b5e6-96231b3b80d8

commit 879c92c87549e1c37276a29e7d610523c9659aab
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sun Nov 11 00:28:33 2012 +0000

    Fix a typo which Matt pointed out.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167679 91177308-0d34-0410-b5e6-96231b3b80d8

commit a97d2ecca779bf1e12ea46481973b348d395b06e
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Sat Nov 10 18:30:40 2012 +0000

    objective-C blocks: Change BLOCK_HAS_EXTENDED_LAYOUT to be 1<<31.
    lower 24bit is currently being used.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167678 91177308-0d34-0410-b5e6-96231b3b80d8

commit 229d47aef27e6f65fe4dc3beb22f622dd81104ad
Author: Douglas Gregor <dgregor@apple.com>
Date:   Sat Nov 10 07:24:09 2012 +0000

    Rework my implementation of circular-reference finding to not use
    CXXRecordDecl::forallBases, which does *not* do what I need. Fixes the
    failure introduced in r167651.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167668 91177308-0d34-0410-b5e6-96231b3b80d8

commit 463eb89d5e36b05d74c14b937384076d745b3b84
Author: Michael Liao <michael.liao@intel.com>
Date:   Sat Nov 10 05:17:46 2012 +0000

    Add clang support of RTM from TSX

    - New options '-mrtm'/'-mno-rtm' are added to enable/disable RTM feature
    - Builtin macro '__RTM__' is defined if RTM feature is enabled
    - RTM intrinsic header is added and introduces 3 new intrinsics, namely
      '_xbegin', '_xend', and '_xabort'.
    - 3 new builtins are added to keep compatible with gcc, namely
      '__builtin_ia32_xbegin', '__builtin_ia32_xend', and '__builtin_ia32_xabort'.
    - Test cases for pre-defined macro and new intrinsic codegen are added.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167665 91177308-0d34-0410-b5e6-96231b3b80d8

commit e59188b0bd88ea488f2ec2f10a4ad3c4316adbce
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sat Nov 10 04:54:44 2012 +0000

    -momit-leaf-frame-pointer is a -m option, not a -f option.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167664 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3e7735183b00798efccdee82b9b64b00ef3cd684
Author: Ted Kremenek <kremenek@apple.com>
Date:   Sat Nov 10 04:03:41 2012 +0000

    Revert "Disable -Wimplicit-fallthrough when not using C++.", pending further discussion on cfe-dev.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167662 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6c801b66fed0da4ab9bb6a7967bffc7e7d9ea970
Author: Meador Inge <meadori@codesourcery.com>
Date:   Sat Nov 10 03:56:55 2012 +0000

    Add a few more test cases for verifying -fno-builtin.

    Some holes in testing where discovered while working on the LLVM library
    call simplifiers.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167661 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6e3ceb54a05eb2442625d25fda0b57a2b805ceba
Author: Ted Kremenek <kremenek@apple.com>
Date:   Sat Nov 10 01:47:40 2012 +0000

    Disable -Wimplicit-fallthrough when not using C++.

    The rationale is that there is no good workflow to silence the warning
    for specific cases, other than using pragmas.  This is because the
    attribute to decorate an explicit fall through is only available
    in C++11.

    By that argument, this should probably also be disabled unless one
    is using C++11, but apparently there is an explicit test case for
    this warning when using C++98.  This will require further discussion
    on cfe-commits.

    Fixes:  <rdar://problem/12584746>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167655 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4e674f77150b52d8e6ae82faf64fbdac79d675d3
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Nov 10 01:40:08 2012 +0000

    [analyzer] When invalidating symbolic offset regions, take fields into account.

    Previously, RegionStore was being VERY conservative in saying that because
    p[i].x and p[i].y have a concrete base region of 'p', they might overlap.
    Now, we check the chain of fields back up to the base object and check if
    they match.

    This only kicks in when dealing with symbolic offset regions because
    RegionStore's "base+offset" representation of concrete offset regions loses
    all information about fields. In cases where all offsets are concrete
    (s.x and s.y), RegionStore will already do the right thing, but mixing
    concrete and symbolic offsets can cause bindings to be invalidated that
    are known to not overlap (e.g. p[0].x and p[i].y).
    This additional refinement is tracked by <rdar://problem/12676180>.

    <rdar://problem/12530149>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167654 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3d512d8a75d4cb4609398ce3c2a3ba4c01a23513
Author: David Blaikie <dblaikie@gmail.com>
Date:   Sat Nov 10 01:38:24 2012 +0000

    Handle redeclarations of catch variables in catch blocks.

    Fix to regression caused by r167650, caught by Richard Smith in code review.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167653 91177308-0d34-0410-b5e6-96231b3b80d8

commit d777e2845110469182809e4efc577899395805f7
Author: Douglas Gregor <dgregor@apple.com>
Date:   Sat Nov 10 01:18:17 2012 +0000

    Diagnostic circular inheritance involving dependent base classes. We
    would have diagnosed this at instantiation time anyway, if only we
    didn't hang on all of these test cases. Fixes <rdar://problem/12629723>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167651 91177308-0d34-0410-b5e6-96231b3b80d8

commit c4027c82ad4a61f2da1b893ac8fe47bf11e5d50d
Author: David Blaikie <dblaikie@gmail.com>
Date:   Sat Nov 10 01:04:23 2012 +0000

    PR14296: function parameter name collisions in function try/catch

    C++11 3.3.3/2 "A parameter name shall not be redeclared in the outermost block
    of the function definition nor in the outermost block of any handler associated
    with a function-try-block."

    It's not totally clear to me whether the "FIXME" case is covered by this, but
    Richard Smith thinks it probably should be. It's just a bit more involved to
    fix that case.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167650 91177308-0d34-0410-b5e6-96231b3b80d8

commit 75e8efef960a5e8b94a7e289088e5e7cabe728bd
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Sat Nov 10 00:20:38 2012 +0000

    Make __LDBL_MAX__ etc. have the correct type on targets where long double/double/etc. have the same format.  PR14285.

    Based on patch by Jeroen Dobbelaere.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167649 91177308-0d34-0410-b5e6-96231b3b80d8

commit 87da0b757638011ce84fd57f72e15b20bb523b19
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Nov 9 23:55:21 2012 +0000

    -Wobjc-literal-compare: look through implicit casts.

    This warning was failing to fire under ARC because of the implicit
    lifetime casts added around the object literal expression.

    <rdar://problem/11300873>, again.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167648 91177308-0d34-0410-b5e6-96231b3b80d8

commit d1542c23b278f8420a938e8d6f192a55b225918e
Author: Justin Holewinski <justin.holewinski@gmail.com>
Date:   Fri Nov 9 23:50:51 2012 +0000

    [NVPTX] Add __nvvm_* intrinsics as Clang builtins

    Fixes bug 13354.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167647 91177308-0d34-0410-b5e6-96231b3b80d8

commit da2d2c724da8a495533187c3c8d385004a7ec3d0
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Nov 9 23:30:30 2012 +0000

    Document -W in clang --help. Also make the help text more consistent (don't end descriptions in periods, use | to separate possible values).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167645 91177308-0d34-0410-b5e6-96231b3b80d8

commit 028eb657ec50ac7c629e67660ee31ce27b8c5829
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Nov 9 23:26:04 2012 +0000

    Don't include the help for -mips* in clang --help. These are just aliases for other options, and not common enough to be worth including here.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167644 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0f3edc5d4644d139501ece9e8c9926f64902ae52
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Nov 9 23:18:31 2012 +0000

    -Wlarge-by-value-copy may be awesome, but it really shouldn't be the one and
    only -W flag which clang --help lists.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167643 91177308-0d34-0410-b5e6-96231b3b80d8

commit a67d503aa19700ff849fc590039b6bb8ced4ebf0
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Nov 9 23:03:14 2012 +0000

    PR13788: Don't perform checks on the initializer of a dependently-typed
    variable. Previously we didn't notice the type was dependent if the only
    dependence came from an array bound.

    Patch by Brian Brooks!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167642 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6af1405ad2b30422bedee4dbe116fd693aeeeed8
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Nov 9 23:02:10 2012 +0000

    Remove leftover code.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167641 91177308-0d34-0410-b5e6-96231b3b80d8

commit e9d417d9fcefc50dfb75388cdc641cf8894cdd71
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Nov 9 22:59:01 2012 +0000

    Add lldb data formatters for clang classes, starting with SourceLocation.

    When installed, instead of getting this:

    (lldb) p Tok.Loc
    (clang::SourceLocation) $0 = {
      (unsigned int) ID = 123582
    }

    you'll get:

    (lldb) p Tok.Loc
    (clang::SourceLocation) $4 = "/usr/include/i386/_types.h:37:1" (offset: 123582, file)

    This depends on r167629.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167640 91177308-0d34-0410-b5e6-96231b3b80d8

commit 762d15d5dccf818bd88c80e957390e31e41b9277
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Nov 9 22:50:51 2012 +0000

    Remove --help text for deprecated sanitizer options, add --help text for -fsanitize=.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167639 91177308-0d34-0410-b5e6-96231b3b80d8

commit f1eaab122932a5c61b13ce9ae6d590e24558eb84
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Nov 9 22:36:44 2012 +0000

    PR14303: Add a NoDriverOption flag to those options which are not accepted by
    the driver (the options defined in CC1Options.td) and exclude their help from
    "clang --help".

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167638 91177308-0d34-0410-b5e6-96231b3b80d8

commit b328ee55d86acaafd55ebf0e0c84766b29459530
Author: Chad Rosier <mcrosier@apple.com>
Date:   Fri Nov 9 20:00:52 2012 +0000

    Add string to try and fix build from r167629.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167631 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9410928fb8434e8d26364cee45ebc1b798aafe41
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Nov 9 19:40:48 2012 +0000

    Add a SourceLocation::printToString() that returns in a std::string what dump()
    writes to stderr; for debugging purposes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167629 91177308-0d34-0410-b5e6-96231b3b80d8

commit ecd27bf256c92f56c7c7ede6f40ec5d31a40b35e
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Nov 9 19:40:45 2012 +0000

    Add a FileCharacteristic parameter to SourceManager::createFileIDForMemBuffer
    for completeness and use it in CompilerInstance::InitializeSourceManager if
    the input is a memory buffer.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167628 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8616f9af65b9a3662f2c9dfed38eeabc509f8446
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Nov 9 19:40:39 2012 +0000

    Turn FrontendInputFile into an immutable class and have it also accept
    a memory buffer instead of only a filename.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167627 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8e1fbbc492bc1f4833136d9b55e1aaf478565d32
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Nov 9 19:40:33 2012 +0000

    Make CompilerInstance::InitializeSourceManager accept a FrontendInputFile,
    no functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167626 91177308-0d34-0410-b5e6-96231b3b80d8

commit d96d82e1e1eb1858c6bdf670d1717c2f3d04a427
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Fri Nov 9 19:03:35 2012 +0000

    Don't use so many bits.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167624 91177308-0d34-0410-b5e6-96231b3b80d8

commit 485577dcac0b0877cfb5395b365490a0189c66f5
Author: Chad Rosier <mcrosier@apple.com>
Date:   Fri Nov 9 18:27:01 2012 +0000

    Implement -mstrict-align using '-backend-option -arm-strict-align' as this saves
    us from having to make any backend changes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167623 91177308-0d34-0410-b5e6-96231b3b80d8

commit ed193ba4f8083b7f61c572727c4ad8604c444353
Author: Chad Rosier <mcrosier@apple.com>
Date:   Fri Nov 9 17:39:51 2012 +0000

    Add test case for r167619.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167621 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7e293276281bd5bf8526c064d298082b08f0bd8b
Author: Chad Rosier <mcrosier@apple.com>
Date:   Fri Nov 9 17:29:19 2012 +0000

    [driver] Add a -mstrict-align compiler option for ARM targets.
    rdar://12340498

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167619 91177308-0d34-0410-b5e6-96231b3b80d8

commit 02f0022dfced0d082d979ebfd9185211f4dd0496
Author: Andy Gibbs <andyg1001@hotmail.co.uk>
Date:   Fri Nov 9 13:24:30 2012 +0000

    Improved support for removing the comma preceding __VA_ARGS__ where __VA_ARGS__
    is empty in a variadic macro expansion.  This fixes a divergence in support for
    the ", ## __VA_ARGS__" GCC extension which differed in behaviour when in strict
    C99 mode (note: there is no change in behaviour has been made in the gnu99 mode
    that clang uses by default).  In addition, there is improved support for the
    Microsoft alternative extension ", __VA_ARGS__".

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167613 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1a52a4d36cc518725d8e8ba3b984341a30cd7fdb
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Fri Nov 9 08:38:04 2012 +0000

    Use isInvalidDecl() instead of isStatic() as suggested by dblaikie.

    I couldn't think of a way to make an operator() invalid without returning
    earlier from this function other than making it static, so no new test.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167609 91177308-0d34-0410-b5e6-96231b3b80d8

commit e0ff690900ecb28e7d840d7f765f25437eb67c66
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Fri Nov 9 06:06:14 2012 +0000

    Don't crash on calling static member overloaded operator, PR14120

    Patch from Brian Brooks!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167604 91177308-0d34-0410-b5e6-96231b3b80d8

commit 377e5c108bd299930ca8e8cb6ebce1d22dfe35f9
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Fri Nov 9 01:59:30 2012 +0000

    Remove old driver code to grab the iOS simulator version from the -D option.

    We can now rely on the -mios-simulator-version-min command line option
    and remove the awful hack. <rdar://problem/10304510>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167603 91177308-0d34-0410-b5e6-96231b3b80d8

commit c8e78b2c8e4d56ef05880437326806dd0a2aa45a
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Fri Nov 9 00:05:56 2012 +0000

    [ms] Implement int64_t version of mangleNumber() in terms of the APSInt version.

    No intended functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167602 91177308-0d34-0410-b5e6-96231b3b80d8

commit e95b46bf50059806d58f494f6ad3a827dce02e24
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Thu Nov 8 23:38:59 2012 +0000

    [Windows] Fix mangling of number literal '0'

    Do this by making the mangleNumber(APSInt) overload look like
    the int64_t version. (The latter should probably just delegate
    to the former).

    Test from Evgeny Eltsin!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167599 91177308-0d34-0410-b5e6-96231b3b80d8

commit 458871a13c9f07bb46b4a32e3add0c9cb730f26e
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Thu Nov 8 23:21:22 2012 +0000

    Remove more code related to invoking llvm-gcc. <rdar://problem/11991320>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167598 91177308-0d34-0410-b5e6-96231b3b80d8

commit c2fc67e0cf7dd061fda1aa90d81668f3e070d4cb
Author: David Blaikie <dblaikie@gmail.com>
Date:   Thu Nov 8 22:53:48 2012 +0000

    Fix a source range regression in C++ new expressions with call initializers.

    Introduced in r167507, discovered in review by Abramo Bagnara.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167597 91177308-0d34-0410-b5e6-96231b3b80d8

commit 45a37da030be06bb7babf5e65a64d62cd0def7e6
Author: Matt Beaumont-Gay <matthewbg@google.com>
Date:   Thu Nov 8 20:50:02 2012 +0000

    Fix a bug I found while preparing my devmtg talk: When passing NULL to a
    function that takes a const Foo&, where Foo is convertible from a large number
    of pointer types, we print ALL the overloads, no matter the setting of
    -fshow-overloads.

    There is potential follow-on work in unifying the "print candidates, but not
    too many" logic between OverloadCandidateSet::NoteCandidates and
    ImplicitConversionSequence::DiagnoseAmbiguousConversion.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167596 91177308-0d34-0410-b5e6-96231b3b80d8

commit c4497036cff93da286ae188cfd95aa3f01390c61
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Nov 8 20:34:25 2012 +0000

    llvm/ConstantFolding.cpp: Make ReadDataFromGlobal() and FoldReinterpretLoadFromConstPtr() Big-endian-aware.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167595 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4f056ac7f8d837822dbf8ab7cdd6849a9b0ad12f
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Thu Nov 8 19:22:31 2012 +0000

    LiteralSupport: Don't overflow the temporary buffer when decoding invalid string parts.

    Instead just use a dummy buffer, we're not going to use the decoded string anyways.
    Fixes PR14292.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167594 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5d704fef6e0a7db07329a37290684b17bf6badf8
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Thu Nov 8 19:22:26 2012 +0000

    LiteralSupport: Clean up style violations. No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167593 91177308-0d34-0410-b5e6-96231b3b80d8

commit 23700f083fb72f5c6792e253f203a43aba3cef86
Author: Abramo Bagnara <abramo.bagnara@bugseng.com>
Date:   Thu Nov 8 18:41:43 2012 +0000

    Allow to pass from syntactic form of InitListExpr to semantic form (just as viceversa). No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167591 91177308-0d34-0410-b5e6-96231b3b80d8

commit 88adb9863bf1bbf266b044e58a1dfbdf24fbe105
Author: Abramo Bagnara <abramo.bagnara@bugseng.com>
Date:   Thu Nov 8 16:27:30 2012 +0000

    Avoid to write function name in comment. Thanks to Dmitri Gribenko.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167588 91177308-0d34-0410-b5e6-96231b3b80d8

commit eae859a61f7cca91200a49192052d8a50e18e1be
Author: Abramo Bagnara <abramo.bagnara@bugseng.com>
Date:   Thu Nov 8 16:01:51 2012 +0000

    Readded line removed by mistake.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167587 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4c5750e0d1c1dfc091689e3daa96ed4ccfa36dca
Author: Abramo Bagnara <abramo.bagnara@bugseng.com>
Date:   Thu Nov 8 14:44:42 2012 +0000

    Fixed converted ConstantArrayTypeLoc range. Added a missing testcase for ConstructorDecl source range.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167583 91177308-0d34-0410-b5e6-96231b3b80d8

commit 13fd684ee2c7578177b7c741e8eeec91ae628fcf
Author: Abramo Bagnara <abramo.bagnara@bugseng.com>
Date:   Thu Nov 8 13:52:58 2012 +0000

    Fixed range of implicit MemberExpr.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167581 91177308-0d34-0410-b5e6-96231b3b80d8

commit ef7bceadf4b43c953855013577afac4c2fcb1d62
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Thu Nov 8 12:59:15 2012 +0000

    Set TLSSupported to false on Haiku.

    Haiku does not support this (yet). Leaving it set to true leads to
    configure scripts detecting __thread being available and Clang emitting
    code for it, resulting in binaries the runtime_loader will refuse to
    load.

    Patch by Jonathan Schleifer!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167576 91177308-0d34-0410-b5e6-96231b3b80d8

commit d2a527eae6df377b326e8d764782bc34f1e64189
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Thu Nov 8 03:38:26 2012 +0000

    Driver/Darwin: The -arch argument values aren't exactly the arch names from a
    triple.

     - Translate the special case of powerpc to its expected -arch name.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167571 91177308-0d34-0410-b5e6-96231b3b80d8

commit 85b7f7ddf2f09778ec303f5a39f9e67e3aae1115
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Thu Nov 8 01:03:34 2012 +0000

    Rip out a bunch of code for invoking gcc from clang.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167567 91177308-0d34-0410-b5e6-96231b3b80d8

commit 64c4f29ff3b98d412e0235504364096e997b04bb
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Thu Nov 8 01:03:29 2012 +0000

    Remove code to fall back to llvm-gcc for i386 kexts.

    More cleanups to follow in separate commits....

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167566 91177308-0d34-0410-b5e6-96231b3b80d8

commit e81b43bc306d361fcf4d411aeb14b43f8464bf4a
Author: David Blaikie <dblaikie@gmail.com>
Date:   Thu Nov 8 00:41:20 2012 +0000

    PR14284: crash on ext-valid returning NULL from a void function

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167565 91177308-0d34-0410-b5e6-96231b3b80d8

commit e9385363069388d8e3536052a138f17332e00620
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Nov 7 23:56:21 2012 +0000

    When deciding whether to convert an array construction loop into a memcpy, look
    at whether the *selected* constructor would be trivial rather than considering
    whether the array's element type has *any* non-trivial constructors of the
    relevant kind.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167562 91177308-0d34-0410-b5e6-96231b3b80d8

commit d3aa6c5272794339d0fdeacc553cbfad97ba67e5
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Wed Nov 7 23:52:25 2012 +0000

    Force C89 for c-index-test.c

    MSVC supports only C89, so it is important to keep c-index-test.c
    buildable with C89.  However, Clang defaults to C99, so while building
    Clang with Clang one can introduce C99 constructs into c-index-test.c
    without noticing.

    Thanks to Nakamura Takumi for helping with MSVC bits.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167561 91177308-0d34-0410-b5e6-96231b3b80d8

commit da05df7ac964abcd18956ffaf6d66ff13a203a11
Author: Michael J. Spencer <bigcheesegs@gmail.com>
Date:   Wed Nov 7 23:37:14 2012 +0000

    [Driver] Fix -Wp,-MMD pr13959

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167559 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7b89ab735e6fdfeadd8679cb3cae5cbec3870335
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Wed Nov 7 21:31:36 2012 +0000

    Reduce nesting. No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167551 91177308-0d34-0410-b5e6-96231b3b80d8

commit 910515bc02872bd680e422f75079534d00093bc5
Author: Richard Trieu <rtrieu@google.com>
Date:   Wed Nov 7 21:17:13 2012 +0000

    When template deduction fails on a derived class, try a template deduction on
    the base class.  If the base class deduction succeeds, use those results.  If
    it fails, keep using the results from the derived class template deduction.

    This prevents an assertion later where the type of deduction failure doesn't
    match up with the template deduction info.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167550 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1da01d6908de90c6856e7c93460b67bf3bb28dd9
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Nov 7 20:00:32 2012 +0000

    objective-C blocks: bring back the CharUnit patch for
    captured block variable layout meta-data. No intended change
    in functionality.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167549 91177308-0d34-0410-b5e6-96231b3b80d8

commit b578aee665aad5ed1a46a26217c730fdfbfc8c2e
Author: David Blaikie <dblaikie@gmail.com>
Date:   Wed Nov 7 19:08:05 2012 +0000

    PR12713 - crash on invalid due to unmatched parens in decltype

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167547 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3b45ca9e6292b45ab39d8c44d15a617017f26198
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Nov 7 18:15:53 2012 +0000

    objective-C modern translator. Start the line
    directive on a new line.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167542 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7cdd28162dc7ade4b14bf237e87b4bbc17b2f023
Author: Douglas Gregor <dgregor@apple.com>
Date:   Wed Nov 7 17:46:15 2012 +0000

    When loading a module fails because it is out of date, rebuild that
    module in place. <rdar://problem/10138913>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167539 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5a78985de7a9e13b4971c99145c3abd6aed0347f
Author: David Blaikie <dblaikie@gmail.com>
Date:   Wed Nov 7 17:17:07 2012 +0000

    Test for source location range of new expressions fixed in r167507.

    Patch by Philip Craig.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167538 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0fe4d400ab05995727440620c25fe1d185b4e046
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Nov 7 17:12:37 2012 +0000

    [analyzer] Check that the argument to CFMakeCollectable is non-NULL.

    Patch by Sean McBride!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167537 91177308-0d34-0410-b5e6-96231b3b80d8

commit c686004145b1f4dbeb38173a0886ba7040ae0089
Author: David Chisnall <csdavec@swan.ac.uk>
Date:   Wed Nov 7 16:50:40 2012 +0000

    Fix the Objective-C exception rethrow from cleanups (GNU runtimes).  Note that
    a bug in the inliner still causes the wrong thing to happen at -O2 and above
    (PR14116).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167534 91177308-0d34-0410-b5e6-96231b3b80d8

commit 964490c0a8bd3398dc85d224a167ca9c35a36c85
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Nov 7 02:35:33 2012 +0000

    [analyzer] Add some examples for the common REGISTER_*_WITH_PROGRAMSTATEs.

    No functionality change (doc comments only).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167523 91177308-0d34-0410-b5e6-96231b3b80d8

commit 65bc6537509fcfb9e7e724e7d40546eea931e07f
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Nov 7 02:35:02 2012 +0000

    [analyzer] Enhance docs for checker callbacks (esp. processRegionChanges).

    No functionality change; this checker is only used for documentation.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167522 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8fcdea5cc450bee3d79f0749cf9b98cdbeae30e2
Author: Ted Kremenek <kremenek@apple.com>
Date:   Wed Nov 7 01:43:44 2012 +0000

    Add -Wmismatched-return-types flag for existing warning on conflicting return types.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167518 91177308-0d34-0410-b5e6-96231b3b80d8

commit eaa6b12031e55e7b039a8bf4b11e58df1f06cc5e
Author: Ted Kremenek <kremenek@apple.com>
Date:   Wed Nov 7 01:25:56 2012 +0000

    Add -Wmismatched-parameter-types flag for existing warning on conflicting parameter types.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167515 91177308-0d34-0410-b5e6-96231b3b80d8

commit ce2661f9ccb85de1aacaa7c3ea414a757f5986f6
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Nov 7 01:14:25 2012 +0000

    PR11851 (and duplicates): Whenever a constexpr function is referenced,
    instantiate it if it can be instantiated and implicitly define it if it can be
    implicitly defined. This matches g++'s approach. Remove some cases from
    SemaOverload which were marking functions as referenced when just planning how
    overload resolution would proceed; such cases are not actually references.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167514 91177308-0d34-0410-b5e6-96231b3b80d8

commit 43f4f1e92bb07a04c30c9781be4d0bb5cc30acdd
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Nov 7 00:43:05 2012 +0000

    modern ObjC translator. Insert line number for @synchronized statements.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167511 91177308-0d34-0410-b5e6-96231b3b80d8

commit b68ec6b7ff4f8d7795b11cd361fec46725d57e4e
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Wed Nov 7 00:35:20 2012 +0000

    Add missing check to warning for packed attribute.  PR14259.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167510 91177308-0d34-0410-b5e6-96231b3b80d8

commit cb7b45e6d80c14d7d12db1eff17dc14b4ae8a35e
Author: Manuel Klimek <klimek@google.com>
Date:   Wed Nov 7 00:33:12 2012 +0000

    Create helper functions in StmtDumper for outputting the indentation, newlines, and brackets.

    This is preparation for adding Decl dumping.

    Patch by Philip Craig.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167509 91177308-0d34-0410-b5e6-96231b3b80d8

commit 530564196fe7e2e30fbc2b0edae45975447583e0
Author: David Blaikie <dblaikie@gmail.com>
Date:   Wed Nov 7 00:12:38 2012 +0000

    PR13552: Fix the end location of a CXXNewExpr.

    Spent longer than reasonable looking for a nice way to test this & decided to
    give up for now. Open to suggestions/requests. Richard Smith suggested adding
    something to ASTMatchers but it wasn't readily apparent how to test this with
    that.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167507 91177308-0d34-0410-b5e6-96231b3b80d8

commit 70a01898008a90007866f15c4d9d53ba00b0d203
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Tue Nov 6 23:56:42 2012 +0000

    Fix assertion failure with auto and nested initializer list; PR14272.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167506 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9e60371ba07faa2f173ab614ceaad0332518c8dc
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Nov 6 23:40:54 2012 +0000

    Tease out the routine that reads the control block of an AST file from
    the validation of an AST file against a specific set of options.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167504 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7745786044f159cf9ddf4a8a0f7be8fe2bebfa80
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Tue Nov 6 23:40:48 2012 +0000

    Put something sane in the DWARF offset field for bitfield ObjC ivars.
    This is useful because unnamed bitfields can have effects on the
    offsets which are not otherwise reflected in the DWARF information.

    <rdar://problem/12629719>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167503 91177308-0d34-0410-b5e6-96231b3b80d8

commit f616ae2d1356dadde26ff553eb689e5455d65808
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Nov 6 23:25:49 2012 +0000

    objective-C modern rewriter. Insert line numbers in
    translated code where new code makes the lines be off.
    This is wip.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167500 91177308-0d34-0410-b5e6-96231b3b80d8

commit ba529a9bf9acbfc718970a030017b73715108b8e
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Nov 6 22:45:31 2012 +0000

    RewriteModernObjC.cpp: Use Lexer::Stringify() on the file name of #line directive to escape Win32 path separator '\\'.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167497 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4179ddd5752ec5a252ca1e1eb77a5c34b5835d3b
Author: Anton Korobeynikov <asl@math.spbu.ru>
Date:   Tue Nov 6 22:44:45 2012 +0000

    Implement codegen for init_priority attribute properly - make sure it
    works between the modules.
    No functionality change on Darwin/Windows.
    This fixes PR11480.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167496 91177308-0d34-0410-b5e6-96231b3b80d8

commit e5b4666d9b86ea30b90b599691e75d380f84ddd6
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Tue Nov 6 22:15:52 2012 +0000

    Back out 167431+167437+167487; I didn't realize how incomplete our test
    coverage of this code is.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167495 91177308-0d34-0410-b5e6-96231b3b80d8

commit 03c60765c7607cbfb4e1e8593028824dab13ad54
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Nov 6 22:02:00 2012 +0000

    clang/lib/Driver/Tools.cpp: Fix abuse of StringRef.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167494 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4d9eff53c49a2c1b9b460b899c95dcdbb3e056e1
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Nov 6 21:21:49 2012 +0000

    [libclang] Add some comments about the version constants for the libclang API.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167489 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1307120129bd084378f1c22611402ae24c7bebb2
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Tue Nov 6 21:10:22 2012 +0000

    Fix a silly mistake in r167437.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167487 91177308-0d34-0410-b5e6-96231b3b80d8

commit 17b00a4511f6a524cb9759c7d8d5a18c4d61121f
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Nov 6 20:44:29 2012 +0000

    clang/test/Driver/fsanitize.c: Speculative fix to improve test on win32, not to mix emissions into stdout.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167485 91177308-0d34-0410-b5e6-96231b3b80d8

commit b7ac5ac3faf70146707683a2ae041e8d53c3562a
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Nov 6 19:41:11 2012 +0000

    Remove C++11-isms I just introduced in r167482

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167483 91177308-0d34-0410-b5e6-96231b3b80d8

commit 82e52377bd76ed71e8c09edc5f2f452e388b16ad
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Nov 6 19:39:40 2012 +0000

    Introduce inferred framework modules into the module map file,
    allowing a module map to be placed one level above the '.framework'
    directories to specify that all .frameworks within that directory can
    be inferred as framework modules. One can also specifically exclude
    frameworks known not to work.

    This makes explicit (and more restricted) behavior modules have had
    "forever", where *any* .framework was assumed to be able to be built
    as a module. That's not necessarily true, so we white-list directories
    (with exclusions) when those directories have been audited.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167482 91177308-0d34-0410-b5e6-96231b3b80d8

commit f64231e9f47234826fbcdc3b4fe0370ef6c9961d
Author: Michael Han <Michael.Han@autodesk.com>
Date:   Tue Nov 6 19:34:54 2012 +0000

    Teach Clang parser to reject C++11 attributes that appertain to declaration specifiers.

    We don't support any C++11 attributes that appertain to declaration specifiers so reject
    the attributes in parser until we support them; this also conforms to what g++ 4.8 is doing.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167481 91177308-0d34-0410-b5e6-96231b3b80d8

commit fd9d0e13a17b915fa6b35e3a3465513d67f1482d
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Nov 6 19:23:14 2012 +0000

    Updates to user's manual and release notes for -fsanitize= options.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167479 91177308-0d34-0410-b5e6-96231b3b80d8

commit 090b136437bda798158931612f38b5c6571d939e
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Nov 6 19:14:25 2012 +0000

    [c-index-test] When building with BUILD_CLANG_ONLY=YES, include c-index-test.
    It is part of libclang and has other uses besides running the clang tests.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167478 91177308-0d34-0410-b5e6-96231b3b80d8

commit cb489dde66331865281e007b21f8f94da01f8d1e
Author: Manman Ren <mren@apple.com>
Date:   Tue Nov 6 19:05:29 2012 +0000

    Cleanup: 80-column violation

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167476 91177308-0d34-0410-b5e6-96231b3b80d8

commit be6318b2f02e14a1b717d30691351e8415e246c1
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Nov 6 18:16:37 2012 +0000

    Use the -fsanitize=thread flag to unbreak buildbot.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167472 91177308-0d34-0410-b5e6-96231b3b80d8

commit 975a9491bb87cde0f17fe816b54a02b240ef7059
Author: Manuel Klimek <klimek@google.com>
Date:   Tue Nov 6 17:31:40 2012 +0000

    Add unit tests for source locations of AST nodes.

    Patch by Philip Craig.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167470 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9620596ca2ca19e365af4e4d4968cb4d9228c4fc
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Nov 6 17:30:23 2012 +0000

    Modern objective-C translator: Start adding line info to the
    translated source where it is needed. wip.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167469 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6a1f49423baf6fa0358f396f0d926a3263cb5ff9
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Tue Nov 6 17:08:24 2012 +0000

    Basic: Windows doesn't define S_IFIFO.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167468 91177308-0d34-0410-b5e6-96231b3b80d8

commit e246d908b661ed9b5725e8d4b5566204ee39ca99
Author: Alexey Samsonov <samsonov@google.com>
Date:   Tue Nov 6 16:19:11 2012 +0000

    Use -fsanitize= flag in docs for ASan/TSan

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167465 91177308-0d34-0410-b5e6-96231b3b80d8

commit bb1071c0568db9bd7934e869a53d671632eb9291
Author: Alexey Samsonov <samsonov@google.com>
Date:   Tue Nov 6 15:09:03 2012 +0000

    Follow-up for r167411 to un-break ASan on Mac. Move SanitizerArgs to a header file and use it on Darwin toolchain.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167460 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3d615b2a4217200fe1226d77683f4ef57dffbffd
Author: Ted Kremenek <kremenek@apple.com>
Date:   Tue Nov 6 06:36:45 2012 +0000

    Remove completely irrelevant code from USR generation.

    Thanks to Richard Smith for pointing this out.  This code stopped
    serving its purpose during r103212 in a refactoring.  My initial
    fix was to add back the logic to abort the USR generation for
    InternalLinkage, but enough tests broke suspiciously that I fear
    that USR generation for cursors with InternalLinkage is now expected
    by some clients (where it wasn't the case when the refactoring
    took place).  I don't own this code anymore and have not looked
    at it for some time, but clearly this code is dead and can be removed
    pending further review on the proper logic here.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167442 91177308-0d34-0410-b5e6-96231b3b80d8

commit 164fcd022185fddc0e689f61ac8ad4b3ac744c2a
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Tue Nov 6 05:20:23 2012 +0000

    Delete an outdated comment.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167441 91177308-0d34-0410-b5e6-96231b3b80d8

commit 885ad6928f8aca8e9f66eeece53e00364e14ea75
Author: Manman Ren <mren@apple.com>
Date:   Tue Nov 6 04:58:01 2012 +0000

    ARM byval: when type alignment is bigger than ABI alignment, instead of
    disabling byval, we set realign to true.

    It will perform an aligned alloca, and call memcpy to copy the byval
    argument to the local variable.
    Change the size threshold back to 64 bytes.

    rdar://12596507

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167440 91177308-0d34-0410-b5e6-96231b3b80d8

commit 35d4a09efbdc313b02f05612e6501a7ec7d3a37d
Author: Anna Zaks <ganna@apple.com>
Date:   Tue Nov 6 04:20:57 2012 +0000

    [analyzer] Add symbol escapes logic to the SimpleStreamChecker.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167439 91177308-0d34-0410-b5e6-96231b3b80d8

commit d1ad5e5d6c895f809ada5b420060b2ec0b48567b
Author: Anna Zaks <ganna@apple.com>
Date:   Tue Nov 6 04:20:54 2012 +0000

    [analyzer] Remove isWithinInlined. It's been replaced with inTopFrame().

    Thanks Jordan.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167438 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8cb809a488bafb7386335bcc21bde47948600c8a
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Tue Nov 6 03:41:04 2012 +0000

    Propagate CharUnits through CGObjCMac.cpp.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167437 91177308-0d34-0410-b5e6-96231b3b80d8

commit a2f9d214adb85a7d6d36add7460ce2115382ddc5
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Tue Nov 6 03:38:02 2012 +0000

    Minor fix to ObjC layout bitmap metadata.  Found while I was trying to
    refactor the code.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167436 91177308-0d34-0410-b5e6-96231b3b80d8

commit c54e25f9450d927dcd41270639523c1b4c0d5868
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Nov 6 02:30:30 2012 +0000

    Classify the INT_MIN/-1 check as -fsanitize=signed-integer-overflow, not as -fsanitize=divide-by-zero.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167433 91177308-0d34-0410-b5e6-96231b3b80d8

commit fc1b1bbb5bef02a48a131da72567e3ab869f9db3
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Nov 6 02:12:21 2012 +0000

    [c-index-test] Do install c-index-test because it's not just for tests,
    it's also setup as 'INTERNAL_TOOL'.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167432 91177308-0d34-0410-b5e6-96231b3b80d8

commit 38ad4f40aa0ddc691d9b5ecbb4e9ca6ce95f3a05
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Tue Nov 6 01:51:20 2012 +0000

    Propagate CharUnits into ObjC CodeGen.  No intended functional change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167431 91177308-0d34-0410-b5e6-96231b3b80d8

commit 04fd3820d04032df40ec073a901cade92869c765
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Nov 6 01:12:02 2012 +0000

    Per discussion on cfe-commits, treat -faddress-sanitizer,
    -fno-address-sanitizer, -fthread-sanitizer, -fno-thread-sanitizer, and
    -fcatch-undefined-behavior as deprecated: produce a warning if they are used
    pointing to the corresponding -fsanitize= option. In passing add the missing
    '-' to some diagnostics.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167429 91177308-0d34-0410-b5e6-96231b3b80d8

commit 23de7cedc7cf09bdbcebc25c9be99ca84c6be1f7
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Nov 6 00:35:04 2012 +0000

    [PCH] Take into account the 'include' source location of a SM_SLOC_BUFFER_ENTRY.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167426 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4f11234702bbf453c921328576043998f01fbe0a
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Nov 6 00:35:02 2012 +0000

    [PCH] Write out the ClassTemplateDecl::Common::InjectedClassNameType type
    reference instead of relying on computing it.

    In general, if storage is no issue, it is preferable to deserialize info from
    the PCH instead of trying to recompute it after the PCH was loaded.

    The incentive to change this now was due to r155303 changing how friend template
    classes in dependent contexts are handled; such classes can now be chained to
    a previous template class but the computed InjectedClassNameType may be different
    due to the extra template parameters from the dependent context.

    The new handling requires more investigation but, in the meantime, writing out
    InjectedClassNameType fixes PCH issue in rdar://12627738.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167425 91177308-0d34-0410-b5e6-96231b3b80d8

commit c7be10245e78bf38694b26f289880edefb9f16e9
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Nov 5 23:58:27 2012 +0000

    Have the parser initialize Sema before it consumes the first
    token. This is important because the first token could actually be
    after an #include that triggers a module import, which might use
    either Sema or the AST consumer before it would have been initialized.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167423 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3043175274899e086c8664fe64c8fb4b9eacb733
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Nov 5 23:30:26 2012 +0000

    Split the instrinsic header wmmintrin.h into AES and PCLMUL parts, so
    that we can model them as separate submodules.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167420 91177308-0d34-0410-b5e6-96231b3b80d8

commit ce36ecd5a509af8fc5924d21694df36e8bc94a95
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Mon Nov 5 22:53:33 2012 +0000

    Frontend: Add support for reading named pipes as the main file.

     - The whole {File,Source}Manager is built around wanting to pre-determine the
       size of files, so we can't fit this in naturally. Instead, we handle it like
       we do STDIN, where we just replace the main file contents upfront.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167419 91177308-0d34-0410-b5e6-96231b3b80d8

commit 95b66fca551d5148413f66db63143620e5846818
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Mon Nov 5 22:50:26 2012 +0000

    Delete comment I forgot to delete in my last change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167418 91177308-0d34-0410-b5e6-96231b3b80d8

commit 776b7ac94c6329f0d2786b5ca28547ad9b9e5577
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Mon Nov 5 22:49:03 2012 +0000

    Use Richard's BE_THE_HEADER trick to simplify a test. No intended behavior change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167417 91177308-0d34-0410-b5e6-96231b3b80d8

commit fd1ba91e009ff7775744627f2855ffbfe713333e
Author: Manman Ren <mren@apple.com>
Date:   Mon Nov 5 22:42:46 2012 +0000

    ARM byval: when type alignment is bigger than ABI alignment, we can't guarantee
    the type alignment of the byval argument. This patch will disable byval in this case,
    it also increases the size threshold for turning on byval.

    A backend fix will be attempted.

    rdar://12596507

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167416 91177308-0d34-0410-b5e6-96231b3b80d8

commit d6396a681c9acbe56bc41bbc2bed2db45755bcd7
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Mon Nov 5 22:21:05 2012 +0000

    Use the individual -fsanitize=<...> arguments to control which of the UBSan
    checks to enable. Remove frontend support for -fcatch-undefined-behavior,
    -faddress-sanitizer and -fthread-sanitizer now that they don't do anything.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167413 91177308-0d34-0410-b5e6-96231b3b80d8

commit c4dabadb51475e76b606024f144e7cf93b0bad00
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Mon Nov 5 22:04:41 2012 +0000

    Add -fsanitize=<sanitizers> argument to driver and frontend, and add
    -fno-sanitize=<sanitizers> argument to driver. These allow ASan, TSan, and the
    various UBSan checks to be enabled and disabled separately. Right now, the
    different modes can't be combined, but the intention is that combining UBSan
    and the other sanitizers will be permitted in the near future.

    Currently, the UBSan checks will all be enabled if any of them is; that will be
    fixed by the next patch.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167411 91177308-0d34-0410-b5e6-96231b3b80d8

commit ca1b62a33cacee20d3bd756210d3211dd663209e
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Mon Nov 5 21:48:12 2012 +0000

    Rename LangOptions members for address sanitizer and thread sanitizer from
    *Sanitizer to Sanitize* in preparation for later patches.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167405 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6db024c83917fff4d130eba8bda65d24c7629c11
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Nov 5 20:41:30 2012 +0000

    Fix module map for SSE4a builtins

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167399 91177308-0d34-0410-b5e6-96231b3b80d8

commit a65c5a39b93c47ba8aed879a60ebcd431e071ec9
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Nov 5 20:11:10 2012 +0000

    Make cpuid.h actually work with -std=c99 <rdar://problem/12552716>.

    While we're here, extend the module map to cover most of the
    newly-added instrinsic headers. Only wmmintrin.h is missing, because
    it needs to be split into AES/PCLMUL subheaders (as a separate commit).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167398 91177308-0d34-0410-b5e6-96231b3b80d8

commit 984e2eb52ce97eae001a28e54f36e624e98c12a7
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Nov 5 19:45:09 2012 +0000

    Hash the various compiler version, target, preprocessor, and
    header-search options into the module hash. We're just using
    ADT/Hashing.hpp for this, which isn't as cryptographically strong as
    I'd like, but it'll do. If someone contributes (say) and MD4
    implementation, we'd happily switch to that.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167397 91177308-0d34-0410-b5e6-96231b3b80d8

commit 71c0dcc129262e565069fbfc0b5239a05c94b86c
Author: Ulrich Weigand <ulrich.weigand@de.ibm.com>
Date:   Mon Nov 5 19:13:42 2012 +0000

    On PowerPC64, integer arguments and return values need to be sign- or
    zero-extended to 64 bits.  This information is currently provided to
    the back end by setting "signext" or "zeroext" attributes.  However,
    this is done only for integer types *smaller* than i32, not for i32
    itself.  This causes clang to generate code violating the ABI, which
    results in a failure of the tramp3d-v4 test case (due to calling a
    system library routine without ABI-required extension).

    This patch implements custom versions of classifyArgumentType and
    classifyReturnType for PPC64_SVR4_ABIInfo, which are the same as the
    default versions except that they also classify "int" and "unsigned int"
    as types needing extending.  This fixed tramp3d-v4 on PowerPC64.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167393 91177308-0d34-0410-b5e6-96231b3b80d8

commit bd8fa30760754c902bde3e2210094833833452b9
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Mon Nov 5 18:14:34 2012 +0000

    Tests for 32bit version of block ivar layout metadata.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167387 91177308-0d34-0410-b5e6-96231b3b80d8

commit 40d8551890bc8454c4e0a28c9072c9c1d1dd588a
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Mon Nov 5 16:58:00 2012 +0000

    [analyzer] Move convenience REGISTER_*_WITH_PROGRAMSTATE to CheckerContext.h

    As Anna pointed out, ProgramStateTrait.h is a relatively obscure header,
    and checker writers may not know to look there to add their own custom
    state.

    The base macro that specializes the template remains in ProgramStateTrait.h
    (REGISTER_TRAIT_WITH_PROGRAMSTATE), which allows the analyzer core to keep
    using it.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167385 91177308-0d34-0410-b5e6-96231b3b80d8

commit d096acc220fc72ec73c2abf21d6c251d867e950d
Author: Matt Beaumont-Gay <matthewbg@google.com>
Date:   Mon Nov 5 05:32:00 2012 +0000

    Our style for diagnostic messages is to not include a trailing dot.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167379 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4b7631bc011ce36dbc8f664c518668f0ba5d18a9
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Sun Nov 4 20:21:54 2012 +0000

    Put the usage-directive inside the nearest namespace or TU decl. We don't want
    to have UsingDirectiveDecl inside anything other than those two.

    No user-visible functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167376 91177308-0d34-0410-b5e6-96231b3b80d8

commit c441cd347014bd3fe1915333c992a9a68bd725f9
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Sun Nov 4 18:19:40 2012 +0000

    Fixes liftime of captured block variables in mrr mode, per John's feedback, as
    well as couple of tests which were not being excercised because of TYPOs.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167374 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3f320aa93253cc69d03579b37fd0724055883a6e
Author: Lang Hames <lhames@gmail.com>
Date:   Sun Nov 4 05:08:08 2012 +0000

    Test case for r167363.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167369 91177308-0d34-0410-b5e6-96231b3b80d8

commit 191db6dc0d6290b5f2993691e409ff2dc8b4345e
Author: Seth Cantrell <seth.cantrell@gmail.com>
Date:   Sat Nov 3 23:56:43 2012 +0000

    only truncate source lines in text diagnostics when
    the ellipsis is shorter than the text it replaces

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167364 91177308-0d34-0410-b5e6-96231b3b80d8

commit a60d21d9ffd2a995c58dc5c5a4e3d9a014e3bc60
Author: Lang Hames <lhames@gmail.com>
Date:   Sat Nov 3 22:29:05 2012 +0000

    Support interleaving of other pragmas with FP_CONTRACT at the beginning of a
    compound statement.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167363 91177308-0d34-0410-b5e6-96231b3b80d8

commit b57ce4e8918656f5f4070f59d74354fcefbbb6f8
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Nov 3 22:10:18 2012 +0000

    Address review comments for r167358: explicitly check for CK_BitCast instead of
    checking against a blacklist.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167362 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9cffb4a9ae548245ede15850cb96dfedf56255fe
Author: Seth Cantrell <seth.cantrell@gmail.com>
Date:   Sat Nov 3 21:21:17 2012 +0000

    don't step into the middle of multibyte sequences

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167361 91177308-0d34-0410-b5e6-96231b3b80d8

commit eaa5a2b5e099bf29856bc88b03cd7c9d473f671d
Author: Seth Cantrell <seth.cantrell@gmail.com>
Date:   Sat Nov 3 21:21:14 2012 +0000

    fix bug in SourceColumnMap::startOfPreviousColumn

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167360 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7164095ea1c804740e00d54d05a7e8d1f876c674
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sat Nov 3 20:58:26 2012 +0000

    Escape trigraphs in unittest.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167359 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5a24980d059cd9fbe8375a4c549313101ad20698
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Nov 3 16:07:49 2012 +0000

    Handle CK_NullToPointer casts in -Wtype-safety properly.  Fixes PR14249.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167358 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1e905da74dbfd353d77dfc548fc9d6ff420d515a
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Nov 3 14:24:57 2012 +0000

    Remove a const_cast by propagating constness to the member function.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167357 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0a591c242b867844d483091cae546e294bbee312
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Sat Nov 3 13:59:36 2012 +0000

    StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp: Appease msvc.

    0 (as nullptr) is incompatible to pointer in type matching on msvc.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167355 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9cb1c3de9df7d944f0c5cccaf03fa414036487eb
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Sat Nov 3 03:36:51 2012 +0000

    Add a proper algorithm to compute accurate source ranges for diagnostics with
    caret locations and source ranges in macros.  Makes ranges more accurate
    in some cases, and fixes an assertion failure.

    Fixes <rdar://problem/12472249>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167353 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8501b7a1c4c4a9ba0ea6cb8e500e601ef3759deb
Author: Anna Zaks <ganna@apple.com>
Date:   Sat Nov 3 02:54:20 2012 +0000

    [analyzer] Run remove dead on end of path.

    This will simplify checkers that need to register for leaks. Currently,
    they have to register for both: check dead and check end of path.

    I've modified the SymbolReaper to consider everything on the stack dead
    if the input StackLocationContext is 0.

    (This is a bit disruptive, so I'd like to flash out all the issues
    asap.)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167352 91177308-0d34-0410-b5e6-96231b3b80d8

commit fadcd5d5bbe1bfc1c6b8d819cc2242f780a49fec
Author: Anna Zaks <ganna@apple.com>
Date:   Sat Nov 3 02:54:16 2012 +0000

    [analyzer] add LocationContext::inTopFrame() helper.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167351 91177308-0d34-0410-b5e6-96231b3b80d8

commit b355be838a22a511d078504b2277f70aea52ca85
Author: Anna Zaks <ganna@apple.com>
Date:   Sat Nov 3 02:54:11 2012 +0000

    [analyzer] Refactor: Remove Pred from NodeBuilderContext.

    Node builders should manage the nodes, not the context.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167350 91177308-0d34-0410-b5e6-96231b3b80d8

commit 085b76ca42b1fafb8b574dc587f356f511bb059e
Author: David Blaikie <dblaikie@gmail.com>
Date:   Sat Nov 3 00:27:14 2012 +0000

    Simplify these tests again, now that we're past the version skew.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167346 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0c396d618dfa7cdd6ddafea24df7f74789d1f829
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Nov 2 23:49:35 2012 +0000

    [analyzer] Convert SimpleStreamChecker over to CallEvent.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167340 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1f03a8a0334924719ff85c993d652480e93fda98
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Nov 2 23:49:33 2012 +0000

    [analyzer] CheckerDocumentation: Change examples for PreStmt and PostStmt.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167339 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2f3017f9cbd3774f690c979410bfec38423d03af
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Nov 2 23:49:29 2012 +0000

    [analyzer] Add some convenience accessors to CallEvent, and use them.

    These are CallEvent-equivalents of helpers already accessible in
    CheckerContext, as part of making it easier for new checkers to be written
    using CallEvent rather than raw CallExprs.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167338 91177308-0d34-0410-b5e6-96231b3b80d8

commit d624607d4196e4b37d235daa14699bcb3c1012a6
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Nov 2 23:49:24 2012 +0000

    [analyzer] isCLibraryFunction: check that the function is at TU-scope.

    Also, Decls already carry a pointer to the ASTContext, so there's no need
    to pass an extra argument to the predicate.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167337 91177308-0d34-0410-b5e6-96231b3b80d8

commit 70ae1226d9a479e56ac716396bdf97dc970ac840
Author: David Blaikie <dblaikie@gmail.com>
Date:   Fri Nov 2 23:40:00 2012 +0000

    Emit debug info for C++ struct definitions as DW_TAG_structure_type (instead of class_type).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167336 91177308-0d34-0410-b5e6-96231b3b80d8

commit 61fc02c87d6bf3453cad0d0ca85bc3f3fd462aa5
Author: David Blaikie <dblaikie@gmail.com>
Date:   Fri Nov 2 23:07:41 2012 +0000

    Avoid version skew by making ObjC strict metadata tests resilient to new field.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167332 91177308-0d34-0410-b5e6-96231b3b80d8

commit 44fcff9ff40f400403dae57096040496a5ab3227
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Nov 2 22:51:18 2012 +0000

    objective-C mrr block. Block variable layout metadata in
    mrr mode.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167331 91177308-0d34-0410-b5e6-96231b3b80d8

commit e50904f83b1b09bff487185dd823dfc8415cb300
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Nov 2 22:18:44 2012 +0000

    When code-completing don't disable the preprocessing record if modules are enabled.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167325 91177308-0d34-0410-b5e6-96231b3b80d8

commit 161db02a747e0c8e717f542674c0581c03fc3c93
Author: DeLesley Hutchins <delesley@google.com>
Date:   Fri Nov 2 21:44:32 2012 +0000

    Thread safety analysis: Fixed ICE caused by double delete when late parsed
    attributes are attached to function declarations nested inside a class method.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167321 91177308-0d34-0410-b5e6-96231b3b80d8

commit eacff03a37eaa984a2f72ae68281910fffea99b9
Author: Richard Trieu <rtrieu@google.com>
Date:   Fri Nov 2 21:41:42 2012 +0000

    Fix test cases I broken when fixing grammar in diagnostic message.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167320 91177308-0d34-0410-b5e6-96231b3b80d8

commit d730705d448c184e73c14be22fccd05563399748
Author: Richard Trieu <rtrieu@google.com>
Date:   Fri Nov 2 21:33:17 2012 +0000

    Fix grammar of diagnostic message.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167319 91177308-0d34-0410-b5e6-96231b3b80d8

commit 765029b34fb7dbc4faa8ae008d5191e9adc5fdd5
Author: Anna Zaks <ganna@apple.com>
Date:   Fri Nov 2 21:30:07 2012 +0000

    [analyzer] Test SimpleStream on the buildbot.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167317 91177308-0d34-0410-b5e6-96231b3b80d8

commit edd07f40ce13eb64537e9bd3af2bec4847a90fb2
Author: Anna Zaks <ganna@apple.com>
Date:   Fri Nov 2 21:30:04 2012 +0000

    [analyzer] Factor SimpleStreamChecker pulling out isLeaked().

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167316 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9417b05ef982bd3dbcae2fa24083b5be00d6c4f1
Author: David Blaikie <dblaikie@gmail.com>
Date:   Fri Nov 2 20:49:01 2012 +0000

    Fix debug tag type of forward declarations of struct/class in C++.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167308 91177308-0d34-0410-b5e6-96231b3b80d8

commit 715852c9ce1a0b6afe1928d8da4d51e138aed851
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Fri Nov 2 20:41:30 2012 +0000

    Improve x86 android support:
    * -Bsymbolic must be added for x86 as well.
    * Default CPU name also set to 'core2' for x86 android.
    Patch by Edwin Vane.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167307 91177308-0d34-0410-b5e6-96231b3b80d8

commit 710392d8d8ce1a8938cee441186e5ff699b65973
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Nov 2 20:34:30 2012 +0000

    Add test for link flags added by -fcatch-undefined-behavior.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167306 91177308-0d34-0410-b5e6-96231b3b80d8

commit eb52aedbc01f20ddb6e51e2711271324b08ddbef
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Nov 2 20:32:19 2012 +0000

    Add -lpthread when building with Ubsan on Linux, in preparation for making libclang-rt.ubsan pull in sanitizer_common, which in turn depends on pthreads.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167305 91177308-0d34-0410-b5e6-96231b3b80d8

commit faa2bd646a9019d5f8c78cefce8eb5d981ef4c69
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Nov 2 17:50:53 2012 +0000

    Update test case.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167301 91177308-0d34-0410-b5e6-96231b3b80d8

commit 28e9cf1ac27862c22e8f9333c5f8fae3eb2ea680
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Nov 2 17:48:49 2012 +0000

    Move -Wimplicit-retain-self to be off-by-default until we can evaluate
    more how noisy it is.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167300 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9b1a48af8e537255055059b8c51e9f3b2e16473c
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Nov 2 09:59:12 2012 +0000

    clang/test/CodeGen/bitfield-promote.c: Add explicit triple for now. It has been failing for big endian targets, for example, ppc.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167293 91177308-0d34-0410-b5e6-96231b3b80d8

commit 36db2d87163fd3ec422a5d723c3f466bb410288b
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Nov 2 09:59:06 2012 +0000

    clang/test/CodeGen/bitfield-promote.c: FileCheck-ize.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167292 91177308-0d34-0410-b5e6-96231b3b80d8

commit 92f9bb3e7d9cec718f4614f1a9e9084ce8a02565
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Fri Nov 2 03:35:13 2012 +0000

    Delete lines which do nothing from DiagnosticGroups.td.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167281 91177308-0d34-0410-b5e6-96231b3b80d8

commit ce254928e9c7b0d7389a6baf4bf5052a19905eee
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Nov 2 02:31:22 2012 +0000

    [libclang] Correct how the index inside the local preprocessed entities array
    is getting converted to a global PreprocessedEntityID.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167280 91177308-0d34-0410-b5e6-96231b3b80d8

commit 19ebeb70c4b79ebb2de7d87a415acd6b2dbbc15b
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Fri Nov 2 02:14:44 2012 +0000

    Add missing diagnostic group to format string warning.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167279 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5b4379fafec393bd7889818b3ecc2cb92cd2f9bf
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Nov 2 02:04:01 2012 +0000

    analyzer-plugin/MainCallChecker.cpp: Fixup corresponding to r167275.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167278 91177308-0d34-0410-b5e6-96231b3b80d8

commit 466224fd068a0a0084968a7f521a690a51c3b226
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Nov 2 01:54:42 2012 +0000

    [analyzer] Convert some of the harder cases over to ProgramStateTrait macros.

    Add FIXMEs for the traits visible from multiple translation units.
    Currently the macros hide their key types in an anonymous namespace.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167277 91177308-0d34-0410-b5e6-96231b3b80d8

commit 166d502d5367ceacd1313a33cac43b1048b8524d
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Nov 2 01:54:06 2012 +0000

    [analyzer] Use nice macros for the common ProgramStateTraits (map, set, list).

    Also, move the REGISTER_*_WITH_PROGRAMSTATE macros to ProgramStateTrait.h.

    This doesn't get rid of /all/ explicit uses of ProgramStatePartialTrait,
    but it does get a lot of them.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167276 91177308-0d34-0410-b5e6-96231b3b80d8

commit 785950e59424dca7ce0081bebf13c0acd2c4fff6
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Nov 2 01:53:40 2012 +0000

    [analyzer] Rename 'EmitReport' to 'emitReport'.

    No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167275 91177308-0d34-0410-b5e6-96231b3b80d8

commit 80a8eb76a0043271adcfee5cb1e643ce3927fcbf
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Fri Nov 2 01:40:23 2012 +0000

    Tweak wording and add diagnostic groups to misc diagnostics.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167274 91177308-0d34-0410-b5e6-96231b3b80d8

commit cef3a7bf84817c58c7666df9e87199b9a6b8b9a3
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Fri Nov 2 01:34:28 2012 +0000

    Change diagnostics for enums with fixed underlying type so in C++98 mode, we cite C++11.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167273 91177308-0d34-0410-b5e6-96231b3b80d8

commit e579328ec9a95acc7f181e04c58a747ba001d80f
Author: Manuel Klimek <klimek@google.com>
Date:   Fri Nov 2 01:31:03 2012 +0000

    Insert interception point onStartOfTranslationUnit.

    Often users of the ASTMatchers want to add tasks that are done once per
    translation unit, for example, cleaning up caches. Combined with the
    interception point for the end of source file one can add to the factory
    creation, this covers the cases we've seen users need.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167271 91177308-0d34-0410-b5e6-96231b3b80d8

commit 919b9557b4f0155dfaaea309493ff2a702fca676
Author: Richard Trieu <rtrieu@google.com>
Date:   Fri Nov 2 01:08:58 2012 +0000

    When finding a '(' after '::', emit error with hint to remove '(' and matching
    ')', if found.  Don't crash.
    Fixes PR11852.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167268 91177308-0d34-0410-b5e6-96231b3b80d8

commit aee56faf90c04a75d9c432a92a8fdd2c875559a7
Author: Quentin Colombet <qcolombet@apple.com>
Date:   Thu Nov 1 23:55:47 2012 +0000

    Update the front end to use minsize attribute

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167266 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7edf9e38b91917b661277601c0e448eef0eb2b56
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Nov 1 22:30:59 2012 +0000

    Simplify: replace getContext().getLangOpts() with just getLangOpts().

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167261 91177308-0d34-0410-b5e6-96231b3b80d8

commit da082f12c2633e9b45046fdce81e8b5847b9a26b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Nov 1 22:16:43 2012 +0000

    Clean up misapplication of diff.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167260 91177308-0d34-0410-b5e6-96231b3b80d8

commit cc305617e952f8c3a06b63d9225d0dd7769341b7
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Nov 1 22:15:34 2012 +0000

    Split emission of -ftrapv checks and -fcatch-undefined-behavior checks into
    separate functions, since they share essentially no code.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167259 91177308-0d34-0410-b5e6-96231b3b80d8

commit bb12243a487e70c0e65bcebdaa12ad754f92e022
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Nov 1 22:13:39 2012 +0000

    Remove divison-by-zero checks from -ftrapv. These checks were incompatible with
    g++'s -ftrapv, failed to call the -ftrapv overflow handler, and are still
    available under -fcatch-undefined-behavior.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167258 91177308-0d34-0410-b5e6-96231b3b80d8

commit 54c45453359b47646a1c8d072b02f628b7e16eaa
Author: Richard Trieu <rtrieu@google.com>
Date:   Thu Nov 1 21:29:28 2012 +0000

    Fix the template type diffing to handle integral template arguments.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167252 91177308-0d34-0410-b5e6-96231b3b80d8

commit 00a8541416df6e2ca8b298759267bea479b6adfb
Author: Matt Beaumont-Gay <matthewbg@google.com>
Date:   Thu Nov 1 20:26:42 2012 +0000

    Silence -Wformat on platforms where uint64_t is unsigned long.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167249 91177308-0d34-0410-b5e6-96231b3b80d8

commit f22ae6512dec60d9e526fe55b988f8d42ced5b57
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Nov 1 18:32:55 2012 +0000

    objective-C block meta-data. This patch completes meta-data
    generation for captured block variables in arc mode. This includes
    inlined version of the meta-data when it can be done. It also includes
    severat tests. This is wip. // rdar://12184410.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167241 91177308-0d34-0410-b5e6-96231b3b80d8

commit cfa1caa92611184f59c2f3e606c53ddcc726449a
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Thu Nov 1 17:52:58 2012 +0000

    Make the FilenameRange of the InclusionDirective callback more accurate,
    preserve the macro location of the range end if the filename came from a macro.

    Patch by Kim Gräsman!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167239 91177308-0d34-0410-b5e6-96231b3b80d8

commit ef4b666e841e3917385892713612888ec6c3a056
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Thu Nov 1 14:32:20 2012 +0000

    Fix an incorrect assert, the LHS can be an LValue.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167232 91177308-0d34-0410-b5e6-96231b3b80d8

commit 292d67bb69e878104d2cdc1a1f72264e4fc2852a
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Nov 1 07:22:08 2012 +0000

    -fcatch-undefined-behavior: Start checking loads and stores for null pointers.
    We want the diagnostic, and if the load is optimized away, we still want to
    trap it. Stop checking non-default address spaces; that doesn't work in
    general.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167219 91177308-0d34-0410-b5e6-96231b3b80d8

commit b03b57d14983f90adb85f662812ba5742cfe45f2
Author: Gregory Szorc <gregory.szorc@gmail.com>
Date:   Thu Nov 1 05:46:30 2012 +0000

    [clang.py] Add Cursor.get_arguments()

    Patch provided by Matthias Kleine <matthias_kleine@gmx.de>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167216 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1d489cf4a04ad0ad8ac2696e4eed0995f3a67288
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Nov 1 04:30:05 2012 +0000

    Remove first argument from Arg::getValue; it's been unused since r105760.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167211 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7c3f8b3dafebc87b4b1492276f63b6cabbc7c59b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Nov 1 03:48:49 2012 +0000

    Remove CompilerInvocation::toArgs and clang -cc1test mode. These were untested
    and apparently unused (and since they are untested, they're presumably also
    broken).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167210 91177308-0d34-0410-b5e6-96231b3b80d8

commit e4a990f34904eb572c8d6aa1deef19465214359c
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Thu Nov 1 02:01:34 2012 +0000

    [libclang] Introduce clang_Cursor_getReceiverType which returns the CXType for
    the receiver of an ObjC message expression.

    rdar://12578643

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167201 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3cdd84318a3ae43fa31da849f1a6d3eeb8a39d2d
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Nov 1 01:47:02 2012 +0000

    clang/include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h: Appease msvc.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167199 91177308-0d34-0410-b5e6-96231b3b80d8

commit baf764092c76d74fb1528cfd62540ae7dc01efbd
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Nov 1 01:05:39 2012 +0000

    [analyzer] Optimize assumeDual by assuming constraint managers are consistent.

    Specifically, if adding a constraint makes the current system infeasible,
    assume the constraint is false, instead of attempting to add its negation.

    In +Asserts builds we will still assert that at least one state is feasible.

    Patch by Ryan Govostes!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167195 91177308-0d34-0410-b5e6-96231b3b80d8

commit b2ed96a0a56e0c789882810b28570d5182b39210
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Thu Nov 1 00:59:15 2012 +0000

    [lit] For the "case-insensitive-filesystem" make sure to create the test temporary file
    in the test output directory.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167193 91177308-0d34-0410-b5e6-96231b3b80d8

commit 79a29eb35a9508d61abb07452e4912d03466d1e7
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Nov 1 00:25:15 2012 +0000

    [analyzer] Fix typo in r167186.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167189 91177308-0d34-0410-b5e6-96231b3b80d8

commit bef17f985c07fe86c5ef280a0f0d9f981815a515
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Nov 1 00:20:00 2012 +0000

    clang/test/Index/code-completion-skip-bodies.cpp: Add XFAIL while investigating.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167188 91177308-0d34-0410-b5e6-96231b3b80d8

commit 32f38c11642ddeaeb6c4ffb1e589ab444c825f6e
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Nov 1 00:18:41 2012 +0000

    [analyzer] Minor cleanup in SimpleStreamChecker's class definition.

    No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167187 91177308-0d34-0410-b5e6-96231b3b80d8

commit ec8d420d4fa57fc6b5a5a2b1446742e976a7ba00
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Nov 1 00:18:27 2012 +0000

    [analyzer] Rename ConditionTruthVal::isTrue to isConstrainedTrue.

    (and the same for isFalse)

    No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167186 91177308-0d34-0410-b5e6-96231b3b80d8

commit 889b99e6d5b389c0ed99e7ad8470c28b146a42d3
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Wed Oct 31 23:55:28 2012 +0000

    Correctly reject gotos in function-level try blocks.  PR14225.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167184 91177308-0d34-0410-b5e6-96231b3b80d8

commit bbb751a1788c461bc9765ec3387536cad6b52619
Author: Anna Zaks <ganna@apple.com>
Date:   Wed Oct 31 22:17:48 2012 +0000

    [analyzer] Fix a bug in SimpleStreamChecker - return after sink.

    Thanks Ted.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167176 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1cd46de4840057198607afc875fe9518a78640e1
Author: Chad Rosier <mcrosier@apple.com>
Date:   Wed Oct 31 21:08:30 2012 +0000

    [driver] Remove an extra space with the -iprefix option, so that
    matching works correctly.
    Part of rdar://12329974

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167173 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4182ed686283b72736b287cbe28583cb641f8934
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Oct 31 20:59:50 2012 +0000

    [PCH] Remove the stat cache from the PCH file.

    The stat cache became essentially useless ever since we started
    validating all file entries in the PCH.
    But the motivating reason for removing it now is that it also affected
    correctness in this situation:

    -You have a header without include guards (using "#pragma once" or #import)
    -When creating the PCH:
      -The same header is referenced in an #include with different filename cases.
      -In the PCH, of course, we record only one file entry for the header file
      -But we cache in the PCH file the stat info for both filename cases

    -Then the source files are updated and the header file is updated in a way that
     its size and modification time are the same but its inode changes

    -When using the PCH:
      -We validate the headers, we check that header file and we create a file entry with its current inode
      -There's another #include with a filename with different case than the previously created file entry
      -In order to get its stat info we go through the cached stat info of the PCH and we receive the old inode
      -because of the different inodes, we think they are different files so we go ahead and include its contents.

    Removing the stat cache will potentially break clients that are attempting to use the stat cache
    as a way of avoiding having the actual input files available. If that use case is important, patches are welcome
    to bring it back in a way that will actually work correctly (i.e., emit a PCH that is self-contained, coping with
    literal strings, line/column computations, etc.).

    This fixes rdar://5502805

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167172 91177308-0d34-0410-b5e6-96231b3b80d8

commit 724e65b18cfe6691668606cde59d44cf353282b8
Author: Michael Gottesman <mgottesman@apple.com>
Date:   Wed Oct 31 20:20:04 2012 +0000

    [clang tests] Added require ppc64-registered-target to Headers/altivec-header.c to ensure it only runs on ppc64.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167162 91177308-0d34-0410-b5e6-96231b3b80d8

commit 967f3f09f800b6529d74637a73384ee540c8e901
Author: Chad Rosier <mcrosier@apple.com>
Date:   Wed Oct 31 19:28:55 2012 +0000

    [driver] Remove an extra space with the -internal-externc-isystem option, so
    that matching works correctly.
    Part of rdar://12329974

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167161 91177308-0d34-0410-b5e6-96231b3b80d8

commit 710c517431954cfffba519fc7814cfbd8412a9aa
Author: Manman Ren <mren@apple.com>
Date:   Wed Oct 31 19:02:26 2012 +0000

    ARM AAPCS-VFP: fix tracking of allocated VFP registers.

    According to the spec, we can backfill VFP registers that were skipped due
    to alignment constraints.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167159 91177308-0d34-0410-b5e6-96231b3b80d8

commit 66fb02897b5c2e66b80e8acd9c8a5811dd02d6ee
Author: Chad Rosier <mcrosier@apple.com>
Date:   Wed Oct 31 18:59:38 2012 +0000

    [driver] Remove the -ccc-host-triple alias.  This has been replaced by the
    -target option.
    rdar://10692880

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167158 91177308-0d34-0410-b5e6-96231b3b80d8

commit cfed8283c3aeb03ddd837411467d19e250068d39
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Wed Oct 31 18:51:07 2012 +0000

    getArchTypeForDarwinArchName is only used in the clang driver, copy it there.
    I will remove it from llvm in the next commit.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167156 91177308-0d34-0410-b5e6-96231b3b80d8

commit 30280389d108a5a781e45b8cfd1aa14bed3920d4
Author: Alexander Kornienko <alexfh@google.com>
Date:   Wed Oct 31 18:46:31 2012 +0000

    Fix for -ast-dump-filter

    Summary:
    -ast-dump-filter implementation used to stop AST traversal after traversing a NULL Decl node.

    Added test and fixed.

    Reviewers: djasper, klimek, rsmith

    Reviewed By: djasper

    CC: cfe-commits

    Differential Revision: http://llvm-reviews.chandlerc.com/D93

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167155 91177308-0d34-0410-b5e6-96231b3b80d8

commit c91b41a64ccce6d1097d85c8c7354ea63a5566a0
Author: Chad Rosier <mcrosier@apple.com>
Date:   Wed Oct 31 18:31:33 2012 +0000

    [driver] Completely rework how superfluous options are stripped out of the crash
    diagnostics script.

    This addresses the FIXME pertaining to quoted arguments.  We also delineate
    between those flags that have an argument (e.g., -D macro, -MF file) and
    those that do not (e.g., -M, -MM, -MG).  Finally, we add the -dwarf-debug-flags
    to the list of flags to be removed.
    rdar://12329974

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167152 91177308-0d34-0410-b5e6-96231b3b80d8

commit 60c158a5e5827ed030b7cf8885f099cded563a6f
Author: Ulrich Weigand <ulrich.weigand@de.ibm.com>
Date:   Wed Oct 31 18:17:07 2012 +0000

    Add "static" to some functions in altivec.c where it was missing.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167148 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5d1ae382828df91deb94fa343fb331b5548f06a2
Author: Bill Schmidt <wschmidt@linux.vnet.ibm.com>
Date:   Wed Oct 31 17:31:46 2012 +0000

    This patch removes the XFAIL for powerpc for
    test/CodeGenCXX/member-alignment.cpp.  The test succeeds for
    powerpc64-unknown-linux-gnu.  If other flavors of powerpc are
    shown by buildbots to still be broken, we can adjust the test
    at that time.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167143 91177308-0d34-0410-b5e6-96231b3b80d8

commit 81939a752bfb4adbe302e2872271be195e2eacb2
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Oct 31 17:29:28 2012 +0000

    If skipping bodies is enabled outside code-completion, just skip the body directly
    without using tentative parsing.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167142 91177308-0d34-0410-b5e6-96231b3b80d8

commit 25893e0930c1241c3fdafc6f1b8661443bb19692
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Oct 31 17:29:22 2012 +0000

    Decouple code-completion for the SkipFunctionBodies frontend option and
    add a test to make sure code-completion skips bodies.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167141 91177308-0d34-0410-b5e6-96231b3b80d8

commit c45bb4dcb648cd8b5250492afe7df254e4157aaa
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Oct 31 16:44:55 2012 +0000

    [analyzer] Let ConstraintManager subclasses provide a more efficient checkNull.

    Previously, every call to a ConstraintManager's isNull would do a full
    assumeDual to test feasibility. Now, ConstraintManagers can override
    checkNull if they have a cheaper way to do the same thing.
    RangeConstraintManager can do this in less than half the work.

    <rdar://problem/12608209>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167138 91177308-0d34-0410-b5e6-96231b3b80d8

commit bfd452ea9b362a0e5d8e2b8d599ad9f4092ce29e
Author: Simon Atanasyan <satanasyan@mips.com>
Date:   Wed Oct 31 14:39:28 2012 +0000

    Fix if-else braces layout accordingly to the style guide.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167118 91177308-0d34-0410-b5e6-96231b3b80d8

commit e01575447635fae1365fc94a8dbb82b31e86ab09
Author: Simon Atanasyan <satanasyan@mips.com>
Date:   Wed Oct 31 12:01:53 2012 +0000

    Extend -Bprefix functionality and make it closer to gcc. If the "prefix"
    is not a directory, Driver::GetProgramPath() routine does not try to append
    the program name as a "path component" to it. It just joins the "prefix" with
    the program name and checks the resulting path existence.

    The patch reviewed by Rafael Espindola.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167114 91177308-0d34-0410-b5e6-96231b3b80d8

commit 986af6fe3842dd08ce6d6e2a2e3dbec1d58cc15d
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Wed Oct 31 02:34:48 2012 +0000

    Remove empty directories.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167100 91177308-0d34-0410-b5e6-96231b3b80d8

commit 32133cfb333510ba94aff040067713c0b32d58c5
Author: Anna Zaks <ganna@apple.com>
Date:   Wed Oct 31 02:32:41 2012 +0000

    [analyzer] SimpleStreamChecker - remove evalAssume and other refinements

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167099 91177308-0d34-0410-b5e6-96231b3b80d8

commit af6f612af4d4a164f9de0e50e717c6f0fb8edd89
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Wed Oct 31 02:29:15 2012 +0000

    Remove really old benchmark data.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167098 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8c610b075cb2f9dae1178ab881a0aa9f91b9bcd5
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Wed Oct 31 01:21:20 2012 +0000

    Remove the -ccc-no-clang option.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167093 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3719ed248b7b7e239b1b435dd569b007aaea9d26
Author: Anna Zaks <ganna@apple.com>
Date:   Wed Oct 31 01:18:26 2012 +0000

    [analyzer]Don't invalidate const arguments when there is no
    IdentifierInfo.

    Ee: C++ copy constructors.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167092 91177308-0d34-0410-b5e6-96231b3b80d8

commit e63aedd0cb064fc106636ad856cc0e645e6374ce
Author: Anna Zaks <ganna@apple.com>
Date:   Wed Oct 31 01:18:22 2012 +0000

    Address Jordan's review: comments, spaces.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167091 91177308-0d34-0410-b5e6-96231b3b80d8

commit 399f2c40032062862d13009982ba03b97ac1c4e0
Author: Seth Cantrell <seth.cantrell@gmail.com>
Date:   Wed Oct 31 01:03:35 2012 +0000

    add test for r167063

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167089 91177308-0d34-0410-b5e6-96231b3b80d8

commit 31ba273ef83d648ac78d96a4205ffad6b3e430a6
Author: Seth Cantrell <seth.cantrell@gmail.com>
Date:   Tue Oct 30 23:50:26 2012 +0000

    isLegalUTF8() was giving the wrong answer

    invalid but not caught by isLegalUTF8(): 0xED 0x75 0x84

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167063 91177308-0d34-0410-b5e6-96231b3b80d8

commit e6c3458723d954d1ba9b73a2d93d2e2d67dd3510
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Oct 30 23:49:11 2012 +0000

    Remove ccc-no-clang-cpp, which is also dead now.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167062 91177308-0d34-0410-b5e6-96231b3b80d8

commit 82c6dc72adc30e785ce5bc6e8b43ae92070d2e08
Author: David Blaikie <dblaikie@gmail.com>
Date:   Tue Oct 30 23:22:22 2012 +0000

    Handle string encoding diagnostics when there are too many invalid ranges.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167059 91177308-0d34-0410-b5e6-96231b3b80d8

commit b3fa55f18d7b3759b3a6547719cf5b3418370a96
Author: Manman Ren <mren@apple.com>
Date:   Tue Oct 30 23:21:41 2012 +0000

    ARM AAPCS-VFP: fix handling of homogeneous aggreate.

    If HA can only partially fit into VFP registers, we add padding to make sure
    HA will be on stack and later VFP CPRCs will be on stack as well.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167058 91177308-0d34-0410-b5e6-96231b3b80d8

commit 89aa2ce6d6de2b9200171bd3ecc97fe917f73d62
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Oct 30 21:42:09 2012 +0000

    [driver] Older versions of ld expect '-L<dir>' not '-L <dir>'.  In Xcode4 and
    later, '-L <dir>' is allowed, but rewrite these in the driver as '-L<dir>' to
    maintain backward compatibility.  The same is true for the -I option.
    rdar://12366753

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167054 91177308-0d34-0410-b5e6-96231b3b80d8

commit c6abe9e0d94d82d566c716a1ab3c0fe6daadfb9c
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Oct 30 20:05:29 2012 +0000

    objective-C arc/mrr: Another patch for the new captured block variable
    layout meta-data.  It is currently off (so no tests). This is wip.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167047 91177308-0d34-0410-b5e6-96231b3b80d8

commit 356d9cccd7fa455fc609d4c9eac330e380d832d7
Author: Quentin Colombet <qcolombet@apple.com>
Date:   Tue Oct 30 16:33:19 2012 +0000

    Change ForceSizeOpt attribute into MinSize attribute

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167021 91177308-0d34-0410-b5e6-96231b3b80d8

commit d1ce3c178b9c648687591b190e0d252124fc2459
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Oct 30 15:42:00 2012 +0000

    Implement descendant matchers for NestedNamespecifiers

    This implements has(), hasDescendant(), forEach() and
    forEachDescendant() for NestedNameSpecifier and NestedNameSpecifierLoc
    matchers.

    Review: http://llvm-reviews.chandlerc.com/D86

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167017 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0d1e645bbfd3727b0dd758bdb685c6e5c7592fec
Author: Seth Cantrell <seth.cantrell@gmail.com>
Date:   Tue Oct 30 06:13:52 2012 +0000

    remove duplicate data array

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167007 91177308-0d34-0410-b5e6-96231b3b80d8

commit c6a2f6e2dd16368f4a60178b5e20b63fcafb5481
Author: Seth Cantrell <seth.cantrell@gmail.com>
Date:   Tue Oct 30 06:13:50 2012 +0000

    fix calculation of end pointer

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167006 91177308-0d34-0410-b5e6-96231b3b80d8

commit c39a2b0577e5b2160575f5c1a43c2569ce3059d8
Author: Ted Kremenek <kremenek@apple.com>
Date:   Tue Oct 30 05:28:33 2012 +0000

    Update test case.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167005 91177308-0d34-0410-b5e6-96231b3b80d8

commit ecf7cc18ced8a384ef373e7f04ba3b70ea2fd5a7
Author: Kostya Serebryany <kcc@google.com>
Date:   Tue Oct 30 05:07:05 2012 +0000

    [asan docs] explain why asan exits on the first error

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167004 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4a131e1c6360419ceabdae80175ccb43d0ca31ee
Author: Ted Kremenek <kremenek@apple.com>
Date:   Tue Oct 30 04:43:57 2012 +0000

    Change -Wcompare-distinct-pointer-type to -Wcompare-distinct-pointer-types, as
    the warning is about comparing different types (plural).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167003 91177308-0d34-0410-b5e6-96231b3b80d8

commit 19948ac84f145b9ea576db2faefda1927c249e44
Author: Ted Kremenek <kremenek@apple.com>
Date:   Tue Oct 30 04:43:51 2012 +0000

    Trim #includes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167002 91177308-0d34-0410-b5e6-96231b3b80d8

commit bdbb17b81ca02f0279909836668420351b7f24c1
Author: Anna Zaks <ganna@apple.com>
Date:   Tue Oct 30 04:18:21 2012 +0000

    [analyzer]SimpleStreamChecker: add a TODO for better leak report.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167001 91177308-0d34-0410-b5e6-96231b3b80d8

commit 360b29c52a4c10f9d4c031d84d962ed2a4d58263
Author: Anna Zaks <ganna@apple.com>
Date:   Tue Oct 30 04:17:40 2012 +0000

    [analyzer] Fix a bug in REGISTER_MAP_WITH_PROGRAMSTATE

    The ImmutableMap should not be the key into the GDM map as there could
    be several entries with the same map type. Thanks, Jordan.

    This complicates the usage of the macro a bit. When we want to retrieve
    the whole map, we need to use another name. Currently, I set it to be
    Name ## Ty as in "type of the map we are storing in the ProgramState".

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167000 91177308-0d34-0410-b5e6-96231b3b80d8

commit ac150f2619efcadbf23acd6e86695b5412723eb1
Author: Anna Zaks <ganna@apple.com>
Date:   Tue Oct 30 04:17:18 2012 +0000

    [analyzer] Rename REGISTER_MAP_WITH_GDM ->REGISTER_MAP_WITH_PROGRAMSTATE

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166999 91177308-0d34-0410-b5e6-96231b3b80d8

commit 942fbddccc1b5540336674e577abb59e5c231778
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Oct 30 01:49:46 2012 +0000

    Remove leftover const.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166996 91177308-0d34-0410-b5e6-96231b3b80d8

commit eafaad279f7be4552e5a2246fcda1b5d65698104
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Tue Oct 30 01:37:16 2012 +0000

    [analyzer] Warn about reallocf with an allocation size of 0, like realloc.

    Patch by Sean McBride!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166995 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3cf9a72743d147f3a6152ba3374f081bac749c28
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Tue Oct 30 01:21:35 2012 +0000

    [analyzer] New checker for missing super calls in UIViewController subclasses.

    This is a syntactic checker aimed at helping iOS programmers correctly
    subclass and override the methods of UIViewController. While this should
    eventually be covered by the 'objc_requires_super' attribute, this
    checker can be used with the existing iOS SDKs without any header changes.

    This new checker is currently named 'alpha.osx.cocoa.MissingSuperCall'.
    Patch by Julian Mayer!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166993 91177308-0d34-0410-b5e6-96231b3b80d8

commit ee1ea80a9091050c6d0a21be9d06a5f97d3ea715
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Tue Oct 30 01:15:28 2012 +0000

    Don't crash on bad atomic operations.  PR14176.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166992 91177308-0d34-0410-b5e6-96231b3b80d8

commit 848bc3a5db57fb267e2b2541cb55e71dba4bf228
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Oct 30 00:38:13 2012 +0000

    getOriginalSourceFileName and getOriginalSourceFile can return a StringRef.
    MaybeAddSystemRootToFilename doesn't need to return anything, it modifies
    its argument.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166988 91177308-0d34-0410-b5e6-96231b3b80d8

commit 33e1576ef88ae6fcc4ed8686f34ed28b1a41bcce
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Oct 30 00:27:21 2012 +0000

    [PCH] The diagnostic state points can refer to previously created
    diagnostic states; make sure the ASTReader sets the diagnostic state
    properly instead of always recreating it.

    Fixes rdar://12581618 & http://llvm.org/PR14181

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166987 91177308-0d34-0410-b5e6-96231b3b80d8

commit d2d4d68a58898c5d13d66d45a5d9440fc1d790fe
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Oct 30 00:13:16 2012 +0000

    In the past "production" clang builds would not be used for c++, and
    we had the -ccc-clang-cxx and -ccc-no-clang-cxx options to force them
    on or off for testing.

    Clang c++ support is now production quality and these options are dead.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166986 91177308-0d34-0410-b5e6-96231b3b80d8

commit bf69d7146acaea1502d8e10bfe8d4ffe72a83e79
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Mon Oct 29 23:53:52 2012 +0000

    [libclang] Bump the version number of the libclang API.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166984 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2902829d27ca3d3bb24d55dd99e8a218cc3a415f
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Mon Oct 29 23:41:43 2012 +0000

    Remove a bit of dead code.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166983 91177308-0d34-0410-b5e6-96231b3b80d8

commit badb3f6971bec4a7341ed152d367f27d572682e0
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Mon Oct 29 23:26:40 2012 +0000

    Move getOriginalSourceFileName inline. Patch by Laszlo Nagy.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166981 91177308-0d34-0410-b5e6-96231b3b80d8

commit ca9805a79dad01f12fa13c245f48724203699f08
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Mon Oct 29 23:24:44 2012 +0000

    [libclang] Introduce a version constant for the libclang API.

    rdar://12587974

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166980 91177308-0d34-0410-b5e6-96231b3b80d8

commit 54458707b2df12c5a63599fe9727a227d91bc183
Author: Anna Zaks <ganna@apple.com>
Date:   Mon Oct 29 22:51:54 2012 +0000

    [analyzer] Malloc checker cleanup/refactor

    No need for the auxiliary flag. No need to generate a leak node when
    there is no error.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166977 91177308-0d34-0410-b5e6-96231b3b80d8

commit d65e55d691655462880ffd51c10784955ab6a362
Author: Anna Zaks <ganna@apple.com>
Date:   Mon Oct 29 22:51:50 2012 +0000

    [analyzer] Add SimpleStreamChecker.

    This is an example checker for catching fopen fclose API misuses.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166976 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5ac1df3e15f91ed663826faec7efe2462c18d98c
Author: Anna Zaks <ganna@apple.com>
Date:   Mon Oct 29 22:51:44 2012 +0000

    [analyzer] Add checker helpers to CheckerContext.

    - Adding Immutable Map to GDM and getIdentifierInfo helper method.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166975 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8e68ef0e4c3892b80d9fec77b5d477cd54e90db9
Author: Quentin Colombet <qcolombet@apple.com>
Date:   Mon Oct 29 18:28:57 2012 +0000

    Revert commit r166946

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166957 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9568f0c13a84695c5cc064e7c32412f84604cb1e
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Mon Oct 29 18:26:47 2012 +0000

    Partially roll back r166898; it exposed a bug in the standard.

    The problem is as follows: C++11 has contexts which are not
    potentially-evaluated, and yet in which we are required or encouraged to
    perform constant evaluation. In such contexts, we are not permitted to
    implicitly define special member functions for literal types, therefore
    we cannot evalaute those constant expressions.

    Punt on this in one more context for now by skipping checking constexpr
    variable initializers if they occur in dependent contexts.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166956 91177308-0d34-0410-b5e6-96231b3b80d8

commit ba927d9b26ead2ad535c7761b8862d8e82c41b13
Author: Quentin Colombet <qcolombet@apple.com>
Date:   Mon Oct 29 17:56:23 2012 +0000

    Make forcesizeopt attribute available to the end user

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166946 91177308-0d34-0410-b5e6-96231b3b80d8

commit c0e44454bd78b8b4f3d70f08cf1edd5466b0c798
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Mon Oct 29 17:46:47 2012 +0000

    -Warc-repeated-use-of-weak: allow single reads in loops from local variables.

    Previously, the warning would erroneously fire on this:

    for (Test *a in someArray)
      use(a.weakProp);

    ...because it looks like the same property is being accessed over and over.
    However, clearly this is not the case. We now ignore loops like this for
    local variables, but continue to warn if the base object is a parameter,
    global variable, or instance variable, on the assumption that these are
    not repeatedly usually assigned to within loops.

    Additionally, do-while loops where the condition is 'false' are not really
    loops at all; usually they're just used for semicolon-swallowing macros or
    using "break" like "goto".

    <rdar://problem/12578785&12578849>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166942 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6a329ee7567cf3267ffab2bc755ea8c773d967e7
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Mon Oct 29 17:31:59 2012 +0000

    [analyzer] New option to not suppress null return paths if an argument is null.

    Our one basic suppression heuristic is to assume that functions do not
    usually return NULL. However, when one of the arguments is NULL it is
    suddenly much more likely that NULL is a valid return value. In this case,
    we don't suppress the report here, but we do attach /another/ visitor to
    go find out if this NULL argument also comes from an inlined function's
    error path.

    This new behavior, controlled by the 'avoid-suppressing-null-argument-paths'
    analyzer-config option, is turned off by default. Turning it on produced
    two false positives and no new true positives when running over LLVM/Clang.

    This is one of the possible refinements to our suppression heuristics.
    <rdar://problem/12350829>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166941 91177308-0d34-0410-b5e6-96231b3b80d8

commit 09f7bf14d25bdc55cb715bc8d40600906848a409
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Mon Oct 29 17:31:53 2012 +0000

    [analyzer] Use the CallEnter node to get a value for tracked null arguments.

    Additionally, don't collect PostStore nodes -- they are often used in
    path diagnostics.

    Previously, we tried to track null arguments in the same way as any other
    null values, but in many cases the necessary nodes had already been
    collected (a memory optimization in ExplodedGraph). Now, we fall back to
    using the value of the argument at the time of the call, which may not
    always match the actual contents of the region, but often will.

    This is a precursor to improving our suppression heuristic.
    <rdar://problem/12350829>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166940 91177308-0d34-0410-b5e6-96231b3b80d8

commit dbaf4bc5864d80a3f3e51700219c30900cde7300
Author: Bill Schmidt <wschmidt@linux.vnet.ibm.com>
Date:   Mon Oct 29 14:59:24 2012 +0000

    This patch adds alignment information for long double to the 64-bit PowerPC
    ELF subtarget.

    The existing description string is moved from PPC64TargetInfo to its
    DarwinTargetInfo subclass, to avoid any changes to the Darwin ABI.
    PPC64TargetInfo now has two possible description strings: one for FreeBSD,
    which requires 8-byte alignment, and a default string that requires
    16-byte alignment.

    I've added a test for PPC64 Linux to verify the 16-byte alignment.  If
    somebody wants to add a separate test for FreeBSD, that would be great.

    Note that there is a companion patch to update the alignment information
    in LLVM, which I am committing now as well.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166927 91177308-0d34-0410-b5e6-96231b3b80d8

commit e6b3dbae38f62164cab3989380cd940242d80120
Author: Ulrich Weigand <ulrich.weigand@de.ibm.com>
Date:   Mon Oct 29 12:20:54 2012 +0000

    Handle '*' and '#' asm constraint modifiers.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166924 91177308-0d34-0410-b5e6-96231b3b80d8

commit 452abbc76b775169dc01c359e94a7f666ebc8692
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Oct 29 10:48:25 2012 +0000

    Fix ASTMatchersTests to not create an overloaded-virtual warning.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166921 91177308-0d34-0410-b5e6-96231b3b80d8

commit a267cf6f87dc695143d65fc61ec1744564f55932
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Oct 29 10:14:44 2012 +0000

    Implement has(), hasDescendant(), forEach() and forEachDescendant() for
    Types, QualTypes and TypeLocs.

    Review: http://llvm-reviews.chandlerc.com/D83

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166917 91177308-0d34-0410-b5e6-96231b3b80d8

commit b201e93f018fc9e5b964053a85685d38cec6f841
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Mon Oct 29 06:05:01 2012 +0000

    Remove spurious mode marker from .cpp file.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166915 91177308-0d34-0410-b5e6-96231b3b80d8

commit 76dd1d91692bc8ca2a0f8e74a663ca2f191e2104
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Mon Oct 29 06:03:58 2012 +0000

    Add missing emacs major mode marker.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166914 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6cd2bf886c49e9e2d8fbd1d387380cc02577bee1
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Mon Oct 29 06:03:40 2012 +0000

    Fix name of this file.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166913 91177308-0d34-0410-b5e6-96231b3b80d8

commit eb86dcc0087fef6b58087a491d73d510c0658609
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Mon Oct 29 06:02:59 2012 +0000

    Add missing emacs major mode marker.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166912 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5bffbe5c1033967fe49c7a638fdcea99d30d573a
Author: Seth Cantrell <seth.cantrell@gmail.com>
Date:   Sun Oct 28 18:24:46 2012 +0000

    improve highlighting of invalid string encodings

    limit highlight to exactly the bad encoding, and highlight every
    bad encoding in a string.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166900 91177308-0d34-0410-b5e6-96231b3b80d8

commit c36e3596be351a557cc81c8db3ea75fa4bd54c7a
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sun Oct 28 07:39:29 2012 +0000

    Revert functional part of r166896 and just suppress -Wunneeded-internal-declaration for reference types for now. This needs more work; the cases we currently miss are a bit random.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166899 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1432a43e3076eec84967305bd85bace3a6e9102b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sun Oct 28 06:18:02 2012 +0000

    When determining whether to try evaluating the initializer of a variable, check
    whether the initializer is value-dependent rather than whether we are in a
    dependent context. This allows us to detect some errors sooner, and fixes a
    crash-on-invalid if a dependent type leaks out to a non-dependent context in
    error recovery.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166898 91177308-0d34-0410-b5e6-96231b3b80d8

commit 623ef4bf31bc5ec14ed9b5645921a0a2e0d00ee4
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sun Oct 28 04:47:21 2012 +0000

    In -Wunneeded-internal-declaration, suppress the warning for variables which
    might have been used in constant expressions, rather than suppressing it for
    variables which are const. The important thing here is that such variables
    can have their values used without actually being marked as 'used'.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166896 91177308-0d34-0410-b5e6-96231b3b80d8

commit 644e90a17f1bc3dcc2b7b018eb02abb3a1c2022b
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Sun Oct 28 02:44:03 2012 +0000

    Fix invalid jump scopes again. This time without trying to find out if an
    incomplete type has a destructor or not.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166895 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1a7b2e99c09e4368d7b6e43cdbfe53ee0ade1a51
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Sun Oct 28 02:25:27 2012 +0000

    Add a testcase from the previous bootstrap problem.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166894 91177308-0d34-0410-b5e6-96231b3b80d8

commit e1bb329744ec98ca921bfc4f0888cff7ab4d1bf4
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Sat Oct 27 23:44:27 2012 +0000

    Fix crash on missing namespace name in namespace alias definition -- PR14085.

    Patch from Brian Brooks <brooks.brian@gmail.com>!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166893 91177308-0d34-0410-b5e6-96231b3b80d8

commit c46b43517a18c8f41934a38a3580bd477ab54265
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Sat Oct 27 21:10:38 2012 +0000

    objective-C arc/mrr: Patch for the new block variable layout meta-data.
    It is currently off (so no tests). This is wip.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166892 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2b970e9d70768802984f2cf1885e73643c17e0c2
Author: Chris Lattner <sabre@nondot.org>
Date:   Sat Oct 27 19:49:20 2012 +0000

    Currently the initial value of Tok is dependent an the stack contents
    and could cause the Parser to crash on the first ConsumeToken().

    Patcy by Bas van den Berg!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166891 91177308-0d34-0410-b5e6-96231b3b80d8

commit a92afb611c015196541edd53347aa23dba1949ac
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Sat Oct 27 16:49:47 2012 +0000

    Revert 166876 while I debug a bootstrap problem.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166878 91177308-0d34-0410-b5e6-96231b3b80d8

commit ff8f9676c025dd9942521a29bf967505c3bda62a
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Sat Oct 27 14:56:08 2012 +0000

    Reapply 166855 with an early exit on null QualTypes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166876 91177308-0d34-0410-b5e6-96231b3b80d8

commit 286d6236850ed3710822e659afdfdf08a315716b
Author: Mahesha S <mahesha.llvm@gmail.com>
Date:   Sat Oct 27 10:44:42 2012 +0000

    Reverted back the changes made in 166868 and in 166869

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166871 91177308-0d34-0410-b5e6-96231b3b80d8

commit 68de140b5d1df4c21cbf5ef1be2abcbfbc835cb5
Author: Mahesha S <mahesha.llvm@gmail.com>
Date:   Sat Oct 27 09:05:45 2012 +0000

    Feature:
      OpenMP support.

    Sub-Feature:
      Support for "#pragma omp ..." registration with
      Preprocessor.

    Files Changed/Added:
      * include/clang/Basic/DiagnosticGroups.td (C)
      * include/clang/Basic/DiagnosticParseKinds.td (C)
      * include/clang/Basic/TokenKinds.def (C)
      * include/clang/Parse/Parser.h (C)
      * lib/Parse/Parser.cpp (C)

    Test Cases Changed/Added:
      * test/Preprocessor/pragma_omp.c (A)
      * test/Preprocessor/pragma_omp_ignored_warning.c (A)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166869 91177308-0d34-0410-b5e6-96231b3b80d8

commit f3b52315e2ee52bdff9cba31b037c7e6b3adfadc
Author: Mahesha S <mahesha.llvm@gmail.com>
Date:   Sat Oct 27 07:47:56 2012 +0000

    -------------------------------------------------
    Feature:
      OpenMP support in CLANG:

    Sub-Feature:
      Support for option -fopenmp

    Files Changed/Added:
      * include/clang/Driver/Options.td (C)
      * include/clang/Basic/LangOptions.def (C)
      * lib/Driver/Tools.cpp (C)
      * lib/Frontend/CompilerInvocation.cpp (C)

    Test Cases Changed/Added:
      * test/Driver/clang_fopenmp_opt.c (A)
    -------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166868 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6a656620f67c3911403c704d428f036891a935c1
Author: Mahesha S <mahesha.llvm@gmail.com>
Date:   Sat Oct 27 07:23:58 2012 +0000

    Removed an extra blank line.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166867 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3954d394e42e63b15b1a3634e4c93e0986c75a6d
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Sat Oct 27 04:54:49 2012 +0000

    Add a reduced testcase of the last bootstrap failure.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166866 91177308-0d34-0410-b5e6-96231b3b80d8

commit 029d28449c4adb5ce92b58b5a57eeca6e396e404
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Sat Oct 27 03:06:02 2012 +0000

    Revert r166855. I can reproduce the bootstrap failure and have a testcase
    to reduce.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166863 91177308-0d34-0410-b5e6-96231b3b80d8

commit b21c11d655027ae439be83af84f9bce3ab0f728b
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Sat Oct 27 02:13:28 2012 +0000

    Add a test case for the stack overflow in rdar://12542261

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166858 91177308-0d34-0410-b5e6-96231b3b80d8

commit 76b5d24b748896b5a0be7fff779943e3108e7518
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Sat Oct 27 01:17:42 2012 +0000

    Fix cases where we were not producing an error when a computed goto could
    jump over destructor calls.
    Fixes pr13812.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166855 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0a7dd835184343ec9149277b668ecdc5d49fe8b0
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Sat Oct 27 01:03:43 2012 +0000

    Move two helper functions to AST so that sema can use them.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166853 91177308-0d34-0410-b5e6-96231b3b80d8

commit 034653c867d2369c05a286fffe3182190a999f7b
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Sat Oct 27 00:43:14 2012 +0000

    Refactor some code into a new findMaterializedTemporary function.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166849 91177308-0d34-0410-b5e6-96231b3b80d8

commit 582e185a5a9dc5fb9c347f370f530499d1fe5181
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Sat Oct 27 00:40:06 2012 +0000

    Refactor some code into a new skipRValueSubobjectAdjustments function.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166848 91177308-0d34-0410-b5e6-96231b3b80d8

commit ecccc1e286b56330c75b443a3a14b93e1d3bdedd
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Sat Oct 27 00:36:38 2012 +0000

    Delay codegen to after collecting all SubobjectAdjustment so that the collection
    can be refactored and used in Sema.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166847 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7b82cfc1ba1ee7000273e81e1e4c791fff0e22e5
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Fri Oct 26 23:25:42 2012 +0000

    Fix typo.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166833 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3d7c780d93ebcb84a1224de8c44835ea43e82b15
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Fri Oct 26 23:23:35 2012 +0000

    Add missing safety check to an optimization for do-while loops.  PR14191.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166832 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8c7a185dd84a7d44b1c83f66fd60629372efd498
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Fri Oct 26 23:05:34 2012 +0000

    Fix indentation.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166830 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1e584697aa795f915cd46afefd4e1141ee356b8c
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Oct 26 22:53:44 2012 +0000

    In Parser::ParseDecltypeSpecifier, make sure the end location it returns
    is at the end of parsed tokens when an error occurs, otherwise we'll hit
    an assertion when trying to annotate the decltype tokens.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166826 91177308-0d34-0410-b5e6-96231b3b80d8

commit aa014664a6083de28e255cfd304cae4605cf5e4f
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Fri Oct 26 22:38:05 2012 +0000

    Don't crash synthesizing an ObjC property with an empty struct type.  <rdar://problem/12547611>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166825 91177308-0d34-0410-b5e6-96231b3b80d8

commit f596760aab256d81a6823e731c988b35ef8197ad
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Oct 26 22:31:14 2012 +0000

    When an externally-supplied record layout has a size that clearly
    doesn't include padding up to the alignment of the record, take this
    as a cue that the alignment of the record should (conservatively) be
    set to 1. This is similar to other the other cues we use to determine
    that the record has a lower alignment, e.g., that the
    externally-supplied layout places fields at lower offsets than we
    would. Fixes <rdar://problem/12582052>; test case in LLDB.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166824 91177308-0d34-0410-b5e6-96231b3b80d8

commit 107dae4c7afca73e97d2689d6f644c13ac3048a4
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Oct 26 22:20:25 2012 +0000

    Add comment for my patch in r166809.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166823 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3b334036d3ee581352cfe62ccac0e4c6592bcf35
Author: Bill Schmidt <wschmidt@linux.vnet.ibm.com>
Date:   Fri Oct 26 20:34:52 2012 +0000

    This patch is a follow-up to r166805.  As suggested on-list, a check was
    added to ensure no extra alignment code is added in the future.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166812 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7b5209cdcbaedf5775d59d46cb3118c8215ba628
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Oct 26 20:33:59 2012 +0000

    Remove BLOCK_BYREF_LAYOUT_BYREF flags from list of
    flags for __block variable meta-data.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166811 91177308-0d34-0410-b5e6-96231b3b80d8

commit c1868e533e63a1b7dad7a22714fc593c045382ae
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Oct 26 20:22:11 2012 +0000

    objective-C IRGen: for @implementation nested in
    extern "C", its method definitions must be IRGen'ed
    before meta-data for class is generated. Otherwise,
    IRGen crashes (to say the least).
    // rdar://12581683

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166809 91177308-0d34-0410-b5e6-96231b3b80d8

commit ccb428bb04adaa909431d6e929b8f9e6bdbe7208
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Oct 26 20:09:24 2012 +0000

    [driver] Before applying the working directory check if the input path
    is absolute.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166808 91177308-0d34-0410-b5e6-96231b3b80d8

commit 485717e8e43034d653ccd7f35f4546773e016e27
Author: Bill Schmidt <wschmidt@linux.vnet.ibm.com>
Date:   Fri Oct 26 19:59:03 2012 +0000

    This patch addresses a 64-bit PowerPC ELF ABI compatibility issue with
    varargs parameter passing.

    A strict reading of the ABI indicates that any argument with alignment greater
    than 8 may require skipping doublewords in the parameter save area to align
    the argument, and hence require skipping GPRs.  In practice, this is not done
    by GCC.  The alignment restriction is used for internal alignment of a
    structure, but a structure with 16-byte alignment, for example, is not
    itself 16-byte aligned in the parameter save area.  Although this is messy,
    it has become the de facto standard used in building existing libraries.

    My initial varargs support followed the ABI language, but not the de facto
    standard.  Running the GCC compatibility test suite exposed this issue, and
    indeed showed that LLVM didn't pass parameters self-consistently with my
    original logic.  Removing the additional alignment logic allows the affected
    tests to now pass.

    I modified the ppc64-varargs-struct.c test case to remove the existing test
    for generation of alignment code, which is no longer appropriate.

    Built and tested on powerpc64-unknown-linux-gnu with no new regressions.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166805 91177308-0d34-0410-b5e6-96231b3b80d8

commit a049bbb3441010880486b82a7d0d284ab9afc4c9
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Oct 26 19:36:33 2012 +0000

    [options] Fix mishandling of aliased options that was introduced in r166444.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166801 91177308-0d34-0410-b5e6-96231b3b80d8

commit 34f8597973b8ed59da43cdd5c801dc073011e3a5
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Fri Oct 26 19:15:56 2012 +0000

    tests: Tweak unprintable.c to try another character which is hopefully even more
    unprintable.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166798 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0adc4d29d64107bd82016dd5adc023c5b6c89302
Author: Chad Rosier <mcrosier@apple.com>
Date:   Fri Oct 26 18:33:59 2012 +0000

    [ms-inline asm] Add test case for r166792.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166793 91177308-0d34-0410-b5e6-96231b3b80d8

commit da5c3b7fa13e35bdc6973ca2a314cbbfe26f71d1
Author: Chad Rosier <mcrosier@apple.com>
Date:   Fri Oct 26 18:04:45 2012 +0000

    [ms-inline asm] Test case for r166790.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166791 91177308-0d34-0410-b5e6-96231b3b80d8

commit 11ce5fe7d8dda29f3d093e5759a7476b140e3241
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Oct 26 16:45:11 2012 +0000

    Match up anonymous structs/unions in the ASTImporter. Previously, we'd
    only actually get the answer right if there was only a single
    anonymous struct/union at that level. This is part of
    <rdar://problem/11904570>; the test will go into LLDB itself.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166781 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3800165e56107df7430520aa98afdf7065db2dd2
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Oct 26 16:02:36 2012 +0000

    Add comments for RemoveRedundantMsgs, rename it to removeRedundantMsgs() per Jordan's feedback.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166778 91177308-0d34-0410-b5e6-96231b3b80d8

commit 47395d9360782a854594804aafe13ee877c4c0c4
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Oct 26 15:36:15 2012 +0000

    Eliminate some longstanding FIXMEs regarding variadic templates in the
    ASTImporter.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166777 91177308-0d34-0410-b5e6-96231b3b80d8

commit 347f64feb4f144c97757b4d8469030e793dbb36e
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Oct 26 15:34:11 2012 +0000

    In the ASTImporter, don't try to emit a diagnostic if we're not
    allowed to complain about a failure.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166776 91177308-0d34-0410-b5e6-96231b3b80d8

commit ea33b3f5072e450fc1acb43367ece2d54415f7f7
Author: Daniel Jasper <djasper@google.com>
Date:   Fri Oct 26 10:25:13 2012 +0000

    Remove clang-fixit from tools page as it is currently not planned as a
    separate tool.

    Review: http://llvm-reviews.chandlerc.com/D81

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166766 91177308-0d34-0410-b5e6-96231b3b80d8

commit dd6e106621992978e6eb928a502379f934f2a8e9
Author: David Tweed <david.tweed@arm.com>
Date:   Fri Oct 26 10:17:44 2012 +0000

    These tests require an actual x86 registered target, so mark them as such. Tested on ARM.

    Patch by Joey Gouly.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166765 91177308-0d34-0410-b5e6-96231b3b80d8

commit 681b89826f960f1069c89a51cd7090cda73f31b7
Author: Bill Wendling <isanbard@gmail.com>
Date:   Fri Oct 26 07:02:46 2012 +0000

    Fix grammar-o.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166759 91177308-0d34-0410-b5e6-96231b3b80d8

commit c01526e39e6df252d4de7fa831d0d5b384a3af06
Author: Alexey Samsonov <samsonov@google.com>
Date:   Fri Oct 26 07:01:51 2012 +0000

    Fix test suppressed in r166683 on 32-bit Linux

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166758 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3dac20a58de62443db0f657870bd62b9c05835e8
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Oct 26 01:13:38 2012 +0000

    Declare type of flags to be used in a __block (byref)
    variable descriptor captured by a block.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166746 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9046768d2c7e21a7933c8158664550a866fcdd74
Author: Quentin Colombet <qcolombet@apple.com>
Date:   Fri Oct 26 00:29:48 2012 +0000

    Oz optimization level sets ForceSizeOpt attribute for each function

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166744 91177308-0d34-0410-b5e6-96231b3b80d8

commit f0e97dba82a2c3eee716d6032c7a4eb889b01317
Author: Manman Ren <mren@apple.com>
Date:   Fri Oct 26 00:25:10 2012 +0000

    X86 SSE Intrinsics: update header for sqrt_ss, rsqrt_ss and rcp_ss.

    There intrinsics pass through the upper FP values from the input.
    rdar://12558838

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166743 91177308-0d34-0410-b5e6-96231b3b80d8

commit 50d46caf00c743312e0ea1f87a693d504b12ef51
Author: Bill Wendling <isanbard@gmail.com>
Date:   Thu Oct 25 23:28:48 2012 +0000

    Recommit Eric's code to validate ASM string's constraints and modifiers.

    This code checks the ASM string to see if the output size is able to fit within
    the variable specified as the output. For instance, scalar-to-vector conversions
    may not really work. It's on by default, but can be turned off with a flag if
    you think you know what you're doing.

    This is placed under a flag ('-Wasm-operand-widths') and flag group ('-Wasm').

    <rdar://problem/12284092>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166737 91177308-0d34-0410-b5e6-96231b3b80d8

commit d6f833091fbacc73980b9c4018363455b6aa82a7
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Oct 25 23:05:00 2012 +0000

    Fix the other occurrence of the problem fixed by r166731.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166735 91177308-0d34-0410-b5e6-96231b3b80d8

commit 40effbb836d3b7cd136d7f6955096cefc6b8d84e
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Oct 25 22:55:52 2012 +0000

    Changing name of enum for block literal flags to represent
    what it is meant for.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166734 91177308-0d34-0410-b5e6-96231b3b80d8

commit ca53087029204abc02c95fa3cf953ed60b19a3cd
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Oct 25 22:27:30 2012 +0000

    LLVM's hashing routines produce a size_t, and thus generate different values for 32- and 64-bit host compilers. This really needs to be fixed -- the IR generated should not depend on the host -- but this change will get the bots green again. Proper fix to follow.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166731 91177308-0d34-0410-b5e6-96231b3b80d8

commit b85cce094887ab5cf1c47acfe306e2fb1d3cfbb1
Author: Ted Kremenek <kremenek@apple.com>
Date:   Thu Oct 25 22:07:10 2012 +0000

    TrackConstraintBRVisitor and ConditionBRVisitor can emit similar
    path notes for cases where a value may be assumed to be null, etc.
    Instead of having redundant diagnostics, do a pass over the generated
    PathDiagnostic pieces and remove notes from TrackConstraintBRVisitor
    that are already covered by ConditionBRVisitor, whose notes tend
    to be better.

    Fixes <rdar://problem/12252783>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166728 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0848333c398d1ddd9f4e3b60cccef6a1b2698f78
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Oct 25 21:59:45 2012 +0000

    Add a more direct test for r166661.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166727 91177308-0d34-0410-b5e6-96231b3b80d8

commit d2e7d20dc7a3c9b9d0b2e0b8e3266bf57416fa21
Author: Chad Rosier <mcrosier@apple.com>
Date:   Thu Oct 25 21:52:03 2012 +0000

    [ms-inline asm] Add a test case for r166723 and r166724.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166725 91177308-0d34-0410-b5e6-96231b3b80d8

commit 802f93736a9ae76ffcbd90dbaf1c0b185531bb30
Author: Chad Rosier <mcrosier@apple.com>
Date:   Thu Oct 25 21:49:22 2012 +0000

    [ms-inline asm] Add support for field lookup in the SemaCallback.  Patch by Eli.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166723 91177308-0d34-0410-b5e6-96231b3b80d8

commit e11dba83d35b861e3a6c0d73ea84f89394cb9bad
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Oct 25 21:15:04 2012 +0000

    Add some new types in preparation of encoding of captured block variable
    layout meta-data work. wip.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166717 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6b2b8977bc8afd6b3e8399b7e28c249e9482f240
Author: Joerg Sonnenberger <joerg@bec.de>
Date:   Thu Oct 25 20:34:00 2012 +0000

    Don't require exception handling for clang-tblgen.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166713 91177308-0d34-0410-b5e6-96231b3b80d8

commit ebcb468a75b36ee5d132a942caa9a27fe0839e3b
Author: Kaelyn Uhrain <rikka@google.com>
Date:   Thu Oct 25 19:43:57 2012 +0000

    Move the input files for test/PCH/badpch.c under test/PCH/Inputs/.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166711 91177308-0d34-0410-b5e6-96231b3b80d8

commit c3f1742bdd1ae0091d51168e111cd63861587b13
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Oct 25 18:39:16 2012 +0000

    When capturing 'this' in a lambda, make sure to update the set of
    array-index starting values for the 'this' capture. Fixes
    <rdar://problem/12426831>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166709 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7c98499ba594116d75555f39a1cce28cd26d76a5
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Thu Oct 25 18:28:26 2012 +0000

    Comment to XML conversion: avoid memory allocation while pretty-printing the
    declaration.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166707 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3304c436130edcc0e4c500a48f951249e242d9d0
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Thu Oct 25 18:16:02 2012 +0000

    CommentDumper: reorder members and add a comment.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166705 91177308-0d34-0410-b5e6-96231b3b80d8

commit af879c0222791b5e026653a834df1c5c1fb41552
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Oct 25 18:06:53 2012 +0000

    Provide comment describing what buildBlockDescriptor does.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166703 91177308-0d34-0410-b5e6-96231b3b80d8

commit 38859ee4a3c1253d5a45ed3f6b52e77702bfd913
Author: Joerg Sonnenberger <joerg@bec.de>
Date:   Thu Oct 25 16:37:08 2012 +0000

    Don't throw exceptions in clang-tblgen by switching to PrintFatalError.
    Add locations in a number of places, where they are available for free.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166691 91177308-0d34-0410-b5e6-96231b3b80d8

commit 956a5a17713deb1b5b27893303c4f308a1bd2a62
Author: Micah Villmow <villmow@gmail.com>
Date:   Thu Oct 25 15:39:14 2012 +0000

    Cleanup some clang code to use new type functions instead of using cast<>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166684 91177308-0d34-0410-b5e6-96231b3b80d8

commit 37c94bfdc82f0e3526e7f7fc33ee9c817159ed4d
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Oct 25 14:43:34 2012 +0000

    clang/test/CodeGenCXX/debug-info-thunk.cpp: Suppress it for now with XFAIL:*, due to failing on i686-*-*.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166683 91177308-0d34-0410-b5e6-96231b3b80d8

commit a0d5878b7e1c54551c0445354788e4259900c03c
Author: David Tweed <david.tweed@arm.com>
Date:   Thu Oct 25 13:56:30 2012 +0000

    Correct test inovocations to use %clang_cc1 rather than direct invocation (so that it can have additional options set when trying to debug issues causing regressions).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166681 91177308-0d34-0410-b5e6-96231b3b80d8

commit b16abb1bd8ed94c7994836de24915703e6a4e81a
Author: David Tweed <david.tweed@arm.com>
Date:   Thu Oct 25 13:33:01 2012 +0000

    Modify the targets to set appropriate calling convention defaults and C variables when using a gnueabihf or aapcs-vfp target.

    Tested by me and Wei-Ren Chen.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166679 91177308-0d34-0410-b5e6-96231b3b80d8

commit 34b41f80aad3679c545a4ba9bca9c1a318d41844
Author: Alexey Samsonov <samsonov@google.com>
Date:   Thu Oct 25 10:18:50 2012 +0000

    Initialize debug info for special cases of functions that lack declarations and are generated by Clang (global initializers/destructors, thunks) . Fixes PR13942.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166676 91177308-0d34-0410-b5e6-96231b3b80d8

commit d9a2d5bdb747836917c2a5f7e12d075ec6762c77
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Oct 25 09:38:41 2012 +0000

    unittests/ToolingTest.cpp: Suppress newFrontendActionFactory.InjectsEndOfSourceFileCallback on Win32 for now. Investigating.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166674 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9fb6b27e6d584ac339363357335f8d6de3a652ac
Author: Manuel Klimek <klimek@google.com>
Date:   Thu Oct 25 08:49:11 2012 +0000

    Adds the possibility to inject a callback that's called after each translation unit is processed.

    This is important when one wants to deduplicate results during one run over a translation unit by pointer identity of AST nodes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166671 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8e1cee6f23e2552b96b81e5ef419ab3f69c5b5c2
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Oct 25 02:14:12 2012 +0000

    -fcatch-undefined-behavior checking for appropriate vptr value: Clang CodeGen side.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166661 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1cb7142b66ac1844b91511314cce2b309a9a180d
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Thu Oct 25 01:51:45 2012 +0000

    Take into account that there may be a BOM at the beginning of the file,
    when computing the size of the precompiled preamble.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166659 91177308-0d34-0410-b5e6-96231b3b80d8

commit 986819acbc49bd819933993a19e376d32f31a77c
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Oct 25 00:34:38 2012 +0000

    Update warning-flag test

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166656 91177308-0d34-0410-b5e6-96231b3b80d8

commit c6cd9afd15f0f83ee07844e592d2a698416f33ca
Author: Bill Wendling <isanbard@gmail.com>
Date:   Thu Oct 25 00:32:44 2012 +0000

    Revert r166647 to rethink the patch...

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166655 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0ca6e27138e2fe12e03284d4d820182702141a7d
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Oct 25 00:30:23 2012 +0000

    Remove the old predefines-buffer diffing code completely. It's been
    replaced by the more efficient, cleaner preprocessor-option version
    that occurs earlier in PCH validation.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166654 91177308-0d34-0410-b5e6-96231b3b80d8

commit a9b8da43077a78f9ab223caf4889e6c6eba2c4a3
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Oct 25 00:25:27 2012 +0000

    Fix computation of predefines buffer from the preprocessor-option
    checking, and disable the old predefines-buffer-diff'ing code path.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166653 91177308-0d34-0410-b5e6-96231b3b80d8

commit 465e89e094004a2ff53ba930ca0c4b41e51299ba
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Thu Oct 25 00:12:49 2012 +0000

    When we're devirtualizing a method call, make sure the method has the correct IR type.

    Reported in the thread "devirtualisation appears to crash clang on covariant functions on ARM" on cfe-dev.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166651 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4399890d385171eff39927a26823426046d33456
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Oct 25 00:09:28 2012 +0000

    ASTUnit doesn't actually care about the predefines; don't record them.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166650 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8769924c97ecf2af88f7f3aa6754d381b30d1c5f
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Oct 25 00:07:54 2012 +0000

    The the preprocessor option validator to compute suggested
    predefines. We're not quite ready to cut over to these suggested
    predefines yet, however.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166648 91177308-0d34-0410-b5e6-96231b3b80d8

commit a0b9ce03880b7dbab766ec80817eb17a20eba508
Author: Bill Wendling <isanbard@gmail.com>
Date:   Thu Oct 25 00:05:55 2012 +0000

    Add some support for diagnosing possibly mismatched constraint, type size and
    modifiers. (From an idea by Eric...)
    <rdar://problem/12284092>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166647 91177308-0d34-0410-b5e6-96231b3b80d8

commit 53aec2a2770afc242c70fd88975cd0ea389087c0
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Oct 25 00:00:53 2012 +0000

    'constexpr' and 'friend' are both declaration specifiers. Teach the parser this, for better error recovery.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166645 91177308-0d34-0410-b5e6-96231b3b80d8

commit e925322569cb4aad26cc62036a13e2d3daed862d
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Oct 24 23:51:56 2012 +0000

    PR14171: Don't crash if we hit one of the paths where GetFullTypeForDeclarator
    rebuilds a function type, and that function type has parens around its name.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166644 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4c0c7e86645dfa1719d17d70e009ab49347aba62
Author: Douglas Gregor <dgregor@apple.com>
Date:   Wed Oct 24 23:41:50 2012 +0000

    Teach the PCH validator to check the preprocessor options, especially
    the macros that are #define'd or #undef'd on the command line. This
    checking happens much earlier than the current macro-definition
    checking and is far cleaner, because it does a direct comparison
    rather than a diff of the predefines buffers. Moreover, it allows us
    to use the result of this check to skip over PCH files within a
    directory that have non-matching -D's or -U's on the command
    line. Finally, it improves the diagnostics a bit for mismatches,
    fixing <rdar://problem/8612222>.

    The old predefines-buffer diff'ing will go away in a subsequent commit.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166641 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3584972866f39d42aa4029586278022d89451bd9
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Wed Oct 24 22:52:04 2012 +0000

    c-index-test.c: Split a format string. [-Woverlength-strings]

    FIXME: They are still long strings without formatter in printf(3)!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166636 91177308-0d34-0410-b5e6-96231b3b80d8

commit f7427273d0aeed94d025629f98e3099112107628
Author: Chad Rosier <mcrosier@apple.com>
Date:   Wed Oct 24 22:22:12 2012 +0000

    [ms-inline asm] Test case for r166632.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166633 91177308-0d34-0410-b5e6-96231b3b80d8

commit 39e177692ea2096af2ad0dcead79250b50958fa3
Author: David Blaikie <dblaikie@gmail.com>
Date:   Wed Oct 24 21:29:06 2012 +0000

    Fix false positive in -Wunused-variable when a ctor call make involve cleanups.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166625 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9dd686d2be3c3785a089ff12a3d3eb64e9b32dc0
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Wed Oct 24 20:28:18 2012 +0000

    Update regression tests for r166617.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166619 91177308-0d34-0410-b5e6-96231b3b80d8

commit a45451d0959501c7d82582c61571a29cfdacdb0b
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Wed Oct 24 20:21:25 2012 +0000

    Don't print scope qualifiers for references to a type defined locally in a function.  Patch by Grzegorz Jablonski.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166617 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6c8b6498bed5f378018285c42b367dc2e06a98cd
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Wed Oct 24 20:14:09 2012 +0000

    Add an additional test for namespaces and -Wmissing-variable-declarations.  Move C++ test into SemaCXX.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166616 91177308-0d34-0410-b5e6-96231b3b80d8

commit a71a7d8a1ce4474e7bdb680658fb58b6caf391d3
Author: Douglas Gregor <dgregor@apple.com>
Date:   Wed Oct 24 20:05:57 2012 +0000

    (De-)serialize the preprocessor options, including macros defined,
    -include'd files, etc.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166614 91177308-0d34-0410-b5e6-96231b3b80d8

commit 946fa657a70408719d2cafa542e396b002d61316
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Wed Oct 24 18:34:26 2012 +0000

    Add a test showing that nodebug is accepted in methods too. Patch by
    Paul Robinson.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166606 91177308-0d34-0410-b5e6-96231b3b80d8

commit 11db1824673fb9834fc414a46fb8da89221c8be3
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Oct 24 18:29:15 2012 +0000

    [libclang] Add "-index-file-full" option that recursively indexes any imported
    modules/PCH files.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166605 91177308-0d34-0410-b5e6-96231b3b80d8

commit b512a14f5537c11cce818ca408342ca2b5889b8d
Author: Douglas Gregor <dgregor@apple.com>
Date:   Wed Oct 24 17:49:01 2012 +0000

    Explicitly specify C++98 when building the C++ precompiled header for this test, so that the test will work on Windows.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166601 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1bed9b7678a9a7d91832926a69411e7fc5be2825
Author: Chad Rosier <mcrosier@apple.com>
Date:   Wed Oct 24 17:48:01 2012 +0000

    [ms-inline asm] Add test cases for r166451.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166600 91177308-0d34-0410-b5e6-96231b3b80d8

commit 36a16498ff911a218f26c7955376bbe99ddb16df
Author: Douglas Gregor <dgregor@apple.com>
Date:   Wed Oct 24 17:46:57 2012 +0000

    Teach the preprocessor to hold onto the preprocessor options.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166599 91177308-0d34-0410-b5e6-96231b3b80d8

commit 42242552fe9769fba3c1a1f82e181688675908f0
Author: Chad Rosier <mcrosier@apple.com>
Date:   Wed Oct 24 17:23:06 2012 +0000

    [ms-inline asm] Add test cases for r166592. The test cases only works if the
    source operand is a register.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166594 91177308-0d34-0410-b5e6-96231b3b80d8

commit 14e71f04136de056c08ffb9ccd44b4ca391cc8a5
Author: Douglas Gregor <dgregor@apple.com>
Date:   Wed Oct 24 17:01:35 2012 +0000

    Move PreprocessorOptions into the Lex library, and make it intrusively
    reference-counted.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166587 91177308-0d34-0410-b5e6-96231b3b80d8

commit bbf38319edd4eddc55ec273934e990d7e84991de
Author: Douglas Gregor <dgregor@apple.com>
Date:   Wed Oct 24 16:50:34 2012 +0000

    (De-)serialize header search options.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166586 91177308-0d34-0410-b5e6-96231b3b80d8

commit b0985c86f7f75e780bfeb366afdbee7676c28948
Author: Douglas Gregor <dgregor@apple.com>
Date:   Wed Oct 24 16:24:38 2012 +0000

    Update unit tests for HeaderSearch change

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166584 91177308-0d34-0410-b5e6-96231b3b80d8

commit c042edd54face617a3b9d0b4b9d5a3ff229d0f48
Author: Douglas Gregor <dgregor@apple.com>
Date:   Wed Oct 24 16:19:39 2012 +0000

    Move HeaderSearchOptions into the Lex library, make it intrusively
    reference-counted, and hold a reference to it in HeaderSearch.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166583 91177308-0d34-0410-b5e6-96231b3b80d8

commit 04d25fcb26610601466fb52a75ce9b4e9d18eed5
Author: Douglas Gregor <dgregor@apple.com>
Date:   Wed Oct 24 15:53:39 2012 +0000

    Undef SEMANTIC_VALUE_DIAGOPT appropriately

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166579 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1b2c3c0884e917ae5d59edde7d93b2af33c6a1b6
Author: Douglas Gregor <dgregor@apple.com>
Date:   Wed Oct 24 15:49:58 2012 +0000

    (De-)serialize the file system options.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166577 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5f3d8224af99ad0d9107601c0c31b74693371cc1
Author: Douglas Gregor <dgregor@apple.com>
Date:   Wed Oct 24 15:17:15 2012 +0000

    Serialize DiagnosticOptions to the AST file.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166572 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6e347bccd1f132a41f9b72adbd25dc6be1dabe90
Author: Mahesha S <mahesha.llvm@gmail.com>
Date:   Wed Oct 24 15:12:40 2012 +0000

    Removed an extra blank line.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166571 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3e2aa99e992b89bd421ac2a6bf79307114d257fc
Author: Manuel Klimek <klimek@google.com>
Date:   Wed Oct 24 14:47:44 2012 +0000

    Adds the possibility to run ASTMatchFinder over arbitrary AST nodes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166567 91177308-0d34-0410-b5e6-96231b3b80d8

commit 403f2c68046eba1a9d5e3f7b52b8481573e56d40
Author: Douglas Gregor <dgregor@apple.com>
Date:   Wed Oct 24 14:13:21 2012 +0000

    Add a simple test involving decltype on Objective-C properties and ivars

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166562 91177308-0d34-0410-b5e6-96231b3b80d8

commit aafd111afa6acd50fe4bec6c41add02ecf556535
Author: Douglas Gregor <dgregor@apple.com>
Date:   Wed Oct 24 14:11:55 2012 +0000

    Remove the HiddenWeakTemplateVTables CodeGen option. It's currently unused.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166561 91177308-0d34-0410-b5e6-96231b3b80d8

commit 19baf068e8d113a242694003ba04508282804e8e
Author: Evgeniy Stepanov <eugeni.stepanov@gmail.com>
Date:   Wed Oct 24 14:05:29 2012 +0000

    Pass LLVM_ANDROID_TOOLCHAIN_DIR if set.

    This lets one build ASan runtime for ARM/Android by running
    make -C tools/clang/runtime/ \
      LLVM_ANDROID_TOOLCHAIN_DIR=/path/to/ndk/toolchain
    in an existing build tree.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166560 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5c51fc4ad9f765ce3c8d7c1c3b27a558920f3ab0
Author: Alexey Samsonov <samsonov@google.com>
Date:   Wed Oct 24 13:34:53 2012 +0000

    Update docs about TSan availability in CMake build

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166558 91177308-0d34-0410-b5e6-96231b3b80d8

commit adea51733c1825b183d0754596f943e854377afd
Author: Alexey Samsonov <samsonov@google.com>
Date:   Wed Oct 24 13:21:51 2012 +0000

    Fix some wordings in AddressSanitizer docs.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166557 91177308-0d34-0410-b5e6-96231b3b80d8

commit 923099773fe4bbc52a25a5d3d92236b5e37cef93
Author: Ulrich Weigand <ulrich.weigand@de.ibm.com>
Date:   Wed Oct 24 12:22:56 2012 +0000

    A number of test cases assume that an "int" parameter or return value
    will be represented in the IR as a plain "i32" type.  This causes the
    tests to spuriously fail on platforms where int is not a 32-bit type,
    or where the ABI requires attributes like "signext" or "zeroext" to
    be used.

    This patch adds -triple or -target parameters to force those tests
    to use the i386-unknown-unknown target.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166551 91177308-0d34-0410-b5e6-96231b3b80d8

commit 04631c303ab98c8a21ff3e940fe1987a5a79858c
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Wed Oct 24 03:59:09 2012 +0000

    Revert r166541, "clang/test: Add appropriate requirements as REQUIRES, corresponding to r166532."

    According to r166543, it is not needed for now.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166544 91177308-0d34-0410-b5e6-96231b3b80d8

commit 129369dae809264afb2b81174593c155e369930b
Author: Nadav Rotem <nrotem@apple.com>
Date:   Wed Oct 24 03:52:31 2012 +0000

    Clang now attempts to create a TargetMachine whenever a triple is given.
    Many of our tests specify triples that are not built into clang.
    In this commit we allow clang to fail loading the triple if we are only
    using clang to emit llvm ir.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166543 91177308-0d34-0410-b5e6-96231b3b80d8

commit 045d707f2d415c08f4c70dd8094bc8d9f78af158
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Wed Oct 24 02:57:57 2012 +0000

    clang/test: Add appropriate requirements as REQUIRES, corresponding to r166532.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166541 91177308-0d34-0410-b5e6-96231b3b80d8

commit c89fd3af0ee909eb924653058e8598e8b47bc279
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Wed Oct 24 02:37:03 2012 +0000

    Add a test for -Warc-abi as requested by Fariborz.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166540 91177308-0d34-0410-b5e6-96231b3b80d8

commit e4aeeaae8ee93ad5e07c646046c650d594f2775e
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Wed Oct 24 01:59:00 2012 +0000

    Add padding inreg registers to cause llvm to skip ecx when needed with
    the x86_fastcallcc calling convention.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166538 91177308-0d34-0410-b5e6-96231b3b80d8

commit b6932692234eba2472ef85a38434496e9342fd38
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Wed Oct 24 01:58:58 2012 +0000

    Add inreg markers with the x86_fastcallcc calling convention.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166537 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6d919fb67bf6aa3db09608fb2948b558977c6929
Author: Matt Beaumont-Gay <matthewbg@google.com>
Date:   Wed Oct 24 01:14:28 2012 +0000

    Address feedback from Eli Friedman on r166522.

    In particular, we do want to warn on some unused cast subexpressions within
    macros.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166534 91177308-0d34-0410-b5e6-96231b3b80d8

commit fa60be028105ded3c05d9fcc6cb0974500a5a011
Author: Nadav Rotem <nrotem@apple.com>
Date:   Wed Oct 24 00:53:38 2012 +0000

    Change EmitAssemblyHelper to create the target machine early
    and use it to initialize the TargetTransformInfo analysis pass.
    We need the TTI information for the loop vectorizer.

    rdar://12464901

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166532 91177308-0d34-0410-b5e6-96231b3b80d8

commit 603513d2294c437b37bcf47f326b686e31bd9e84
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Tue Oct 23 23:59:08 2012 +0000

    [analyzer] Handle 'SomeVar.SomeEnumConstant', which is legal in C++.

    This caused assertion failures analyzing LLVM.

    <rdar://problem/12560282>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166529 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4d9e497a2b1eab3b1214848216050c64fc3acfd6
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Tue Oct 23 23:59:05 2012 +0000

    [analyzer] Replace -analyzer-no-eagerly-trim-egraph with graph-trim-interval.

    After every 1000 CFGElements processed, the ExplodedGraph trims out nodes
    that satisfy a number of criteria for being "boring" (single predecessor,
    single successor, and more). Rather than controlling this with a cc1 option,
    which can only disable this behavior, we now have an analyzer-config option,
    'graph-trim-interval', which can change this interval from 1000 to something
    else. Setting the value to 0 disables reclamation.

    The next commit relies on this behavior to actually test anything.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166528 91177308-0d34-0410-b5e6-96231b3b80d8

commit e72faf6148aadae316ce1fa2deb8289c10ee1ab9
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Oct 23 23:42:25 2012 +0000

    [ms-inline asm] Test case for r166526.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166527 91177308-0d34-0410-b5e6-96231b3b80d8

commit 82573e357fa544f5f95b63ef3519a548b1f7e478
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Oct 23 23:32:21 2012 +0000

    [ms-inline asm] Update the triple to test r166523.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166524 91177308-0d34-0410-b5e6-96231b3b80d8

commit c7db84d0146a6f22b19949fb0128e2148aa92467
Author: Matt Beaumont-Gay <matthewbg@google.com>
Date:   Tue Oct 23 23:19:32 2012 +0000

    Don't emit -Wunused-value warnings from macro expansions.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166522 91177308-0d34-0410-b5e6-96231b3b80d8

commit f27762b1beced898e47aeae1bcb557addd8a148d
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Oct 23 23:13:50 2012 +0000

    Tweak include order

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166521 91177308-0d34-0410-b5e6-96231b3b80d8

commit dc7b641574a733624489bd87fc7061771edf2113
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Oct 23 23:11:23 2012 +0000

    Use a .def file for most of the diagnostic options.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166520 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6a6bb2810cc8478730002c950f9261f6cb5f6143
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Oct 23 23:06:22 2012 +0000

    Objective-C: check that when a category method is being implemented,
    method type in cateogry matches the implementation.
    // rdar://12519216

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166518 91177308-0d34-0410-b5e6-96231b3b80d8

commit 99eb4a7920667d23a89df8fcc6429d12b36e4d57
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Oct 23 22:55:10 2012 +0000

    Buildbot debugging is fun

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166516 91177308-0d34-0410-b5e6-96231b3b80d8

commit 16a4abf5d98e62ef5cc1af4685dbffa593042709
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Oct 23 22:43:37 2012 +0000

    One last unit-test fix

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166513 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3aeb34f5639ca03ba952bef7239028eaaec33281
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Oct 23 22:38:58 2012 +0000

    More unit-test fixes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166511 91177308-0d34-0410-b5e6-96231b3b80d8

commit 35d516cf1aa88a1af7b25c869984758750af3c1b
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Oct 23 22:36:49 2012 +0000

    Update clang-interpreter example

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166510 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8e023611637905629b928915cbda22a90b2432c3
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Oct 23 22:31:51 2012 +0000

    Fixup unit tests for DiagnosticOptions change

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166509 91177308-0d34-0410-b5e6-96231b3b80d8

commit 02c23ebf41ae2f70da0ba7337e05c51fbfe35f7f
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Oct 23 22:26:28 2012 +0000

    Make DiagnosticOptions intrusively reference-counted, and make sure
    the various stakeholders bump up the reference count. In particular,
    the diagnostics engine now keeps the DiagnosticOptions object alive.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166508 91177308-0d34-0410-b5e6-96231b3b80d8

commit 340d0d30018dd3ed77fb17f33e785acd745bf97d
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Tue Oct 23 21:54:03 2012 +0000

    CMake: Fix public header search for generating Xcode/MSVC projects.

    Previously, we only had support for one level of library under lib/,
    with the existence of the two-level lib/StaticAnalyzer/* hardcoded in
    the top-level CMakeLists.txt. This became a problem with split of
    libRewrite into several libraries -- with the same sub-names as the
    libraries in lib/StaticAnalyzer/.

    Now, we match up anything under lib/ to the corresponding directory
    in include/clang/.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166505 91177308-0d34-0410-b5e6-96231b3b80d8

commit a7a38cb64e0781b8489332cedcfae9c8f95ba22e
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Tue Oct 23 20:26:57 2012 +0000

    Fix pretty-printing pseudo-destructor calls.  Patch by Grzegorz Jablonski.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166500 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2e2d03c70274bba1fa762e123842994238f68f41
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Tue Oct 23 20:23:23 2012 +0000

    Delete junk that snuck into r166498.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166499 91177308-0d34-0410-b5e6-96231b3b80d8

commit e4851f26eb7be1f71f919bb5890da7e3583f727d
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Tue Oct 23 20:19:32 2012 +0000

    Add a new warning -Wmissing-variable-declarations, to warn about variables
    defined without a previous declaration.  This is similar to
    -Wmissing-prototypes, but for variables instead of functions.

    Patch by Ed Schouten.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166498 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4cdad3151bfb2075c6bdbfe89fbb08f31a90a45b
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Oct 23 20:05:01 2012 +0000

    Switch CodeGenOptions over to a .def file, like we do with LangOptions.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166497 91177308-0d34-0410-b5e6-96231b3b80d8

commit 713c287caf70922f93cfd9292540bad274c4a82f
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Oct 23 19:56:01 2012 +0000

    When rebuilding a DependentScopeDeclRefExpr, perform a lookup into the scope
    even if it's dependent, in case it now names a member of the current instantiation.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166496 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4d5dd7c954842bc5043e45734af17db197654ca0
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Oct 23 17:44:40 2012 +0000

    [ms-inline asm] Update for r166433.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166489 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3667bbe0f235a8b3fc2496acc8f3136dfb559cc9
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Oct 23 17:07:31 2012 +0000

    Handle -pthread, -pg and -shared correctly on bitrig.
    Patch by David Hill.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166483 91177308-0d34-0410-b5e6-96231b3b80d8

commit ab4826835fd10718c9947a4da92f5d9ee36d7dad
Author: Sean Silva <silvas@purdue.edu>
Date:   Tue Oct 23 16:35:44 2012 +0000

    Fix some mdoc nits

    Patch by Eitan Adler!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166482 91177308-0d34-0410-b5e6-96231b3b80d8

commit c711af2ddbbb1d46223cc9379d32a203fb5bc7f4
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Oct 23 15:46:39 2012 +0000

    Make hasDeclaration() matcher work inside the memberExpr() matcher.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166479 91177308-0d34-0410-b5e6-96231b3b80d8

commit ac2153e5187fa46b37bc2db582926e05fdb28262
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Oct 23 10:43:00 2012 +0000

    clang/test/PCH/pch-dir.c: Update a comment for msvc. msvc(*-win32) implies -std=c++11.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166478 91177308-0d34-0410-b5e6-96231b3b80d8

commit 70b9db9879c1cb8b8ca7d6c9809e35361cab83dc
Author: Manuel Klimek <klimek@google.com>
Date:   Tue Oct 23 10:40:50 2012 +0000

    Implements the thisExpr matcher.
    Patch by Gabor Horvath.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166477 91177308-0d34-0410-b5e6-96231b3b80d8

commit 129dd54349510973c853579b34cf31fa8faad5f8
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Oct 23 07:47:51 2012 +0000

    clang/test/PCH/pch-dir.c: Mark it as XFAIL:msvc. It doesn't fail (virtually xpass) on msvc.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166473 91177308-0d34-0410-b5e6-96231b3b80d8

commit 674b227bc50852b96567428941bc711949529f92
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Oct 23 07:01:50 2012 +0000

    clang/test/PCH/pch-dir.c: Relax expressions of path separators for Win32.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166471 91177308-0d34-0410-b5e6-96231b3b80d8

commit 27ffa6caf965ef20fdef5ae23b81cdc3d05e7afb
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Oct 23 06:18:24 2012 +0000

    If the precompiled header named by "-include" is actually a directory,
    check each of the files within that directory to determine if any of
    them is an AST file that matches the language and target options. If
    so, the first matching AST file is loaded. This fixes a longstanding
    discrepency with GCC's precompiled header implementation.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166469 91177308-0d34-0410-b5e6-96231b3b80d8

commit 84c3b9745f813a784b5d8ce77f2785750523d9eb
Author: Matt Beaumont-Gay <matthewbg@google.com>
Date:   Tue Oct 23 06:15:26 2012 +0000

    Fix -Wunused-value to not warn on expressions that have unresolved lookups due
    to dependent arguments.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166468 91177308-0d34-0410-b5e6-96231b3b80d8

commit 28f3a0e49132038be9c4c683338859ed03e94263
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Oct 23 04:09:38 2012 +0000

    [libclang] Add an environment variable to disable thread background priotity, for testing

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166466 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5f1385b81b0a6c6878ff1e35118a5b0bf52ca930
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Tue Oct 23 02:43:30 2012 +0000

    [ms-inline-asm] Add handling for errors coming out of the backend.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166463 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5f14fcbd45870585a136ae735d29d0e085c0d7f8
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Oct 23 02:04:01 2012 +0000

    Don't try to use inreg with 0 sized structs. Thanks to Eli for reporting the
    regression.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166461 91177308-0d34-0410-b5e6-96231b3b80d8

commit bb531706602048716a6c36f1ea59f277be9f6753
Author: Michael J. Spencer <bigcheesegs@gmail.com>
Date:   Tue Oct 23 01:25:21 2012 +0000

    [Options] Fix two options I mistransformed.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166458 91177308-0d34-0410-b5e6-96231b3b80d8

commit b5b37d194dddb960f43f763b3f9c3e17e7be3c2d
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Oct 23 00:32:41 2012 +0000

    Ugly ugly hack for libstdc++-4.6 and libstdc++-4.7 compatibility. These
    libraries have an incorrect definition of std::common_type (inherited from a
    bug in the standard -- see LWG issue 2141), whereby they produce reference
    types when they should not.

    If we instantiate a typedef named std::common_type<...>::type, which is defined
    in a system header as decltype(... ? ... : ...), and the decltype produces a
    reference type, convert it to the non-reference type. (This doesn't affect any
    LWG2141-conforming implementation of common_type, such as libc++'s, because the
    default implementation of common_type<...>::type isn't supposed to produce a
    reference type.)

    This is horrible. I'm really sorry. :( Better ideas appreciated!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166455 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4ec429d1be4ede3d02712714f20470b2c87f748c
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Oct 22 23:59:45 2012 +0000

    Handle implicitly-included PCH files the same way as
    implicitly-included PTH files during initialization, delaying the
    mapping down to the "original source file" until after later in the
    initialization process.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166452 91177308-0d34-0410-b5e6-96231b3b80d8

commit 38295beb73db5f90bfcf31625fb81dbc3b96290a
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Oct 22 23:51:00 2012 +0000

    Allow clients of the AST reader to specify what kinds of AST load
    failures they know how to tolerate, e.g., out-of-date input files or
    configuration/version mismatches. Suppress the corresponding
    diagnostics if the client can handle it.

    No clients actually use this functionality, yet.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166449 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8b53d141ee5a91da92c4196ed7ad4142e1009d6f
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Oct 22 22:53:10 2012 +0000

    Collapse ASTReader::ReadSLocEntryRecord() into its only caller,
    ReadSLocEntry(). No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166447 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4825fd7fbb3fe87cdf8da9bccc1361fac45bdf2d
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Oct 22 22:50:17 2012 +0000

    Distinguish the various kinds of AST file loading failures:
    file corruption, compiler version mismatch, target/language
    configuration mismatch, out-of-date AST file. No functionality change
    yet.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166446 91177308-0d34-0410-b5e6-96231b3b80d8

commit c635710bcbb9598acd5a14647ba7ca28bee89a68
Author: Michael J. Spencer <bigcheesegs@gmail.com>
Date:   Mon Oct 22 22:13:48 2012 +0000

    [Options] Add prefixes to options.

    Each option has a set of prefixes. When matching an argument such as
    -funroll-loops. First the leading - is removed as it is a prefix. Then
    a lower_bound search for "funroll-loops" is done against the option table by
    option name. From there each option prefix + option name combination is tested
    against the argument.

    This allows us to support Microsoft style options where both / and - are valid
    prefixes. It also simplifies the cases we already have where options come in
    both - and -- forms. Almost every option for gnu-ld happens to have this form.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166444 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6b8194e4d7ca980087a3a5e1addb74090be990ff
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Mon Oct 22 21:50:39 2012 +0000

    ASTReader.cpp: Fix a warning. [-Wunused-variable]

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166442 91177308-0d34-0410-b5e6-96231b3b80d8

commit 293e2eb24db0a36d7f071313b8cfaeb40f4b671f
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Mon Oct 22 20:50:45 2012 +0000

    Testcase change for r166440.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166441 91177308-0d34-0410-b5e6-96231b3b80d8

commit 97bc3d54a95153945d14b1ee812837160d45ed90
Author: Richard Trieu <rtrieu@google.com>
Date:   Mon Oct 22 20:28:48 2012 +0000

    Fix for PR13334.  This prevents crashes that result from badly formed
    expressions involving __has_include

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166438 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5a12aca46db5477f7e35a70dbec8d3afe5549ac0
Author: Chad Rosier <mcrosier@apple.com>
Date:   Mon Oct 22 19:43:17 2012 +0000

    [ms-inline asm] Test case for r166433.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166434 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4d3ee9bc48dc1e6aea0b0d451a4b98e20b04ce00
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Mon Oct 22 18:56:43 2012 +0000

    Fix pre-commit refacto failure.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166431 91177308-0d34-0410-b5e6-96231b3b80d8

commit 849289e531a97895784ab86b550e43d190618dff
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Mon Oct 22 18:51:13 2012 +0000

    driver/Darwin: Follow up to last patch, M-class CPUs are AAPCS but not EABI.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166430 91177308-0d34-0410-b5e6-96231b3b80d8

commit a930dc9b46572cb6e5bb54f3d724e8fe23a6b66e
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Oct 22 18:42:04 2012 +0000

    Eliminate the redundancy between source-file information in the source
    manager block and input-file information in the control block. The
    source manager entries now point back into the control block. Input
    files are now lazily deserialized (if validation is disabled). Reduces
    Cocoa's PCH by the ~70k I added when I introduced the redundancy in
    r166251.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166429 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2e4e110a727a0d379a8fbd0cc2afba1ff3801091
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Mon Oct 22 18:30:51 2012 +0000

    driver/Darwin: Default to AAPCS for M-class CPUs.

     - This is an assumption that is currently hardwired into the backend, we need
       to do this in order for the frontend and backend to agree.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166428 91177308-0d34-0410-b5e6-96231b3b80d8

commit c99a3ad8c2bf29da45a0c64b88d58bfbd2f78ef2
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Oct 22 16:26:51 2012 +0000

    Implement hasParent()-matcher.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166421 91177308-0d34-0410-b5e6-96231b3b80d8

commit 03e6fda61f48a6f11fb3c9459d5ac3d5b1db2809
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sun Oct 21 23:00:34 2012 +0000

    PR14141 (part of DR1351): An implicitly-deduced "any" exception specification
    produces an exception of 'noexcept(false)' and is thus compatible with an
    explicit exception specification of 'noexcept(false)'.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166404 91177308-0d34-0410-b5e6-96231b3b80d8

commit 87234c83831dfb18247135add2bf14198604b3b4
Author: Lang Hames <lhames@gmail.com>
Date:   Sun Oct 21 19:56:13 2012 +0000

    Fix typo, make test case slightly more reabable. Thanks to Dmitri Gribenko for
    the suggestions.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166400 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6592c770777069678026f535d723779b0150205e
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sun Oct 21 15:21:56 2012 +0000

    Silence warning about && in ||.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166391 91177308-0d34-0410-b5e6-96231b3b80d8

commit f4bd32957c686891cbdb7e2124630f6686343a2a
Author: Simon Atanasyan <satanasyan@mips.com>
Date:   Sun Oct 21 11:44:57 2012 +0000

    Add support of MIPS n32 ABI to the Clang driver. The fix builds correct library/object files paths and passes appropriate command line options to the linker if user provides -mabi=n32 option.

    The patch reviewed by Rafael Espindola.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166389 91177308-0d34-0410-b5e6-96231b3b80d8

commit efeeccfb5efa94b6b4198298a80ad9a699bebcce
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sun Oct 21 03:28:35 2012 +0000

    Unrevert r166268, reverted in r166272, with a fix for the issue which Nick
    found: if an overloaded operator& is present before a template definition,
    the expression &T::foo is represented as a CXXOperatorCallExpr, not as a
    UnaryOperator, so we didn't notice that it's permitted to reference a non-static
    data member of an unrelated class.

    While investigating this, I discovered another problem in this area: we are
    treating template default arguments as unevaluated contexts during substitution,
    resulting in performing incorrect checks for uses of non-static data members in
    C++11. That is not fixed by this patch (I'll look into this soon; it's related
    to the failure to correctly instantiate constexpr function templates), but was
    resulting in this bug not firing in C++11 mode (except with -Wc++98-compat).

    Original message:

    PR14124: When performing template instantiation of a qualified-id outside of a
    class, diagnose if the qualified-id instantiates to a non-static class member.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166385 91177308-0d34-0410-b5e6-96231b3b80d8

commit 860022ccf71b3d63acd29912af970dad655630f7
Author: Lang Hames <lhames@gmail.com>
Date:   Sun Oct 21 01:10:01 2012 +0000

    When used in a compound expression FP_CONTRACT should proceed all explicit
    declarations and statements. Emit an error if the FP_CONTRACT is used
    later in a compound statement.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166383 91177308-0d34-0410-b5e6-96231b3b80d8

commit c6f84cf73e0bc04faacd1a9b7845e014e7fac21e
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sat Oct 20 13:02:06 2012 +0000

    Move private classes into anonymous namespaces.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166377 91177308-0d34-0410-b5e6-96231b3b80d8

commit aa9a8ce5d31975900c7243b1508f5111baddacbe
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sat Oct 20 08:41:10 2012 +0000

    DR1473: Do not require a space between operator"" and the ud-suffix in a
    literal-operator-id.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166373 91177308-0d34-0410-b5e6-96231b3b80d8

commit 444d384a969ce05ae534bf8be3174e308dc8c58b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sat Oct 20 08:26:51 2012 +0000

    Rework implementation of DR1492: Apply the resolution to operator delete too,
    since it also has an implicit exception specification. Downgrade the error to
    an extwarn, since at least for operator delete, system headers like to declare
    it as 'noexcept' whereas the implicit definition does not have an explicit
    exception specification. Move the exception specification for user-declared
    'operator delete' functions from the type-as-written into the type, to reflect
    reality and to allow us to detect whether there was an implicit exception spec
    or not.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166372 91177308-0d34-0410-b5e6-96231b3b80d8

commit ed1d5d8ee17f639563dc0397bd9af1b482f17295
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Sat Oct 20 06:18:14 2012 +0000

    Accept -Wno-arc-abi without warning for a while.

    Xcode 4.5 passes -Wno-arc-abi to clang, which makes a clang newer than
    r163917 warn that it doesn't understand -Wno-arc-abi. I asked if adding
    this is ok at
    http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20121015/066433.html
    and nobody objected.

    Adding this makes life a bit easier for the chromium project. If you think
    this is a burden on for clang, shout, and I'll revert this.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166370 91177308-0d34-0410-b5e6-96231b3b80d8

commit b687f3ba4cdc3fd6e4fa9a89addc1efa61761eeb
Author: Logan Chien <tzuhsiang.chien@gmail.com>
Date:   Sat Oct 20 06:11:33 2012 +0000

    Fix __builtin_va_arg assertion failure in ARM AAPCS.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166369 91177308-0d34-0410-b5e6-96231b3b80d8

commit b59b580a57a36df9d146473098d14c64508ff319
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Oct 20 02:32:51 2012 +0000

    [analyzer] Assume 'new' never returns NULL if it could throw an exception.

    This is actually required by the C++ standard in
    [basic.stc.dynamic.allocation]p3:

      If an allocation function declared with a non-throwing
      exception-specification fails to allocate storage, it shall return a
      null pointer. Any other allocation function that fails to allocate
      storage shall indicate failure only by throwing an exception of a type
      that would match a handler of type std::bad_alloc.

    We don't bother checking for the specific exception type, but just go off
    the operator new prototype. This should help with a certain class of lazy
    initalization false positives.

    <rdar://problem/12115221>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166363 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5016a70c183a50845a0421802d161093dd0643f6
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sat Oct 20 01:38:33 2012 +0000

    DR1472: A reference isn't odr-used if it has preceding initialization,
    initialized by a reference constant expression.

    Our odr-use modeling still needs work here: we don't yet implement the 'set of
    potential results of an expression' DR.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166361 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0872a06d1ee1a3b62ef833f955051418d18006a1
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Sat Oct 20 00:51:32 2012 +0000

    When associating file ranges of macro arguments with their
    macro expansion ranges, make sure to check all the FileID
    entries that are contained in the spelling range of the
    expansion for the macro argument.

    Fixes rdar://12537982

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166359 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9fe48561a199ef6e684e0ea9656b425baeca92a8
Author: Chad Rosier <mcrosier@apple.com>
Date:   Sat Oct 20 00:47:32 2012 +0000

    [ms-inline asm] Update test case for r166357.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166358 91177308-0d34-0410-b5e6-96231b3b80d8

commit b0850b3f417feb9ab5c7bcfd4e531fd6eaa2928c
Author: Chad Rosier <mcrosier@apple.com>
Date:   Fri Oct 19 23:16:17 2012 +0000

    [ms-inline asm] Test case for r166349 and r166352.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166353 91177308-0d34-0410-b5e6-96231b3b80d8

commit 91e06dab9335ed6b4474a74353549c708cf3d936
Author: Michael J. Spencer <bigcheesegs@gmail.com>
Date:   Fri Oct 19 22:37:06 2012 +0000

    [Options] Make Option non clang specific.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166348 91177308-0d34-0410-b5e6-96231b3b80d8

commit e4151c5d1b48efac740b89cc16e5054850cbdecb
Author: Michael J. Spencer <bigcheesegs@gmail.com>
Date:   Fri Oct 19 22:36:40 2012 +0000

    [Options] make Option a value type.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166347 91177308-0d34-0410-b5e6-96231b3b80d8

commit e62cec287c7369f50b327ba58ebb2e5a153b6b73
Author: Shuxin Yang <shuxin.llvm@gmail.com>
Date:   Fri Oct 19 22:21:42 2012 +0000

    remove noreturn attribute from __builtin_debugtrap

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166345 91177308-0d34-0410-b5e6-96231b3b80d8

commit 362b18c73c0096dd1d54778c049fbb2ec294399d
Author: Chad Rosier <mcrosier@apple.com>
Date:   Fri Oct 19 20:57:37 2012 +0000

    [ms-inline asm] Update testcase for r166316.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166317 91177308-0d34-0410-b5e6-96231b3b80d8

commit 25bc47ee5b7a5db8821c9ef5fddd2837c1301953
Author: Chad Rosier <mcrosier@apple.com>
Date:   Fri Oct 19 20:38:09 2012 +0000

    [ms-inline asm] Revert accidental commit. Sorry for the churn.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166312 91177308-0d34-0410-b5e6-96231b3b80d8

commit e1aebe1e3aabe955e3805e994647e5e31dcc4d8c
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Fri Oct 19 20:36:44 2012 +0000

    Pretty-print a ParenListExpr in a variable initializer correctly.  Patch by Grzegorz Jablonski.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166311 91177308-0d34-0410-b5e6-96231b3b80d8

commit 793c405c28581f24543f021bd833b8c47af28ed3
Author: Chad Rosier <mcrosier@apple.com>
Date:   Fri Oct 19 20:36:37 2012 +0000

    [ms-inline asm] Set the SemaCallback in the TargetAsmParser.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166310 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1f432eec1a4151c7a9bcb5e98ae32f36486ef4af
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Fri Oct 19 20:28:44 2012 +0000

    tests: Fix two tests to just use -triple instead of XFAIL+XTARGET.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166304 91177308-0d34-0410-b5e6-96231b3b80d8

commit ca082d0f89b22ff3df169c67163362b75dbe9983
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Fri Oct 19 20:11:46 2012 +0000

    tests: Stop mangling '-vg' into the triple, we don't use this currently.
     - Also, lit is going to get a valgrind feature, instead.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166301 91177308-0d34-0410-b5e6-96231b3b80d8

commit cbbe2c0fc0d28184d996ce29ae9f0fb36b4cf72f
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Fri Oct 19 20:10:10 2012 +0000

    IRgen: Initialize TargetLoweringInfo with a triple.

     - We create two TargetLoweringInfo instances for different pass managers, and
       they weren't consistent (the one for codegen didn't have the right info). I'm
       not sure this mattered anywhere in practice.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166299 91177308-0d34-0410-b5e6-96231b3b80d8

commit ef933cab028c13bda49768f570cf2330d9a57ca4
Author: Shuxin Yang <shuxin.llvm@gmail.com>
Date:   Fri Oct 19 20:09:33 2012 +0000

    add __builtin_debugtrap

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166298 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5f531a489774ce46370fcb005a51d46d511f7914
Author: David Blaikie <dblaikie@gmail.com>
Date:   Fri Oct 19 18:26:06 2012 +0000

    Clarify wording of -Wshift-op-parentheses.

    Suggestion from Matt Beaumont-Gay reviewing r165283.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166296 91177308-0d34-0410-b5e6-96231b3b80d8

commit cf81cd270e31f97bb88b51e24708e75cc604980e
Author: Chad Rosier <mcrosier@apple.com>
Date:   Fri Oct 19 17:58:45 2012 +0000

    [ms-inline asm] Set the MCTargetAsmParser as paring MS-style inline asm.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166293 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8cfabf2cb278efc1f694f1d9aab76888a60ee3ac
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Fri Oct 19 16:51:38 2012 +0000

    Remove const_casts by propagating constness down to called functions.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166287 91177308-0d34-0410-b5e6-96231b3b80d8

commit 535a5d001b2035a7aa68ee368fbe44ec90e33740
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Oct 19 16:05:26 2012 +0000

    Allow objc_requires_super to be used to check class methods as well.

    Also, unify ObjCShouldCallSuperDealloc and ObjCShouldCallSuperFinalize.
    The two have identical behavior and will never be active at the same time.

    There's one last simplification now, which is that if we see a call to
    [super foo] and we are currently in a method named 'foo', we will
    /unconditionally/ clear the ObjCShouldCallSuper flag, rather than check
    first to see if we're in a method where calling super is required. There's
    no reason to pay the extra lookup price here.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166285 91177308-0d34-0410-b5e6-96231b3b80d8

commit 266dba3661928d26f043560b169bea87578aa917
Author: Andy Gibbs <andyg1001@hotmail.co.uk>
Date:   Fri Oct 19 12:49:32 2012 +0000

    Change VerifyDiagnosticConsumer so that it *must* contain at least one "expected-*" directive.  As a result, for test-cases that are not expected to generate any diagnostics, an additional directive "expected-no-diagnostics" has been implemented which can then be included in such test-cases.  This new directive may not be used in conjunction with any other "expected-*" directive.

    This change was initially proposed as a solution to the problem highlighted by check-in r164677, i.e. that -verify will not cause a test-case failure where the compile command does not actually reference the file.

    Patch reviewed by David Blaikie.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166281 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8e8fb3be5bd78f0564444eca02b404566a5f3b5d
Author: Andy Gibbs <andyg1001@hotmail.co.uk>
Date:   Fri Oct 19 12:44:48 2012 +0000

    Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166280 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4a529d26d6ccfc9b3d11031f1256f4f87055c562
Author: Andy Gibbs <andyg1001@hotmail.co.uk>
Date:   Fri Oct 19 12:36:49 2012 +0000

    Fix directive parsing in VerifyDiagnosticConsumer so that it ensures that "expected" is at the start of the word and will no longer accept typos such as "junkexpected-*" as a valid "expected-*" directive.  A very few test-cases had to be amended to adhere to the new rule.

    Patch reviewed by David Blaikie.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166279 91177308-0d34-0410-b5e6-96231b3b80d8

commit 79cf161f178e36ce6d8aeea2a247e367b8d0fc34
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Fri Oct 19 08:08:02 2012 +0000

    Revert r166268, this fix for a crash-on-invalid introduced a rejects-valid.
    Richard has an unreduced testcase to work with.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166272 91177308-0d34-0410-b5e6-96231b3b80d8

commit 460e7a25da073a1cc2bec995bde66877f30ca4f5
Author: Kostya Serebryany <kcc@google.com>
Date:   Fri Oct 19 07:00:46 2012 +0000

    [asan] update asan docs to explain more about linking and to mention full support for i386 Linux

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166271 91177308-0d34-0410-b5e6-96231b3b80d8

commit 820e9a7e29a01bd4a91537a6c6d4524834da622b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Oct 19 06:37:48 2012 +0000

    DR1511: A const volatile global does not implicitly get internal linkage like a
    const non-volatile global does.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166269 91177308-0d34-0410-b5e6-96231b3b80d8

commit 80ddc31c5379df78a007eaf08d531efdbcd9b161
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Oct 19 06:32:17 2012 +0000

    PR14124: When performing template instantiation of a qualified-id outside of a
    class, diagnose if the qualified-id instantiates to a non-static class member.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166268 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0b4cc950c54c8dd2de51587ef48446de670fa012
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Fri Oct 19 05:04:37 2012 +0000

    Fix handling of the regparm attribute in the presence of classes with copy
    constructors.

    When I first moved regparm support to TargetInfo.cpp I tried to isolate it
    in classifyArgumentTypeWithReg, but it is actually a lot easier to flip the
    code around and check for regparm at the end of the decision tree.

    Without this refactoring classifyArgumentTypeWithReg would have to duplicate
    the logic about when to use non-byval indirect arguments.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166266 91177308-0d34-0410-b5e6-96231b3b80d8

commit d9cad403c0f76cbbcc53efbfeee3d59f9f0b6e09
Author: Craig Topper <craig.topper@gmail.com>
Date:   Fri Oct 19 04:40:38 2012 +0000

    Teach getColumnNumber to use the line cache to get the start of the line if its on the same line as the last call to getLineNumber. Prevents needing to scan backwards for the new line. Fixes PR14106.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166265 91177308-0d34-0410-b5e6-96231b3b80d8

commit 25030c46223f117f5d77936d3e5d0502a5c42e63
Author: Nadav Rotem <nrotem@apple.com>
Date:   Fri Oct 19 04:15:32 2012 +0000

    Reintroduce the TargetTransformInfo to the clang pass manager.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166263 91177308-0d34-0410-b5e6-96231b3b80d8

commit 71197a31a15f1a9226b496b19142a9d655efc725
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Oct 19 03:27:50 2012 +0000

    clang/test/Index/annotate-comments.cpp: Relax the expression to be matched to -fms-compatibility. Then XFAIL can be removed.

    FYI, it can be reproduced with "c-index-test -std=c++11 -fms-compatibility".

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166261 91177308-0d34-0410-b5e6-96231b3b80d8

commit bacc2c543c2236c5add893fabd8ecb798c1cdd76
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Oct 19 01:53:57 2012 +0000

    ASTWriter.cpp: Fix a warning. [-Wunused-variable]

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166257 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5f750680d421328225e597d6429a298027dc6360
Author: David Blaikie <dblaikie@gmail.com>
Date:   Fri Oct 19 00:53:08 2012 +0000

    Handle diamond inheritance in -Woverloaded-virtual.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166254 91177308-0d34-0410-b5e6-96231b3b80d8

commit a1a4c0385a0fd458243d9e357e1eceb137f29abf
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Fri Oct 19 00:47:07 2012 +0000

    Fix typo in comment.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166253 91177308-0d34-0410-b5e6-96231b3b80d8

commit c337fefd7317714d365a2acf4f1d2939bbcf8e3b
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Oct 19 00:45:00 2012 +0000

    Describe the new input-files block and its record, for llvm-bcanalyzer.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166252 91177308-0d34-0410-b5e6-96231b3b80d8

commit 745e6f168d0276c15fb72f3d90e3d93d60282b1b
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Oct 19 00:38:02 2012 +0000

    Move the set of files to be validated in an AST file into the control
    block, so the input files are validated early on, before we've
    committed to loading the AST file. This (accidentally) fixed a but
    wherein the main file used to generate the AST file would *not* be
    validated by the existing validation logic.

    At the moment, this leads to some duplication of filenames between the
    source manager block and input-file blocks, as well as validation
    logic. This will be handled via an upcoming patch.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166251 91177308-0d34-0410-b5e6-96231b3b80d8

commit ae8273a6a56250ec1f674fcaf309f1974229b78b
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Oct 19 00:22:54 2012 +0000

    clang/test/Index/annotate-comments.cpp: Mark this as XFAIL on msvc. Investigating.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166250 91177308-0d34-0410-b5e6-96231b3b80d8

commit f38523388174760dcbad810ef60d8504d7df6b4c
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Thu Oct 18 22:42:31 2012 +0000

    Revert r166223 and the subsequent commits that depend on it, r166230 & r166235.

    This seems to have introduced assertion hit when building compiler-rt.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166245 91177308-0d34-0410-b5e6-96231b3b80d8

commit 25dfaacde51df0834f10e3ab1646e6de9e229788
Author: Eric Christopher <echristo@gmail.com>
Date:   Thu Oct 18 22:08:02 2012 +0000

    Fix up comment and invert order. Most simple check first.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166240 91177308-0d34-0410-b5e6-96231b3b80d8

commit 25c9bc117d8825dce7911f6fddf3725d1914a7c6
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Thu Oct 18 21:53:46 2012 +0000

    Use the type as written when pretty-printing C-style casts.  Patch by Grzegorz Jablonski.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166237 91177308-0d34-0410-b5e6-96231b3b80d8

commit da3301eec823fe770bfa49a1cb19649506caa698
Author: Eric Christopher <echristo@gmail.com>
Date:   Thu Oct 18 21:52:18 2012 +0000

    Add a new option for and disable column number information as there
    are no known current users of column info. Robustify and fix up
    a few tests in the process. Reduces the size of debug information
    by a small amount.

    Part of PR14106

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166236 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5b341da0eb6478c22b9587f03572a249ebbd00dc
Author: Eric Christopher <echristo@gmail.com>
Date:   Thu Oct 18 21:52:10 2012 +0000

    Remove trailing comma.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166235 91177308-0d34-0410-b5e6-96231b3b80d8

commit 69e160869dc10567a878601e98987079ad984c64
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Oct 18 21:47:16 2012 +0000

    Move OriginalDir from ASTReader to ModuleFile.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166233 91177308-0d34-0410-b5e6-96231b3b80d8

commit 262e60c1ccb5197e8e2ea49ada1196ed65183734
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Oct 18 21:42:42 2012 +0000

    [doc parsing] use getParamName to access parameter
    for current(rewritten) comment and getParamNameAsWritten
    to access param name coming with \param marker.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166231 91177308-0d34-0410-b5e6-96231b3b80d8

commit d2deb91b02ae1d810719e4a5a63dc404f362575a
Author: Michael J. Spencer <bigcheesegs@gmail.com>
Date:   Thu Oct 18 21:36:01 2012 +0000

    [Options] Make Option non clang specific.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166230 91177308-0d34-0410-b5e6-96231b3b80d8

commit caed060d38f404c3a7650dbd236c25ec356bc5a3
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Oct 18 21:31:35 2012 +0000

    Move the "RelocatablePCH" bit from the ASTReader to the module file.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166229 91177308-0d34-0410-b5e6-96231b3b80d8

commit 11407b89c9d7ce8bc31869b0a7aae06add49e3dc
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Oct 18 21:18:25 2012 +0000

    Move information about the "original file" from the ASTReader into the
    module files.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166228 91177308-0d34-0410-b5e6-96231b3b80d8

commit eafa9d4d0d8b97f006dbd19c1e51d14663c8c5c3
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Thu Oct 18 20:58:58 2012 +0000

    Remove check which incorrectly suppressed printing an identifier in type printing.  Patch by Benoit Perrot.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166227 91177308-0d34-0410-b5e6-96231b3b80d8

commit d03ef04ed32e9c9d7c714e8f1b31693c5b907dd2
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Thu Oct 18 20:54:37 2012 +0000

    Fix AST pretty-printing for C++ new expressions with placement arguments with default values.

    Based on patch by Grzegorz Jablonski.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166226 91177308-0d34-0410-b5e6-96231b3b80d8

commit 97b8fd941475ec233b329a21a4ec94698f8a4b5b
Author: Michael J. Spencer <bigcheesegs@gmail.com>
Date:   Thu Oct 18 20:33:42 2012 +0000

    [Options] make Option a value type.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166223 91177308-0d34-0410-b5e6-96231b3b80d8

commit c337d1457e4600107a1b3793f62ca96a33f1308b
Author: Chad Rosier <mcrosier@apple.com>
Date:   Thu Oct 18 20:27:06 2012 +0000

    [ms-inline asm] Add a size argument to the LookupInlineAsmIdentifier() callback,
    which will be used by the asm matcher in the near future.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166221 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9a14db3fefa73ef8a702dea1928fd0ee0befe59b
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Thu Oct 18 20:14:08 2012 +0000

    Fix Objective-C implicit property synthesis for C++ classes so we use valid
    source locations in places where it is necessary for diagnostics.  By itself,
    this causes assertions, so while I'm here, also fix property synthesis
    for properties of C++ class type so we use so we properly set up a scope
    and mark variable declarations.

    <rdar://problem/12514189>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166219 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4ca3abd3680afec6207d25d0bb80838bf59ecbfe
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Thu Oct 18 20:09:54 2012 +0000

    Emit diagnostics in chunks even when we're trying to print colored template diffs.

    char-by-char is really slow on an unbuffered stream.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166218 91177308-0d34-0410-b5e6-96231b3b80d8

commit d052ebf6ca1a9ae3123a8ee22bc37e58ddb61018
Author: Chad Rosier <mcrosier@apple.com>
Date:   Thu Oct 18 19:39:37 2012 +0000

    [ms-inline asm] Have the LookupInlineAsmIdentifier() callback function return a
    *NamedDecl.  In turn, build the expressions after we're finished parsing the
    asm.  This avoids a crasher if the lookup fails.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166213 91177308-0d34-0410-b5e6-96231b3b80d8

commit c3c26b7390bc4ac3ad122f557a10ba17ab871216
Author: Anna Zaks <ganna@apple.com>
Date:   Thu Oct 18 19:17:57 2012 +0000

    [analyzer] Ivar invalidation: identify properties declared in protocols.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166211 91177308-0d34-0410-b5e6-96231b3b80d8

commit b36ea375e20f71df19c101fa2399b7ea3a607e04
Author: Anna Zaks <ganna@apple.com>
Date:   Thu Oct 18 19:17:53 2012 +0000

    Factor CollectClassPropertyImplementations out of Sema into AST

    This would make it possible for the analyzer to use the function.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166210 91177308-0d34-0410-b5e6-96231b3b80d8

commit a7a68b61e809a74fb5d34d57d7429fcc95e1ccad
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Oct 18 19:12:17 2012 +0000

    Patch for decl printer test of objective-c methods.
    Patch by Dmitri Gribenko.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166209 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0ec56b7add7be643f490ea9b430823570f01b4e2
Author: Axel Naumann <Axel.Naumann@cern.ch>
Date:   Thu Oct 18 19:05:02 2012 +0000

    From Vassil Vassilev: enable Sema to deal with multiple ExternalSemaSources.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166208 91177308-0d34-0410-b5e6-96231b3b80d8

commit 39c497b6d5e99acecbe03ee173249ee21933e855
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Oct 18 18:36:53 2012 +0000

    Collapse the original file name and original file ID records into a
    single record.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166206 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7ae467f02b0f2ba3897ee03e0d011433789b5434
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Oct 18 18:27:37 2012 +0000

    Collapse the "version control revision/tag" AST file record into the
    metadata record, which already had other version information. Clean up
    the block info block along the way.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166204 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7ae5717de7a6a20df60b7b058eb04c2452e39906
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Thu Oct 18 18:21:40 2012 +0000

    Fix more documentation comments in Comment.h

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166203 91177308-0d34-0410-b5e6-96231b3b80d8

commit 168425c9bdd8ed17df0ac76a19d6033f4808bd46
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Thu Oct 18 18:18:26 2012 +0000

    Expand the comment for DeclInfo::CurrentDecl.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166202 91177308-0d34-0410-b5e6-96231b3b80d8

commit ee097c1a3f5e02605dd585c0a9bf22976f09ccc2
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Oct 18 17:58:09 2012 +0000

    Split the target options out into their own record within the AST
    file's control block.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166195 91177308-0d34-0410-b5e6-96231b3b80d8

commit b1502bcd67fb593a95cbf73ec3814f4015666da0
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Oct 18 17:56:02 2012 +0000

    DR1442: In a range-based for statement, namespace 'std' is not an associated
    namespace.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166194 91177308-0d34-0410-b5e6-96231b3b80d8

commit a9b1aa5e6951b1b3bfbba32764edf2b5dd013d7a
Author: Chad Rosier <mcrosier@apple.com>
Date:   Thu Oct 18 17:51:43 2012 +0000

    [ms-inline asm] Remove accidental commit.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166193 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4a7c6eb2bbc9f7c00604d8d93ec66fd98cf4e404
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Oct 18 17:32:05 2012 +0000

    Improve comment in couple of fields of DeclInfo.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166192 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7ba2b457f0c684c11a1de18cf8b8479ecb6fb9b3
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Oct 18 17:19:41 2012 +0000

    Fix this test to match recent addition of declaration tag.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166190 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3d5cf5e0483f538c27016ef3e064536058d5605e
Author: David Blaikie <dblaikie@gmail.com>
Date:   Thu Oct 18 16:57:32 2012 +0000

    PR14021: Copy lookup results to ensure safe iteration.

    Within the body of the loop the underlying map may be modified via

      Sema::AddOverloadCandidate
        -> Sema::CompareReferenceRelationship
        -> Sema::RequireCompleteType

    to avoid the use of invalid iterators the sequence is copied first.

    A reliable, though large, test case is available - it will be reduced and
    committed shortly.

    Patch by Robert Muth. Review by myself, Nico Weber, and Rafael Espindola.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166188 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7fd00b153c991fbe30f9fa76391d2ad9fa1d349d
Author: Chad Rosier <mcrosier@apple.com>
Date:   Thu Oct 18 15:49:40 2012 +0000

    [ms-inline asm] Move most of the AsmParsing logic in clang back into the MC
    layer.  Use the new ParseMSInlineAsm() API and add an implementation of the
    MCAsmParserSemaCallback interface.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166184 91177308-0d34-0410-b5e6-96231b3b80d8

commit d77a051237b7bb9c29e537bea18e4bb37ae6b803
Author: Andy Gibbs <andyg1001@hotmail.co.uk>
Date:   Thu Oct 18 15:24:46 2012 +0000

    Fix typo (test commit)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166181 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6b2d7c7386c44fed66fda4335daa5332150aa6df
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Thu Oct 18 14:33:01 2012 +0000

    Un-XFAIL some tests for comment to XML conversion.  This reverts r166151 and
    fixes the tests for builds without libxml2.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166179 91177308-0d34-0410-b5e6-96231b3b80d8

commit 278eafa2cd8296f8128d13c6466a0ace3d03a872
Author: Abramo Bagnara <abramo.bagnara@bugseng.com>
Date:   Thu Oct 18 08:29:37 2012 +0000

    Fixed some corner cases due to implicit int TypeLoc and simplified the logic.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166174 91177308-0d34-0410-b5e6-96231b3b80d8

commit 49c67c4099fc238b49a849553f2275eb43ea6675
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Thu Oct 18 07:55:46 2012 +0000

    Put used="1" on all used declarations in the XML dumper. This allows us to
    start seeing the bit so that we can find bugs and write tests for it.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166171 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1d9d9898ce2b338314161d92f39561a09a2a8b6f
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Oct 18 05:31:06 2012 +0000

    Start factoring the on-disk records for an AST file into a control
    block, which stores information about how the AST file to generated,
    from the AST block, which stores the actual serialized AST. The
    information in the control block should be enough to determine whether
    the AST file is up-to-date and compatible with the current translation
    unit, and reading it should not cause any side effects that aren't
    easy to undo. That way, we can back out from an attempt to read an
    incompatible or out-of-date AST file.

    Note that there is still more factoring to do. In particular,
    information about the source files used to generate the AST file
    (along with their time stamps, sizes, etc.) still resides in the
    source manager block.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166166 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7c008813e17ddc2bb3953e925a86db3e1bf30198
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Thu Oct 18 05:23:42 2012 +0000

    Revert svn r165741 "Add TargetTransformInfo to the clang driver."

    Nadav's llvm change r165665 caused problems with an LTO bootstrap of clang,
    so I'm reverting it for now, along with follow-on patches like this one.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166164 91177308-0d34-0410-b5e6-96231b3b80d8

commit 922fbc41e496c6bb843de5d4cbe26d54f1ecdedf
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Oct 18 01:38:53 2012 +0000

    libclang/CXComment.cpp: Fix abuse of StringRef.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166163 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6678a05ba19c40d60ed68b37262942eb887be217
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Oct 18 00:44:17 2012 +0000

    Tests for DR1507.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166162 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8d7a24e94b58676e57fd3f47353cbdbc59917d81
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Thu Oct 18 00:17:05 2012 +0000

    [libclang] Invoke a ppIncludedFile callback when indexing implicit module imports.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166161 91177308-0d34-0410-b5e6-96231b3b80d8

commit ff9c9e1d71ec8f994c08d185f5acc01c0a685d0d
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Thu Oct 18 00:16:56 2012 +0000

    [libclang] Add a test for annotation of module headers

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166160 91177308-0d34-0410-b5e6-96231b3b80d8

commit bd2f1f0dd5ea823e929d334130eb214f802489a5
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Oct 17 23:55:38 2012 +0000

    Update comment to match DR1502.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166158 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9be36ab27b874b404099650e0c29bc92f3c7662d
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Oct 17 23:52:07 2012 +0000

    DR1535: only potentially-evaluated typeid expressions are disallowed in constant
    expressions, not *any* typeid on a polymorphic class type.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166156 91177308-0d34-0410-b5e6-96231b3b80d8

commit 76398e5ad39ae719dcc650c7cddeb25379c02c34
Author: David Blaikie <dblaikie@gmail.com>
Date:   Wed Oct 17 23:45:39 2012 +0000

    Fix -Woverloaded-virtual when the using statement refers to a base declaration of a virtual function.

    GCC and Clang both do not warn on:

      struct a { virtual void func(); };
      struct b: a { virtual void func(); void func(int); };
      struct c: b { void func(int); using b::func; };

    but if the "using" was using a::func GCC would still remain silent where Clang
    would warn. This change makes Clang consistent with GCC's existing behavior.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166154 91177308-0d34-0410-b5e6-96231b3b80d8

commit d654f2d722d4cb6366edcb8f27e99745fcbae486
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Oct 17 23:31:46 2012 +0000

    DR1528: C++11 doesn't allow repeated cv-qualifiers in declarators after all.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166152 91177308-0d34-0410-b5e6-96231b3b80d8

commit 07c90ede8069029b956a2f667282fa0ce1382c4b
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Oct 17 23:25:40 2012 +0000

    XFAIL these tests until I can figure out what is going on on
    other platforms.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166151 91177308-0d34-0410-b5e6-96231b3b80d8

commit bea52dac0c2e717990109cfd4812bc3422378b1a
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Oct 17 23:19:22 2012 +0000

    Adds couple of missing warning flags so warnings can be turned
    off. // rdar://12501960

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166150 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5ba49c0177bd594a9760956f51293b5731b03d6d
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Oct 17 23:07:52 2012 +0000

    Add -std=c++1y argument, for *highly* experimental C++14 support.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166139 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1bfb00dabf83d8c8b95b7276b4c0ae3fd64832c8
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Oct 17 21:58:03 2012 +0000

    [Doc parsing]: This patch adds <Declaration> tag to
    XML comment for declarations which pretty-prints
    declaration. I had to XFAIL one test annotate-comments.cpp.
    This test is currently unmaintainable as written.
    Dmitri G., can you see what we can do about this test.
    We should change this test such that adding a new tag does not wreck
    havoc to the test.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166130 91177308-0d34-0410-b5e6-96231b3b80d8

commit 20d928164a6263edb558fdccae6e73988cf4ae7d
Author: Anna Zaks <ganna@apple.com>
Date:   Wed Oct 17 21:09:26 2012 +0000

    [analyzer] CmpRuns: cleanup APIs, allow processing of plists with no
    clang_version, fix the compare routine.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166129 91177308-0d34-0410-b5e6-96231b3b80d8

commit d4ce811ae08398e357c8ce3e707ba5f2aa0041a5
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Oct 17 19:35:44 2012 +0000

    [analyzer] When binding to a ParenExpr, bind to its inner expression instead.

    This actually looks through several kinds of expression, such as
    OpaqueValueExpr and ExprWithCleanups. The idea is that binding and lookup
    should be consistent, and so if the environment needs to be modified later,
    the code doing the modification will not have to manually look through these
    "transparent" expressions to find the real binding to change.

    This is necessary for proper updating of struct rvalues as described in
    the previous commit.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166121 91177308-0d34-0410-b5e6-96231b3b80d8

commit f1e67d75fc922ff905de9faa6326bb1a96685ec1
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Oct 17 19:35:37 2012 +0000

    [analyzer] Create a temporary region when accessing a struct rvalue.

    In C++, rvalues that need to have their address taken (for example, to be
    passed to a function by const reference) will be wrapped in a
    MaterializeTemporaryExpr, which lets CodeGen know to create a temporary
    region to store this value. However, MaterializeTemporaryExprs are /not/
    created when a method is called on an rvalue struct, even though the 'this'
    pointer needs a valid value. CodeGen works around this by creating a
    temporary region anyway; now, so does the analyzer.

    The analyzer also does this when accessing a field of a struct rvalue.
    This is a little unfortunate, since the rest of the struct will soon be
    thrown away, but it does make things consistent with the rest of the
    analyzer.

    This allows us to bring back the assumption that all known 'this' values
    are Locs. This is a revised version of r164828-9, reverted in r164876-7.

    <rdar://problem/12137950>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166120 91177308-0d34-0410-b5e6-96231b3b80d8

commit 485841a29e1ffb36773481566b96209e4a0f67b5
Author: David Blaikie <dblaikie@gmail.com>
Date:   Wed Oct 17 18:47:30 2012 +0000

    Move -Wint-to-pointer-cast from -Wall to -Wmost to group it with more things.

    Addressing feedback on r166039 given by Matt Beaumont-Gay.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166118 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9556b391091d8a4fa82a9d171f44ef0b3c1ab3f7
Author: Eric Christopher <echristo@gmail.com>
Date:   Wed Oct 17 17:37:17 2012 +0000

    Revert r158009 since there are some uses of artificial functions in
    debug info.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166109 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1802daf8539f3320c369e442d3c8471b10ffd3cb
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Oct 17 13:35:36 2012 +0000

    Fix tests, which accidentally matched implicit code on specific
    platforms to make buildbots happy.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166100 91177308-0d34-0410-b5e6-96231b3b80d8

commit 86ce8f5873e73fc1486d847cc7378dbb597436b2
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Wed Oct 17 09:40:16 2012 +0000

    Remove an unneeded flag from the bitrig driver tests.

    Based loosely on a patch from David Hill.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166096 91177308-0d34-0410-b5e6-96231b3b80d8

commit ce62007526cdf718faed10df5e9fc7c3cd160cde
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Oct 17 08:52:59 2012 +0000

    First version of matchers for Types and TypeLocs.

    Review: http://llvm-reviews.chandlerc.com/D47

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166094 91177308-0d34-0410-b5e6-96231b3b80d8

commit 64fe36eab6f0cf02a38d1a555e2e132890e231d2
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Oct 17 06:45:09 2012 +0000

    Update test FIXME: The '[]' in 'delete []' is never part of a lambda.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166090 91177308-0d34-0410-b5e6-96231b3b80d8

commit b03527a9a395168762ad8e25e59a7a272dd74561
Author: John McCall <rjmccall@apple.com>
Date:   Wed Oct 17 04:53:31 2012 +0000

    Set a special flag in class metadata when an Objective-C class
    has ivars that require destruction, but none that require anything
    except zero-initialization.  This is common in ARC and (when true
    throughout a class hierarchy) permits the elimination of an
    unnecessary message-send during allocation.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166088 91177308-0d34-0410-b5e6-96231b3b80d8

commit 621915c7a454307ad06ed2363379d52e2695a870
Author: John McCall <rjmccall@apple.com>
Date:   Wed Oct 17 04:53:23 2012 +0000

    Organize and rename the magic constants for class flags.
    No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166087 91177308-0d34-0410-b5e6-96231b3b80d8

commit 015f33b6741ffceba3a71ee2d71d46418a7dc34c
Author: John McCall <rjmccall@apple.com>
Date:   Wed Oct 17 02:28:37 2012 +0000

    At -O0, prefer objc_storeStrong with a null new value to the
    combination of a load+objc_release;  this is generally better
    for tools that try to track why values are retained and
    released.  Also use objc_storeStrong when copying a block
    (again, only at -O0), which requires us to do a preliminary
    store of null in order to compensate for objc_storeStrong's
    assign semantics.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166085 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5708c18904304ed4e39abed8131fcad5e2fc0896
Author: David Blaikie <dblaikie@gmail.com>
Date:   Wed Oct 17 00:47:58 2012 +0000

    Implement C++ 10.3p16 - overrides involving deleted functions must match.

    Only deleted functions may override deleted functions and non-deleted functions
    may only override non-deleted functions.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166082 91177308-0d34-0410-b5e6-96231b3b80d8

commit 193646f16d90f004123965606ec3fae180beafe1
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Wed Oct 17 00:34:34 2012 +0000

    "'Might as well make it static const.' -- John McCall" -- Michael Scott

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166080 91177308-0d34-0410-b5e6-96231b3b80d8

commit 07f8cf4ec3ffb6668b35e7b864354faa76167209
Author: Douglas Gregor <dgregor@apple.com>
Date:   Wed Oct 17 00:11:35 2012 +0000

    Fix the handling of target options in our unit tests.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166079 91177308-0d34-0410-b5e6-96231b3b80d8

commit 16de3db5bb059c5274e75a788581b8123c05762a
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Tue Oct 16 23:55:06 2012 +0000

    Move test to a more appropriate place.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166078 91177308-0d34-0410-b5e6-96231b3b80d8

commit 915c07db05375d563187f8b75fa4f766a5220b75
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Tue Oct 16 23:45:15 2012 +0000

    Fix pretty-printing for variables declared in a condition.  Patch by Grzegorz Jablonski.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166073 91177308-0d34-0410-b5e6-96231b3b80d8

commit 57016dda61498294120b1a881d9e6606337b29d9
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Oct 16 23:40:58 2012 +0000

    Serialize TargetOptions into an AST file, and make sure that we keep
    target options around so they can be accessed at any point (rather
    than keeping them transient).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166072 91177308-0d34-0410-b5e6-96231b3b80d8

commit 708f69bcc1be715efd1e9f46266a9c1ead184be6
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Oct 16 23:30:16 2012 +0000

    DR1492: In a definition of a destructor, the exception specification must be
    explicitly specified iff it was specified in the declaration.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166071 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2eb9a959d24ad757a82ecab61f343635ad67749a
Author: David Blaikie <dblaikie@gmail.com>
Date:   Tue Oct 16 22:56:05 2012 +0000

    PR13684: Emit vtable entries for deleted functions as __cxa_deleted_function.

    This is consistent/interoperable with GCC 4.7 (& __cxa_deleted_function isn't
    present in 4.4 - not sure when it got added, but you'll need something with
    that function available for this to work).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166069 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2e2f9dc3efb3b0f4892f3730eecb61255dac3c58
Author: Manman Ren <mren@apple.com>
Date:   Tue Oct 16 22:40:48 2012 +0000

    ARM ABI: fix testing case arm-abi-vector.c by using [[VAR]]

    rdar://12439123

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166066 91177308-0d34-0410-b5e6-96231b3b80d8

commit 263366f9241366f29ba65b703120f302490c39ff
Author: Derek Schuff <dschuff@google.com>
Date:   Tue Oct 16 22:30:41 2012 +0000

    Add pnaclcall convention to Native Client targets.

    Because PNaCl bitcode must be target-independent, it uses some
    different bitcode representations from other targets (e.g. byval and
    sret for structures). This means that without additional type
    information, it cannot meet some native ABI requirements for some
    targets (e.g. passing structures containing unions by value on
    x86-64). To allow generation of code which uses the correct native
    ABIs, we also support triples such as x86_64-nacl, which uses
    target-dependent IR (as opposed to le32-nacl, which uses byval and
    sret).

    To allow interoperation between the two types of code, this patch adds
    a calling convention attribute to be used in code compiled with the
    target-dependent triple, which will generate code using the le32-style
    bitcode. This calling convention does not need to be explicitly
    supported in the backend because it determines bitcode representation
    rather than native conventions (the backend just needs to undersand
    how to handle byval and sret for the Native Client OS).

    This patch implements __attribute__((pnaclcall)) to generate calls in
    bitcode according to the le32 bitcode conventions, an attribute which
    is accepted by any Native Client target, but issues a warning
    otherwise.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166065 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3f784bf89a4af448c91329e08314030b1bac7e5d
Author: Manman Ren <mren@apple.com>
Date:   Tue Oct 16 22:02:26 2012 +0000

    XFAIL this testing case to recover buildbot

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166064 91177308-0d34-0410-b5e6-96231b3b80d8

commit e54cba1ec0b0e498ee67d200289035797932e714
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Oct 16 21:55:39 2012 +0000

    [ms-inline asm] Move some logic around to simplify the interface between the
    front-end and the AsmParser.  No functional change intended.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166063 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4d283e1f499560654f10c9166a369fb5c1535354
Author: David Blaikie <dblaikie@gmail.com>
Date:   Tue Oct 16 21:03:19 2012 +0000

    Test pure virtual vtable entries in the Itanium ABI.

    (original functionality committed in r99807, refactored in r160373)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166059 91177308-0d34-0410-b5e6-96231b3b80d8

commit d954ab47c681b8afc94bc3accbee708a05e6768e
Author: David Blaikie <dblaikie@gmail.com>
Date:   Tue Oct 16 20:25:33 2012 +0000

    Note deleted functions when dumping vtables.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166056 91177308-0d34-0410-b5e6-96231b3b80d8

commit 933710242edc66da21e865948d4c8e3a6badf2df
Author: Manman Ren <mren@apple.com>
Date:   Tue Oct 16 19:51:48 2012 +0000

    ARM ABI: fix ABI alignment issues in varargs.

    We generalize r166040 to handle ABI alignment issues for all types.

    rdar://12439123

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166052 91177308-0d34-0410-b5e6-96231b3b80d8

commit 68aa3a9389f9541a3cd2bbedc406f4c073da2bc7
Author: Anna Zaks <ganna@apple.com>
Date:   Tue Oct 16 19:36:39 2012 +0000

    [analyzer] Expose clang_version in CmpRuns

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166048 91177308-0d34-0410-b5e6-96231b3b80d8

commit e0c50fa01d59749e9392ccff50ee6fb90a61725b
Author: Anna Zaks <ganna@apple.com>
Date:   Tue Oct 16 19:36:37 2012 +0000

    [analyzer] Ivar Invalidation: track ivars in continuations and
    @implementation.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166047 91177308-0d34-0410-b5e6-96231b3b80d8

commit 97f81573636068fb9536436188caadf030584e58
Author: Manman Ren <mren@apple.com>
Date:   Tue Oct 16 19:18:39 2012 +0000

    ARM ABI: passing illegal vector types as varargs.

    We expand varargs in clang and the call site is handled in the back end, it is
    hard to match exactly how illegal vectors are handled in the backend. Therefore,
    we legalize the illegal vector types in clang:
    if (Size <= 32), legalize to i32.
    if (Size == 64), legalize to v2i32.
    if (Size == 128), legalize to v4i32.
    if (Size > 128), use indirect.

    rdar://12439123

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166043 91177308-0d34-0410-b5e6-96231b3b80d8

commit d105e73368e677e65af724947be85ec87a0fa45e
Author: Manman Ren <mren@apple.com>
Date:   Tue Oct 16 19:01:37 2012 +0000

    ARM ABI: fix ABI alignment issues when passing legal vector types as varargs.

    We create an aligned temporary space and copy the content over from ap.cur to
    the temporary space. This is necessary if the natural alignment of the type is
    greater than the ABI alignment.

    rdar://12439123

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166040 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9b29f4fe3d0600edf6ba00d48f2d4f2b1984f247
Author: David Blaikie <dblaikie@gmail.com>
Date:   Tue Oct 16 18:53:14 2012 +0000

    Implement GCC's -Wint-to-pointer-cast.

    This implementation doesn't warn on anything that GCC doesn't warn on with the
    exception of templates specializations (GCC doesn't warn, Clang does). The
    specific skipped cases (boolean, constant expressions, enums) are open for
    debate/adjustment if anyone wants to demonstrate that GCC is being overly
    conservative here. The only really obvious false positive I found was in the
    Clang regression suite's MPI test - apparently MPI uses specific flag values in
    pointer constants. (eg: #define FOO (void*)~0)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166039 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4695f91f4302a90ae462cd64dda59b34c3dad821
Author: Joerg Sonnenberger <joerg@bec.de>
Date:   Tue Oct 16 17:45:27 2012 +0000

    When using a symbol with attribute weakref, search for it first and
    don't try the normal GetOrCreateLLVM. The latter could drop the weak
    atrtibute on the second reference, if there is no explicit declaration
    of the aliasee.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166032 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1c9a2daf902aacb1a606497a7d09a7c2c29957ed
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Oct 16 17:08:11 2012 +0000

    Minor tweak to last patch along with a test case.
    // rdar://12491143

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166030 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9f5933a73b2dde9164f4fed001d987491f277c9a
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Oct 16 16:21:20 2012 +0000

    fixes an objc crash involving objc bool literal on
    hopelessly poorly written code after spewing several
    errors. // rdar://12491143

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166025 91177308-0d34-0410-b5e6-96231b3b80d8

commit 891dac73bdb090ff845982e4334f5b4c18353dbe
Author: David Chisnall <csdavec@swan.ac.uk>
Date:   Tue Oct 16 15:11:55 2012 +0000

    GNUstep runtime version default to 1.6, generate correct property attribute
    metadata.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166023 91177308-0d34-0410-b5e6-96231b3b80d8

commit a240df2ec1b374b3e9e7f760875ffb17cd64506f
Author: Alexey Samsonov <samsonov@google.com>
Date:   Tue Oct 16 07:22:28 2012 +0000

    Transform pattern:
      if (CGM.getModuleDebugInfo())
        DebugInfo = CGM.getModuleDebugInfo()
    into a call:
      maybeInitializeDebugInfo();

    This is a simplification for a possible future fix of PR13942.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166019 91177308-0d34-0410-b5e6-96231b3b80d8

commit a6375560645177168099f1a1d96be8fa4718aa8e
Author: Bill Wendling <isanbard@gmail.com>
Date:   Tue Oct 16 05:23:44 2012 +0000

    Use the Attributes::get method which takes an AttrVal value directly to simplify the code a bit. No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166010 91177308-0d34-0410-b5e6-96231b3b80d8

commit bc9e5ffb0d0757238c071764e4bc1fc8a1521097
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Tue Oct 16 00:47:25 2012 +0000

    [analyzer] ObjCContainersASTChecker: minor cleanup and an extra test case.

    Follow-up to r165838, which fixed a potential crash.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166002 91177308-0d34-0410-b5e6-96231b3b80d8

commit 81765577dbf740c7cef1edfe59661c95408fa85b
Author: Anna Zaks <ganna@apple.com>
Date:   Mon Oct 15 22:48:21 2012 +0000

    [analyzer] CmpRuns - cleaned up the API, added relative path getter

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165995 91177308-0d34-0410-b5e6-96231b3b80d8

commit f238aa4f556c0aa3024abebaf3bdbf5f3f68fb94
Author: Anna Zaks <ganna@apple.com>
Date:   Mon Oct 15 22:48:19 2012 +0000

    [analyzer] Embed the analyzer version into the plist output.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165994 91177308-0d34-0410-b5e6-96231b3b80d8

commit 51431dcf4a591ded089a56aaa985bb546cec8ce4
Author: Anna Zaks <ganna@apple.com>
Date:   Mon Oct 15 22:48:17 2012 +0000

    [analyzer] Enhance the error message.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165993 91177308-0d34-0410-b5e6-96231b3b80d8

commit 625ce084bc8de75e74b8920593ab761f20ff5971
Author: Anna Zaks <ganna@apple.com>
Date:   Mon Oct 15 22:48:14 2012 +0000

    [analyzer] Do not warn on direct ivar assignments within copy methods.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165992 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7a0c064770355a4918df69f95de8dea6338a59a2
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Mon Oct 15 22:23:53 2012 +0000

    Un-revert r164907 and r164902 (+ follow-ups), 10.6 build fix to follow.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165988 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6cf7d7d0866b431388001b972762ef6e1ec1664b
Author: Abramo Bagnara <abramo.bagnara@bugseng.com>
Date:   Mon Oct 15 21:08:58 2012 +0000

    Fixed CXXNamedCast right paren location propagation to instantiations.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165977 91177308-0d34-0410-b5e6-96231b3b80d8

commit ac7027872b55c43389308b51b36ade04bb50081f
Author: Abramo Bagnara <abramo.bagnara@bugseng.com>
Date:   Mon Oct 15 21:07:44 2012 +0000

    Fixed LabelDecl source range.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165976 91177308-0d34-0410-b5e6-96231b3b80d8

commit b2e80013dbf316f83716a9d9cdc9a6ed5a5a8e2a
Author: Abramo Bagnara <abramo.bagnara@bugseng.com>
Date:   Mon Oct 15 21:06:42 2012 +0000

    Fixed ClassTemplateSpecializationDecl source range.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165975 91177308-0d34-0410-b5e6-96231b3b80d8

commit ac8ea058febf6041871386d135ac2b955ab5d83a
Author: Abramo Bagnara <abramo.bagnara@bugseng.com>
Date:   Mon Oct 15 21:05:46 2012 +0000

    Fixed FunctionTypeLoc range for trailing return type.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165974 91177308-0d34-0410-b5e6-96231b3b80d8

commit 88d285cc0fc4ecdbc88d1779dcd2da968aa8b191
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Mon Oct 15 20:57:52 2012 +0000

    Fixes location of overriding declaration with no comment
    of their own.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165972 91177308-0d34-0410-b5e6-96231b3b80d8

commit dc0d4e251b4c41b75c5d93f1866a8a0952b1c6ae
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Mon Oct 15 20:37:01 2012 +0000

    Revert r164907 and r164902 (+ follow-ups). They broke building on 10.6.

    See PR14013.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165962 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0d5833921cc728bc1d2e45fbaf7b3e11cddbf99d
Author: Bill Wendling <isanbard@gmail.com>
Date:   Mon Oct 15 20:36:26 2012 +0000

    Move the Attributes::Builder outside of the Attributes class and into its own class named AttrBuilder. No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165961 91177308-0d34-0410-b5e6-96231b3b80d8

commit d9b56edcf42232c5331f9ad79aae83ba31e852df
Author: Chad Rosier <mcrosier@apple.com>
Date:   Mon Oct 15 19:56:10 2012 +0000

    [ms-inline asm]  Rework the front-end to use the API introduced in r165946.

    -The front-end now builds a single assembly string and feeds it to the
     AsmParser.  The front-end iterates on a per statement basis by calling the
     ParseStatement() function.  Please note, the calling of ParseStatement() and
     and any notion of MCAsmParsedOperands will be sunk into the MC layer in the
     near future.  I plan to expose more basic APIs such as getClobbers, etc.

    -The enumeration of the AsmString expressions have been reworked to use SMLocs
     rather than assembly Pieces, which were being parsed in the front-end.

    -The test case, t8(), was modified due to r129223.  I'll have to find a way to
     work around things such as these.

    Sorry for the large commit, but breaking this in multiple smaller commits proved
    too irritating.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165957 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6553c686cb419b22b4c79d05a422fb1e96f6e122
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Mon Oct 15 18:58:50 2012 +0000

    structured document comment: patch to provide comment for overriding function
    template when comment is comming from overridden declaration.
    // rdar://12378793

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165953 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9a022bb007a3e77e1ac1330f955a239cfb1dd0fb
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Oct 15 16:45:32 2012 +0000

    Teach TargetInfo to hold on to the TargetOptions with which it was
    created.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165943 91177308-0d34-0410-b5e6-96231b3b80d8

commit ba1f04007baf376c5f5ccf7ef23588399942de7b
Author: Kostya Serebryany <kcc@google.com>
Date:   Mon Oct 15 14:22:56 2012 +0000

    [asan] make AddressSanitizer to be a FunctionPass instead of ModulePass. clang part: for FunctionPass we need to run asan at a different point, otherwise it will run before inlining

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165937 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3d21078935d0376c1fc93af662a93e79d82e6f4b
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Oct 15 13:12:24 2012 +0000

    Only report first error when no compilation database is found.

    Review: http://llvm-reviews.chandlerc.com/D62

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165933 91177308-0d34-0410-b5e6-96231b3b80d8

commit 75d37b493e2282f993a19a166bd573b03a7535af
Author: Bill Wendling <isanbard@gmail.com>
Date:   Mon Oct 15 07:31:59 2012 +0000

    Use enum values instead of magic numbers for indexing into the attribute list.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165925 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2b49d1f0ad790a8a5d514af1be211591a746cb73
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Oct 15 06:28:11 2012 +0000

    Introduce the notion of excluded headers into the module map
    description. Previously, one could emulate this behavior by placing
    the header in an always-unavailable submodule, but Argyrios guilted me
    into expressing this idea properly.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165921 91177308-0d34-0410-b5e6-96231b3b80d8

commit 50e6b18f99c45b31e6216ab221f6b3911b24fa1f
Author: Bill Wendling <isanbard@gmail.com>
Date:   Mon Oct 15 04:47:45 2012 +0000

    Attributes Rewrite

    Convert the uses of the Attributes class over to the new format. The
    Attributes::get method call now takes an LLVM context so that the attributes
    object can be uniquified and stored.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165918 91177308-0d34-0410-b5e6-96231b3b80d8

commit 802cd5b1974bab2038b9d3c969d9beb0ab34f435
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Mon Oct 15 00:23:07 2012 +0000

    At -O0, emit an @llvm.trap() call at the end of a value-returning function which
    fails to return a value, to make debugging this issue easier.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165914 91177308-0d34-0410-b5e6-96231b3b80d8

commit a2e94892e273423e2f772f989921cda6442a66c4
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sun Oct 14 19:50:53 2012 +0000

    Make sure temporary files are deleted when recovering from a crash when compiling modules.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165911 91177308-0d34-0410-b5e6-96231b3b80d8

commit ac447fce02d119fb70f0aab885d836dea43e7f26
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sun Oct 14 19:21:21 2012 +0000

    Delete temporary output files when an error occurs during PCH reading.

    This reduces the spam make test leaves behind in /tmp. The assert isn't
    particularly useful because it's not run with -disable-free (the default when
    using the clang driver) but should cover all -cc1 tests.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165910 91177308-0d34-0410-b5e6-96231b3b80d8

commit 10be5bad483cfe66bb5eb5ff948c03c4628ce774
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sun Oct 14 11:50:50 2012 +0000

    Simplify code. No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165905 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4d68ed5f03ad1235946377eb32b5c4d0412f2e48
Author: Bill Wendling <isanbard@gmail.com>
Date:   Sun Oct 14 08:54:39 2012 +0000

    Remove operator cast method in favor of querying with the correct method.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165900 91177308-0d34-0410-b5e6-96231b3b80d8

commit e91e9ecf2f6ef18ed9d9642915e5e1abb63e150a
Author: Bill Wendling <isanbard@gmail.com>
Date:   Sun Oct 14 03:28:14 2012 +0000

    Use the Builder to create the stack alignment attribute.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165888 91177308-0d34-0410-b5e6-96231b3b80d8

commit 27844533aad5c165523a5926424097699610d3f0
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Sat Oct 13 22:30:41 2012 +0000

    "Implement" codegen support for __noop().

    Eli discovered that __noop's sema behavior also needs some love. I filed
    PR14081 for that and intend to improve it.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165886 91177308-0d34-0410-b5e6-96231b3b80d8

commit 43085815b1b377dc30176afab2b96d6b807d42de
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Sat Oct 13 21:56:05 2012 +0000

    Simplify. Suggestion by Sean Silva.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165885 91177308-0d34-0410-b5e6-96231b3b80d8

commit e5a934d3c840872d58724383a83443ed38f1d831
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Oct 13 05:05:20 2012 +0000

    [analyzer] Remove the "direct bindings only" Environment lookup.

    This was only used by OSAtomicChecker and makes it more
    difficult to update values for expressions that the environment
    may look through instead (it's not the same as IgnoreParens).
    With this gone, we can have bindExpr bind to the inner
    expression that getSVal will find.

    Groundwork for <rdar://problem/12137950>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165866 91177308-0d34-0410-b5e6-96231b3b80d8

commit 42e95acef35f4633119be1c1381e88878c966502
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Oct 13 05:05:13 2012 +0000

    [analyzer] Remove unneeded 'inlineCall' checker callback.

    I believe the removed assert in CheckerManager says it best:

    	InlineCall is a special hacky callback to allow intrusive
    	evaluation of the call (which simulates inlining). It is
    	currently only used by OSAtomicChecker and should go away
    	at some point.

    OSAtomicChecker has gone away; inlineCall can now go away as well!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165865 91177308-0d34-0410-b5e6-96231b3b80d8

commit 67bd78f1d52da57f9f44092816174ccc1d599c87
Author: Chad Rosier <mcrosier@apple.com>
Date:   Sat Oct 13 00:26:22 2012 +0000

    Update for r165858.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165859 91177308-0d34-0410-b5e6-96231b3b80d8

commit de31b28eb7d982ed6802986c2ea94b4e955c5366
Author: Chad Rosier <mcrosier@apple.com>
Date:   Fri Oct 12 23:32:10 2012 +0000

    [ms-inline asm] Remove a bunch of parsing code from the front-end.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165851 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6505a29cfd629e1a4820282b4cf3871efc1e696f
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Fri Oct 12 23:32:00 2012 +0000

    Add TargetInfo for r600.

    Patch by Tom Stellard.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165850 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5f608aedb6c5d32d2f7c51f9354a75b21f1eeaee
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Fri Oct 12 23:29:20 2012 +0000

    Make -mms-bitfields behave consistently.

    Patch by Jeremiah Zanin.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165849 91177308-0d34-0410-b5e6-96231b3b80d8

commit b2aa66c0f5ad4e2c67b7d02af6a644432ca189cf
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Oct 12 22:57:06 2012 +0000

    -fcatch-undefined-behavior: Trap undefined behavior due to conversions to or
    from a floating-point type where the source value is not in the range of
    representable values of the destination type.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165843 91177308-0d34-0410-b5e6-96231b3b80d8

commit 74616824108151e139d84338db609cc32f065c05
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Oct 12 22:56:45 2012 +0000

    Move assertion to not crash tests.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165842 91177308-0d34-0410-b5e6-96231b3b80d8

commit d0f3d7148ca761fda2243528b2b62f916770f546
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Oct 12 22:56:42 2012 +0000

    Silence static analyzer issue by documenting that in this context
    that a DeclRefExpr can never return a null decl.  We possibly should
    hoist this into getDecl() itself.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165841 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5a8fc88b18793f25d4423805d7e4ac5d0325b9a6
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Oct 12 22:56:40 2012 +0000

    Silence null dereference warnings by documenting context-specific
    invariants using assertions.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165840 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7642b9a55e853c27531e078da34ca95148182c3d
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Oct 12 22:56:38 2012 +0000

    Further harden checking that scan-view isn't serving up pages outside
    the server root.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165839 91177308-0d34-0410-b5e6-96231b3b80d8

commit 441ee1dfa5ff8d904ad07dc3b7837c44d9f173eb
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Oct 12 22:56:36 2012 +0000

    Fix potential crash in ObjCContainersChecker by properly validating
    the number of arguments.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165838 91177308-0d34-0410-b5e6-96231b3b80d8

commit 186ec9c2e6db6fd5827f2078d2a6b82085be54d3
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Oct 12 22:56:33 2012 +0000

    Silence dead store warning.  It is conceptually possible we will
    add more code that references SourceFile, so removing the dead store
    doesn't seem appropriate for the long term.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165837 91177308-0d34-0410-b5e6-96231b3b80d8

commit 507d106c758e745d3f71f44639092eb97d356525
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Oct 12 22:56:31 2012 +0000

    Fix potential null deference in CFG printer.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165836 91177308-0d34-0410-b5e6-96231b3b80d8

commit 857f5681f5e2bbb482f41f461add502b556c712a
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Oct 12 22:56:26 2012 +0000

    Remove dead store.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165835 91177308-0d34-0410-b5e6-96231b3b80d8

commit 106ddc1d320d43928ea1f36174e9d494da751ae6
Author: Chad Rosier <mcrosier@apple.com>
Date:   Fri Oct 12 22:53:52 2012 +0000

    Update for r165833.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165834 91177308-0d34-0410-b5e6-96231b3b80d8

commit a143a9dcebea2ade67a2e9de1a939fbb70964015
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Fri Oct 12 22:45:14 2012 +0000

    Fix -ast-print for uses of operator->.

    Patch by Grzegorz Jablonski.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165832 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6c500b131521e50c25db10c16bdd4b47e0651cea
Author: DeLesley Hutchins <delesley@google.com>
Date:   Fri Oct 12 21:49:04 2012 +0000

    Fix warnings introduced by r165826.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165829 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3ce9fae275ec05cd648d6093b95eb1d05bc14a98
Author: DeLesley Hutchins <delesley@google.com>
Date:   Fri Oct 12 21:38:12 2012 +0000

    Thread-safety analysis: support multiple thread-safety attributes on
    declarations.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165826 91177308-0d34-0410-b5e6-96231b3b80d8

commit fba3fb9a14f2d729639e0fdb834e3eeb40a8a12a
Author: Chad Rosier <mcrosier@apple.com>
Date:   Fri Oct 12 21:37:00 2012 +0000

    [ms-inline asm] Remove a bunch of parsing code from the front-end, which will be
    reimplemented in the AsmParser where it belongs.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165825 91177308-0d34-0410-b5e6-96231b3b80d8

commit c8b2a863bda198c4be02056929143fed54e68e68
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Oct 12 21:17:34 2012 +0000

    Add missing header from 165821

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165822 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8b48e087bc0e022703d235fa6382551cfaa57ae6
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Oct 12 21:15:50 2012 +0000

    Sanitize the names of modules determined based on the names of headers
    or directories, to make sure that they are identifiers that are not
    keywords in any dialect. Fixes <rdar://problem/12489495>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165821 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8b799f332d4d00798491f45cc14d47ff97e052c7
Author: Bill Schmidt <wschmidt@linux.vnet.ibm.com>
Date:   Fri Oct 12 20:16:26 2012 +0000

    Remove XFAIL,fix test

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165819 91177308-0d34-0410-b5e6-96231b3b80d8

commit cfe9f32cad8736106b2819018b8ab3031294c68f
Author: Bill Schmidt <wschmidt@linux.vnet.ibm.com>
Date:   Fri Oct 12 20:07:31 2012 +0000

    XFAIL pending further investigation

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165818 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6952c018318a8ce57e336d7ed2a4819a98182fa2
Author: David Blaikie <dblaikie@gmail.com>
Date:   Fri Oct 12 20:00:44 2012 +0000

    Fix typo correction of one qualified name to another.

    When suggesting "foo::bar" as a correction for "fob::bar" we mistakenly
    replaced only "bar" with "foo::bar" producing "fob::foo::bar" which was broken.

    This corrects that replacement in as many places as I could find & provides
    test cases for all those cases I could find a test case for. There are a couple
    that don't seem to be reachable (one looks entirely dead, the other just
    doesn't seem to ever get called with a namespace to namespace change).

    Review by Richard Smith ( http://llvm-reviews.chandlerc.com/D57 ).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165817 91177308-0d34-0410-b5e6-96231b3b80d8

commit b1f5fe017a596e0c7749dee10c9d3ff1c0f2788c
Author: Bill Schmidt <wschmidt@linux.vnet.ibm.com>
Date:   Fri Oct 12 19:26:17 2012 +0000

    This patch addresses PR13948.

    For 64-bit PowerPC SVR4, an aggregate containing only one
    floating-point field (float, double, or long double) must be passed in
    a register as though just that field were present.  This patch
    addresses the issue during Clang code generation by specifying in the
    ABIArgInfo for the argument that the underlying type is passed
    directly in a register.  The included test case verifies flat and
    nested structs for the three data types.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165816 91177308-0d34-0410-b5e6-96231b3b80d8

commit 44cbe67dc0e0a35c5369689710a25603ba67356f
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Oct 12 19:16:31 2012 +0000

    Have scan-view guard against serving up pages outside the root directory.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165815 91177308-0d34-0410-b5e6-96231b3b80d8

commit 47fcbba7c8f621535ed7fa632327264c1c0b84f0
Author: Richard Trieu <rtrieu@google.com>
Date:   Fri Oct 12 17:48:40 2012 +0000

    Change (!ptr != 0) to (!ptr) to make the code more readable.
    No functional change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165811 91177308-0d34-0410-b5e6-96231b3b80d8

commit f4deaef8b816bd43258c30fe8e657ab041b675ad
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Oct 12 17:39:59 2012 +0000

    Handle a "#pragma options align" inside a class.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165810 91177308-0d34-0410-b5e6-96231b3b80d8

commit 71793ef10d3a0ab009a9c070ab413a6afc9f3f8c
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Oct 12 17:28:36 2012 +0000

    Add dump support for comments coming from
    overridden symbols. OK'ed off-line by Doug.
    // rdar://12378793

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165807 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3c5527e939c454bfd3e16354908e0c4315be5d2f
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Oct 12 14:25:52 2012 +0000

    c-index-test.c: /* Use C style comment. */

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165797 91177308-0d34-0410-b5e6-96231b3b80d8

commit be9edce2bf96f75fb80445526ffa423afdbf942b
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Oct 12 14:11:32 2012 +0000

    clang/test/Index/index-module.m: Tweak expressions to fit Win32 paths.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165794 91177308-0d34-0410-b5e6-96231b3b80d8

commit ab210055fd33e0b050b37b4c3a248cab9154a4cb
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Fri Oct 12 14:01:58 2012 +0000

    Remove unused variable.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165793 91177308-0d34-0410-b5e6-96231b3b80d8

commit 716c8dfd5f7fe9b483debfae909199ef1a7f83d3
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Oct 12 05:31:40 2012 +0000

    [PCH] We only need to record C++ overridden methods once for the canonical decl.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165788 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5dbd990d7978fb990b61a9bcf1b71314a3e743fe
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Oct 12 00:18:19 2012 +0000

    Conditionally use an integral cast for BodyFarm support for OSAtomicCompareAndSwap if the return type is not a boolean.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165774 91177308-0d34-0410-b5e6-96231b3b80d8

commit 54c8a40ed658676b1f3f983728feae488c501477
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Oct 12 00:16:50 2012 +0000

    Track which particular submodule #undef's a macro, so that the actual
    #undef only occurs if that submodule is imported.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165773 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6ec69c3f436babcdb83fd7ecb2ad722d8719bd89
Author: Chad Rosier <mcrosier@apple.com>
Date:   Fri Oct 12 00:02:48 2012 +0000

    Remove dead code introduced in r165751.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165772 91177308-0d34-0410-b5e6-96231b3b80d8

commit 749ace614b6ea1ae11d194a60b18e1e43e1db243
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Oct 11 23:52:50 2012 +0000

    search for overridden methods with comment when overriding method
    has none of its own. Factor in Doug's comments.
    // rdar://12378793

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165771 91177308-0d34-0410-b5e6-96231b3b80d8

commit b43d87b0646aa04951056c7e0d1ab9a58eb09f66
Author: Sean Silva <silvas@purdue.edu>
Date:   Thu Oct 11 23:31:23 2012 +0000

    Remove pointless classof()'s.

    Updates to llvm/Support/Casting.h have rendered these classof()'s
    irrelevant.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165770 91177308-0d34-0410-b5e6-96231b3b80d8

commit d680b986651227b10f1e307861bc23cc89064161
Author: Sean Silva <silvas@purdue.edu>
Date:   Thu Oct 11 23:31:18 2012 +0000

    Add missing classof().

    Somewhat troublingly, without this implemented, the check inside
    isa_impl<> would silently use the parent's `classof()` when determining
    whether it was okay to downcast from the parent to the child!

    Bug analysis:

    A build failure after removing the parent's `classof()` initially
    alerted me to the bug, after which a little bit of thinking and reading
    of the code identified the root cause.

    The compiler could be made to prevent this bug from happening if there
    were a way to ensure that in the code

        template <typename To, typename From, typename Enabler = void>
        struct isa_impl {
          static inline bool doit(const From &Val) {
            return To::classof(&Val);
          }
        };

    that `To::classof` is actually inside the class `To`, and not in a base
    class. I am not aware of a way to check this in C++. If there is a means
    to perform that check, please bring it up on the list and this will be
    fixed.

    There is a high likelihood that there are other instances of this same
    bug in the codebase.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165769 91177308-0d34-0410-b5e6-96231b3b80d8

commit abeadfb11fde148f15c2fd67015e8163609d5b68
Author: David Blaikie <dblaikie@gmail.com>
Date:   Thu Oct 11 22:55:07 2012 +0000

    Provide a fixit when taking the address of an unqualified member function.

    This only applies if the type has a name. (we could potentially do something
    crazy with decltype in C++11 to qualify members of unnamed types but that
    seems excessive)

    It might be nice to also suggest a fixit for "&this->i", "&foo->i",
    and "&foo.i" but those expressions produce 'bound' member functions that have
    a different AST representation & make error recovery a little trickier. Left
    as future work.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165763 91177308-0d34-0410-b5e6-96231b3b80d8

commit 80eed72ed850d4d5ce49ad2a2c0971f260d8327f
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Oct 11 22:48:22 2012 +0000

    clang/test/Index/index-module.m: Move XFAIL. It was line-number-sensitive.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165762 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6eefeeea396d728281bb00ba657484f05a15c096
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Oct 11 22:33:19 2012 +0000

    clang/test/Index/index-module.m: Mark it as XFAIL:win32 for now.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165761 91177308-0d34-0410-b5e6-96231b3b80d8

commit 55cbb79391c33fb3ccaf7a299bbf616ad8af5fb7
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Oct 11 22:33:14 2012 +0000

    clang/test/Index/index-pch-with-module.m: Tweak expressions for win32 pathsep.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165760 91177308-0d34-0410-b5e6-96231b3b80d8

commit 90a76e54dee814ee395c4c4b40f668b9e150deb1
Author: Chad Rosier <mcrosier@apple.com>
Date:   Thu Oct 11 21:44:41 2012 +0000

    [ms-inline asm] Remove a bunch of parsing code from the front-end, which will be
    reimplemented in the AsmParser where it belongs.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165752 91177308-0d34-0410-b5e6-96231b3b80d8

commit 344041574a90fecc98d9412dd28767b2568eb16f
Author: Chad Rosier <mcrosier@apple.com>
Date:   Thu Oct 11 21:28:29 2012 +0000

    [ms-inline asm] Lookup the IdentifierInfo using the Idents table and remove the
    now unused static helper function.

    The test case needs to be remove temporarily until I can better filter memory
    operands that aren't actual variable reference.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165751 91177308-0d34-0410-b5e6-96231b3b80d8

commit e8219a655128b98d0573658a139de5d848451fda
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Oct 11 21:07:39 2012 +0000

    Diagnose the expansion of ambiguous macro definitions. This can happen
    only with modules, when two disjoint modules #define the same
    identifier to different token sequences.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165746 91177308-0d34-0410-b5e6-96231b3b80d8

commit 42adacbb9bc7b6172bd36f9baa297180c77ab6d7
Author: Ted Kremenek <kremenek@apple.com>
Date:   Thu Oct 11 20:58:21 2012 +0000

    Remove OSAtomicChecker.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165744 91177308-0d34-0410-b5e6-96231b3b80d8

commit 48fa1361505c51cdc5e78deffdbdd7c334cca5d0
Author: Ted Kremenek <kremenek@apple.com>
Date:   Thu Oct 11 20:58:18 2012 +0000

    Switch over to BodyFarm implementation of OSAtomicCompareAndSwap and
    objc_atomicCompareAndSwap.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165743 91177308-0d34-0410-b5e6-96231b3b80d8

commit 41c1f21c00d12f58a73199026b8041db9818988a
Author: Ted Kremenek <kremenek@apple.com>
Date:   Thu Oct 11 20:58:14 2012 +0000

    Teach GetBaseType() about BlockPointerTypes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165742 91177308-0d34-0410-b5e6-96231b3b80d8

commit 29168318a8b1bc1c6b109975298c120b7b29b03d
Author: Nadav Rotem <nrotem@apple.com>
Date:   Thu Oct 11 20:56:57 2012 +0000

    Add TargetTransformInfo to the clang driver.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165741 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0ef983e89c989ce27ab35d292893a915c8ee398d
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Thu Oct 11 19:38:23 2012 +0000

    [libclang] Make sure the index_data.main_filename field is initialized
    in c-index-test. index_enteredMainFile is not invoked when indexing a
    module file.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165735 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1d20e8285e52c6752b4f61fc637e9f34a4a632a4
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Thu Oct 11 19:21:21 2012 +0000

    [libclang] Remove this test while I investigate why it is crashing on release+asserts.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165734 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0234bfa2b03470b8ce379a7485e60ffa35c1d550
Author: Ted Kremenek <kremenek@apple.com>
Date:   Thu Oct 11 19:06:43 2012 +0000

    Add null check for malformed code.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165733 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8003fd613724847bba834ae41aca6f446af1f818
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Thu Oct 11 19:00:44 2012 +0000

    [libclang] Add tests for indexing modules and PCHs using modules.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165732 91177308-0d34-0410-b5e6-96231b3b80d8

commit 90da80c869eebc5a73bf031af5bedb6f281214fb
Author: Derek Schuff <dschuff@google.com>
Date:   Thu Oct 11 18:21:13 2012 +0000

    Fix build failure from r165722

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165731 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3ab50fe3fc8311fb68c4f5eb97e9bb3d0041bf1a
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Oct 11 17:41:54 2012 +0000

    Introduce a simple "hint" scheme to eliminate the quadratic behavior
    associated with deserializing macro history for an identifier.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165729 91177308-0d34-0410-b5e6-96231b3b80d8

commit e9652bf15246d6e08e953b52cdb7812ddb8a43e0
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Oct 11 17:31:34 2012 +0000

    Make the deserialization of PendingMacroIDs deterministic.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165727 91177308-0d34-0410-b5e6-96231b3b80d8

commit cadaf4b16a8425849c5de418b63af97728f93d5d
Author: Micah Villmow <villmow@gmail.com>
Date:   Thu Oct 11 17:21:41 2012 +0000

    Add in the first iteration of support for llvm/clang/lldb to allow variable per address space pointer sizes to be optimized correctly.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165726 91177308-0d34-0410-b5e6-96231b3b80d8

commit f1c1ba089cd8930c1193fcd20fb38cab834a8f94
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Oct 11 17:02:00 2012 +0000

    -Warc-repeated-use-of-weak: fix a use-of-uninitialized and add a test case.

    Fix-up for r165718, should get the buildbots back online.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165723 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7da46f949f6ec63d7c7dcda5f49588261c669ffb
Author: Derek Schuff <dschuff@google.com>
Date:   Thu Oct 11 16:55:58 2012 +0000

    Properly factor Native Client defines to support NaCl as an OS
    with x86/ARM architecture

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165722 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0142f0cf0859c1622f66edaaaafddcdfb8918376
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Thu Oct 11 16:32:25 2012 +0000

    Handle gnu_inline in c++ in a gcc compatible way. Original patch by Tobias
    Grosser.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165720 91177308-0d34-0410-b5e6-96231b3b80d8

commit b5cd1220dd650a358622241237aa595c5d675506
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Oct 11 16:10:19 2012 +0000

    -Warc-repeated-use-of-weak: Don't warn on a single read followed by writes.

    This is a "safe" pattern, or at least one that cannot be helped by using
    a strong local variable. However, if the single read is within a loop,
    it should /always/ be treated as potentially dangerous.

    <rdar://problem/12437490>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165719 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7fffce781e6ecbf4058b24df7e5ae3037569aa56
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Oct 11 16:06:21 2012 +0000

    -Warc-repeated-use-of-weak: Check messages to property accessors as well.

    Previously, [foo weakProp] was not being treated the same as foo.weakProp.
    Now, for every explicit message send, we check if it's a property access,
    and if so, if the property is weak. Then for every assignment of a
    message, we have to do the same thing again.

    This is a potentially expensive increase because determining whether a
    method is a property accessor requires searching through the methods it
    overrides. However, without it -Warc-repeated-use-of-weak will miss cases
    from people who prefer not to use dot syntax. If this turns out to be
    too expensive, we can try caching the result somewhere, or even lose
    precision by not checking superclass methods. The warning is off-by-default,
    though.

    <rdar://problem/12407765>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165718 91177308-0d34-0410-b5e6-96231b3b80d8

commit 900ab95e12bb7483971640a91075699eec391804
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Thu Oct 11 16:05:00 2012 +0000

    [libclang] Improve AST serialization done by ASTUnit::Save().

    The ASTUnit needs to initialize an ASTWriter at the beginning of
    parsing to fully handle serialization of a translation unit that
    imports modules. Do this by introducing an option to enable it, which
    corresponds to CXTranslationUnit_ForSerialization on the C API side.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165717 91177308-0d34-0410-b5e6-96231b3b80d8

commit 50d2b268d7a49719fe9dae89195ff809c4572dbf
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Oct 11 16:02:02 2012 +0000

    ObjCMethodDecl::findPropertyDecl: bail out early if not an instance method.

    Currently, Objective-C does not support class properties, even though it
    allows calling class methods with dot syntax.

    No intended functionality change; purely optimization.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165716 91177308-0d34-0410-b5e6-96231b3b80d8

commit babaf31d401310464db93627ef6b195a7ffb1029
Author: Derek Schuff <dschuff@google.com>
Date:   Thu Oct 11 15:52:22 2012 +0000

    Make X86_64ABIInfo clean for ABIs with 32 bit pointers, such as X32
    and Native Client

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165715 91177308-0d34-0410-b5e6-96231b3b80d8

commit a2cdd4d66a3791410e8de1c0232ae2eed53b8036
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Oct 11 11:20:31 2012 +0000

    clang/test/CodeGenCXX/microsoft-uuidof.cpp: Fix for -Asserts.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165712 91177308-0d34-0410-b5e6-96231b3b80d8

commit c5f804636e367ef744fd24cf88f7c956a5af0434
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Thu Oct 11 10:13:44 2012 +0000

    Add codegen support for __uuidof().

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165710 91177308-0d34-0410-b5e6-96231b3b80d8

commit e861dd947dea550eeefaa6ce628f6b56c209a6c8
Author: Ted Kremenek <kremenek@apple.com>
Date:   Thu Oct 11 06:26:56 2012 +0000

    Add prologue text for list of potential checkers.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165705 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9573c3a6bec505ef89903813cc047fd3518e18c1
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Oct 11 01:10:04 2012 +0000

    clang/lib/Headers/CMakeLists.txt: Add f16cintrin.h.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165688 91177308-0d34-0410-b5e6-96231b3b80d8

commit 146e5a4a787a2ebfe89a6b74e7c22d850bf1c858
Author: Manman Ren <mren@apple.com>
Date:   Thu Oct 11 00:59:55 2012 +0000

    X86: add F16C support in Clang

    Support the following intrinsics:
      _mm_cvtph_ps, _mm256_cvtph_ps, _mm_cvtps_ph, _mm256_cvtps_ph

    rdar://12407875

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165685 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4145228b758892afd3545835a4caaea722f20510
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Oct 11 00:51:27 2012 +0000

    Remove the ASTDeserializationListener's MacroVisible() callback, which
    is no longer necessary, as well as the little bit of infrastructure in
    the AST writer that used it.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165684 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7097be90d3549c30438b7a94b35577003d0a434f
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Oct 11 00:48:48 2012 +0000

    Remove an unused bit from the serialized IdentifierInfo

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165683 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6c6c54a59a6e7dbe63ff6a9bbab76f6e0c7c8462
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Oct 11 00:46:49 2012 +0000

    Deserialize macro history when we deserialize an identifier that has
    macro history.

    When deserializing macro history, we arrange history such that the
    macros that have definitions (that haven't been #undef'd) and are
    visible come at the beginning of the list, which is what the
    preprocessor and other clients of Preprocessor::getMacroInfo()
    expect. If additional macro definitions become visible later, they'll
    be moved toward the front of the list. Note that it's possible to have
    ambiguities, but we don't diagnose them yet.

    There is a partially-implemented design decision here that, if a
    particular identifier has been defined or #undef'd within the
    translation unit, that definition (or #undef) hides any macro
    definitions that come from imported modules. There's still a little
    work to do to ensure that the right #undef'ing happens.

    Additionally, we'll need to scope the update records for #undefs, so
    they only kick in when the submodule containing that update record
    becomes visible.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165682 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8b03277b0bc18ab73be11b6067474d515fdad271
Author: Ted Kremenek <kremenek@apple.com>
Date:   Thu Oct 11 00:40:41 2012 +0000

    Teach set-xcode-analyzer that the new default value for ExecPath is CLANG_ANALYZER_EXEC.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165681 91177308-0d34-0410-b5e6-96231b3b80d8

commit df75b0c74b277c6b46af2f9e90e13160fbc14d6f
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Thu Oct 11 00:34:15 2012 +0000

    Minor cleanup for r165678; no functional change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165679 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2edcde8747a000113b434a5c88b4648beed4197b
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Thu Oct 11 00:30:58 2012 +0000

    Make sure we perform the variadic method check correctly for calls to a member operator().  PR14057.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165678 91177308-0d34-0410-b5e6-96231b3b80d8

commit 786e6204e55cc01094a3e86104c82932a65fb2ca
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Oct 10 23:23:21 2012 +0000

    Reapply "[analyzer] Treat fields of unions as having symbolic offsets."

    This time, actually uncomment the code that's supposed to fix the problem.

    This reverts r165671 / 8ceb837585ed973dc36fba8dfc57ef60fc8f2735.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165676 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3ea19c8307932655092235b57f04a5e6658bbc46
Author: David Blaikie <dblaikie@gmail.com>
Date:   Wed Oct 10 23:15:05 2012 +0000

    Fix a crash-on-invalid when parsing a reference to an invalid auto declaration

      auto x((unknown));
      int& y = x;

    would crash because we were not flagging 'x' as an invalid declaration here.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165675 91177308-0d34-0410-b5e6-96231b3b80d8

commit b9966bd81878c6627d702368d6c4a8bc62bc01ac
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Oct 10 23:11:18 2012 +0000

    objective-C IRgen: When sending a method to 'super'
    in a category class method, don't read 'isa' pointer. Instead,
    save the desired OBJC_METACLASS_$_ClassName in
    __DATA,__objc_superrefs and read that without reading any
    isa pointers. // rdar://12459358

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165674 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8ceb837585ed973dc36fba8dfc57ef60fc8f2735
Author: Eric Christopher <echristo@gmail.com>
Date:   Wed Oct 10 22:49:05 2012 +0000

    Temporarily Revert "[analyzer] Treat fields of unions as having symbolic offsets."

    Author: Jordan Rose <jordan_rose@apple.com>
    Date:   Wed Oct 10 21:31:21 2012 +0000

        [analyzer] Treat fields of unions as having symbolic offsets.

        This allows only one field to be active at a time in RegionStore.
        This isn't quite the correct behavior for unions, but it at least
        would handle the case of "value goes in, value comes out" from the
        same field.

        RegionStore currently has a number of places where any access to a union
        results in UnknownVal being returned. However, it is clearly missing
        some cases, or the original issue wouldn't have occurred. It is probably
        now safe to remove those changes, but that's a potentially destabilizing
        change that should wait for more thorough testing.

        Fixes PR14054.

        git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165660 91177308-0d34-0410-b5e6-96231b3b80d8

    This reverts commit cf9030e480f77ab349672f00ad302e216c26c92c.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165671 91177308-0d34-0410-b5e6-96231b3b80d8

commit bc0a925caac5e1a8201af4e8500da0bc4bd4d955
Author: Eric Christopher <echristo@gmail.com>
Date:   Wed Oct 10 22:34:46 2012 +0000

    Revert "[Options] make Option a value type."

    Author: Michael J. Spencer <bigcheesegs@gmail.com>
    Date:   Wed Oct 10 21:48:26 2012 +0000

        [Options] make Option a value type.

        git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165663 91177308-0d34-0410-b5e6-96231b3b80d8

    This reverts commit 0464fd5e4ce2193e786e5adcab6b828f9366dae3.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165667 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0464fd5e4ce2193e786e5adcab6b828f9366dae3
Author: Michael J. Spencer <bigcheesegs@gmail.com>
Date:   Wed Oct 10 21:48:26 2012 +0000

    [Options] make Option a value type.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165663 91177308-0d34-0410-b5e6-96231b3b80d8

commit cf9030e480f77ab349672f00ad302e216c26c92c
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Oct 10 21:31:21 2012 +0000

    [analyzer] Treat fields of unions as having symbolic offsets.

    This allows only one field to be active at a time in RegionStore.
    This isn't quite the correct behavior for unions, but it at least
    would handle the case of "value goes in, value comes out" from the
    same field.

    RegionStore currently has a number of places where any access to a union
    results in UnknownVal being returned. However, it is clearly missing
    some cases, or the original issue wouldn't have occurred. It is probably
    now safe to remove those changes, but that's a potentially destabilizing
    change that should wait for more thorough testing.

    Fixes PR14054.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165660 91177308-0d34-0410-b5e6-96231b3b80d8

commit 831339c36eefc9d2d1447d5d6ffa294510db8044
Author: David Blaikie <dblaikie@gmail.com>
Date:   Wed Oct 10 20:30:36 2012 +0000

    Make -Wshift-op-parentheses a subgroup of -Wparentheses

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165653 91177308-0d34-0410-b5e6-96231b3b80d8

commit dbd91975742f4a6e797887f861c414cdd024255c
Author: Sean Silva <silvas@purdue.edu>
Date:   Wed Oct 10 20:25:45 2012 +0000

    tblgen: Build clang-tblgen without RTTI.

    clang-tblgen no longer needs RTTI!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165650 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1ab46323089f9a836a510521aab55ff958b67150
Author: Sean Silva <silvas@purdue.edu>
Date:   Wed Oct 10 20:25:43 2012 +0000

    tblgen: Use LLVM-style RTTI in clang-tblgen

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165649 91177308-0d34-0410-b5e6-96231b3b80d8

commit bf967be66ea8c51b66c61659c23240f762a56dbe
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Oct 10 18:34:52 2012 +0000

    [Doc parsing] This patch searches overridden objc/c++
    methods looking for documentation on a particular base
    class inherited by any method that overrides the base class.
    In case of redeclaration, as when objc method is defined
    in the implementation, it also looks up for documentation
    in class/class extension being redeclared.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165643 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4eff6b5d6a5cbb6bd669854a84365aa61d70819e
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Oct 10 17:55:40 2012 +0000

    [analyzer] Don't run non-path-sensitive checks on system headers...

    ...but do run them on user headers.

    Previously, we were inconsistent here: non-path-sensitive checks on code
    /bodies/ were only run in the main source file, but checks on
    /declarations/ were run in /all/ headers. Neither of those is the
    behavior we want.

    Thanks to Sujit for pointing this out!

    <rdar://problem/12454226>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165635 91177308-0d34-0410-b5e6-96231b3b80d8

commit 469ba550f54577f28e23ea42c293308fbcad6609
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Oct 10 17:55:37 2012 +0000

    [analyzer] Fix typo: s/HandleDeclsGallGraph/HandleDeclsCallGraph/g

    No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165634 91177308-0d34-0410-b5e6-96231b3b80d8

commit c88f8ef9d85a537233b4423d31dbf8bc81be525a
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Oct 10 16:43:06 2012 +0000

    -Warc-repeated-use-of-weak: look through explicit casts on assigned values.

    Reading from a weak property, casting the result, and assigning to a
    strong pointer should still be considered safe.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165629 91177308-0d34-0410-b5e6-96231b3b80d8

commit 04bec39d61f2b392d798882c9141fecf3ca653c5
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Oct 10 16:42:54 2012 +0000

    Move Sema::PropertyIfSetterOrGetter to ObjCMethodDecl::findPropertyDecl.

    Then, switch users of PropertyIfSetterOrGetter and LookupPropertyDecl
    (the latter by name) over to findPropertyDecl. This actually makes
    -Wreceiver-is-weak a bit stronger than it was before.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165628 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9a1f7d8c33304f973a59c68d80c2cce280afb1d4
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Oct 10 16:42:38 2012 +0000

    Change Sema::PropertyIfSetterOrGetter to make use of isPropertyAccessor.

    Old algorithm:
    1. See if the name looks like a getter or setter.
    2. Use the name to look up a property in the current ObjCContainer
       and all its protocols.
    3. If the current container is an interface, also look in all categories
       and superclasses (and superclass categories, and so on).

    New algorithm:
    1. See if the method is marked as a property accessor. If so, look through
       all properties in the current container and find one that has a matching
       selector.
    2. Find all overrides of the method using ObjCMethodDecl's
       getOverriddenMethods. This collects methods in superclasses and protocols
       (as well as superclass categories, which isn't really necessary), and
       checks if THEY are accessors. This part is not done recursively, since
       getOverriddenMethods is already recursive.

    This lets us handle getters and setters that do not match the property
    names.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165627 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1e4691b9d8e1bdcc8ef62b323969d702c51b3c08
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Oct 10 16:42:25 2012 +0000

    Rename ObjCMethodDecl::isSynthesized to isPropertyAccessor.

    This more accurately reflects its use: this flag is set when a method
    matches the getter or setter name for a property in the same class,
    and does not actually specify whether or not the definition of the method
    will be synthesized (either implicitly or explicitly with @synthesize).

    This renames the setter and backing field as well, and changes the
    (soon-to-be-obsolete?) XML dump format to use 'property_accessor'
    instead of 'synthesized'.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165626 91177308-0d34-0410-b5e6-96231b3b80d8

commit b5e4ace3161bd2c3f88f39e228ba8f6aaa15e751
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Oct 10 16:14:06 2012 +0000

    Fix stack overflow when trying to create an implicit moving
    constructor with invalid code.

    rdar://12240916

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165623 91177308-0d34-0410-b5e6-96231b3b80d8

commit ff2fb961dcaa3988ef3efe9fa0f1b12d3f093162
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Wed Oct 10 13:46:18 2012 +0000

    [CMake] clang/tools/extra may be included by LLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR.

    LLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR=/path/to/llvm-srcroot/tools/clang/tools/extra, by default.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165620 91177308-0d34-0410-b5e6-96231b3b80d8

commit f82232c8b73851337b83b954ba1292cf6475c7c5
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Wed Oct 10 11:29:08 2012 +0000

    Apply the same fundamental fix for PR14048 as was applied for PR11905.

    The issue arises when coercing to/from types of different sizes. We need
    to be certain that the allocation on either end has sufficient room for
    the coerced type. When it doesn't, we need to make room, copy across,
    and then proceed. PR11905 handled the case of storing function arguments
    back into allocas in the function prolog, this patch handles the case of
    setting up the function arguments in a call expression.

    This is actually significantly simpler than the fix for PR11905. It ends
    up being a trivial change to create a temporary alloca when the source
    is too small and memcpy across. This should preserve the compile-time
    fast-isel benefits of doing gep+load sequences and avoiding FCAs.

    Reviewed by Benjamin and Evgeniy (who fixed PR11905).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165615 91177308-0d34-0410-b5e6-96231b3b80d8

commit 603571a2d6daca43162bf1d9469baf919697c00a
Author: Bill Wendling <isanbard@gmail.com>
Date:   Wed Oct 10 07:36:56 2012 +0000

    Remove the final bits of Attributes being declared in the Attribute
    namespace. Use the attribute's enum value instead. No functionality change
    intended.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165611 91177308-0d34-0410-b5e6-96231b3b80d8

commit eae5a820bced67465c8517793a1602dfaeed8a06
Author: Logan Chien <tzuhsiang.chien@gmail.com>
Date:   Wed Oct 10 06:56:20 2012 +0000

    Fix PR 11709: Change the definition of va_list to meet AAPCS requirement

    AAPCS ABI Section 7.1.4 [1] specifies that va_list
    should be defined as struct __va_list { void *__ap;};
    And in C++, it is defined in namespace std.

    [1] http://infocenter.arm.com/help/topic
             /com.arm.doc.ihi0042d/IHI0042D_aapcs.pdf

    Patch by Weiming Zhao.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165609 91177308-0d34-0410-b5e6-96231b3b80d8

commit d34eca2a5b54d36c196b4f663f397fc6ea583b9b
Author: Bill Wendling <isanbard@gmail.com>
Date:   Wed Oct 10 05:30:49 2012 +0000

    Place temporary LTO files into their own subdirectory.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165600 91177308-0d34-0410-b5e6-96231b3b80d8

commit fac631052809b59c1b66f687c08a743de7fb50e9
Author: Bill Wendling <isanbard@gmail.com>
Date:   Wed Oct 10 03:13:20 2012 +0000

    Have 'addFnAttr' take the attribute enum value. Then have it build the attribute object and add it appropriately. No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165596 91177308-0d34-0410-b5e6-96231b3b80d8

commit 93cd6e8e17a40ee6fe1f17ab74d841e1f4fe9351
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Oct 10 02:12:50 2012 +0000

    Disable the preprocessing record when indexing a source file
    and modules are not enabled.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165593 91177308-0d34-0410-b5e6-96231b3b80d8

commit 62288edde26ff4af9fc079c979a0e1bdc577ce9d
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Oct 10 02:12:47 2012 +0000

    When indexing a module file, for the ppIncludedFile callback give
    an invalid location if the location points to the synthetic buffer
    for the module input.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165592 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2a857180050fb78b356c17931e311eef7f2daf3e
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Oct 10 02:12:39 2012 +0000

    [modules] Consistently construct a buffer as input to build the module.
    This means the main file for modules will always be a virtual one.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165591 91177308-0d34-0410-b5e6-96231b3b80d8

commit bf43f2fdfbd7c4f8cd1f1403765eca9e5dc6c8ae
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Oct 10 01:12:11 2012 +0000

    Tidy up formatting.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165584 91177308-0d34-0410-b5e6-96231b3b80d8

commit 930c05c32eac171ef1a94fabf80aecb4e6e2c840
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Oct 10 01:11:12 2012 +0000

    -fcatch-undefined-behavior: catch a VLA bound which evalutes to a non-positive value.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165583 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0a940686f55b069b4f59a911eabf8be8a673b170
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Oct 10 01:02:07 2012 +0000

    Fix test broken by r165572.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165581 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1be79391b322ba6da85c949bb8336565dc3e90bc
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Tue Oct 9 23:57:08 2012 +0000

    Revert "Use a special path to place the .o files in."

    This reverts commit 165429 in an attempt to get our buildbots going.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165573 91177308-0d34-0410-b5e6-96231b3b80d8

commit dc47bdc43c62bf2ff01bc71c811a66cb5376d318
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Oct 9 23:55:19 2012 +0000

    -fcatch-undefined-behavior: store the type name directly at the end of a type descriptor. 5% binary size reduction due to fewer relocations.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165572 91177308-0d34-0410-b5e6-96231b3b80d8

commit 196f35e0bde0dc3f79fb68fda6c25250f56231e9
Author: Michael Liao <michael.liao@intel.com>
Date:   Tue Oct 9 23:48:58 2012 +0000

    Add extra vim swap file pattern

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165570 91177308-0d34-0410-b5e6-96231b3b80d8

commit a8235d6c4093cd38dcf742909651f867de62e55b
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Oct 9 23:05:51 2012 +0000

    Rework the (de-)serialization of macros, as stored in
    MacroInfo*. Instead of simply dumping an offset into the current file,
    give each macro definition a proper ID with all of the standard
    modules-remapping facilities. Additionally, when a macro is modified
    in a subsequent AST file (e.g., #undef'ing a macro loaded from another
    module or from a precompiled header), provide a macro update record
    rather than rewriting the entire macro definition. This gives us
    greater consistency with the way we handle declarations, and ties
    together macro definitions much more cleanly.

    Note that we're still not actually deserializing macro history (we
    never were), but it's far easy to do properly now.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165560 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8b2bfdda35de8239df0ff4a588214d5876a38d28
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Tue Oct 9 22:46:54 2012 +0000

    People put pragmas in crazy places; add more handling.  PR14046.

    I think our general framework for parser pragmas needs a bit more work,
    but I'm not planning on working on it at the moment.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165558 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6c2fd0d71406c5f311ff00208448a63fa9071453
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Tue Oct 9 20:49:29 2012 +0000

    Initialize the end loc in ObjCInterfaceTypeLoc.

    Found by valgrind.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165546 91177308-0d34-0410-b5e6-96231b3b80d8

commit 238b6a9d33bf87e23f86866885394cd453a06495
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Oct 9 20:46:28 2012 +0000

    The clang driver has a fairly fancy support for executing gcc instead of
    clang itself. This dates back to clang's early days and while it looks like
    some of it is still used (for kext for example), other parts are probably dead.

    Remove the -ccc-clang-archs option and associated code. I don't think there
    is any remaining setup where clang doesn't support an architecture but it can
    expect an working gcc cross compiler to be available.

    A nice side effect is that tests no longer need to differentiate architectures
    that are included in production builds of clang and those that are not.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165545 91177308-0d34-0410-b5e6-96231b3b80d8

commit bc0a2bb8dc122f8daae890ec82cecfe2054859eb
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Oct 9 20:08:43 2012 +0000

    Simplify the code using SmallVector::append(), as suggested by Benjamin Kramer.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165538 91177308-0d34-0410-b5e6-96231b3b80d8

commit 96a6eb910a25f083c173e333cc21f1e0b783de4d
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Oct 9 20:01:58 2012 +0000

    [driver] Remove redundant cases due to overlapping commits between Ted (r165531, 165532) and I
    (r165534), but leave the test case in place.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165537 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4def70d3040e73707c738f7c366737a986135edf
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Oct 9 19:52:38 2012 +0000

    -fcatch-undefined-behavior: emit calls to the runtime library whenever one of the checks fails.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165536 91177308-0d34-0410-b5e6-96231b3b80d8

commit d372a70c6845efcfc88edc37341f795fc70750c7
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Oct 9 19:43:33 2012 +0000

    [driver] Remove the -W[no-][int-conversion|constant-conversion|enum-conversion]
    options when clang invokes cc1plus for i386 kexts.
    rdar://12459188

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165534 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2c3d8fad4f760b076deaa9a24923a2f48f31c8b2
Author: Ted Kremenek <kremenek@apple.com>
Date:   Tue Oct 9 19:29:48 2012 +0000

    Don't forward -Wenum-conversion to cc1plus.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165532 91177308-0d34-0410-b5e6-96231b3b80d8

commit 28e2aff71284b12c4819ad11dfd46cf019dfeb5c
Author: Ted Kremenek <kremenek@apple.com>
Date:   Tue Oct 9 19:29:46 2012 +0000

    Don't forward -Wint-conversion to cc1plus.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165531 91177308-0d34-0410-b5e6-96231b3b80d8

commit 26a9438753984df39eb52592a9038cde272a3569
Author: Ted Kremenek <kremenek@apple.com>
Date:   Tue Oct 9 18:46:14 2012 +0000

    Create variable for warning group -Wshorten-64-to-32.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165521 91177308-0d34-0410-b5e6-96231b3b80d8

commit 740ae67dbf8dac44dbc8d6593a60f4f37a0a2aa5
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Oct 9 18:19:01 2012 +0000

    Move the functionality that looks for ObjC overridden methods from
    ASTContext to the ObjCMethodDecl, and have the more generic
    ASTContext::getOverriddenMethods() use the ObjCMethodDecl::getOverriddenMethods()
    function.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165518 91177308-0d34-0410-b5e6-96231b3b80d8

commit ce12d2f8863588d408897602089d17c4d3c3d0e5
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Oct 9 17:50:23 2012 +0000

    Make the order of visitation of the pending bodies in the AST reader
    deterministic.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165515 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5456b0fe40714a78cd0ba7c1a5b7dc34eda385af
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Oct 9 17:21:28 2012 +0000

    When we load a function or method body from an AST file, we check
    whether that function/method already has a body (loaded from some
    other AST file), as introduced in r165137. Delay this check until
    after the redeclaration chains have been wired up.

    While I'm here, make the loading of method bodies lazy.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165513 91177308-0d34-0410-b5e6-96231b3b80d8

commit f288d223a44fb2fa0de69b225dcdbc5f7669defd
Author: Alexey Samsonov <samsonov@google.com>
Date:   Tue Oct 9 16:03:52 2012 +0000

    Fixup for r165097: build 32-bit ASan compiler-rt library on 64-bit Linux only if just-built clang can build simple 32-bit executables

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165503 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3644d970095d9c638c658cfd17f8e19fc333aadc
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Oct 9 16:01:50 2012 +0000

    If a macro has been #undef'd in a precompiled header, we still need to
    write out the macro history for that macro. Similarly, we need to cope
    with reading a macro definition that has been #undef'd.

    Take advantage of this new ability so that global code-completion
    results can refer to #undef'd macros, rather than losing them
    entirely. For multiply defined/#undef'd macros, we will still get the
    wrong result, but it's better than getting no result.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165502 91177308-0d34-0410-b5e6-96231b3b80d8

commit f5b132f7b373203eab7cf357b01f935bd88087bd
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Tue Oct 9 15:52:25 2012 +0000

    Clearing a SmallPtrSet is still expensive, split it out from OverloadCandidateSet::clear and don't do it on destruction.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165501 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5c3e4ca581faa27c74443d17e5f740a686b62884
Author: Bill Wendling <isanbard@gmail.com>
Date:   Tue Oct 9 07:45:26 2012 +0000

    We use the enums to query whether an Attributes object has that attribute. The
    opaque layer is responsible for knowing where that specific attribute is stored.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165489 91177308-0d34-0410-b5e6-96231b3b80d8

commit de7c0017d3f28a2e099244a154e89858bc34067b
Author: Arnaud A. de Grandmaison <arnaud.adegm@gmail.com>
Date:   Tue Oct 9 07:09:56 2012 +0000

    CXXMethodDecl::isConst() and CXXMethodDecl::isVolatile() can be const methods

    Patch by: Laszlo Nagy

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165486 91177308-0d34-0410-b5e6-96231b3b80d8

commit 21c3607282550779c9ae5fe784928597807fd110
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Oct 9 01:23:50 2012 +0000

    Move the logic that searches for overridden methods from libclang to
    ASTContext so that it can be widely available.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165473 91177308-0d34-0410-b5e6-96231b3b80d8

commit 38eb1e161f602ee810dfb8a5a0d8462572f22689
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Oct 9 01:23:45 2012 +0000

    When storing the C++ overridden methods, store them once for the
    canonical method; avoid storing them again for an out-of-line definition.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165472 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3ef38eea7ce400718e4ab523b4704ae1fd8f940f
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Mon Oct 8 23:52:38 2012 +0000

    Make sure we allow "#pragma options align=mac68k" in function-local contexts.  <rdar://problem/12453134>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165462 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7716a6be1c2709ecf86747fc2fcf6b2e2a956db3
Author: Ted Kremenek <kremenek@apple.com>
Date:   Mon Oct 8 23:45:09 2012 +0000

    Add regression test to check if -Wenum-conversion is a subgroup of -Wconversion.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165459 91177308-0d34-0410-b5e6-96231b3b80d8

commit d69f31ce4c33577396dbdc8f4f149baf0e68b68c
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Mon Oct 8 23:08:41 2012 +0000

    In VarDecl::getSourceRange() make sure to check that the source location
    of the initializer is valid before using it.

    Fixes rdar://12455002&12449015 where local variables of objc objects in ARC mode
    were not annotated because of the ImplicitValueInitExpr initializer having invalid
    source range, resulting in the SourceRange of the VarDecl having invalid end location.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165456 91177308-0d34-0410-b5e6-96231b3b80d8

commit 635dc3a2b5283cbe93a327367aa2fd07ad0210dd
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Mon Oct 8 22:45:55 2012 +0000

    Actually add the -Wenum-conversion group to -Wconversion as r165361
    seems to have intended.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165440 91177308-0d34-0410-b5e6-96231b3b80d8

commit fc80b799d3a10c6b125776e0760a1f895fa3d6a4
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Mon Oct 8 22:45:54 2012 +0000

    Sort the subgroups of the diagnostic group for -Wconversion. No
    functionality changed.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165439 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8e6881dfa47ec5bd95f1d6d83f302482c242e073
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Mon Oct 8 21:31:38 2012 +0000

    Make Bitrig's clang understand -stdlib= correctly.
    With this patch Bitrig can use a different c++ library without pain and
    within the normal commandline parameters.

    Original patch by David Hill, with lots of fixes and cleanup by me.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165430 91177308-0d34-0410-b5e6-96231b3b80d8

commit 09655fcc087a019309d3eecf237848542e419286
Author: Bill Wendling <isanbard@gmail.com>
Date:   Mon Oct 8 21:17:59 2012 +0000

    Use a special path to place the .o files in.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165429 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3201da38bdd7cea1d05700858d2af94287044887
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Oct 8 20:32:51 2012 +0000

    CompilationDatabaseTest: Fix another Windows path issue.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165425 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8a5e8c35e1beced2f098a775648e8648294967d2
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Oct 8 20:08:25 2012 +0000

    CompilationDatabase: Use //net paths for tests, as they should be
    considered absolute on all platforms.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165422 91177308-0d34-0410-b5e6-96231b3b80d8

commit d7ee194e7c7649cad542a36cd1d26c23432807aa
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Mon Oct 8 18:49:39 2012 +0000

    Don't emit double parentheses in __clang_version__.

    PR14040.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165415 91177308-0d34-0410-b5e6-96231b3b80d8

commit 61a50adfd9a095cfa017751d41af409c5bc26edf
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Oct 8 18:37:21 2012 +0000

    Hopefully appease Windows buildbot with Japanese (?) error message.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165414 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2dbe2fa7eb3ccf8eabae884a177b4570d3fb260d
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Oct 8 18:31:54 2012 +0000

    FileNameMatchTrie: Use StringRef instead of Twines where possible.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165412 91177308-0d34-0410-b5e6-96231b3b80d8

commit 25a6a84cf5067b32c271e3ba078676dee838798d
Author: Micah Villmow <villmow@gmail.com>
Date:   Mon Oct 8 16:25:52 2012 +0000

    Move TargetData to DataLayout.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165395 91177308-0d34-0410-b5e6-96231b3b80d8

commit d3420c906e3605d94c084e8b8b1f3fa490093c86
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Oct 8 16:08:15 2012 +0000

    Support symlinks and relative paths in complilation databases.

    Review: http://llvm-reviews.chandlerc.com/D30

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165392 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6b34c176994aaa781eff6cd8755a48cfb109e809
Author: David Blaikie <dblaikie@gmail.com>
Date:   Mon Oct 8 01:19:49 2012 +0000

    Use a single note diagnostic for all the precedent/parentheses warnings.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165384 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0bea86307eb8c16339315a1e261fc490eb505c5b
Author: David Blaikie <dblaikie@gmail.com>
Date:   Mon Oct 8 01:11:04 2012 +0000

    StringRef-ify Binary/UnaryOperator::getOpcodeStr

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165383 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6988666289cdbe432c226868438d3005ba1f0312
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sun Oct 7 11:51:45 2012 +0000

    Python bindings: fix typo.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165375 91177308-0d34-0410-b5e6-96231b3b80d8

commit 724d0dcc4d3765591b4586e7d064b2cba92ba43e
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sun Oct 7 11:46:37 2012 +0000

    Python bindings: Add missing availability kind.

    Patch by Leo Liu, test case by me.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165374 91177308-0d34-0410-b5e6-96231b3b80d8

commit 64f7ad9328e877779ec63638f39de4e10d2ff276
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Sun Oct 7 04:44:33 2012 +0000

    Use getArch instead of getArchName + string compare.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165370 91177308-0d34-0410-b5e6-96231b3b80d8

commit a4a809e23ef17bef21afc50e70412a77567807ae
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Sun Oct 7 03:23:40 2012 +0000

    Use getArch instead of getArchName.

    The darwin change should be a nop since Triple::getArchTypeForDarwinArchName
    doesn't know about amd64.

    If things like amd64-mingw32 are to be rejected, we should print a error
    earlier on instead of silently using the wrong abi.

    Remove old comment that looks out of place, this is "in clang".

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165368 91177308-0d34-0410-b5e6-96231b3b80d8

commit 09fa33bfe7c7f02bb18c78c5e15522fb99a9f357
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Oct 6 17:23:59 2012 +0000

    List of potential checkers: smart pointer checker: actually, unique_ptr<T[]>
    will do the right thing for new[] allocated memory.  Thanks David!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165365 91177308-0d34-0410-b5e6-96231b3b80d8

commit b4e45295a8e0c49c249250f13d9d81f2f6b8a00c
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Oct 6 17:14:39 2012 +0000

    Clang static analyzer docs: fix a couple of HTML markup issues and non-UTF-8
    characters.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165364 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9074fbe1890717e575d833fc4f131ee018ac4028
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Oct 6 16:59:15 2012 +0000

    List of potential checkers: more C++11 details for the smart pointer checker.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165363 91177308-0d34-0410-b5e6-96231b3b80d8

commit d190057934331390ff67ebf51d66186dd5e392f0
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sat Oct 6 14:42:22 2012 +0000

    Expose __builtin_bswap16.

    GCC has always supported this on PowerPC and 4.8 supports it on all platforms,
    so it's a good idea to expose it in clang too. LLVM supports this on all targets.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165362 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0b06e33d480552c920186a8958830d7679c1cb87
Author: Ted Kremenek <kremenek@apple.com>
Date:   Sat Oct 6 05:25:43 2012 +0000

    Place warn_impcast_different_enum_types in a new warning group, -Wenum-conversion, that is a subgroup of -Wconversion.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165361 91177308-0d34-0410-b5e6-96231b3b80d8

commit e3af20d2e8c99369528c69cfa437b175ac2d129d
Author: Ted Kremenek <kremenek@apple.com>
Date:   Sat Oct 6 05:11:15 2012 +0000

    Add link to potential future checkers.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165360 91177308-0d34-0410-b5e6-96231b3b80d8

commit 41c1c717cf7de6f8f54f6504fe2f6556e9184d0b
Author: Ted Kremenek <kremenek@apple.com>
Date:   Sat Oct 6 05:09:43 2012 +0000

    Add list of potential checkers.  Provided by Anton Yartsev!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165359 91177308-0d34-0410-b5e6-96231b3b80d8

commit b1368c8089b707616cd76612d4f207e5dc0be22a
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Oct 6 02:06:17 2012 +0000

    [analyzer] Tweak test to run the retain-count checker even on non-Darwin.

    This should fix the bots.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165358 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1e5101e1e52729564b6fc8d7bf146cef33bc31ca
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Oct 6 01:19:36 2012 +0000

    ParentMap: Restore the ability to update an existing map.

    The Clang ASTs are a DAG, not a pure tree. However, ParentMap has to
    choose a single parent for each object. In the main (only?) cases in
    which the AST forms a DAG, it protects from multiple traversal by using
    OpaqueValueExprs. Previously, ParentMap would just unconditionally look
    through all OpaqueValueExprs when building its map.

    In order to make this behavior better for the analyzer's diagnostics,
    ParentMap was changed to not set a statement's parent if there already
    was one in the map. However, ParentMap is supposed to allow updating
    existing mappings by calling addStmt once again. This change makes the
    "transparency" of OpaqueValueExprs explicit, and disables it when it
    is not desired, rather than checking the current contents of the map.

    This new code seems like a big change, but it should actually have
    essentially the same performance as before. Only OpaqueValueExprs and
    their users (PseudoObjectExpr and BinaryConditionalOperator) will
    have any different behavior.

    There should be no user-visible functionality change, though a test
    has been added for the current behavior of BinaryConditionalOperator
    source locations and accompanying Xcode arrows (which are not so great...).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165355 91177308-0d34-0410-b5e6-96231b3b80d8

commit cf4ce93caedca1d91ec5824981f9e45eda20b261
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Oct 6 01:19:30 2012 +0000

    [analyzer] Handle implicit statements used for end-of-path nodes' source locs.

    Some implicit statements, such as the implicit 'self' inserted for "free"
    Objective-C ivar access, have invalid source locations. If one of these
    statements is the location where an issue is reported, we'll now look at
    the enclosing statements for a valid source location.

    <rdar://problem/12446776>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165354 91177308-0d34-0410-b5e6-96231b3b80d8

commit d29245ce5ed1f6aee6f056c85ba77b009f11ee83
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Sat Oct 6 01:18:38 2012 +0000

    [libclang] Fix the comments, as suggested by Dmitri.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165353 91177308-0d34-0410-b5e6-96231b3b80d8

commit 53d6ded0edb70b04430cdaf7d02602799b4d4b07
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Sat Oct 6 01:18:35 2012 +0000

    [libclang] Don't disable the preprocessing record while indexing so as
    to not mess up with module building.

    It was not worth trying to combine indexing without preprocessing record
    and building modules with one because:

    -just importing a module/PCH that was built with a pp record, enables it anyway
    -the performance gain of indexing without the preprocessing record is insignificant.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165352 91177308-0d34-0410-b5e6-96231b3b80d8

commit cbeda892668c7e7e8f0785bc72d96d28fe9ba8df
Author: Alex Rosenberg <alexr@leftfield.org>
Date:   Fri Oct 5 23:56:20 2012 +0000

    Fix another spot where this test varied for a Release build.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165347 91177308-0d34-0410-b5e6-96231b3b80d8

commit 74112be5f35dcf20ac5d087a37171d0c4981416d
Author: Alex Rosenberg <alexr@leftfield.org>
Date:   Fri Oct 5 23:33:39 2012 +0000

    Make test resilient to Release build temp names.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165345 91177308-0d34-0410-b5e6-96231b3b80d8

commit c857ce8b08397ed778928b8a000732ca90da2a8c
Author: Alex Rosenberg <alexr@leftfield.org>
Date:   Fri Oct 5 23:12:53 2012 +0000

    Propagate calling convention for aliases and weakrefs.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165343 91177308-0d34-0410-b5e6-96231b3b80d8

commit 26994a1c293e33bfa23d7c52e89a3e2eee31a976
Author: Alex Rosenberg <alexr@leftfield.org>
Date:   Fri Oct 5 23:12:48 2012 +0000

    FileCheckize test

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165342 91177308-0d34-0410-b5e6-96231b3b80d8

commit ef2388b10c41a9696d5d81f42ca79ff005fef7fc
Author: DeLesley Hutchins <delesley@google.com>
Date:   Fri Oct 5 22:38:19 2012 +0000

    Thread-safety analysis: allow attributes on constructors to refer to 'this'.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165339 91177308-0d34-0410-b5e6-96231b3b80d8

commit efdfc1d38bdfa6c9c2ac47f883dd602f12e29807
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Oct 5 22:07:14 2012 +0000

    Add color output to 'diagtool tree' to show what warnings are enabled by default.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165338 91177308-0d34-0410-b5e6-96231b3b80d8

commit 54db3244f425dae51cde7c6298ec42d0764f8ed8
Author: Aaron Ballman <aaron@aaronballman.com>
Date:   Fri Oct 5 19:46:32 2012 +0000

    Changing line endings from Windows to Unix.  No functional changes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165329 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4d1499dbfb8b6ebf893ec51a3016d3409706d647
Author: Michael Liao <michael.liao@intel.com>
Date:   Fri Oct 5 18:50:09 2012 +0000

    Add intrinsic of MULX in BMI2 header

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165325 91177308-0d34-0410-b5e6-96231b3b80d8

commit abd5fa28199bab926ae983afa511e5a195ac131a
Author: Abramo Bagnara <abramo.bagnara@bugseng.com>
Date:   Fri Oct 5 04:43:29 2012 +0000

    Added forgotten break.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165298 91177308-0d34-0410-b5e6-96231b3b80d8

commit e6b39bcee047bb31af1cbca80aa13e3a287edfc6
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Fri Oct 5 01:49:33 2012 +0000

    Make sure to generate the right kind of MDNode for enum forward declarations.
    PR14029, clang part.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165289 91177308-0d34-0410-b5e6-96231b3b80d8

commit c969e6a7e4260fdb284593ed344b51f51e7225f6
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Oct 5 01:46:25 2012 +0000

    Workaround for libstdc++4.6 <atomic> bug: make comment more explicit about what's going on, per Sean Silva's suggestion.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165286 91177308-0d34-0410-b5e6-96231b3b80d8

commit b3f55c5728aaf0d28579e67db3dd34c2934e7805
Author: David Blaikie <dblaikie@gmail.com>
Date:   Fri Oct 5 00:41:03 2012 +0000

    Implement -Wshift-op-parentheses for: a << b + c

    This appears to be consistent with GCC's implementation of the same warning
    under -Wparentheses. Suppressing a << b + c for cases where 'a' is a user
    defined type for compatibility with C++ stream IO. Otherwise suggest
    parentheses around the addition or subtraction subexpression.

    (this came up when MSVC was complaining (incorrectly, so far as I can tell)
    about a perceived violation of this within the LLVM codebase, PR14001)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165283 91177308-0d34-0410-b5e6-96231b3b80d8

commit 134d1e8a0b463d929ffeac5eefeae761707bf5d3
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Oct 5 00:22:40 2012 +0000

    [libclang] Now that we have a CXModule object, pass it to the
    importedASTFile indexing callback.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165281 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5d04b1af7b76ed536557d4bba24005ad0d2fd608
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Oct 5 00:22:37 2012 +0000

    [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

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165280 91177308-0d34-0410-b5e6-96231b3b80d8

commit c7782d96c657eeb767bfea5117db49dc40e6356c
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Oct 5 00:22:33 2012 +0000

    [Modules] Introduce Module::TopHeaders which is a set of top-level headers
    that are associated with a (sub)module.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165279 91177308-0d34-0410-b5e6-96231b3b80d8

commit f03b888a12ccff7d54ddd8a79a0141cf23adbf67
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Oct 5 00:22:28 2012 +0000

    [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.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165278 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6a01012e6bffa246810dc5c655a9a30082331fb2
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Oct 5 00:22:24 2012 +0000

    [libclang] Introduce CXCursor_ModuleImportDecl cursor kind, used for a module
    import declaration.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165277 91177308-0d34-0410-b5e6-96231b3b80d8

commit 76dd249b0f8ee1a1b89eee00b5a7514f69c0346a
Author: Chad Rosier <mcrosier@apple.com>
Date:   Thu Oct 4 23:59:54 2012 +0000

    Test case for r165275.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165276 91177308-0d34-0410-b5e6-96231b3b80d8

commit 36ef0d54cfddf31cd48816e78ab4db73b31a6c1d
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Oct 4 23:52:29 2012 +0000

    If we flow off the end of a value-returning function:
     - outside C++, return undef (behavior is not undefined unless the value is used)
     - in C++, with -fcatch-undefined-behavior, perform an appropriate trap
     - in C++, produce an 'unreachable' (behavior is undefined immediately)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165273 91177308-0d34-0410-b5e6-96231b3b80d8

commit c339393067438596599b142a8950f0e8694e2f1a
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Oct 4 22:23:07 2012 +0000

    libstdc++-4.6 needs the same common_type fix as libstdc++-4.7. Other than that,
    Clang can now cope with its eccentricities in C++11 mode.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165265 91177308-0d34-0410-b5e6-96231b3b80d8

commit d1a55a6631b11b6c5364772023451c547eafedee
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Oct 4 22:13:39 2012 +0000

    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.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165263 91177308-0d34-0410-b5e6-96231b3b80d8

commit 59c0a818a79be850f7ae8fdafd57a1710e5b809a
Author: Abramo Bagnara <abramo.bagnara@bugseng.com>
Date:   Thu Oct 4 21:42:10 2012 +0000

    Fixed FunctionTypeLoc source range.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165259 91177308-0d34-0410-b5e6-96231b3b80d8

commit 635311f94e8fd4ff153130d91046ff78ffe97b06
Author: Abramo Bagnara <abramo.bagnara@bugseng.com>
Date:   Thu Oct 4 21:40:42 2012 +0000

    Fixed instantiated operators source range.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165258 91177308-0d34-0410-b5e6-96231b3b80d8

commit 03a400510fb8ba2e88e27c95ec797d944d944c4b
Author: Abramo Bagnara <abramo.bagnara@bugseng.com>
Date:   Thu Oct 4 21:39:47 2012 +0000

    Fixed friend decl source range.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165257 91177308-0d34-0410-b5e6-96231b3b80d8

commit 16467f2102a04e155f7a2f22c83930a7c8908a80
Author: Abramo Bagnara <abramo.bagnara@bugseng.com>
Date:   Thu Oct 4 21:38:29 2012 +0000

    Fixed ParamDecl source range for implicit typed k&r parameters.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165256 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3645056edb2f7dedc2e6153428f8f1adecc29687
Author: Bill Schmidt <wschmidt@linux.vnet.ibm.com>
Date:   Thu Oct 4 20:33:57 2012 +0000

    Fix the CodeGen/ppc64-varargs-struct.c test case to tolerate release builds.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165247 91177308-0d34-0410-b5e6-96231b3b80d8

commit 61e404e36c914476938db67d873a0df32c6c3a9c
Author: Bill Schmidt <wschmidt@linux.vnet.ibm.com>
Date:   Thu Oct 4 20:18:38 2012 +0000

    Add a test case for r156143, which enabled general varargs support for the
    64-bit PPC SVR4 ABI.

    The test verifies passing of structures, items with 16-byte alignment, and
    small items that are passed right-justified in the parameter save area slot.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165245 91177308-0d34-0410-b5e6-96231b3b80d8

commit e20e508aecf413f84b0dc4928cbf4bb5ce6c5bdc
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Thu Oct 4 19:42:20 2012 +0000

    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.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165240 91177308-0d34-0410-b5e6-96231b3b80d8

commit 45bed131a1a4219cc0bfb3c9f666dca54ddb59fa
Author: Michael Han <Michael.Han@autodesk.com>
Date:   Thu Oct 4 16:42:52 2012 +0000

    Fix scope location when parsing GNU attributes.

    For GNU attributes, instead of reusing attribute source
    location for the scope location, use SourceLocation() since
    GNU attributes don not have scope tokens.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165234 91177308-0d34-0410-b5e6-96231b3b80d8

commit 763794a03e525a2866432d3d3dff162f1838b769
Author: Preston Gurd <preston.gurd@intel.com>
Date:   Thu Oct 4 15:26:04 2012 +0000

    Revert 165129

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165231 91177308-0d34-0410-b5e6-96231b3b80d8

commit cbdc1a3432c897c11b6d256d556a8a11368729ad
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Thu Oct 4 10:06:38 2012 +0000

    Prefer StringRef::startswith to the strncmp/strlen contraption.

    This may be slightly more efficient and is definitely more readable.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165217 91177308-0d34-0410-b5e6-96231b3b80d8

commit 429fce9945f2792ca50c864de63ac3c0395e4ad5
Author: Logan Chien <tzuhsiang.chien@gmail.com>
Date:   Thu Oct 4 08:08:56 2012 +0000

    Fix typo in comments.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165216 91177308-0d34-0410-b5e6-96231b3b80d8

commit 351dbbea9820c79fcc38ed9fe93613ccb839a17f
Author: Axel Naumann <Axel.Naumann@cern.ch>
Date:   Thu Oct 4 07:34:43 2012 +0000

    Fix r165005: The lexical DeclContext is not the right place to make a decision about whether we need to call tryAddTopLevelDecl or not. That call should be made when the DeclContext's redeclaration context is the translation unit.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165215 91177308-0d34-0410-b5e6-96231b3b80d8

commit acf0bb4f49059e444dbedeef8188c9bfb6ead8c4
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Thu Oct 4 04:58:17 2012 +0000

    Add missing comment for mangling.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165202 91177308-0d34-0410-b5e6-96231b3b80d8

commit ff4ae6d4031962a7c4fdd344f40a91f0fcd26a64
Author: Lang Hames <lhames@gmail.com>
Date:   Thu Oct 4 03:23:25 2012 +0000

    Fail early with a clear assert if an operation with multiple uses somehow ends
    up being contracted during codegen.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165197 91177308-0d34-0410-b5e6-96231b3b80d8

commit eddb00a704ed39ea781693cf8fcf7cc69a175b95
Author: Lang Hames <lhames@gmail.com>
Date:   Thu Oct 4 03:07:37 2012 +0000

    Test file-scoped FP_CONTRACT pragma.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165196 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9595c7e2533c836537dc300e75d059c29feb7094
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Thu Oct 4 02:36:51 2012 +0000

    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.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165195 91177308-0d34-0410-b5e6-96231b3b80d8

commit 731a26202db4251ce9f98e64bed8ee257c46eb61
Author: Bill Wendling <isanbard@gmail.com>
Date:   Wed Oct 3 23:49:57 2012 +0000

    Add an explicit -object_path_lto flag during linking with a uniquified temporary
    file name if building Apple-style.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165184 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5904c9c74ed3972af2003927c6df3fbb1e6131e3
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Oct 3 22:39:32 2012 +0000

    use ';' instead of '-' in the note part of my last patch.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165177 91177308-0d34-0410-b5e6-96231b3b80d8

commit 36d0676374eabf74532f412321623eef5f229e3c
Author: Chad Rosier <mcrosier@apple.com>
Date:   Wed Oct 3 22:18:51 2012 +0000

    Update test case for r165174.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165175 91177308-0d34-0410-b5e6-96231b3b80d8

commit de3832b123c761e1dac39ba99c5d67151a2e05bc
Author: Sean Silva <silvas@purdue.edu>
Date:   Wed Oct 3 21:29:30 2012 +0000

    tblgen: Migrate clang-tblgen to new TableGenMain API.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165167 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2ceac2dc62ba044af1307a6912040db4cd7ac395
Author: Bill Wendling <isanbard@gmail.com>
Date:   Wed Oct 3 21:08:21 2012 +0000

    Remove the directory that these are already in.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165162 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3da76bfbd24b2747ceb72d1918bbbe3123dac841
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Oct 3 21:05:51 2012 +0000

    [libclang] When indexing, invoke the importedASTFile for PCH files as well.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165161 91177308-0d34-0410-b5e6-96231b3b80d8

commit 37f2f52fbc16b0d426d4d86c7e1662e5c6b9e3b8
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Oct 3 21:05:44 2012 +0000

    [libclang] Simplify indexing of module imports by handling implicit
    imports via ImportDecls.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165160 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1a71112c56a7b5efe15a88971b9c0c93d92d29f4
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Oct 3 21:02:25 2012 +0000

    PR14004: Fix typo in documentation.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165158 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2df1bd44319a60a9beb26511d6e2997a3f4f67ff
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Wed Oct 3 20:58:09 2012 +0000

    Fix invalid reads by memcmp.

    Str may be smaller than Start->Name here. Use strncmp to avoid scanning past the
    end. Found by valgrind.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165157 91177308-0d34-0410-b5e6-96231b3b80d8

commit ddc57332cdc86ed2db28a3b3761b774944937191
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Wed Oct 3 20:58:04 2012 +0000

    Always initialize FPContractable.

    false is used as a baseline here, we may want to allow contraction in some of
    the cases.  Found by valgrind.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165156 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9b7dcdb53cee4234c48bb4ceeef39536419945cf
Author: Michael J. Spencer <bigcheesegs@gmail.com>
Date:   Wed Oct 3 19:58:10 2012 +0000

    [Options] Store the owning OptTable in Option so it can construct Group and Alias.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165150 91177308-0d34-0410-b5e6-96231b3b80d8

commit fc44e88cbdf013d285f2e4e3962fb80dcad56770
Author: Simon Atanasyan <satanasyan@mips.com>
Date:   Wed Oct 3 19:52:37 2012 +0000

    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.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165149 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2fc107f5652a526d9c2972dc3b386e5d86769e44
Author: Bill Schmidt <wschmidt@linux.vnet.ibm.com>
Date:   Wed Oct 3 19:18:57 2012 +0000

    This patch enables general varargs support for the 64-bit PPC SVR4 ABI.

    Most of the pieces for this were already in place, but a proper EmitVAArg
    is needed for aggregates and complex numbers to be handled.  Although the
    va_list for 64-bit PowerPC SVR4 consists of GPRs 3 through 10 together with
    the overflow portion of the parameter save area, we can treat va_list as
    pointing to contiguous memory for all parameters, since the back end forces
    the parameter GPRs to memory for varargs functions.

    There is no need at this time to model parameters and return values beyond
    what the DefaultABIInfo provides.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165143 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5b8207358f2bd972edeb28d29062424af38e8239
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Oct 3 19:05:41 2012 +0000

    Fix a typo in my last patch reported by Erik Schwiebert.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165142 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3021475d7ab05424d8a56829011cf0563562a6d6
Author: Douglas Gregor <dgregor@apple.com>
Date:   Wed Oct 3 18:38:43 2012 +0000

    Remove ASTReader::needPendingInstantiation(), introduced in r164993,
    which is neither correct nor necessary. The use of this routine was
    eliminated by r165137.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165139 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8d45c2bf8d41d4ca24b1e993eb943b0384210d1a
Author: Douglas Gregor <dgregor@apple.com>
Date:   Wed Oct 3 18:36:10 2012 +0000

    Add some FIXMEs to the ASTReader code

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165138 91177308-0d34-0410-b5e6-96231b3b80d8

commit e5fa3c26919c0fa9817fbbb967f1a418e2fd3140
Author: Douglas Gregor <dgregor@apple.com>
Date:   Wed Oct 3 18:34:48 2012 +0000

    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.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165137 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3f001ff471aec590a65a383a25367a4e1c82f5a3
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Oct 3 17:55:29 2012 +0000

    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

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165133 91177308-0d34-0410-b5e6-96231b3b80d8

commit f8d9bd546811a56ebb0b581ce4cc6043b51659a1
Author: Simon Atanasyan <satanasyan@mips.com>
Date:   Wed Oct 3 17:46:38 2012 +0000

    Implement Adnroid MIPS toolchain support:
    1. Add mipsel-linux-android to the list of valid MIPS target triples.
    2. Add <gcc install path>/mips-r2 to the list of toolchain specific path
       prefixes if target is mipsel-linux-android.

    The patch reviewed by Logan Chien.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165131 91177308-0d34-0410-b5e6-96231b3b80d8

commit f2a2daebb4d76fe77b79c9bc1343a3f67a4b77d9
Author: Preston Gurd <preston.gurd@intel.com>
Date:   Wed Oct 3 16:52:40 2012 +0000

    Fix failure of newly added test, by using %clang instead of %clang_cc1
    and by specifying a target.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165130 91177308-0d34-0410-b5e6-96231b3b80d8

commit d73ea0b0c20ac745999604aa4818faa94905e926
Author: Preston Gurd <preston.gurd@intel.com>
Date:   Wed Oct 3 16:37:56 2012 +0000

    Adds a test to verify that Clang does the optimization to use a
    fast div/rem instruction (for Intel Atom).

    Test case for llvm commit 165126.

    Patch by Tyler Nowicki.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165129 91177308-0d34-0410-b5e6-96231b3b80d8

commit ff63227817217cd33c587e054d4892285b8e00c6
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Oct 3 16:00:32 2012 +0000

    Revert "InlineObjCInstanceMethod.m: Remove lines introduced in r165079."

    ...and fix the run line so that the expected warnings are the same on
    all platforms.

    This reverts r165088 / d09074f0ca06626914108f1c0d4e70adeb851e01.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165124 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1215057517e16814ee50c91d4d5d3a174b670ff0
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Wed Oct 3 14:35:38 2012 +0000

    clang-check: Add clangRewriteCore.a to the Makefile build to make it link again.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165119 91177308-0d34-0410-b5e6-96231b3b80d8

commit 72a91dd57239346d8c915133985cd3d444fb02a6
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Wed Oct 3 14:21:33 2012 +0000

    Matching block names with FileCheck requires asserts.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165118 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7b2f93c8b63f59d429731aaf16d14f0cd32f98c8
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Wed Oct 3 14:15:39 2012 +0000

    CodeGen: Fix a silly typo when emitting subs of block addresses.

    Part of PR14005.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165117 91177308-0d34-0410-b5e6-96231b3b80d8

commit 385b91f2f49169442067ff6406b370618d11a776
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Wed Oct 3 13:39:49 2012 +0000

    When mangling an APSInt with the ms abi, make sure to look at all nibbles.

    Currently, it's ignored if the number of set bits isn't divisible by 4.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165116 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5e5f726a90d234bd656a7cfd8ffd26472975f1b2
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Oct 3 13:28:43 2012 +0000

    As opposed to the clang-fixit tool described on
    http://clang.llvm.org/docs/ClangTools.html, this adds -fixit option to
    clang-check. Thus, clang-check can become a general-purpose tool to run
    clang capitalizing on the info stored in a compilation database.

    Review: http://llvm-reviews.chandlerc.com/D51

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165110 91177308-0d34-0410-b5e6-96231b3b80d8

commit bd59a010b5f1242b548bda1384a7a0ebbabf552d
Author: Logan Chien <tzuhsiang.chien@gmail.com>
Date:   Wed Oct 3 09:26:43 2012 +0000

    Fix typo in comments.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165105 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7d9c975bf2ea8e607646e23c15da744490e10d5d
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Wed Oct 3 09:04:56 2012 +0000

    Comment to XML conversion: escape XML special chars correctly; use correct
    regex for version tuples.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165104 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2bf8980800fb282f61401b44a678064ebac13038
Author: Bill Wendling <isanbard@gmail.com>
Date:   Wed Oct 3 08:39:19 2012 +0000

    The top-level clang Makefile is #included into other Makefiles. (sigh) So we
    can't have the logic here to add in the 'tools/{driver,libclang}' directories,
    because they will be added in for ALL Makefiles which #include the top-level
    one. Place the logic into the 'tools' Makefile.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165103 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4f0b2d1e2548b6966ebc98906a621222ecfb3086
Author: Bill Wendling <isanbard@gmail.com>
Date:   Wed Oct 3 08:07:20 2012 +0000

    Add the missing backslash-newline which was causing make errors.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165098 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2985cbc3c08f4da6602679ff6df11b6abe3f11e0
Author: Alexey Samsonov <samsonov@google.com>
Date:   Wed Oct 3 07:23:03 2012 +0000

    Make sure 32-bit ASan runtime is available on 64-bit Linux platforms

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165097 91177308-0d34-0410-b5e6-96231b3b80d8

commit c950bc92e69910b667d7a3dea24e4afc8abdc7e5
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Wed Oct 3 06:57:02 2012 +0000

    While I'm here, resync a %select with the enum definition it selects on.

    * nullptr used to be mapped to ERROR, now mapped to nullptr
    * integral was missing
    * expressions now have their own error message, so they won't reach
      this. Map them to ERROR.

    Note that clang usually crashes before emitting this diagnostic anyway
    (see PR13984), so this change alone doesn't have an observable effect.
    It makes the code more correct though.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165095 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2225556de7186e9b22cd4da4e7d1f5c26daae8da
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Wed Oct 3 06:46:47 2012 +0000

    Move expression mangling in the microsoft mangler to its own function.

    This matches what's done in ItaniumMangle and makes it a bit easier
    to implement mangling for more expressions. Also use the slightly nicer
    "not yet implemented" error message from there.

    No functionality change (except for the different error message).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165093 91177308-0d34-0410-b5e6-96231b3b80d8

commit 88a374ad85eec5a47bd172aa7b765d24fdf01690
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Wed Oct 3 06:12:27 2012 +0000

    Replace a default: with an explicit list of cases. No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165091 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4b70070dc58e81980239ef2e9bcecef1210ae147
Author: John McCall <rjmccall@apple.com>
Date:   Wed Oct 3 04:57:59 2012 +0000

    Update the block specification for some long-settled subleties.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165090 91177308-0d34-0410-b5e6-96231b3b80d8

commit d09074f0ca06626914108f1c0d4e70adeb851e01
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Wed Oct 3 02:35:19 2012 +0000

    InlineObjCInstanceMethod.m: Remove lines introduced in r165079. It broke some builds, on FreeBSD, Linux and Windows.

    error: 'warning' diagnostics expected but not seen:
      Line 94: types are incompatible
    1 error generated.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165088 91177308-0d34-0410-b5e6-96231b3b80d8

commit bebae7c4647ed671e37ca2edf9eeb160c181a8ac
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Oct 3 01:58:45 2012 +0000

    [PCH] Fix serialization of an ImportDecl.

    ImportDecl's module ID was not written out and the reader accepted as module ID
    the serialized:
      Record.push_back(!IdentifierLocs.empty());

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165087 91177308-0d34-0410-b5e6-96231b3b80d8

commit d64c26f6676eef69d1713f353ca8a3c2fe963f17
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Oct 3 01:58:42 2012 +0000

    Set the file entry for a Module* that was created during deserialization
    of a module file.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165086 91177308-0d34-0410-b5e6-96231b3b80d8

commit 50e71f1040a4cbc13245f897f9056e846345688d
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Oct 3 01:58:39 2012 +0000

    Add a FIXME.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165085 91177308-0d34-0410-b5e6-96231b3b80d8

commit d3d981627c375b187f33cc92a034a77ac329ec47
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Oct 3 01:58:37 2012 +0000

    Introduce ASTConsumer::HandleImplicitImportDecl() callback that is invoked
    when an ImportDecl that was implicitly created due to an inclusion directive.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165084 91177308-0d34-0410-b5e6-96231b3b80d8

commit 95c579cae01118eadd311d445ff7f491d0011fb0
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Oct 3 01:58:28 2012 +0000

    Some renames to use the 'visitor' nomenclature, no functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165083 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6880f492365cc4fa4c941aa83688635003ee7498
Author: Michael Han <Michael.Han@autodesk.com>
Date:   Wed Oct 3 01:56:22 2012 +0000

    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.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165082 91177308-0d34-0410-b5e6-96231b3b80d8

commit 48314cf6a289bc5a082d8c769c58a38f924c93b7
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Oct 3 01:08:35 2012 +0000

    [analyzer] Adjust the return type of an inlined devirtualized method call.

    In C++, overriding virtual methods are allowed to specify a covariant
    return type -- that is, if the return type of the base method is an
    object pointer type (or reference type), the overriding method's return
    type can be a pointer to a subclass of the original type. The analyzer
    was failing to take this into account when devirtualizing a method call,
    and anything that relied on the return value having the proper type later
    would crash.

    In Objective-C, overriding methods are allowed to specify ANY return type,
    meaning we can NEVER be sure that devirtualizing will give us a "safe"
    return value. Of course, a program that does this will most likely crash
    at runtime, but the analyzer at least shouldn't crash.

    The solution is to check and see if the function/method being inlined is
    the function that static binding would have picked. If not, check that
    the return value has the same type. If the types don't match, see if we
    can fix it with a derived-to-base cast (the C++ case). If we can't,
    return UnknownVal to avoid crashing later.

    <rdar://problem/12409977>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165079 91177308-0d34-0410-b5e6-96231b3b80d8

commit aa66b08d2d8bbf05bae8c68f58724f754ab57b35
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Oct 3 01:08:32 2012 +0000

    [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.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165078 91177308-0d34-0410-b5e6-96231b3b80d8

commit 041ce8e00afd1185549a25d5c2b97d219ae032d9
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Oct 3 01:08:28 2012 +0000

    Teach getCXXRecordDeclForPointerType about references.

    Then, rename it getPointeeCXXRecordDecl and give it a nice doc comment,
    and actually use it.

    No intended functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165077 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6b2cc42f1504db6577fd67fa55ef023254744e2c
Author: Richard Trieu <rtrieu@google.com>
Date:   Wed Oct 3 00:41:36 2012 +0000

    Change how the SelfReferenceChecker handles MemberExpr.  Instead of treating
    each one separately, process a stack of MemberExpr's as a single unit so that
    static calls and member access will not be warned on.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165074 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3d3f1f7c79c33a2e280dd289056ce68c95aa4cce
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Oct 2 23:38:55 2012 +0000

    Revert 165058, per Jim request.  This requires further discussion.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165070 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7c83896fc0e5d93fb83240220c995f85595e6196
Author: Alexander Kornienko <alexfh@google.com>
Date:   Tue Oct 2 23:11:53 2012 +0000

    Added a test for C++11 statement attributes serialization.

    Summary: Uses [[clang::fallthrough]] attribute in a template function, and -Wimplicit-fallthrough to check the attribute presence in an instantiation.

    Reviewers: rsmith

    Reviewed By: rsmith

    CC: cfe-commits

    Differential Revision: http://llvm-reviews.chandlerc.com/D55

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165068 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8da68b8b03d72314b67ea44568e013ef79d93b40
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Oct 2 23:01:04 2012 +0000

    [Doc parse]: SUpport for message in deprecated/unavailable
    attribute going iinto XML document.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165066 91177308-0d34-0410-b5e6-96231b3b80d8

commit 86e7b7e4421eacdd5ae610a0fb2d8ea5dec5e644
Author: Ted Kremenek <kremenek@apple.com>
Date:   Tue Oct 2 21:50:18 2012 +0000

    Silence -Wunused-value warning.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165059 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3329ad1dc678d0f659f5ab4f122af824477ca788
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Oct 2 21:49:14 2012 +0000

    [ms-inline asm] Rewrite the symbol references as wildcard MCParsedAsmOperands.
    A Sema lookup is used to determine the size of the variable, which is in turn
    used during wildcard matching.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165058 91177308-0d34-0410-b5e6-96231b3b80d8

commit a2ea4d94f2133aad0d864cf1327af142a47ffb09
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Oct 2 21:09:17 2012 +0000

    [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.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165047 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2093e0bc4e436b1b2791d5423fb3274dd37231b8
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Oct 2 21:09:13 2012 +0000

    [libclang] When indexing an AST file, only deserialize the file level
    declarations of the current primary module.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165046 91177308-0d34-0410-b5e6-96231b3b80d8

commit ac9289deef6536e47b0da2c6d67d0a74e777b5a2
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Oct 2 20:55:30 2012 +0000

    [ms-inline asm] Fixup test case to be valid ms-style asm.  Fix whitespace.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165045 91177308-0d34-0410-b5e6-96231b3b80d8

commit 48d05e6d776f4b68f3db4016eb5680ac041c2b7d
Author: Ted Kremenek <kremenek@apple.com>
Date:   Tue Oct 2 20:42:16 2012 +0000

    Refactor clients of AnalyzerOptions::getBooleanOption() to have
    an intermediate helper method to query and populate the Optional value.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165043 91177308-0d34-0410-b5e6-96231b3b80d8

commit 94bb74cef72a33d77c5d6739abfc0840c781eb8e
Author: Ted Kremenek <kremenek@apple.com>
Date:   Tue Oct 2 20:31:56 2012 +0000

    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.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165041 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9e28fe60bbfa5de196ce4aa396210bf10fc5c266
Author: Ted Kremenek <kremenek@apple.com>
Date:   Tue Oct 2 20:31:52 2012 +0000

    Change AnalyzerOptions::mayInlineCXXMemberFunction to default populate
    the config string table.  Also setup a test for dumping the analyzer
    configuration for C++.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165040 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2a46533633441176e93b484739a0a27e07150b63
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Oct 2 20:05:47 2012 +0000

    [Doc parsing]: Add available and deprecated attribute info
    to XML output. // rdar://12378879

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165039 91177308-0d34-0410-b5e6-96231b3b80d8

commit 180d9d98fb51c7f6719d56a73bfd09400502986c
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Oct 2 18:51:05 2012 +0000

    [ms-inline asm] Enhance the isSimpleMSAsm() function to handle operands with pointer size
    directives (e.g., dword ptr [eax]).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165031 91177308-0d34-0410-b5e6-96231b3b80d8

commit ad90d1074b280ee018b1ca593cf53cd9b072c116
Author: Bill Wendling <isanbard@gmail.com>
Date:   Tue Oct 2 18:07:59 2012 +0000

    Fix test for r165028. It only generates that flag for source files now.
    <rdar://problem/12401423>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165029 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6acf8b4f9418be93a24b493c2f8a7d32c203002d
Author: Bill Wendling <isanbard@gmail.com>
Date:   Tue Oct 2 18:02:50 2012 +0000

    During LTO, we call 'dsymutil' when we compile source files. This necessitates
    clang specifying a temporary file that it later cleans up so that it can survive
    the linking stage. However, when we compile object files during LTO we don't
    call 'dsymutil'. That's done at a different stage (if at all). We rely upon the
    linker to specify a unique name for the temporary file it generates.
    <rdar://problem/12401423>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165028 91177308-0d34-0410-b5e6-96231b3b80d8

commit 865cc14c2fb62cedb5eb430cfe3051dac6dba873
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Oct 2 17:41:03 2012 +0000

    Convert to FileCheck.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165026 91177308-0d34-0410-b5e6-96231b3b80d8

commit ef3f6ff4ece061dc3e905d656126f09883c7ae2e
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Oct 2 16:41:12 2012 +0000

    No need to call the InitializeAll* functions.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165025 91177308-0d34-0410-b5e6-96231b3b80d8

commit 438daee6eea16a17b5e309c4f31e2f2fef3fd452
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Oct 2 16:36:54 2012 +0000

    FP_CONTRACT: Fix two tests for -Asserts.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165024 91177308-0d34-0410-b5e6-96231b3b80d8

commit 632dcc92f60ab7f806a89c5bca3a0951763a9219
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Oct 2 16:10:51 2012 +0000

    [libclang] When indexing an AST file, only deserialize the preprocessing record
    entities of the current primary module.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165023 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8dd927cf03e85b942f323eebb42e06c839887ebb
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Oct 2 16:10:46 2012 +0000

    Add info in the preprocessing record whether an inclusion directive
    resulted in an automatic module import.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165022 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3fe97781ad5f31dbfd9348c9488b93a7c01d7818
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Oct 2 16:10:41 2012 +0000

    [libclang] Even though we disable the preprocessing record during indexing,
    make sure that it gets enabled for when a module needs to be created.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165021 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2c3e05c266de0d4c465b58ffd129bd0b31604368
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Oct 2 16:10:38 2012 +0000

    [libclang] Implement the importedASTFile indexing callback to provide
    info about imported modules.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165020 91177308-0d34-0410-b5e6-96231b3b80d8

commit d44e43e46f81cc83b8f1e4384724a9923426bb2a
Author: Aaron Ballman <aaron@aaronballman.com>
Date:   Tue Oct 2 14:56:00 2012 +0000

    Splitting this test case into two because the behavior for the calling convention code is target-specific.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165016 91177308-0d34-0410-b5e6-96231b3b80d8

commit 82bfa19fe3be324b13fdbcda46304b52c500f0d4
Author: Aaron Ballman <aaron@aaronballman.com>
Date:   Tue Oct 2 14:26:08 2012 +0000

    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

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165015 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2ec1d13063fe11730f4a0005ee39299a1145a98a
Author: Aaron Ballman <aaron@aaronballman.com>
Date:   Tue Oct 2 13:54:25 2012 +0000

    Silencing an MSVC warning about */ being found outside of a comment.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165007 91177308-0d34-0410-b5e6-96231b3b80d8

commit bb2011db250de41f69fdbaaa35ff78310a7499f1
Author: Axel Naumann <Axel.Naumann@cern.ch>
Date:   Tue Oct 2 13:06:13 2012 +0000

    Add redecls into their lexical DeclContext: this is what they assert on, and the merging should have set it correctly.
    This is especially relevant for templatedDecls that might be injected (and thus have their DeclContext set to) somewhere completely different.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165005 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1ecf0e6e271f3046bc53264318c47eae0fb80afd
Author: Axel Naumann <Axel.Naumann@cern.ch>
Date:   Tue Oct 2 12:26:36 2012 +0000

    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.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165002 91177308-0d34-0410-b5e6-96231b3b80d8

commit 38c3bb40c2cef630c236f3f455ea98999990b8ee
Author: Axel Naumann <Axel.Naumann@cern.ch>
Date:   Tue Oct 2 12:18:46 2012 +0000

    Only those InterestingDecls that got added to the AST should be passed to the ASTConsumer.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165001 91177308-0d34-0410-b5e6-96231b3b80d8

commit f88cd53676b1a2bf40a37d0ad23d81afa9f85544
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Tue Oct 2 09:42:36 2012 +0000

    -arch is a darwin-specific driver feature, use a triple instead in rewriter test.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164995 91177308-0d34-0410-b5e6-96231b3b80d8

commit e50d4f6a06c306e86de780cabb6309afb8d9cb86
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Tue Oct 2 09:29:48 2012 +0000

    Force triple in test to unbreak it on non-darwin platforms.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164994 91177308-0d34-0410-b5e6-96231b3b80d8

commit 39d26c3e499470cd80a3e6f26f11ac681cd9712c
Author: Axel Naumann <Axel.Naumann@cern.ch>
Date:   Tue Oct 2 09:09:43 2012 +0000

    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.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164993 91177308-0d34-0410-b5e6-96231b3b80d8

commit b7bafa94bc583af9b825b5049aed50359fdb844b
Author: Bill Wendling <isanbard@gmail.com>
Date:   Tue Oct 2 06:19:15 2012 +0000

    Use an environment variable instead of what's in the make cmd goals.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164992 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3ba17ee280d58bf702eb3836c119bab42dcbb9c8
Author: Ted Kremenek <kremenek@apple.com>
Date:   Tue Oct 2 05:36:02 2012 +0000

    Tweak diagnostic text to indicate that __weak on a local variable is only allowed
    for ARC.  Fixes <rdar://problem/12407705>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164990 91177308-0d34-0410-b5e6-96231b3b80d8

commit be9af1288881110e406b87914162eaa59f1e5918
Author: Lang Hames <lhames@gmail.com>
Date:   Tue Oct 2 04:45:10 2012 +0000

    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).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164989 91177308-0d34-0410-b5e6-96231b3b80d8

commit d13eff6f77216a6fb25e18f600b492db4f0492e8
Author: Ted Kremenek <kremenek@apple.com>
Date:   Tue Oct 2 04:36:54 2012 +0000

    Check if an IdentifierInfo* is null when the FunctionDecl isn't a simple C function.

    Fixes <rdar://problem/12355298>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164988 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0fabc18984970f92d093399b1408a91d7b24d067
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Tue Oct 2 04:24:16 2012 +0000

    Re-enable this test to reflect re-enabling the new SROA pass.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164987 91177308-0d34-0410-b5e6-96231b3b80d8

commit 66360e224689dc23a0acd8a6705ba50bec13bc97
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Tue Oct 2 01:49:54 2012 +0000

    -Wformat: Don't check format strings in uninstantiated templates.

    Also applies to -Wnonnull, -Wtype-safety, and -Wnon-pod-varargs.
    All of these can be better checked at instantiation time.

    This change does not actually affect regular CallExpr function calls,
    since the checks there only happen after overload resolution.
    However, it will affect Objective-C method calls.

    <rdar://problem/12373934>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164984 91177308-0d34-0410-b5e6-96231b3b80d8

commit d62505677555fd4fae731232d7308a91c2bb10a2
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Oct 2 00:11:53 2012 +0000

    clang/test/Index: Fix two tests. Both %S and %t are expanded to absolute paths.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164982 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3034d88fd128ddf164f39d4f460ae3c3d70b40ae
Author: Chad Rosier <mcrosier@apple.com>
Date:   Mon Oct 1 23:45:59 2012 +0000

    [ms-inline asm] Use the convertToMapAndConstraints() function in the front-end.
    Rework the logic to account for the fact that we no longer create a MCInst.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164980 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7cf0cd3893bdf7bf1577e52a1565a87e563c57e8
Author: Michael Gottesman <mgottesman@apple.com>
Date:   Mon Oct 1 23:39:44 2012 +0000

    [clang-tests] Changed relative paths to absolute paths in run command for annotate-macro-args.m, get-cursor-macro-args.m, import_self.c.

    This fixes make check-all failures when make -C is used to run the tests.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164978 91177308-0d34-0410-b5e6-96231b3b80d8

commit ec0df93e4217673665ec31fb512522e54c7f53a5
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Mon Oct 1 23:25:52 2012 +0000

    Modern translator test. Breakup test into two and
    skip the x86_64 version for mingw32 and win32.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164977 91177308-0d34-0410-b5e6-96231b3b80d8

commit fdcc289fadff3c11c9d44844fb0546e9de0b567e
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Mon Oct 1 21:21:50 2012 +0000

    Rename a test I just added.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164971 91177308-0d34-0410-b5e6-96231b3b80d8

commit 88b6c4b367e40ae324552184319e8c058feb4318
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Mon Oct 1 20:55:56 2012 +0000

    objective-C modern translator. Test for producing both
    32bit and 64bit version of modern translator.
    // rdar://12189793

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164970 91177308-0d34-0410-b5e6-96231b3b80d8

commit 01cad02220180b9646525295f502c00c64a172d0
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Mon Oct 1 20:36:17 2012 +0000

    Fix treatment of case which came up on std-proposals@: 'void' is permitted in core constant expressions, despite not being a literal type.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164968 91177308-0d34-0410-b5e6-96231b3b80d8

commit c4a839101e883261d038a1d5ea718dd46abd1d2d
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Mon Oct 1 20:35:07 2012 +0000

    PR13978: A 'decltype' DeclSpec has an expression representation, not a type
    representation. Fix crash if it appears in the return type of a member function
    definition.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164967 91177308-0d34-0410-b5e6-96231b3b80d8

commit bbff82f302a1dd67589f65912351978905f0c5a7
Author: Anna Zaks <ganna@apple.com>
Date:   Mon Oct 1 20:34:04 2012 +0000

    Move isObjCSelf into Expr.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164966 91177308-0d34-0410-b5e6-96231b3b80d8

commit b9733ac1a2012c3e909ac262073a6deb8533d2c7
Author: Anna Zaks <ganna@apple.com>
Date:   Mon Oct 1 20:33:58 2012 +0000

    [analyzer] Address Jordan's review for r164868.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164965 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0209abf8b413d9904fd869d5de437c9b2d563e48
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Mon Oct 1 19:10:40 2012 +0000

    Add xml test for availability to comment-xml-schema.c

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164961 91177308-0d34-0410-b5e6-96231b3b80d8

commit e606e3d224d3fa8f6d4358ec66858d46754457a0
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Mon Oct 1 19:07:22 2012 +0000

    [analyzer] Allow ObjC ivar lvalues where the base is nil.

    By analogy with C structs, this seems to be legal, if probably discouraged.
    It's only if the ivar is read from or written to that there's a problem.
    Running a program that gets the "address" of an instance variable does in
    fact return the offset when the base "object" is nil.

    This isn't a full revert because r164442 includes some diagnostic tweaks
    as well; those have been kept.

    This partially reverts r164442 / 08965091770c9b276c238bac2f716eaa4da2dca4.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164960 91177308-0d34-0410-b5e6-96231b3b80d8

commit 75c5e6df52e055537cf92687cf80fe644233381f
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Mon Oct 1 19:07:19 2012 +0000

    [analyzer] Add a test for PR13927 "offsetof replacement flagged as null deref"

    This seems to be legal according to C11 6.5.3.2.

    No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164959 91177308-0d34-0410-b5e6-96231b3b80d8

commit d27a368f4800b447b970b7c438d0fb4da00838dc
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Mon Oct 1 19:07:15 2012 +0000

    Revert "[analyzer] Check that a member expr is valid even when the result is an lvalue."

    The original intent of this commit was to catch potential null dereferences
    early, but it breaks the common "home-grown offsetof" idiom (PR13927):

     (((struct Foo *)0)->member - ((struct foo *)0))

    As it turns out, this appears to be legal in C, per a footnote in
    C11 6.5.3.2: "Thus, &*E is equivalent to E (even if E is a null pointer)".
    In C++ this issue is still open:
      http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#232

    We'll just have to make sure we have good path notes in the future.

    This reverts r164441 / 9be016dcd1ca3986873a7b66bd4bc027309ceb59.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164958 91177308-0d34-0410-b5e6-96231b3b80d8

commit faab5618b5beed350d7444de97cf513ef1a42ca6
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Mon Oct 1 18:42:25 2012 +0000

    availability in structured documents. Takes
    care of comments by Dimitri and Doug.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164957 91177308-0d34-0410-b5e6-96231b3b80d8

commit 622b6fb0a1d280c16e135c7e427b79cafffbde1f
Author: Ted Kremenek <kremenek@apple.com>
Date:   Mon Oct 1 18:28:19 2012 +0000

    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.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164954 91177308-0d34-0410-b5e6-96231b3b80d8

commit 43e8ef0b90dffcf9bda4fc2d3e6b21feb1e15bfb
Author: Ted Kremenek <kremenek@apple.com>
Date:   Mon Oct 1 18:28:14 2012 +0000

    Add checker debug.ConfigDumper to dump the contents of the configuration table.
    The format of this output is a WIP; largely I'm bringing it up now
    for regression testing.  We can evolve the output format over time.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164953 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0504a598a5dc8f3f45e79d4f8ea206a926507859
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Mon Oct 1 17:51:35 2012 +0000

    Reapply "[analyzer] Handle inlined constructors for rvalue temporaries correctly."

    This is related to but not blocked by <rdar://problem/12137950>
    ("Return-by-value structs do not have associated regions")

    This reverts r164875 / 3278d41e17749dbedb204a81ef373499f10251d7.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164952 91177308-0d34-0410-b5e6-96231b3b80d8

commit 568f785a76e0a21de20932abf09ce7653e651f92
Author: Richard Trieu <rtrieu@google.com>
Date:   Mon Oct 1 17:39:51 2012 +0000

    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.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164951 91177308-0d34-0410-b5e6-96231b3b80d8

commit ca5d78d0bc3010164f2f9682967d64d7e305a167
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Mon Oct 1 16:53:40 2012 +0000

    [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!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164947 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1a00fee3933066024a2398f9456e5d6bc74344b9
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Oct 1 15:05:34 2012 +0000

    Fix ASTMatchersTests in configurations where
    "#include <initializer_list>" is unavailable for whatever reason.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164944 91177308-0d34-0410-b5e6-96231b3b80d8

commit 31f7c08a0d2b140bf31a08894d1948649de53c15
Author: Daniel Jasper <djasper@google.com>
Date:   Mon Oct 1 13:40:41 2012 +0000

    Add matchers for selected C++11 features.

    Patch by Gábor Horváth.
    Review: http://llvm-reviews.chandlerc.com/D46

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164943 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3dd82f7f01a9ba995bea3027a934df85850cab58
Author: Axel Naumann <Axel.Naumann@cern.ch>
Date:   Mon Oct 1 09:51:27 2012 +0000

    The Redeclarable part of named decls is read before their name.
    Lookup can nevertheless find them due to the serialized lookup table.
    For instance when reading a template decl's templatedDecl, it will search for existing decls that it could be a redeclaration of, and find the half-read template decl.
    Thus there is no point in asserting the names of decls.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164932 91177308-0d34-0410-b5e6-96231b3b80d8

commit b0e33d499d97b69f795cb53f8934bcd134a56b5a
Author: Axel Naumann <Axel.Naumann@cern.ch>
Date:   Mon Oct 1 09:18:00 2012 +0000

    Also merge template redeclarations.
    Don't require specializations (of existing and read template) to be unique.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164931 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6e208dbcbdcda2ddf0e269ebc9e0f5373f995ce1
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Mon Oct 1 08:44:54 2012 +0000

    Mark two Clang tests as passing on ARM

    Also move one of them from grep to FileCheck.
    Patch from Joey Gouly <joey.gouly@arm.com>!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164929 91177308-0d34-0410-b5e6-96231b3b80d8

commit 58197501e7c20138f8d3bb06cbe8675f5070c8bf
Author: Kostya Serebryany <kcc@google.com>
Date:   Mon Oct 1 08:39:00 2012 +0000

    fix test/CodeGen/tbaa-for-vptr.cpp: don't hardcode the index of metadata

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164928 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7b3b95a9485059b196896accc0144fd0bc31ff2c
Author: Axel Naumann <Axel.Naumann@cern.ch>
Date:   Mon Oct 1 07:34:47 2012 +0000

    Bring ASTReader and Writer into sync for the case where a canonical template specialization was written, which is non-canonical at the time of reading: force the reading of the ClassTemplateDecl if it was written.
    The easiest way out is to store whether the decl was canonical at the time of writing.
    Add test.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164927 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6cacae8bf9597b8124cd40aedc189c04484e1990
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sun Sep 30 12:43:37 2012 +0000

    CodeGen: Copy tail padding when we're not dealing with a trivial copy assign or move assign operator.

    This fixes a regression from r162254, the optimizer has problems reasoning
    about the smaller memcpy as it's often not safe to widen a store but making it
    smaller is.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164917 91177308-0d34-0410-b5e6-96231b3b80d8

commit 615c3dda26323dc1b07333e060a64c2471b74d9e
Author: Bill Wendling <isanbard@gmail.com>
Date:   Sun Sep 30 11:23:30 2012 +0000

    Filter out tools and unittests which we don't want to build when we're building clang only.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164916 91177308-0d34-0410-b5e6-96231b3b80d8

commit a2cccd0fc17f3ea66e3e8cfe27723b7f8d46a5c8
Author: Bill Wendling <isanbard@gmail.com>
Date:   Sun Sep 30 11:22:45 2012 +0000

    Remove this hack in favor of another, better way of performing the same thing.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164915 91177308-0d34-0410-b5e6-96231b3b80d8

commit 33e3911c0864f45dca7d1eca9158ba1ce9f057be
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Sun Sep 30 00:58:28 2012 +0000

    Specify a full target in an attempt to appease buildbots.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164908 91177308-0d34-0410-b5e6-96231b3b80d8

commit f2f3ce54fc1235bec2d0d0b0ef3b53bdff6d9655
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Sat Sep 29 23:52:58 2012 +0000

    Add Clang support for iOS6.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164907 91177308-0d34-0410-b5e6-96231b3b80d8

commit cfaab00963234237b46b52996e9d72b20540e97f
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Sat Sep 29 23:52:52 2012 +0000

    Add ARM VFPv4 feature and enable it by default for Swift.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164906 91177308-0d34-0410-b5e6-96231b3b80d8

commit 336bfa3fb496228a8ab4070def5b4297e5f88358
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Sat Sep 29 23:52:50 2012 +0000

    Add armv7s and some other arm variants supported by Mach-O files.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164905 91177308-0d34-0410-b5e6-96231b3b80d8

commit 02262662b4550d0227038470f2d7b3db7ada2b87
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Sat Sep 29 23:52:48 2012 +0000

    Add an FMA intrinsic for ARM Neon.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164904 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2e4457a006fa2beaa87d909b743aa8f09fbf9ec6
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Sat Sep 29 22:08:54 2012 +0000

    Whitespace.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164900 91177308-0d34-0410-b5e6-96231b3b80d8

commit aaa8e45b8e392a1f1b7498e2f00c6ed66d41119a
Author: Daniel Jasper <djasper@google.com>
Date:   Sat Sep 29 15:55:18 2012 +0000

    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.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164896 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1952354bd376062c3ab3d328c0fc6c36530c9309
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Sep 29 11:40:46 2012 +0000

    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.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164892 91177308-0d34-0410-b5e6-96231b3b80d8

commit fa4f4b33d329d35391011d843ba682a8624527f9
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Sep 29 08:27:37 2012 +0000

    Comment XML schema: correct indentation.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164889 91177308-0d34-0410-b5e6-96231b3b80d8

commit 436e825809519a7ff6d99c3177b7f64ab96a057c
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Sat Sep 29 02:00:04 2012 +0000

    clang/test/CodeGen/tbaa-struct.cpp: Fix. Be aware of 32 bit pointer.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164879 91177308-0d34-0410-b5e6-96231b3b80d8

commit ce6644bc1e921833f9b3c10cf7d4a0b78e8d5dc9
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Sep 29 01:36:51 2012 +0000

    Revert "[analyzer] Create a temporary region for rvalue structs when accessing fields"

    This reverts commit 6f61df3e7256413dcb99afb9673f4206e3c4992c.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164877 91177308-0d34-0410-b5e6-96231b3b80d8

commit 20aa40342bd74895128860c081aa84cd85bfa68d
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Sep 29 01:36:47 2012 +0000

    Revert "[analyzer] Create a temp region when a method is called on a struct rvalue."

    This reverts commit 0006ba445962621ed82ec84400a6b978205a3fbc.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164876 91177308-0d34-0410-b5e6-96231b3b80d8

commit 846c898cebf02cb753125633c52e0d1d7fd94b4b
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Sep 29 01:36:42 2012 +0000

    Revert "[analyzer] Handle inlined constructors for rvalue temporaries correctly."

    This reverts commit 580cd17f256259f39a382e967173f34d68e73859.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164875 91177308-0d34-0410-b5e6-96231b3b80d8

commit f8afcffe6a0213760b64c211812b1750e1e1e967
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Sat Sep 29 01:06:10 2012 +0000

    For PPCallbacks::InclusionDirective() add a parameter for the module, whenever
    an inclusion directive was automatically turned into a module import, and
    PPCallbacks::moduleImport() for an explicit module import.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164874 91177308-0d34-0410-b5e6-96231b3b80d8

commit e2ac16b09ea66ad955752381b82fb8719d003e5e
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Sat Sep 29 01:06:04 2012 +0000

    In the Module class, add a reference to the corresponding AST file.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164873 91177308-0d34-0410-b5e6-96231b3b80d8

commit eb788e9b49d55bbbc661f1a9db8a54525ecdd0bc
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Sat Sep 29 01:06:01 2012 +0000

    Add an assertion to make sure the implicitly imported module
    is the same as the suggested one when looking up the include filename.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164872 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0272622ce2061509b672f2afc11e91d83f802820
Author: Anna Zaks <ganna@apple.com>
Date:   Sat Sep 29 00:20:40 2012 +0000

    [analyzer] Do not visit ObjCMethodDecl twice in the AST checkers.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164869 91177308-0d34-0410-b5e6-96231b3b80d8

commit 31f69cc770888ec0f0f7012212e5df7979aba4f3
Author: Anna Zaks <ganna@apple.com>
Date:   Sat Sep 29 00:20:38 2012 +0000

    [analyzer] Re-implement IvarInvalidationChecker so that it verifies that
    the validation occurred.

    The original implementation was pessimistic - we assumed that ivars
    which escape are invalidated. This version is optimistic, it assumes
    that the ivars will always be explicitly invalidated: either set to nil
    or sent an invalidation message.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164868 91177308-0d34-0410-b5e6-96231b3b80d8

commit ef4d5ced04bf0b3d987e6b0e931f43125492f50c
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Sep 28 22:46:07 2012 +0000

    PR13941: Mark all virtual functions as unnamed_addr. It's not possible to
    observe their addresses (taking their address gives the vtable slot) so we are
    free to merge their definitions.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164864 91177308-0d34-0410-b5e6-96231b3b80d8

commit b6d80fe68d30ebd14b20c96643c252c36041df8d
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Sep 28 22:42:04 2012 +0000

    Use a custom DenseMapInfo for WeakObjectProfileTy.

    We can't specialize the usual llvm::DenseMapInfo at the end of the file
    because by that point the DenseMap in FunctionScopeInfo has already been
    instantiated.

    No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164862 91177308-0d34-0410-b5e6-96231b3b80d8

commit 257e2e836160c7e55cf160b7cae8e5665f988a5e
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Sep 28 22:35:49 2012 +0000

    [Doc parsing] Add availability information to generated Comment XML.
    (I still need to add a test once I figure it out).
    Reviewed off-line by Doug. // rdar://12378879

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164861 91177308-0d34-0410-b5e6-96231b3b80d8

commit 20441c59a00afb949e53121c55f8a58da17ba79e
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Sep 28 22:29:02 2012 +0000

    Fix buildbots by not using a template from another namespace.

    No need to specialize BeforeThanCompare for a comparator that's only
    going to be used once.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164859 91177308-0d34-0410-b5e6-96231b3b80d8

commit 66da0abf7ab7cd449bb1d5134b2ef97d9d34d812
Author: Alexander Kornienko <alexfh@google.com>
Date:   Fri Sep 28 22:24:03 2012 +0000

    Compatibility macro detection for the -Wimplicit-fallthrough diagnostic.

    Summary:
    When issuing a diagnostic message for the -Wimplicit-fallthrough diagnostics, always try to find the latest macro, defined at the point of fallthrough, which is immediately expanded to "[[clang::fallthrough]]", and use it's name instead of the actual sequence.

    Known issues:
      * uses PP.getSpelling() to compare macro definition with a string (anyone can suggest a convenient way to fill a token array, or maybe lex it in runtime?);
      * this can be generalized and used in other similar cases, any ideas where it should reside then?

    Reviewers: doug.gregor, rsmith

    Reviewed By: rsmith

    CC: cfe-commits

    Differential Revision: http://llvm-reviews.chandlerc.com/D50

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164858 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3437daad71d8694d4ddd25418751f2763c0f8979
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Sep 28 22:21:42 2012 +0000

    -Wreceiver-is-weak: rephrase warning text and add a suggestion Note.

    New output:
      warning: weak property may be unpredictably set to nil
      note: property declared here
      note: assign the value to a strong variable to keep the object alive
            during use

    <rdar://problem/12277204>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164857 91177308-0d34-0410-b5e6-96231b3b80d8

commit a55d32d1b8f799bf58c02540983976368c42d895
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Sep 28 22:21:39 2012 +0000

    Pull ScopeInfo implementation into its own file.

    The infrastructure for -Warc-repeated-use-of-weak got a little too heavy
    to leave sitting at the top of Sema.cpp.

    No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164856 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7a2704800943fbb69207e125d28186278712af36
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Sep 28 22:21:35 2012 +0000

    -Warc-repeated-use-of-weak: check ivars and variables as well.

    Like properties, loading from a weak ivar twice in the same function can
    give you inconsistent results if the object is deallocated between the
    two loads. It is safer to assign to a strong local variable and use that.

    Second half of <rdar://problem/12280249>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164855 91177308-0d34-0410-b5e6-96231b3b80d8

commit 58b6bdcdeb683a3504f2248a409e1f4e85876cee
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Sep 28 22:21:30 2012 +0000

    Add a warning (off by default) for repeated use of the same weak property.

    The motivating example:

    if (self.weakProp)
      use(self.weakProp);

    As with any non-atomic test-then-use, it is possible a weak property to be
    non-nil at the 'if', but be deallocated by the time it is used. The correct
    way to write this example is as follows:

    id tmp = self.weakProp;
    if (tmp)
      use(tmp);

    The warning is controlled by -Warc-repeated-use-of-receiver, and uses the
    property name and base to determine if the same property on the same object
    is being accessed multiple times. In cases where the base is more
    complicated than just a single Decl (e.g. 'foo.bar.weakProp'), it picks a
    Decl for some degree of uniquing and reports the problem under a subflag,
    -Warc-maybe-repeated-use-of-receiver. This gives a way to tune the
    aggressiveness of the warning for a particular project.

    The warning is not on by default because it is not flow-sensitive and thus
    may have a higher-than-acceptable rate of false positives, though it is
    less noisy than -Wreceiver-is-weak. On the other hand, it will not warn
    about some cases that may be legitimate issues that -Wreceiver-is-weak
    will catch, and it does not attempt to reason about methods returning weak
    values.

    Even though this is not a real "analysis-based" check I've put the bug
    emission code in AnalysisBasedWarnings for two reasons: (1) to run on
    every kind of code body (function, method, block, or lambda), and (2) to
    suggest that it may be enhanced by flow-sensitive analysis in the future.

    The second (smaller) half of this work is to extend it to weak locals
    and weak ivars. This should use most of the same infrastructure.

    Part of <rdar://problem/12280249>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164854 91177308-0d34-0410-b5e6-96231b3b80d8

commit b22c7dc707cf3770ff3b5e5f11f11fd0aaa06d9b
Author: Dan Gohman <gohman@apple.com>
Date:   Fri Sep 28 21:58:29 2012 +0000

    Add basic support for adding !tbaa.struct metadata on llvm.memcpy calls for
    struct assignment.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164853 91177308-0d34-0410-b5e6-96231b3b80d8

commit 72ab27732ea7a42d756a1e79727f86fbe391b42b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Sep 28 21:23:50 2012 +0000

    When processing an InitListExpr and skipping the initialization of an invalid
    record, skip at least one element from the InitListExpr to avoid an infinite
    loop if we're initializing an array of unknown bound.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164851 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3c88301b551add30e9a4b59af325534643dc4b21
Author: Richard Trieu <rtrieu@google.com>
Date:   Fri Sep 28 20:32:51 2012 +0000

    Update template type diffing to handle qualifiers.  Differing qualifiers will
    now be printed with highlighting.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164843 91177308-0d34-0410-b5e6-96231b3b80d8

commit 70d38f3179251bb3e7253a52bf54f8fa2314590a
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Sep 28 20:20:52 2012 +0000

    Allow __builtin_bswap32/64 in constant expressions, like gcc does. Patch by Tijl Coosemans!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164841 91177308-0d34-0410-b5e6-96231b3b80d8

commit 65eaecf09ea407626fa5b88178b579f2ce5f4177
Author: Richard Trieu <rtrieu@google.com>
Date:   Fri Sep 28 19:51:57 2012 +0000

    Clean up part of template type diffing.  Moved repeated code to separate
    functions.  Reworked one of the conditionals.  No functional changes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164839 91177308-0d34-0410-b5e6-96231b3b80d8

commit a5ee089fffc9c98d454694f80e7b541e97ca495e
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Sep 28 19:05:17 2012 +0000

    Modern objcective-C translator. When doing rewriting, Do not
    use the integrated pre-processor, preprocess in objective-c++ mode.
    // rdar://12189793.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164836 91177308-0d34-0410-b5e6-96231b3b80d8

commit 580cd17f256259f39a382e967173f34d68e73859
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Sep 28 17:15:25 2012 +0000

    [analyzer] Handle inlined constructors for rvalue temporaries correctly.

    Previously the analyzer treated all inlined constructors like lvalues,
    setting the value of the CXXConstructExpr to the newly-constructed
    region. However, some CXXConstructExprs behave like rvalues -- in
    particular, the implicit copy constructor into a pass-by-value argument.
    In this case, we want only the /contents/ of a temporary object to be
    passed, so that we can use the same "copy each argument into the
    parameter region" algorithm that we use for scalar arguments.

    This may change when we start modeling destructors of temporaries,
    but for now this is the last part of <rdar://problem/12137950>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164830 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0006ba445962621ed82ec84400a6b978205a3fbc
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Sep 28 17:15:21 2012 +0000

    [analyzer] Create a temp region when a method is called on a struct rvalue.

    An rvalue has no address, but calling a C++ member function requires a
    'this' pointer. This commit makes the analyzer create a temporary region
    in which to store the struct rvalue and use as a 'this' pointer whenever
    a member function is called on an rvalue, which is essentially what
    CodeGen does.

    More of <rdar://problem/12137950>. The last part is tracking down the
    C++ FIXME in array-struct-region.cpp.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164829 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6f61df3e7256413dcb99afb9673f4206e3c4992c
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Sep 28 17:15:12 2012 +0000

    [analyzer] Create a temporary region for rvalue structs when accessing fields

    Struct rvalues are represented in the analyzer by CompoundVals,
    LazyCompoundVals, or plain ConjuredSymbols -- none of which have associated
    regions. If the entire structure is going to persist, this is not a
    problem -- either the rvalue will be assigned to an existing region, or
    a MaterializeTemporaryExpr will be present to create a temporary region.
    However, if we just need a field from the struct, we need to create the
    temporary region ourselves.

    This is inspired by the way CodeGen handles calls to temporaries;
    support for that in the analyzer is coming next.

    Part of <rdar://problem/12137950>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164828 91177308-0d34-0410-b5e6-96231b3b80d8

commit da3d76b4cfbb5ebeb79e03a0abeabd403fe9260a
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Fri Sep 28 16:44:29 2012 +0000

    Avoid malloc thrashing in the uninitialized value analysis.

    - The size of the packed vector is often small, save mallocs using SmallBitVector.
    - Copying SmallBitVectors is also cheap, remove a level of indirection.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164827 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1c84c68b6d7a92416493ab6c36f630de48c65d08
Author: Daniel Jasper <djasper@google.com>
Date:   Fri Sep 28 15:45:07 2012 +0000

    Set Diag.ErrorOccurred even if a DiagnosticConsumer does not want it in
    diagnostic count.

    If a DiagnosticConsumer sub-class overwrites IncludeInDiagnosticCounts,
    this should change diagnostic counts. However, it currently also
    influences Diag.ErrorOccurred, which in turn influences the behavior of
    parsing and semantic analysis (in a way that can make it crash).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164824 91177308-0d34-0410-b5e6-96231b3b80d8

commit 919a2d7a63eec8f6e1e95e85306e0dc21ef91883
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Thu Sep 27 22:13:33 2012 +0000

    Fix a regression from r164656.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164804 91177308-0d34-0410-b5e6-96231b3b80d8

commit bf24792e00a47fd9d74ff21e21d2cbffc6d62818
Author: Anna Zaks <ganna@apple.com>
Date:   Thu Sep 27 21:57:17 2012 +0000

    [analyzer] Address Jordan's code review for r164790.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164803 91177308-0d34-0410-b5e6-96231b3b80d8

commit 377945cc9e4f23cdbb01ade2a664acd5ff95a888
Author: Anna Zaks <ganna@apple.com>
Date:   Thu Sep 27 21:57:14 2012 +0000

    [analyzer] IvarInvalidation: track synthesized ivars and allow escape
    through property getters.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164802 91177308-0d34-0410-b5e6-96231b3b80d8

commit 69e431e23d95013c3401067af112da9d6dbe10e1
Author: Anna Zaks <ganna@apple.com>
Date:   Thu Sep 27 20:32:46 2012 +0000

    Unbreak cmake build
    (fixup for r164790)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164791 91177308-0d34-0410-b5e6-96231b3b80d8

commit 88a83e3f3bade5497ff371ed5a570b83d9373e3a
Author: Anna Zaks <ganna@apple.com>
Date:   Thu Sep 27 19:45:15 2012 +0000

    [analyzer] Add an experimental ObjC direct ivar assignment checker.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164790 91177308-0d34-0410-b5e6-96231b3b80d8

commit ad0ce53c8219456938405b84c5d13341a47e3d94
Author: Anna Zaks <ganna@apple.com>
Date:   Thu Sep 27 19:45:11 2012 +0000

    Make getDefaultSynthIvarName() a member of ObjCPropertyDecl.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164789 91177308-0d34-0410-b5e6-96231b3b80d8

commit b087bbf3cf44a56d60ad1ed6fd5abb48dab0e0b3
Author: Anna Zaks <ganna@apple.com>
Date:   Thu Sep 27 19:45:08 2012 +0000

    [analyzer] Address Jordan's code review comments for r164716.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164788 91177308-0d34-0410-b5e6-96231b3b80d8

commit 023bd7d6ff3bf9ad6c9fa2e404924195e4f31584
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Thu Sep 27 17:37:30 2012 +0000

    Pass PrintingPolicy by reference, copying it isn't cheap.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164781 91177308-0d34-0410-b5e6-96231b3b80d8

commit cc59e91a50dae1e0fdcbb0757a69a2941b2ba69c
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Sep 27 14:55:08 2012 +0000

    clang/test/CodeGen/ms-inline-asm.c: It requires x86 codegen. Reported by Joey Gouly.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164775 91177308-0d34-0410-b5e6-96231b3b80d8

commit 98cfcbf2aeff03d40575ab79b03e6baeff4e3570
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Sep 27 14:50:15 2012 +0000

    Following up on r164620, cope with symlinking from an embedded
    framework location out to a top-level framework. Such frameworks are
    not really embedded at all.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164774 91177308-0d34-0410-b5e6-96231b3b80d8

commit dc6c6d31d797300be4cbe899b4493c48900ffa65
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Thu Sep 27 12:52:55 2012 +0000

    Shrink LinkageInfo from 96 bits to 8 bits.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164771 91177308-0d34-0410-b5e6-96231b3b80d8

commit f3477c13eeaf11b32a41f181398fb5deffd0dd73
Author: Sylvestre Ledru <sylvestre@debian.org>
Date:   Thu Sep 27 10:16:10 2012 +0000

    Revert 'Fix a typo 'iff' => 'if''. iff is an abreviation of if and only if. See: http://en.wikipedia.org/wiki/If_and_only_if Commit 164766

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164769 91177308-0d34-0410-b5e6-96231b3b80d8

commit 94ff8e1f57c6382d91d0de981a4f311509d83e37
Author: Sylvestre Ledru <sylvestre@debian.org>
Date:   Thu Sep 27 09:57:10 2012 +0000

    Fix a typo 'iff' => 'if'

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164766 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7836011482bc26dfebf15df4fd993d07b607fbcf
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Sep 27 01:52:00 2012 +0000

    IvarInvalidationChecker.cpp: Remove an unused member, InterfD. [-Wunused-private-field]

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164745 91177308-0d34-0410-b5e6-96231b3b80d8

commit da313592441db36cf4b06be97c4bcc238ee6fa9c
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Thu Sep 27 01:42:07 2012 +0000

    Per discussion in http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20120917/064551.html
    have PPCallbacks::InclusionDirective pass the character range for the filename quotes or brackets.

    rdar://11113134 & http://llvm.org/PR13880

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164743 91177308-0d34-0410-b5e6-96231b3b80d8

commit 69e80c58bcfdeeadc90f205b9c1b234f8eed14ed
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Sep 27 01:40:12 2012 +0000

    Use %clang_cc1 so that the test works even if the target isn't available.

    Xcode-style clang builds only support Xcode's architectures, so mips
    isn't available and the driver tries to use gcc instead. cc1 will go
    ahead and do -fsyntax-only for any platform it knows about even if it
    can't actually compile.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164742 91177308-0d34-0410-b5e6-96231b3b80d8

commit c04bb926ef693c94560da254e87926e93bb9c92f
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Thu Sep 27 00:24:09 2012 +0000

    [libclang] Always report a CXCursor_MacroDefinition for code-completion
    results for a macro name, not CXCursor_NotImplemented.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164740 91177308-0d34-0410-b5e6-96231b3b80d8

commit 985c471af15d377a061bad608c4922184cdb99f2
Author: Bill Wendling <isanbard@gmail.com>
Date:   Thu Sep 27 00:11:09 2012 +0000

    Use a variable to stop us from building clang testing tools.
    <rdar://problem/11202465>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164739 91177308-0d34-0410-b5e6-96231b3b80d8

commit a4376dc59fbf9fc3062b72450fe7673c3093c261
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Wed Sep 26 22:48:46 2012 +0000

    Turn off this test, as the new and old SROA cause it produce different output.
    Left in a note that we need to turn it back on once the SROA fallout is cleared
    up.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164733 91177308-0d34-0410-b5e6-96231b3b80d8

commit bc3a3a7469f6b93df6397dd9789006fec7b0ea44
Author: Bill Wendling <isanbard@gmail.com>
Date:   Wed Sep 26 21:59:46 2012 +0000

    Update to new function attribute querying syntax.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164726 91177308-0d34-0410-b5e6-96231b3b80d8

commit 99c720828a2fcaf368c6a0f2502189d10dbd5c53
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Wed Sep 26 19:01:49 2012 +0000

    Allow -MF to be used in combination with -E -M or -E -MM.

    Fixes PR13851. Patch by Dimitry Andric!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164717 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5bf5c2ec54ede5352293e5739e9b44bea2f6b01b
Author: Anna Zaks <ganna@apple.com>
Date:   Wed Sep 26 18:55:16 2012 +0000

    [analyzer] Add experimental ObjC invalidation method checker.

    This checker is annotation driven. It checks that the annotated
    invalidation method accesses all ivars of the enclosing objects that are
    objects of type, which in turn contains an invalidation method.

    This is driven by
    __attribute((annotation("objc_instance_variable_invalidator")).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164716 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0be2638cc5809bbf8645a2721e80507abd076790
Author: Anna Zaks <ganna@apple.com>
Date:   Wed Sep 26 18:55:09 2012 +0000

    [analyzer] Commit a test case for r164579.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164715 91177308-0d34-0410-b5e6-96231b3b80d8

commit b2d6bc30a454c6831730eba322ffa6e2db751129
Author: Ted Kremenek <kremenek@apple.com>
Date:   Wed Sep 26 18:19:55 2012 +0000

    Have set-xcode-analyer report an error if no xcspec file could be found.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164713 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9d86eab84b4169b9083a7b34f70ba9beeaf21537
Author: Ted Kremenek <kremenek@apple.com>
Date:   Wed Sep 26 18:13:03 2012 +0000

    Make set-xcode-analyzer more tolerant of the naming differenes reported by xcode-select.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164712 91177308-0d34-0410-b5e6-96231b3b80d8

commit b35007cc4de8256b39dc1ed9abdeb8b2458c3c01
Author: Ted Kremenek <kremenek@apple.com>
Date:   Wed Sep 26 18:06:08 2012 +0000

    Revert "Use sep instead of ' '."

    This isn't correct, as Jordan correctly points out.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164711 91177308-0d34-0410-b5e6-96231b3b80d8

commit d278dbe43aff06865ae3388ba6b4ac5a9d68e179
Author: DeLesley Hutchins <delesley@google.com>
Date:   Wed Sep 26 17:57:31 2012 +0000

    Fix template instantiation of attributes.  More specifically, fix the case
    where an attribute is attached to a forward declaration of a template function,
    and refers to parameters of that declaration, but is then inherited by the
    definition of that function.  When the definition is instantiated, the
    parameter references need to be remapped.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164710 91177308-0d34-0410-b5e6-96231b3b80d8

commit fb9a0ede96023d18af24ee98854db9606fdafb5c
Author: Ted Kremenek <kremenek@apple.com>
Date:   Wed Sep 26 17:23:31 2012 +0000

    Use sep instead of ' '.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164709 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1aca4565aba1b5dc5dfbbfe4446f630b846fe01f
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Sep 26 16:41:11 2012 +0000

    Make our mini-stdint.h platform-independent by using predefined macros.

    This also adds a definition for uint64_t, which was causing build failures
    on some platforms. (I'm actually surprised this didn't happen on more
    builders, but maybe the search paths are different.)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164706 91177308-0d34-0410-b5e6-96231b3b80d8

commit 526d24444c91404dc4165b141e5ec095125c1bc8
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Sep 26 16:39:56 2012 +0000

    [libclang] Remove the ParentKind cursor kind from code-completion results.

    This is to reduce dependency to cursors for the code-completion results.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164705 91177308-0d34-0410-b5e6-96231b3b80d8

commit e6d22027bc22d3767a2acdc80299c76b91159867
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Wed Sep 26 16:39:46 2012 +0000

    Have ASTUnit::Save() return a bool to indicate save error.

    Removes a dependency of ASTUnit to clang-c/Index.h.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164704 91177308-0d34-0410-b5e6-96231b3b80d8

commit 86b671b603142f7368be19fcf49971f0aaa2de39
Author: Logan Chien <tzuhsiang.chien@gmail.com>
Date:   Wed Sep 26 09:40:37 2012 +0000

    Fix build failure and enhance the testcase for unwind.h.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164683 91177308-0d34-0410-b5e6-96231b3b80d8

commit 025560c728931c18aa73a37dea872b155c937f43
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Wed Sep 26 09:10:53 2012 +0000

    Run test in a freestanding environment so it doesn't accidentally pick up system headers for the wrong target.

    While there add a test that verifies that the header parses in C++ mode.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164679 91177308-0d34-0410-b5e6-96231b3b80d8

commit dc32de2d92fe4e68e44406ee9667265103fb89bf
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Wed Sep 26 09:09:17 2012 +0000

    Fix two more tests that didn't do anything.

    Found with
      find test -type f | xargs grep RUN: | grep '%clang' | grep -iv '%s' | grep -v '%t' | grep -v '\\$'

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164678 91177308-0d34-0410-b5e6-96231b3b80d8

commit c888133119dece5f3a60a1f02a8a3c3916898206
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Wed Sep 26 09:02:07 2012 +0000

    Make this test actually test something

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164677 91177308-0d34-0410-b5e6-96231b3b80d8

commit 93dec51750411678bb9c5bc1b27b259f5f5a23bd
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Wed Sep 26 08:19:01 2012 +0000

    Revert r163022, it caused PR13924.

    Add a test for PR13924. Do not revert the test added in r163022,
    it surprisingly still passes even after reverting the code changes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164672 91177308-0d34-0410-b5e6-96231b3b80d8

commit c5e3df7d9951502fe016445f1c93dc9a3efea4df
Author: Logan Chien <tzuhsiang.chien@gmail.com>
Date:   Wed Sep 26 06:35:17 2012 +0000

    Add struct keyword before _Unwind_Context.

    In the C programming language, we have to add the
    "struct" keyword.  Otherwise, the compiler will
    emit error message.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164665 91177308-0d34-0410-b5e6-96231b3b80d8

commit 732cdf383f9030ff2b9fb28dfbdae2285ded80c6
Author: Ted Kremenek <kremenek@apple.com>
Date:   Wed Sep 26 06:00:14 2012 +0000

    Remove unnecessary ASTContext& parameter from SymExpr::getType().

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164661 91177308-0d34-0410-b5e6-96231b3b80d8

commit 385cc5f01b59af0183a825351d93695ca7185091
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Wed Sep 26 05:40:16 2012 +0000

    Add codegen support for the __debugbreak intrinsic.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164660 91177308-0d34-0410-b5e6-96231b3b80d8

commit 80bfa3d125fa0b9c636977ea37b4a55b2c9b1037
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Wed Sep 26 04:34:21 2012 +0000

    Fix an edge case of mangling involving the combination of a lambda and typeid.
    typeid (and a couple other non-standard places where we can transform an
    unevaluated expression into an evaluated expression) is special
    because it introduces an an expression evaluation context,
    which conflicts with the mechanism to compute the current
    lambda mangling context.  PR12123.

    I would appreciate if someone would double-check that we get the mangling
    correct with this patch.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164658 91177308-0d34-0410-b5e6-96231b3b80d8

commit d7a6b1640e565487d163023a6a2e83f55476ae96
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Wed Sep 26 02:36:12 2012 +0000

    Fix the AST representation for non-type template arguments to encode
    enough information so we can mangle them correctly in cases involving
    dependent parameter types. (This specifically impacts cases involving
    null pointers and cases involving parameters of reference type.)
    Fix the mangler to use this information instead of trying to scavenge
    it out of the parameter declaration.

    <rdar://problem/12296776>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164656 91177308-0d34-0410-b5e6-96231b3b80d8

commit 073819806ba2441e2a3e550107f1e756a6ee3ad0
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Sep 26 02:18:13 2012 +0000

    Teach Type::getAs<TemplateSpecializationType> that a TemplateSpecializationType
    for a type alias template can appear as sugar at any level of desugaring, just
    like a TypedefType.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164655 91177308-0d34-0410-b5e6-96231b3b80d8

commit a74b9cd8a6f6d6179713e2eed2d3d9ef8f5f72d1
Author: Ted Kremenek <kremenek@apple.com>
Date:   Tue Sep 25 23:58:39 2012 +0000

    Update checker build.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164649 91177308-0d34-0410-b5e6-96231b3b80d8

commit 663117ab56390a18f4157ca84c9a92e5c6cad054
Author: Michael J. Spencer <bigcheesegs@gmail.com>
Date:   Tue Sep 25 23:12:48 2012 +0000

    [Options] Store the option ID in OptTable::Info.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164644 91177308-0d34-0410-b5e6-96231b3b80d8

commit afbb66262948732dc0f9617ffd80768c7145e0c7
Author: Ted Kremenek <kremenek@apple.com>
Date:   Tue Sep 25 23:12:12 2012 +0000

    Remove 'const' version of getBasicVals(), which is useless.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164643 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2fd6956fd3020cdaf7452ee68435376125c60355
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Tue Sep 25 22:32:51 2012 +0000

    Rename CanFitInto64Bits to alwaysFitsInto64Bits per discussion on IRC.

    This makes the behavior clearer concerning literals with the maximum
    number of digits. For a 32-bit example, 4,000,000,000 is a valid uint32_t,
    but 5,000,000,000 is not, so we'd have to count 10-digit decimal numbers
    as "unsafe" (meaning we have to check for overflow when parsing them,
    just as we would for numbers with 11 digits or higher). This is the same,
    only with 64 bits to play with.

    No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164639 91177308-0d34-0410-b5e6-96231b3b80d8

commit 80ecf5e66738a7058da58489ca55200212f3d42c
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Sep 25 22:03:25 2012 +0000

    [driver] Add support for the -fno-fast-math option.
    rdar://12299433

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164638 91177308-0d34-0410-b5e6-96231b3b80d8

commit 162884d7063646224d1b0759b6568aaf1d8935b6
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Sep 25 19:29:50 2012 +0000

    [libclang] Do a AST concurrency check in clang_indexTranslationUnit_Impl.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164626 91177308-0d34-0410-b5e6-96231b3b80d8

commit d498f384d154e154e939a9c764054cd4a8d76819
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Sep 25 19:26:39 2012 +0000

    Improve upon r164450 and localize the logic of updating the type of
    a function decl inside the ASTNodeImporter::VisitFunctionDecl function.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164625 91177308-0d34-0410-b5e6-96231b3b80d8

commit 191046d0504cec221655e9821f264f492a70f0b1
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Tue Sep 25 19:09:15 2012 +0000

    Optimize NumericLiteralParser::GetIntegerValue().

    It does a conservative estimate on the size of numbers that can fit into
    uint64_t.  This bound is improved.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164624 91177308-0d34-0410-b5e6-96231b3b80d8

commit bf7f77ac1cd1f31fc6bf2072327eeee7baed5c6a
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Tue Sep 25 19:03:09 2012 +0000

    [analyzer] Add tests for symbolic expression liveness.

    There are very few tests here because SValBuilder is fairly aggressive
    about not building SymExprs that we can't evaluate, which saves memory
    and CPU but also makes it very much tied to the current constraint
    manager. We should probably scale back here and let things decay to
    UnknownVal later on.

    bitwise-ops.c tests that for the SymExprs we do create, we persist our
    assumptions about them. traversal-path-unification.c tests that we do
    clean out constraints on arbitrary SymExprs once they have actually died.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164623 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0073a5c7ce38e98365c00921316030627b3d129f
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Tue Sep 25 19:03:06 2012 +0000

    Reapply "[analyzer] Remove constraints on dead symbols as part of removeDeadBindings."

    Previously, we'd just keep constraints around forever, which means we'd
    never be able to merge paths that differed only in constraints on dead
    symbols.

    Because we now allow constraints on symbolic expressions, not just single
    symbols, this requires changing SymExpr::symbol_iterator to include
    intermediate symbol nodes in its traversal, not just the SymbolData leaf
    nodes.

    This depends on the previous commit to be correct. Originally applied in
    r163444, reverted in r164275, now being re-applied.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164622 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6e3bf21f20d4d744fdf5acd719e9f442f4a144fc
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Tue Sep 25 19:03:01 2012 +0000

    [analyzer] Calculate liveness for symbolic exprs as well as atomic symbols.

    No tests, but this allows the optimization of removing dead constraints.
    We can then add tests that we don't do this prematurely.

    <rdar://problem/12333297>

    Note: the added FIXME to investigate SymbolRegionValue liveness is
    tracked by <rdar://problem/12368183>. This patch does not change the
    existing behavior.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164621 91177308-0d34-0410-b5e6-96231b3b80d8

commit 156f0f0c0d733f668a43526d62b8149c068cb3a0
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Sep 25 18:29:14 2012 +0000

    Under certain terrible circumstances (<rdar://problem/10805775>),
    top-level frameworks can actually be symlinked over to embedded
    frameworks, and accessed via the top-level framework's headers. In
    this case, we need to determine that the framework was *actually* an
    embedded framework, so we can load the appropriate top-level module.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164620 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4d7e0ced7f16a04aabe2d8d91cbbb52fb1162810
Author: Alexander Kornienko <alexfh@google.com>
Date:   Tue Sep 25 17:18:14 2012 +0000

    Macro history (de-)serialization. Deserialization currently reads only the latest macro definition. Needs more work.

    Summary: Passes all tests (+ the new one with code completion), but needs a thorough review in part related to modules.

    Reviewers: doug.gregor

    Reviewed By: alexfh

    CC: cfe-commits, rsmith

    Differential Revision: http://llvm-reviews.chandlerc.com/D41

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164610 91177308-0d34-0410-b5e6-96231b3b80d8

commit 317d8f339c2ee7b59e0e8cc81646ef664e20532d
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Tue Sep 25 16:30:16 2012 +0000

    Examine the last, not the first, instruction from the MC matcher.

    If an MS-style inline asm is matched to multiple instructions, e.g., with a
    a WAIT-prefix, then we need to examine the operands of the last instruction
    instruction, not the prefix instruction.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164608 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1370d37f60a173b2acf0afce92db063f06b30b2d
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Sep 25 16:13:41 2012 +0000

    -iframework should allow separate arguments.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164607 91177308-0d34-0410-b5e6-96231b3b80d8

commit b09de5177ee8101818a59dcd0038c75b190a2509
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Sep 25 15:44:52 2012 +0000

    Introduce builtin macros to determine whether we're building a
    specific module (__building_module(modulename)) and to get the name of
    the current module as an identifier (__MODULE__).

    Used to help headers behave differently when they're being included as
    part of building a module. Oh, the irony.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164605 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9158a5624154bc43bbbf059c07a2f7b2cd45c1a1
Author: Alexander Kornienko <alexfh@google.com>
Date:   Tue Sep 25 12:42:05 2012 +0000

    A minor doc fix.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164601 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4c6d6dc793b95c1712333d8393c98ba15c7bdd97
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Sep 25 10:11:17 2012 +0000

    Fix failing test/Sema/wchar.c on ARM.

    Currently Sema/wchar.c fails because WCHAR_T_TYPE is defined as int,
    however on ARM wchar_t is unsigned int.

    This patch changes that, so this test passes for ARM.

    Patch by Joey Gouly!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164598 91177308-0d34-0410-b5e6-96231b3b80d8

commit ecd03b447bb0e2ed1954c77441d49a4a17ca8138
Author: John McCall <rjmccall@apple.com>
Date:   Tue Sep 25 10:10:39 2012 +0000

    When performing a ::delete of an object with a virtual destructor,
    be sure to delete the complete object pointer, not the original
    pointer.  This is necessary if the base being deleted is at a
    non-zero offset in the complete object.  This is only required
    for objects with virtual destructors because deleting an object
    via a base-class subobject when the base does not have a virtual
    destructor is undefined behavior.

    Noticed while reviewing the last four years of cxx-abi-dev
    activity.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164597 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0e33dcda5c0f642da737c00e65bcdea6b988ce0b
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Tue Sep 25 09:53:18 2012 +0000

    clang/test/CodeGenCXX/microsoft-*: Fix for -Asserts.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164594 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9653ab52b90e5f4ebf1f5ae842e8e5cbbcf5c1be
Author: John McCall <rjmccall@apple.com>
Date:   Tue Sep 25 09:10:17 2012 +0000

    Implement Mike Herrick's proposed noexcept mangling.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164593 91177308-0d34-0410-b5e6-96231b3b80d8

commit bd31574a0f01da2cb2abde004b36772eb8a048dc
Author: John McCall <rjmccall@apple.com>
Date:   Tue Sep 25 08:00:39 2012 +0000

    In the MS ABI, ctors return 'this'.  Patch by Dmitry Sokolov.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164592 91177308-0d34-0410-b5e6-96231b3b80d8

commit ea30e2f8667668173cf7433c3c80cf603bd922a4
Author: John McCall <rjmccall@apple.com>
Date:   Tue Sep 25 07:32:49 2012 +0000

    Add the Microsoft __is_interface_class type trait.
    Patch by Andy Gibbs!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164591 91177308-0d34-0410-b5e6-96231b3b80d8

commit e402e72273cde2a64fa6097c1fe93f500038675d
Author: John McCall <rjmccall@apple.com>
Date:   Tue Sep 25 07:32:39 2012 +0000

    Fix for r163013 regression and further __interface enhancement.
    Patch by Andy Gibbs!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164590 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9f357de8d5823f9b13cf33ad1f6af1dd69b7669f
Author: John McCall <rjmccall@apple.com>
Date:   Tue Sep 25 06:56:03 2012 +0000

    During jump-scope checking, build an ExprWithCleanups immediately
    into the enclosing scope;  this is a more accurate model but is
    (I believe) unnecessary in my test case due to other flaws.
    However, one of those flaws is now intentional:  blocks which
    appear in return statements can be trivially observed to not
    extend in lifetime past the return, and so we can allow a jump
    past them.  Do the necessary magic in IR-generation to make
    this work.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164589 91177308-0d34-0410-b5e6-96231b3b80d8

commit e49ff3ef3459e97fa76502bd9eae4ed9170fd048
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Sep 25 04:46:05 2012 +0000

    Fix crash when a decltype expression in a trailing return type refers to the
    function being instantiated. An error recovery codepath was recursively
    performing name lookup (and triggering an unbounded stack of template
    instantiations which blew out the stack before hitting the depth limit).

    Patch by Wei Pan!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164586 91177308-0d34-0410-b5e6-96231b3b80d8

commit 511e3ae61bc2ff3803195587fe9774cb815726fc
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Tue Sep 25 01:02:42 2012 +0000

    Delete some code which is, as far as I can tell, dead.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164580 91177308-0d34-0410-b5e6-96231b3b80d8

commit c693339753d7ec0b9af6a6e4173aeaf6f9ec866c
Author: Anna Zaks <ganna@apple.com>
Date:   Tue Sep 25 00:31:43 2012 +0000

    [analyzer] Fix a buildbot crash triggered by turning on dynamic
    dispatch.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164579 91177308-0d34-0410-b5e6-96231b3b80d8

commit 54b3ba8cf2eb4886a88cdb8adedb15f43333ff1d
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Sep 25 00:23:05 2012 +0000

    Don't produce diagnostics for missing ctor-initializers during template
    instantiations if we encountered errors parsing some of the initializers.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164578 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6319917b5021e9602389b49ca4f245d235e9b90a
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Mon Sep 24 23:02:26 2012 +0000

    Handle C++ functional casts in a similar way to C-style casts in
    unused expression warnings.  <rdar://problem/12359208>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164569 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7935dde8e4dd8089536e28d51a0864252064ecd3
Author: Chad Rosier <mcrosier@apple.com>
Date:   Mon Sep 24 22:58:50 2012 +0000

    Update for r164567.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164568 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9b760e8050c6ffcffdfdbde3f8db2992fa717aab
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Mon Sep 24 22:51:51 2012 +0000

    objective-C: use 'instance variables' as plural when referring
    to the feature.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164566 91177308-0d34-0410-b5e6-96231b3b80d8

commit 59ed9e40bbb6d0b8f8cd194e059624e954b0eae7
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Mon Sep 24 22:00:36 2012 +0000

    objective-C: remove use of 'ivar' in favor of
    'instance variable' in text of all diagnostics
    for objective-C: // rdar://12352442

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164559 91177308-0d34-0410-b5e6-96231b3b80d8

commit 81d18bf944bd885c48b693c2c8c651607001ad9d
Author: Ted Kremenek <kremenek@apple.com>
Date:   Mon Sep 24 21:17:14 2012 +0000

    Add clarifying comment.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164557 91177308-0d34-0410-b5e6-96231b3b80d8

commit dd152615ff4ef03ba1f28f50f6040a28be301b0e
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Mon Sep 24 21:09:05 2012 +0000

    More tests for r164545 (change extension warning about 'long long').

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164556 91177308-0d34-0410-b5e6-96231b3b80d8

commit 374b3837d676133fcc1eb70a25c8baf8ec4a5c4a
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Mon Sep 24 21:07:17 2012 +0000

    StringRef'ize Preprocessor::CreateString().

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164555 91177308-0d34-0410-b5e6-96231b3b80d8

commit 33d054b0932b1ed5d2b30e41946f6aec5030c12e
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Mon Sep 24 20:56:28 2012 +0000

    Replace raw call to snprintf() by llvm streams.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164554 91177308-0d34-0410-b5e6-96231b3b80d8

commit b0f6b9c94077446ceb29167add2e87fb99733a55
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Mon Sep 24 19:57:59 2012 +0000

    Replace an assertion with an error for empty __asm statements.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164551 91177308-0d34-0410-b5e6-96231b3b80d8

commit 40d39e39e46eb36635c9735381ca5c4f916d30cd
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Mon Sep 24 19:57:55 2012 +0000

    Fix a comment typo and clean up formatting.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164550 91177308-0d34-0410-b5e6-96231b3b80d8

commit c12906ee78e006df6a71acf52ca9dd3171ddbf07
Author: Douglas Gregor <dgregor@apple.com>
Date:   Mon Sep 24 19:56:18 2012 +0000

    Make sure that we don't end up making an #undef'd macro visible after
    the fact. Test cases will come when we're actually (de-)serializing
    macro history.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164549 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5e02f6525d109c42650575c352bd2fdb14ed4193
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Mon Sep 24 19:27:20 2012 +0000

    [libclang] Bring CXCursor_AsmStmt back as an alias for CXCursor_GCCAsmStmt.

    This was renamed in r162632 which was badness because the C API needs to be stable.
    rdar://12360096

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164547 91177308-0d34-0410-b5e6-96231b3b80d8

commit 71455895e6b333f42d226646bc93715f8f572870
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Mon Sep 24 19:05:10 2012 +0000

    Include 'long long' extension warning in the LongLong group so that it can be
    silenced by -Wno-long-long.  Thanks Richard Smith for the fix idea!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164546 91177308-0d34-0410-b5e6-96231b3b80d8

commit e3b136bd873508c9ac0ee6eba98c2a810a177eba
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Mon Sep 24 18:19:21 2012 +0000

    Change the wording of the extension warning from
    > 'long long' is an extension when C99 mode is not enabled
    to
    > 'long long' is a C++11 extension
    while compiling in C++98 mode.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164545 91177308-0d34-0410-b5e6-96231b3b80d8

commit 70e5b575e187beb10f4a10667d9f4f5227131c40
Author: Anna Zaks <ganna@apple.com>
Date:   Mon Sep 24 17:43:47 2012 +0000

    [analyzer] Really turn on dynamic-bifurcation on by default.

    Thanks to Byoungyoung for realizing taht we are not passing the default
    option correctly.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164543 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8cd3f1505f7c8b71cb77aeb8027e6059eb8b6289
Author: Anna Zaks <ganna@apple.com>
Date:   Mon Sep 24 17:43:44 2012 +0000

    [analyzer] Remove unused.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164542 91177308-0d34-0410-b5e6-96231b3b80d8

commit 05c3b9ac74e12238e7ec5f237132e2348a8b5f4e
Author: Anna Zaks <ganna@apple.com>
Date:   Mon Sep 24 17:43:41 2012 +0000

    [analyzer]Prevent infinite recursion(assume->checker:evalAssume->assume)

    (Unfortunately, I do not have a good reduced test case for this.)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164541 91177308-0d34-0410-b5e6-96231b3b80d8

commit 68bf16f8d1e7c8dff8732f8aae4b4b418054216f
Author: Alexander Potapenko <glider@google.com>
Date:   Mon Sep 24 10:25:24 2012 +0000

    Use an explicit target to test that source fortification is off when building for Darwin with -faddress-sanitizer.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164485 91177308-0d34-0410-b5e6-96231b3b80d8

commit fc97ea29b1afd9e87341bce2b0cbb0c7172b7dd8
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Mon Sep 24 09:53:54 2012 +0000

    Small cleanup of literal semantic analysis: hiding 'char *' pointers behind
    StringRef makes code cleaner.  Also, make the temporary buffer smaller:
    512 characters is unreasonably large for integer literals.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164484 91177308-0d34-0410-b5e6-96231b3b80d8

commit c07a9cb049c33e0f341b622f52be589892452a66
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Mon Sep 24 01:10:25 2012 +0000

    Update the Clang tests which run with a full optimization pipeline for
    the new SROA pass. This is a benign change: the order of PHI nodes
    changed.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164481 91177308-0d34-0410-b5e6-96231b3b80d8

commit 11e141d61637ac04f7de71141de9d371df728a38
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Mon Sep 24 00:34:18 2012 +0000

    unittests/AST/StmtPrinterTest.cpp: Suppress a LP64-assumed test, "0x100000000i128 => 4294967296L", for now.

    LONG_MAX is 2147483647L on common 32 bit and LLP64 (Windows x64).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164478 91177308-0d34-0410-b5e6-96231b3b80d8

commit 525394e6c2b0cd0ef4de47a402e82029402ff360
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sun Sep 23 20:29:07 2012 +0000

    As a followup for r164303, add some tests for printing literals that test
    printing directly rather than through a complicated machinery of ObjC rewriter.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164477 91177308-0d34-0410-b5e6-96231b3b80d8

commit 03a86385d6628398e1671db1d1970eb83ef0f8b3
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Sun Sep 23 03:05:41 2012 +0000

    Implement ToolChain::IsUnwindTablesDefault to reduce code duplication a bit.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164473 91177308-0d34-0410-b5e6-96231b3b80d8

commit 76f74ad696abe882e4ee6466913f554580ec5a59
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Sat Sep 22 22:58:57 2012 +0000

    On Hexagon getArchName() never returns x86_64, simplify the function.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164470 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7707262bd36e3f00285cec281851b47eef5a5b27
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Sat Sep 22 22:51:00 2012 +0000

    Use pipes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164469 91177308-0d34-0410-b5e6-96231b3b80d8

commit d0364fb1d7e5ad0f1e8969f9816efd100f46d823
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Sat Sep 22 22:30:04 2012 +0000

    Use FileCheck.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164468 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0bd9838751384181ff387f2fb346896792b89617
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Sep 22 21:47:50 2012 +0000

    Comment sema: warn when comment has \deprecated but declaration does not have a
    deprecation attribute ('deprecated', 'availability' or 'unavailable').

    This warning is under a separate flag, -Wdocumentation-deprecated-sync, so it
    can be turned off easily while leaving other -Wdocumentation warnings on.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164467 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4bc38d69a2cf391555644900d78d074634973aa5
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Sep 22 21:44:37 2012 +0000

    Remove superfluous \namespace command.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164466 91177308-0d34-0410-b5e6-96231b3b80d8

commit c12d6a027662c978fc418c6fb584222fb3638483
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Sep 22 17:52:29 2012 +0000

    Fix cindex.py compatibility with older libclang.so

    The issue is that we were calling clang_getCompletionBriefComment
    unconditionally.  New we check if this function is available before calling it.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164464 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0d8ecf3a455a77027c55b050a63bec7ee842c1b5
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Sat Sep 22 15:26:38 2012 +0000

    Use FileCheck.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164462 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6f009b68b9f7aaf280144b0cd81d6a0b23c733a6
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Sat Sep 22 15:04:11 2012 +0000

    Fix pr13749. There is still a lot of code using getArchName that should be
    using getArch, but I will try to fix them one at time to add tests.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164460 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2ad11cd666f8e80463b5fd155072633f8e1283a4
Author: Abramo Bagnara <abramo.bagnara@bugseng.com>
Date:   Sat Sep 22 09:05:22 2012 +0000

    Avoid multiple atomic builtin declaration.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164454 91177308-0d34-0410-b5e6-96231b3b80d8

commit f0fdefc13a58db2a8b32bb47ac23bc16efad6fda
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Sat Sep 22 01:58:06 2012 +0000

    When importing a FunctionProtoType::ExtProtoInfo, its ExceptionSpecDecl can point to the
    FunctionDecl that we are importing the FunctionProtoType for, in which case we'll have
    infinite recursion when importing.

    Initially create a FunctionProtoType with null ExceptionSpecDecl/ExceptionSpecTemplate and
    update the type in ASTNodeImporter::VisitFunctionDecl after the FunctionDecl has been created.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164450 91177308-0d34-0410-b5e6-96231b3b80d8

commit b9d4e5e3bb235f1149e99d3c833ff7cb3474c9f1
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Sep 22 01:25:06 2012 +0000

    [analyzer] Suppress bugs whose paths go through the return of a null pointer.

    This is a heuristic intended to greatly reduce the number of false
    positives resulting from inlining, particularly inlining of generic,
    defensive C++ methods that live in header files. The suppression is
    triggered in the cases where we ask to track where a null pointer came
    from, and it turns out that the source of the null pointer was an inlined
    function call.

    This change brings the number of bug reports in LLVM from ~1500 down to
    around ~300, a much more manageable number. Yes, some true positives may
    be hidden as well, but from what I looked at the vast majority of silenced
    reports are false positives, and many of the true issues found by the
    analyzer are still reported.

    I'm hoping to improve this heuristic further by adding some exceptions
    next week (cases in which a bug should still be reported).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164449 91177308-0d34-0410-b5e6-96231b3b80d8

commit 53221da865144db0ba6bd89ab30bcf81de0fe5d2
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Sep 22 01:25:00 2012 +0000

    [analyzer] Track a null value back through FindLastStoreBRVisitor.

    Also, tidy up the other tracking visitors so that they mark the right
    things as interesting and don't do extra work.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164448 91177308-0d34-0410-b5e6-96231b3b80d8

commit d632d6fc606f0be438c3b6fe5c43f1b3f5db98b1
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Sep 22 01:24:56 2012 +0000

    [analyzer] Always allow BugReporterVisitors to see the bug path.

    Before, PathDiagnosticConsumers that did not support actual path output
    would (sensibly) cause the generation of the full path to be skipped.
    However, BugReporterVisitors may want to see the path in order to mark a
    BugReport as invalid.

    Now, even for a path generation scheme of 'None' we will still create a
    trimmed graph and walk backwards through the bug path, doing no work other
    than passing the nodes to the BugReporterVisitors. This isn't cheap, but
    it's necessary to properly do suppression when the first path consumer does
    not support path notes.

    In the future, we should try only generating the path and visitor-provided
    path notes once, or at least only creating the trimmed graph once.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164447 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8347d3d45e6f128bba19821f0d2f54cadd4d49bb
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Sep 22 01:24:53 2012 +0000

    [analyzer] Allow a BugReport to be marked "invalid" during path generation.

    This is intended to allow visitors to make decisions about whether a
    BugReport is likely a false positive. Currently there are no visitors
    making use of this feature, so there are no tests.

    When a BugReport is marked invalid, the invalidator must provide a key
    that identifies the invaliation (intended to be the visitor type and a
    context pointer of some kind). This allows us to reverse the decision
    later on. Being able to reverse a decision about invalidation gives us more
    flexibility, and allows us to formulate conditions like "this report is
    invalid UNLESS the original argument is 'foo'". We can use this to
    fine-tune our false-positive suppression (coming soon).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164446 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6686b6694a7998623550ff6529f2f53bfee94328
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Sep 22 01:24:49 2012 +0000

    [analyzer] Look through OpaqueValueExprs when tracking a nil value.

    This allows us to show /why/ a particular object is nil, even when it is
    wrapped in an OpaqueValueExpr.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164445 91177308-0d34-0410-b5e6-96231b3b80d8

commit 85e99373835fe1b4cec624bc48dc8dfe14c2a783
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Sep 22 01:24:46 2012 +0000

    [analyzer] Better path notes for null pointers passed as arguments.

    Rather than saying "Null pointer value stored to 'foo'", we now say
    "Passing null pointer value via Nth parameter 'foo'", which is much better.
    The note is also now on the argument expression as well, rather than the
    entire call.

    This paves the way for continuing to track arguments back to their sources.

    <rdar://problem/12211490>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164444 91177308-0d34-0410-b5e6-96231b3b80d8

commit 615a092a511cd2dfe1a5364ebf5f80e55e33034d
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Sep 22 01:24:42 2012 +0000

    Use llvm::getOrdinalSuffix to print ordinal numbers in diagnostics.

    Just a refactoring of common infrastructure. No intended functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164443 91177308-0d34-0410-b5e6-96231b3b80d8

commit 991bcb4370fe849603346ebbddc8dd47bc29d235
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Sep 22 01:24:38 2012 +0000

    [analyzer] Check that an ObjCIvarRefExpr's base is non-null even as an lvalue.

    Like with struct fields, we want to catch cases like this early,
    so that we can produce better diagnostics and path notes:

      PointObj *p = nil;
      int *px = &p->_x; // should warn here
      *px = 1;

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164442 91177308-0d34-0410-b5e6-96231b3b80d8

commit dd1d7d88f1fe6d7d7e79acaec3f83bc10d9f7b97
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Sep 22 01:24:33 2012 +0000

    [analyzer] Check that a member expr is valid even when the result is an lvalue.

    We want to catch cases like this early, so that we can produce better
    diagnostics and path notes:

      Point *p = 0;
      int *px = &p->x; // should warn here
      *px = 1;

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164441 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5d99a252c63a7745bcd71231ca5240d2a65e4f1d
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sat Sep 22 00:53:56 2012 +0000

    Fix bug which sometimes resulted in further diagnostics being produced after a
    fatal error. Previously, if a fatal error was followed by a diagnostic which
    was suppressed due to a SFINAETrap, we'd forget that we'd seen a fatal error.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164437 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3d442196134d18ed8ee17576638b758362b60742
Author: Chad Rosier <mcrosier@apple.com>
Date:   Fri Sep 21 22:22:39 2012 +0000

    [ms-inline asm] Use mnemonicIsValid() in a helpful assert.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164421 91177308-0d34-0410-b5e6-96231b3b80d8

commit 245d5a31e54f4ec69cc45885dfb4d42576fb3e5f
Author: Eric Christopher <echristo@apple.com>
Date:   Fri Sep 21 22:18:42 2012 +0000

    Mark the passed in "self" for a block as an object pointer so
    that the backend can mark it as the representative pointer for
    the block.

    rdar://12001329

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164418 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6ddca84d10cab043cf34e3f77ad2379cebd96af6
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Sep 21 22:17:13 2012 +0000

    Fix build errors.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164417 91177308-0d34-0410-b5e6-96231b3b80d8

commit ac70c1abbf97127ae33421332bd926232079b49e
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Sep 21 22:04:02 2012 +0000

    [AST importer] Do a correct import of a FunctionProtoType::ExtProtoInfo, don't pass
    nodes from the imported ASTContext.

    rdar://12348924

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164416 91177308-0d34-0410-b5e6-96231b3b80d8

commit fd09088880f758c874edc8d3d22fa922baec0483
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Sep 21 20:46:37 2012 +0000

    objective-C: when diagnosing deprecated/unavailable usage of
    setter or getter backing a deprecated/unavailable property,
    also not location of the property. // rdar://12324295

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164412 91177308-0d34-0410-b5e6-96231b3b80d8

commit 022301b85823fc474965ce487fc9d61a156287e2
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Fri Sep 21 20:39:32 2012 +0000

    Call CGM.SetLLVMFunctionAttributesForDefinition on thunks so that they get
    attributes like uwtable. Without uwtable a stack unwinder would be unable
    to go past the thunks.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164411 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8e1c598310d5cd75700cf800cb333b985ce05420
Author: Simon Atanasyan <satanasyan@mips.com>
Date:   Fri Sep 21 20:19:32 2012 +0000

    Add four new command line options for MIPS CPU selection:
    -mips32, -mips32r2, -mips64, -mips64r2.

    The patch reviewed by Eric Christopher.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164410 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0e6b15556a266fae5d7c7b72b6047445a46c503e
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Sep 21 20:16:09 2012 +0000

    Fix a typo in the PCH internals documentation

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164409 91177308-0d34-0410-b5e6-96231b3b80d8

commit fcf8eba0c78634243383f92a77381e919e7e27ef
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Sep 21 18:33:56 2012 +0000

    Experiment in BodyFarm of structuring AST creation calls in a hierarchy,
    so that they visually look like an AST dump.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164401 91177308-0d34-0410-b5e6-96231b3b80d8

commit b80e5bb7c7c47e06f2ff9c2f9d4b6b138db180e2
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Sep 21 18:33:54 2012 +0000

    Create helper method in BodyFarm for creating simple assignments.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164400 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0b5c5e487bbbdeb2a7688e6c753d3b2a7c337604
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Sep 21 18:33:52 2012 +0000

    Add helper method in BodyFarm to create unary dereferences.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164399 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ba05cd2e24e600ab59b2ed893ae598abbbc9a36
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Sep 21 18:13:27 2012 +0000

    Add helper method to BodyFarm for creating lvalue-to-rvalue conversions.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164397 91177308-0d34-0410-b5e6-96231b3b80d8

commit a6d62a10a6e1b8aa3c8294d8cac842c3720df7ff
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Sep 21 18:13:23 2012 +0000

    Add helper method to BodyFarm for creatinging integral casts.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164396 91177308-0d34-0410-b5e6-96231b3b80d8

commit d2f388299153d80cbe5ffaaed8a882b59a1b59bc
Author: DeLesley Hutchins <delesley@google.com>
Date:   Fri Sep 21 17:57:00 2012 +0000

    Thread-safety analysis: better handling of unreachable blocks.  Fixes a bug
    where a call to function marked 'noreturn' is followed by unreachable
    implicit destructor calls.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164394 91177308-0d34-0410-b5e6-96231b3b80d8

commit 938869941e5a01049fb301fbf82f3caa4c7efa09
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Sep 21 17:55:34 2012 +0000

    Re-enable faux-bodies by default.

    Try this again, now that r164392 is in place.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164393 91177308-0d34-0410-b5e6-96231b3b80d8

commit 016c33d7bbca20c096ad8c7400b70f33aadfb224
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Sep 21 17:54:35 2012 +0000

    Use helper method to create DeclRefExprs in BodyFarm, hopefully allevating
    them being correctly constructed.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164392 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0a4c0988c237678f4b5ba7375e51d24d2c55d67f
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Sep 21 17:54:32 2012 +0000

    Add some structuring comments.  No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164391 91177308-0d34-0410-b5e6-96231b3b80d8

commit 72d54e1ee7fdd6d309d34fae59844ab7b1d5b58e
Author: Chad Rosier <mcrosier@apple.com>
Date:   Fri Sep 21 17:50:09 2012 +0000

    Update comment.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164390 91177308-0d34-0410-b5e6-96231b3b80d8

commit 490dd9c70dc25bd7b1936a05d7878dc151f96c46
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Fri Sep 21 17:15:24 2012 +0000

    Use MapVectors to make the order we mark virtual functions used by a vtable
    deterministic. Fixes pr13868.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164382 91177308-0d34-0410-b5e6-96231b3b80d8

commit db9eeb88d8e63a28f0b7d623011ec286a84f68a3
Author: Bill Wendling <isanbard@gmail.com>
Date:   Fri Sep 21 16:07:49 2012 +0000

    Update for encapsulating the "construct*AlignmentFromInt" methods.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164374 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1cc9a80f8df979d5ff26739ebf3c134c4e6a4ed0
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Fri Sep 21 12:00:42 2012 +0000

    Revert r164364, "Flip "faux-bodies" in the analyzer on by default to flush out bugs."

    It crashed test/Analysis/Output/blocks.m on some hosts.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164368 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7821e0756744018a34c533f30cdabe62a72d4e4a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Sep 21 08:58:33 2012 +0000

    Make warnings about uninitialized fields include the field name.

    This makes the wording more informative, and consistent with the other
    warnings about uninitialized variables.

    Also, me and David who reviewed this couldn't figure out why we would
    need to do a lookup to get the name of the variable; so just print the
    name directly.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164366 91177308-0d34-0410-b5e6-96231b3b80d8

commit 85cb7a5696f93f8b98604d3e72525921a32537f0
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Sep 21 06:14:37 2012 +0000

    Flip "faux-bodies" in the analyzer on by default to flush out bugs.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164364 91177308-0d34-0410-b5e6-96231b3b80d8

commit ddc0c4814788dda4ef224cd4d22d07154a6ede49
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Sep 21 06:13:13 2012 +0000

    Simplify getRuntimeDefinition() back to taking no arguments.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164363 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1a6eac865260b2795e3555e569e6a2e990ee73bd
Author: Craig Topper <craig.topper@gmail.com>
Date:   Fri Sep 21 04:33:26 2012 +0000

    Doxygen-ify a comment.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164360 91177308-0d34-0410-b5e6-96231b3b80d8

commit b6b5b97c517cc651285f620a70b1ca52fa808c5a
Author: David Blaikie <dblaikie@gmail.com>
Date:   Fri Sep 21 03:21:07 2012 +0000

    PR13890: Warn on abstract final classes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164359 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1f94124b76680211f3585ac8c3b24b247f46fac3
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Sep 21 01:30:00 2012 +0000

    [PCH] After deserializing a DeclContext, if it has external lexical decls but not
    external visible decls, call DeclContext::setMustBuildLookupTable so that the
    "lazy decls" bit of the LookupPtr is set.

    Previously, in non-C++, if there were no new declarations causing the "lazy decls" bit
    to be set, then DeclContext::lookups_begin() would fail to return the decls from the PCH.

    Fixes rdar://12316296.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164351 91177308-0d34-0410-b5e6-96231b3b80d8

commit cc85d217d329aa3c78aa3f57a238e5b7931ee2c5
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Sep 21 00:52:24 2012 +0000

    Add faux-body support for dispatch_once().

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164348 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4c919eb0c022be30d6130446cb8d50a7e8da9f46
Author: Jim Grosbach <grosbach@apple.com>
Date:   Fri Sep 21 00:18:30 2012 +0000

    ARM: Use a dedicated intrinsic for vector bitwise select.

    The expression based expansion too often results in IR level optimizations
    splitting the intermediate values into separate basic blocks, preventing
    the formation of the VBSL instruction as the code author intended. In
    particular, LICM would often hoist part of the computation out of a loop.

    rdar://11011471

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164342 91177308-0d34-0410-b5e6-96231b3b80d8

commit 258f930227c1a102c9c22eee88df65f748863425
Author: Jim Grosbach <grosbach@apple.com>
Date:   Fri Sep 21 00:18:27 2012 +0000

    Tidy up. Trailing whitespace and 80 columns.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164341 91177308-0d34-0410-b5e6-96231b3b80d8

commit a43df9539644bf1c258e12710cd69d79b0b078cd
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Sep 21 00:09:11 2012 +0000

    Implement faux-body-synthesis of well-known functions in the static analyzer when
    their implementations are unavailable.  Start by simulating dispatch_sync().

    This change is largely a bunch of plumbing around something very simple.  We
    use AnalysisDeclContext to conjure up a fake function body (using the
    current ASTContext) when one does not exist.  This is controlled
    under the analyzer-config option "faux-bodies", which is off by default.

    The plumbing in this patch is largely to pass the necessary machinery
    around.  CallEvent needs the AnalysisDeclContextManager to get
    the function definition, as one may get conjured up lazily.

    BugReporter and PathDiagnosticLocation needed to be relaxed to handle
    invalid locations, as the conjured body has no real source locations.
    We do some primitive recovery in diagnostic generation to generate
    some reasonable locations (for arrows and events), but it can be
    improved.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164339 91177308-0d34-0410-b5e6-96231b3b80d8

commit 445895a97ae3f1d7bad3480839d31ed3ebcc9c83
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Sep 21 00:09:05 2012 +0000

    Constify method.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164338 91177308-0d34-0410-b5e6-96231b3b80d8

commit cca300a91966df70c9c320e477a3c26ba622673d
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Sep 21 00:09:03 2012 +0000

    Ensure that the Decl* wrapped by an AnalysisDeclContext cannot be changed after
    construction.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164337 91177308-0d34-0410-b5e6-96231b3b80d8

commit 20255039eb5844cd4301eda798032a638f765b2b
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Sep 21 00:09:01 2012 +0000

    Remove unused fields.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164336 91177308-0d34-0410-b5e6-96231b3b80d8

commit 67d45ec88d50b9c311beafeb52f08286d2b87d5a
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Sep 20 23:43:29 2012 +0000

    Serialize the 'IsConstexpr' bit of VarDecls. Fixes <rdar://problem/12328814>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164335 91177308-0d34-0410-b5e6-96231b3b80d8

commit 60ff198a22815b0aec5b96eaae977de067dcd4c1
Author: DeLesley Hutchins <delesley@google.com>
Date:   Thu Sep 20 23:14:43 2012 +0000

    Thread-safety analysis: fix bug where shared trylock was treated
    as exclusive.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164332 91177308-0d34-0410-b5e6-96231b3b80d8

commit 186af2de86aea41d7418158e68f96c1f8620e013
Author: DeLesley Hutchins <delesley@google.com>
Date:   Thu Sep 20 22:18:02 2012 +0000

    Thread safety analysis: properly canonicalize calls to virtual methods within
    lock expressions.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164324 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8b533d97e0683a0c87096b95927a2e9ce02243d4
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Sep 20 21:52:32 2012 +0000

    If the range in a for range statement doesn't have a viable begin/end function,
    but can be dereferenced to form an expression which does have viable begin/end
    functions, then typo-correct the range, even if something else goes wrong with
    the statement (such as inaccessible begin/end or the wrong type of loop
    variable).

    In order to ensure we recover correctly and produce any followup diagnostics in
    this case, redo semantic analysis on the for-range statement outside of the
    diagnostic trap, after issuing the typo-correction.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164323 91177308-0d34-0410-b5e6-96231b3b80d8

commit cb5336fa5985a02298aeccf473257c0fcd6b89b4
Author: David Blaikie <dblaikie@gmail.com>
Date:   Thu Sep 20 20:59:21 2012 +0000

    Fix typo. (s/Explided/Exploded/)

    Patch by Sean McBride.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164318 91177308-0d34-0410-b5e6-96231b3b80d8

commit a193f20916f0e0e5a3b0f76ca69e2b3870c1a325
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Sep 20 19:36:41 2012 +0000

    Improvements to my patch in r164143 per
    Richard's comments. // rdar://12202422

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164316 91177308-0d34-0410-b5e6-96231b3b80d8

commit d4a282be92ee55a0b392e45ce4582231af271d27
Author: David Blaikie <dblaikie@gmail.com>
Date:   Thu Sep 20 18:57:53 2012 +0000

    Make the wchar_t promotion test consistent across different hosts by specifying a target triple.

    This test behavior differs depending (at least) on whether
    sizeof(wchar_t) == sizeof(int) or not.

    When they are equal, the first redeclaration will fail because decltype(+L'x')
    is unsigned int instead of the expected int. This occurs on ARM.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164315 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0008c0caf6e74755fedd197a1ccfd47623dd65d6
Author: David Blaikie <dblaikie@gmail.com>
Date:   Thu Sep 20 18:42:02 2012 +0000

    Remove a test that is non-portable (cannot be execute on cross builds, for example)

    While it might be nice to have a quick end-to-end sanity test, it's just not
    really the right place for it & would require more work to enable lit to
    provide a detection flag ("XFAIL: cross" or similar) than the value we get from
    having this test. Early on it might've made more sense, but these days we've
    got some pretty good coverage across the stack with more targeted tests.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164314 91177308-0d34-0410-b5e6-96231b3b80d8

commit a405b2523b8857e0ba7e6374648b14f618879f33
Author: David Blaikie <dblaikie@gmail.com>
Date:   Thu Sep 20 18:38:57 2012 +0000

    Include types when a definition's type differs from a prior declaration.

    This is some really old code (took me a while to find the test cases) & the
    diagnostic text is slightly incorrect (it should really only apply to
    re/declarations/, redefinitions are an error regardless of whether the types
    match). Not sure if anyone cares about it, though.

    For now this just makes the diagnostic more clear in less obvious cases where
    the type of a declaration might not be explicitly written (eg: because it
    uses decltype)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164313 91177308-0d34-0410-b5e6-96231b3b80d8

commit b54b7646b2d00a85d80e40adf7c49553f150c736
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Sep 20 14:12:57 2012 +0000

    Add some matchers for basic AST nodes.

    Patch by Gábor Horváth.
    Review: http://llvm-reviews.chandlerc.com/D45

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164304 91177308-0d34-0410-b5e6-96231b3b80d8

commit a0a3c90abde4b52b96ce70bd062d81041092900c
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Thu Sep 20 14:07:17 2012 +0000

    StmtPrinter: Print floating point literals with the right suffix to disambiguate them from integers.

    Based on a patch by Olaf Krzikalla, UDL fixes by me.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164303 91177308-0d34-0410-b5e6-96231b3b80d8

commit 34af5a23af56af43cd6502096f1d7ed29ad34c20
Author: Nico Weber <nicolasweber@gmx.de>
Date:   Thu Sep 20 13:02:00 2012 +0000

    Be more consistent about ending suggestions with a '?'

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164301 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9620aa8c6726330c0357799706aa51f64cc449da
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Sep 20 11:03:56 2012 +0000

    clang/test/Analysis: Fix the declaration of strlen() for 32 bit targets.

      - Inputs/system-header-simulator.h: Declare strlen() with size_t.

      - malloc-interprocedural.c: Move the definition of size_t into the header above.

    Then XFAIL can be pruned.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164300 91177308-0d34-0410-b5e6-96231b3b80d8

commit 087c65fb270d7f465f221b543731f89343032e90
Author: Alexander Potapenko <glider@google.com>
Date:   Thu Sep 20 10:10:01 2012 +0000

    Disable source fortification on Darwin with AddressSanitizer.

    ASan doesn't play well with -D_FORTIFY_SOURCE, which is enabled by default starting at OS X 10.7

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164299 91177308-0d34-0410-b5e6-96231b3b80d8

commit b3278162bd6d34783607d4bfe8814df73e8ef8c1
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Sep 20 09:24:58 2012 +0000

    Provide better error messages for incorrect matchers.

    By changing the conversion operator into a conversion constructor, we
    can enabled based on the template parameters leading to better error
    messages. E.g.: stmt(decl()) will now create an error message including:

      note: candidate function not viable: no known conversion from
      'clang::ast_matchers::internal::BindableMatcher<clang::Decl>' to 'const
      clang::ast_matchers::internal::Matcher<clang::Stmt>' for 1st argument

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164298 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2d9cc1367af4c0a8bacc99d7012d1ddaaf4236c0
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Sep 20 08:44:12 2012 +0000

    test/Analysis/malloc-interprocedural.c: Mark it as XFAIL: cygwin,mingw,msvc for now. Investigating.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164295 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9c611373cc25300c02043bdde2f2a3d8008704f1
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Thu Sep 20 02:38:38 2012 +0000

    The keywords "true" and "false" shouldn't warn under -Wundef.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164279 91177308-0d34-0410-b5e6-96231b3b80d8

commit c20c7275c351f362b42915901d308ac66b8b71d1
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Sep 20 01:55:32 2012 +0000

    [analyzer] MallocChecker should not do post-call checks on inlined functions.

    If someone provides their own function called 'strdup', or 'reallocf', or
    even 'malloc', and we inlined it, the inlining should have given us all the
    malloc-related information we need. If we then try to attach new information
    to the return value, we could end up with spurious warnings.

    <rdar://problem/12317671>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164276 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8e289bb59c5c1c29900604b86238c3088f506782
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Sep 20 01:54:56 2012 +0000

    Revert "[analyzer] Remove constraints on dead symbols as part of removeDeadBindings."

    While we definitely want this optimization in the future, we're not
    currently handling constraints on symbolic /expressions/ correctly.
    These should stay live even if the SymExpr itself is no longer referenced
    because could recreate an identical SymExpr later. Only once the SymExpr
    can no longer be recreated -- i.e. a component symbol is dead -- can we
    safely remove the constraints on it.

    This liveness issue is tracked by <rdar://problem/12333297>.

    This reverts r163444 / 24c7f98828e039005cff3bd847e7ab404a6a09f8.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164275 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7c3c6bca2662704fbe038137d8ef2e4112359586
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Thu Sep 20 01:40:23 2012 +0000

    Handle lambdas where the lambda-declarator is an explicit "(void)".  PR13854.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164274 91177308-0d34-0410-b5e6-96231b3b80d8

commit d6f80daa84164ceeb8900da07f43b6a150edf713
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Sep 20 01:31:00 2012 +0000

    Per C++11 [class.friend]p3, the 'friend' keyword must appear first in a
    non-function friend declaration. Patch by Josh Magee!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164273 91177308-0d34-0410-b5e6-96231b3b80d8

commit 561e3c68864d11f39a07a6d1711ce08d2739a263
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Sep 20 01:02:05 2012 +0000

    PR13881: Add -Wzero-length-array for zero length array extension, and move it into -Wgnu.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164272 91177308-0d34-0410-b5e6-96231b3b80d8

commit 407c8470d50be8edaae7ed39a3139adf35af2921
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Wed Sep 19 23:52:13 2012 +0000

    Fix a small FIXME involving template partial ordering and
    member function templates with an rvalue ref qualifier.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164267 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9cef0064da0fe93cf60cc351d28ddf2e95fba0b3
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Wed Sep 19 23:27:04 2012 +0000

    Fix function template partial ordering rules for static vs. non-static
    functions.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164263 91177308-0d34-0410-b5e6-96231b3b80d8

commit 90b0bc6f41bc68ec7fb59b60a0fd8a61530e1d9d
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Wed Sep 19 22:56:24 2012 +0000

    ccc-analyzer: pass -stdlib=libc++ through to the analyzer.

    Otherwise clang can't analyze code that relies on features provided by libc++.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164262 91177308-0d34-0410-b5e6-96231b3b80d8

commit 847665dc988266931b6aeab7aeb2d311caf05efc
Author: Eric Christopher <echristo@apple.com>
Date:   Wed Sep 19 22:40:44 2012 +0000

    Grammar.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164260 91177308-0d34-0410-b5e6-96231b3b80d8

commit 20ec2c4d14b148e293fb4117a1874846779b1d23
Author: Eric Christopher <echristo@apple.com>
Date:   Wed Sep 19 22:01:42 2012 +0000

    Update and expand comment.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164254 91177308-0d34-0410-b5e6-96231b3b80d8

commit 28e3c9982500b6abd9f419f7baa505bebc9065ba
Author: Eric Christopher <echristo@apple.com>
Date:   Wed Sep 19 21:47:34 2012 +0000

    Handle a captured this for the debug information as well.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164253 91177308-0d34-0410-b5e6-96231b3b80d8

commit 195ff58b91ea106931c04f9bbdcf312925e3440c
Author: Eric Christopher <echristo@apple.com>
Date:   Wed Sep 19 21:47:29 2012 +0000

    Fix awkward comment.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164252 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2a237e03c407ff55bd8639b18658a8751955f1db
Author: DeLesley Hutchins <delesley@google.com>
Date:   Wed Sep 19 19:49:40 2012 +0000

    Thread-safety analysis:  Fix warning when EXCLUSIVE_LOCKS_REQUIRED
    is placed on a function that has no path to the exit block.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164244 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5b280f28351bbdc103cc50d3b0f52f92d286fa0a
Author: DeLesley Hutchins <delesley@google.com>
Date:   Wed Sep 19 19:18:29 2012 +0000

    Thread-safety analysis: fix ICE when EXCLUSIVE_LOCKS_REQUIRED or
    LOCKS_EXCLUDED is used on a method with a name that is is not a simple
    identifier.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164242 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1deeedb6808c6a2aa24de6317960199f04012345
Author: David Blaikie <dblaikie@gmail.com>
Date:   Wed Sep 19 18:46:03 2012 +0000

    Fix ABI dependent tests by providing an explicit target triple.

    Patch by Joey Gouly.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164239 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4d09f592dbd34154408e96278d0daca67649fb9d
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Sep 19 16:20:17 2012 +0000

    Fix test better way.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164234 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1050966ea67a8e1838bc0b072fdef12684f36227
Author: Alexander Kornienko <alexfh@google.com>
Date:   Wed Sep 19 15:17:49 2012 +0000

    Added link to HowToSetupToolingForLLVM.html. Added missing #include to the example.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164226 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3bd762deaace1d62dab413d22c7430434e57a0d5
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Wed Sep 19 14:11:44 2012 +0000

    Add some typedefs for clarity.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164223 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5931331d4b99c8c602fa3ab6c82b94adb7e5552f
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Wed Sep 19 13:40:40 2012 +0000

    ASTWriter: Tighten up assertions when emitting a declaration name.

    clang has recently started to warn about the enum compares:
    lib/Serialization/ASTWriter.cpp:2760:31: warning: comparison of literal 256 with expression of type
    'clang::DeclarationName::NameKind' is always true [-Wtautological-constant-out-of-range-compare]

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164220 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9b5ede58c32e779a777e828ea0bff29fb3d27bd4
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Wed Sep 19 13:13:52 2012 +0000

    Update clang for API change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164218 91177308-0d34-0410-b5e6-96231b3b80d8

commit 93e4599196654907dad3bd476013ad05d36ce604
Author: Craig Topper <craig.topper@gmail.com>
Date:   Wed Sep 19 02:26:47 2012 +0000

    Remove Context argument from TemplateDeductionInfo constructor. It was no longer needed after the unused Context member was removed in r164104.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164196 91177308-0d34-0410-b5e6-96231b3b80d8

commit 11267a32029b0095ba4b9799a64a2133e234037f
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Wed Sep 19 01:35:20 2012 +0000

    Test for r164186.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164187 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8da8a660128180a31479216111ff9b19b11c95b4
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Wed Sep 19 01:18:11 2012 +0000

    Add the TypeSourceInfo for the lambda call operator to the lambda's
    definition info; it needs to be there because the mangler needs to
    access it before we're finished defining the lambda class.
    PR12808.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164186 91177308-0d34-0410-b5e6-96231b3b80d8

commit bf4c7a8eb7cdfb11e00ed47422fa4ed47771c74c
Author: Hal Finkel <hfinkel@anl.gov>
Date:   Tue Sep 18 22:53:24 2012 +0000

    Add the freescale_ppc64_tree that should have been included in r164177.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164179 91177308-0d34-0410-b5e6-96231b3b80d8

commit 02014b485394cc93e0a2bd386e94424a5707ea69
Author: Hal Finkel <hfinkel@anl.gov>
Date:   Tue Sep 18 22:25:07 2012 +0000

    Add C/C++ header locations for the Freescale SDK.

    The Freescale SDK is based on OpenEmbedded, and this might be useful
    for other OpenEmbedded-based configurations as well.

    With minor modifications, patch by Tobias von Koch!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164177 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7de32964026e4c5ff32cbca484ffb24e73393d87
Author: Hal Finkel <hfinkel@anl.gov>
Date:   Tue Sep 18 22:25:03 2012 +0000

    Add e500mc and e5500 to the list of valid PPC CPU names.

    Patch by Tobias von Koch!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164176 91177308-0d34-0410-b5e6-96231b3b80d8

commit 97c6739a1e74a3131261081054ff4a75e4e3b64c
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Tue Sep 18 21:52:24 2012 +0000

    Fix a small bug in the way we handle builtin candidates for
    relational operators of enumeration type.  From the gcc testsuite.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164171 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9cd5b24315aea4bc58bac03cfb4874e076b013b8
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Tue Sep 18 21:11:30 2012 +0000

    Add an extra check for invalid decls in the lambda semantic analysis to avoid a crash.  PR13860.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164168 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3ba02522c8277e578a234f4f8fb042a21ceb853a
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Tue Sep 18 20:59:03 2012 +0000

    Remove invalid double colon in test case was previously ignored by FileCheck.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164167 91177308-0d34-0410-b5e6-96231b3b80d8

commit ab4702febef82409773f7c80ec02d53ddbb4d80e
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Sep 18 17:46:26 2012 +0000

    minor refactoring of my last check-in.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164145 91177308-0d34-0410-b5e6-96231b3b80d8

commit 15a9356464f0809e1cb24aa3a7cc2577914ff5bb
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Sep 18 17:37:21 2012 +0000

    c: warn when an integer value comparison with an
    integral expression have the obvious result.
    Patch reviewed by John McCall off line.
    // rdar://12202422

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164143 91177308-0d34-0410-b5e6-96231b3b80d8

commit f9361b504c14f50ffdd872710bc805f7259d200a
Author: Roman Divacky <rdivacky@freebsd.org>
Date:   Tue Sep 18 16:09:16 2012 +0000

    Follow up on llvm r164132.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164133 91177308-0d34-0410-b5e6-96231b3b80d8

commit 471f985ae04817e0e8198a925fc7d74eaacaf962
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Sep 18 15:58:06 2012 +0000

    Warn about self references in in-class initializers.

    This makes Clang warn about self references in in-class initializers,
    for example:

      struct S {
        int a = a + 42;
      };

    This basically just moves UninitializedFieldVisitor up a bit in
    SemaDeclCXX.cpp, and adds a call to it from ActOnCXXInClassMemberInitializer.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164131 91177308-0d34-0410-b5e6-96231b3b80d8

commit 08f0c53175bba899e7af6c6cc2cab25caf64ef2a
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Sep 18 14:17:42 2012 +0000

    Fix isDerivedFrom matcher.

    Without this patch, the isDerivedFrom matcher asserts in the
    "assert(ClassDecl != NULL);" in the new test, as a
    DependentTemplateSpecilizationType is not a sub-type of
    TemplateSpecializationType and also does not offer getAsCXXRecordDecl().

    I am not sure why this did not cause problems before. It is now (after
    the changed implementation of isDerivedFrom) easier to write a matcher
    that actually gets into this branch of the code.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164127 91177308-0d34-0410-b5e6-96231b3b80d8

commit e6d2a96cc9689be584c3bfc09ac527a03a25b3bc
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Sep 18 13:36:17 2012 +0000

    Add missing matcher for C-style cast expressions.

    Patch by Gábor Horváth.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164123 91177308-0d34-0410-b5e6-96231b3b80d8

commit ea104cd90ed2f468ccffe689750efaf4f8afa187
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Tue Sep 18 13:34:01 2012 +0000

    Disable some tests that fail when the x86 backend isn't built.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164122 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3680b4f7494b6744b9c5a25f83b63cd8b7e434fc
Author: Daniel Jasper <djasper@google.com>
Date:   Tue Sep 18 13:09:13 2012 +0000

    Make all VariadicDynCast-Expr-matchers StatementMatchers

    Having Expr-subclass-matchers being VariadicDynCast-Expr-matchers does
    not provide additional type safety and just makes using them harder. In
    the clang AST, expressions are always statements and an expression
    matcher can be used anywhere, a statement matcher is expected. Any given
    matcher definition still has at least one noun.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164121 91177308-0d34-0410-b5e6-96231b3b80d8

commit ffdf686f6fd9d84faa1aaf82f693988081aae481
Author: Craig Topper <craig.topper@gmail.com>
Date:   Tue Sep 18 05:34:55 2012 +0000

    Remove an unused private field exposed by the recent LLVM_DELETED_FUNCTION changes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164106 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6bd4e2bae896284171d3df58308629f7d7426c10
Author: Craig Topper <craig.topper@gmail.com>
Date:   Tue Sep 18 05:30:57 2012 +0000

    Remove an unused private field exposed by the recent LLVM_DELETED_FUNCTION changes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164104 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1a1e9955b3221822f8f2cd100be9b090168bfb78
Author: Craig Topper <craig.topper@gmail.com>
Date:   Tue Sep 18 05:21:59 2012 +0000

    Remove an unused private field exposed by the recent LLVM_DELETED_FUNCTION changes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164103 91177308-0d34-0410-b5e6-96231b3b80d8

commit be2fa7ebf01259b63dc52fe46c8d101c18e72269
Author: Craig Topper <craig.topper@gmail.com>
Date:   Tue Sep 18 04:52:05 2012 +0000

    Mark unimplemented copy constructors and copy assignment operators with LLVM_DELETED_FUNCTION.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164102 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4b0824229b96d024a96f3c7dd75ab70652c05c5b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Sep 18 00:52:05 2012 +0000

    If a comma operator is followed by a token which unambiguously indicates the
    start of a statement or the end of a compound-statement, diagnose the comma as
    a typo for a semicolon. Patch by Ahmed Bougacha! Additional test cases and
    minor refactoring by me.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164085 91177308-0d34-0410-b5e6-96231b3b80d8

commit 43f8c40b05482894d94a8779a5ccd0f9a35420f3
Author: Ted Kremenek <kremenek@apple.com>
Date:   Tue Sep 18 00:41:42 2012 +0000

    Per discussion on cfe-dev, remove -Wunique-enums entirely.  There
    is no compelling argument that this is a generally useful warning,
    and imposes a strong stylistic argument on code beyond what it was
    intended to find warnings in.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164083 91177308-0d34-0410-b5e6-96231b3b80d8

commit f224fb5de15e10cecd2d87fee73b0e39b503d924
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Mon Sep 17 23:57:35 2012 +0000

    objective-C: don't warn about class extension property's
    missing 'assign' attribute as it is determined by its
    overridden property in primary class. // rdar://12214070

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164080 91177308-0d34-0410-b5e6-96231b3b80d8

commit fa1ed8e6edd7381e3b27dd6536a6e4b72805748e
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Mon Sep 17 23:24:36 2012 +0000

    objective-C: add Doug's test for my last patch.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164079 91177308-0d34-0410-b5e6-96231b3b80d8

commit 03ebd3b4af9e4ab8e14a3f136d8a28df463f54ec
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Mon Sep 17 23:09:59 2012 +0000

    objective-C: improve on warnings about misplacement of method
    argument names. // rdar://12263549

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164077 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9d8c9d345a41b782943fd84fe20e9ebd3c568c5d
Author: Alexander Kornienko <alexfh@google.com>
Date:   Mon Sep 17 21:45:21 2012 +0000

    Added an example of an empty case label to avoid confusion.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164055 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6defd9f31eec51278d056f1bff885018e2321373
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Mon Sep 17 20:57:19 2012 +0000

    objective-C: peroform property attribute consistency
    checking on property declared in class extension.
    // rdar://12214070

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164053 91177308-0d34-0410-b5e6-96231b3b80d8

commit 08602359845e668194d111b794b8965358babfe6
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Mon Sep 17 19:15:26 2012 +0000

    objective-C: issue warning when there is no whitespace
    between objc method parameter name and colon.
    // rdar://12263549

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164047 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5fc1d0c4532c55cc47ba6628f296bf5b86d2eaf0
Author: Anna Zaks <ganna@apple.com>
Date:   Mon Sep 17 19:13:56 2012 +0000

    [analyzer] Teach the analyzer about implicit initialization of statics
    in ObjCMethods.

    Extend FunctionTextRegion to represent ObjC methods as well as
    functions. Note, it is not clear what type ObjCMethod region should
    return. Since the type of the FunctionText region is not currently used,
    defer solving this issue.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164046 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1fac58a2ff3c56a18765b2c7395ed91ac7b80544
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Mon Sep 17 17:54:30 2012 +0000

    -Warc-retain-cycles: look through [^{...} copy] and Block_copy(^{...})

    Retain cycles happen in the case where a block is persisted past its
    life on the stack, and the way that occurs is by copying the block.
    We should thus look through any explicit copies we see.

    Note that Block_copy is actually a type-safe wrapper for _Block_copy,
    which does all the real work.

    <rdar://problem/12219663>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164039 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8f411c39283caf2a403739b0c5dd398a6df511dc
Author: Axel Naumann <Axel.Naumann@cern.ch>
Date:   Mon Sep 17 14:26:53 2012 +0000

    Don't write uninitialized values even if nobody ever asks for it.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164033 91177308-0d34-0410-b5e6-96231b3b80d8

commit b626280eb16a62e32a100f0082e9ea7e496a51d7
Author: Alexander Potapenko <glider@google.com>
Date:   Mon Sep 17 14:18:41 2012 +0000

    Run install_name_tool to fix the dynamic library ID after it has been copied.
    Fixes http://code.google.com/p/address-sanitizer/issues/detail?id=113

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164031 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6944e20065955414a56a6aab9b7e271e3e826a88
Author: Axel Naumann <Axel.Naumann@cern.ch>
Date:   Mon Sep 17 13:14:34 2012 +0000

    Open up a few higher-level functions for tools.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164028 91177308-0d34-0410-b5e6-96231b3b80d8

commit 536cebd7f81b665dbef2ad6f081dcb23349f5576
Author: Ted Kremenek <kremenek@apple.com>
Date:   Sun Sep 16 06:18:45 2012 +0000

    Fix dead store found by static analyzer.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163994 91177308-0d34-0410-b5e6-96231b3b80d8

commit 72e4f25c067d44a9dbc70a0c8bb50120cded6a72
Author: Douglas Gregor <dgregor@apple.com>
Date:   Sun Sep 16 01:44:02 2012 +0000

    Update the PCH internals documentation to cover chained precompiled
    headers and modules in more detail. I'd still like to expand on some
    of the modules-related issues further, but this is a decent start.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163989 91177308-0d34-0410-b5e6-96231b3b80d8

commit 19ec962baba4bd332cb4dd83b3cfb67e33ea2b4c
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Sep 15 21:33:50 2012 +0000

    Comment parsing: support \namespace like other commands that contain just a
    declaration for the entity being documented.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163986 91177308-0d34-0410-b5e6-96231b3b80d8

commit ec504e0d677594fe975e29b25d6d47be54038baf
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Sep 15 21:13:36 2012 +0000

    Comment parsing: don't treat typedef to a typedef to a function as a
    'function-like' type that can be annotated with \param.

    Thanks to Eli Friedman for noticing!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163985 91177308-0d34-0410-b5e6-96231b3b80d8

commit f56faa01936b9cf909623d7f06e3c2569ca4a78e
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Sep 15 20:20:27 2012 +0000

    Use LLVM_DELETED_FUNCTION in place of 'DO NOT IMPLEMENT' comments.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163983 91177308-0d34-0410-b5e6-96231b3b80d8

commit ec1b330cc309efa2f0835e8d83892ea2c89e3ae1
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Sep 15 20:16:46 2012 +0000

    Make PTHManager properly noncopyable.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163982 91177308-0d34-0410-b5e6-96231b3b80d8

commit d11aa850a955027578ff47ab7e266ccf9173b5c2
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Sep 15 19:23:53 2012 +0000

    Address a long-standing FIXME: remove an unused copy constructor and make
    UnqualifiedId() properly noncopyable.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163981 91177308-0d34-0410-b5e6-96231b3b80d8

commit ba77cb9c82cc9d498e4d6474d128007249f07871
Author: Craig Topper <craig.topper@gmail.com>
Date:   Sat Sep 15 18:47:51 2012 +0000

    Fix includes of llvm and clang files that used angle brackets.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163980 91177308-0d34-0410-b5e6-96231b3b80d8

commit c69e067f24aa64a277ca4d6048a3165cbb23dbe7
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Sat Sep 15 11:56:32 2012 +0000

    Add bindings for clang_getCompletionBriefComment to cindex.py.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163966 91177308-0d34-0410-b5e6-96231b3b80d8

commit bc57b108b2253e26b83768dba196c28564952f18
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Sat Sep 15 06:09:58 2012 +0000

    const _Atomic(T) is not an atomic type, so do not allow it as the type 'A' in
    C11 7.17's atomic operations. GNU's __atomic_* builtins do allow const-qualified
    atomics, though (!!) so don't restrict those.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163964 91177308-0d34-0410-b5e6-96231b3b80d8

commit e6664f43bb3ed95c9cd059fac89740cb2d976c15
Author: Ted Kremenek <kremenek@apple.com>
Date:   Sat Sep 15 05:51:10 2012 +0000

    Revert "Utilize new build system support in Xcode 4.5 for easier interposition"

    It's not clear if this is working yet on the buildbot.  Reverting until we have
    time to investigate.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163963 91177308-0d34-0410-b5e6-96231b3b80d8

commit e10f4d384f5ae113d72a5193a1332c1930635ccc
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Sat Sep 15 02:48:31 2012 +0000

    -Warc-retain-cycles: warn at variable initialization as well as assignment.

    Specifically, this should warn:

      __block block_t a = ^{ a(); };

    Furthermore, this case which previously warned now does not, since the value
    of 'b' is captured before the assignment occurs:

      block_t b; // not __block
      b = ^{ b(); };

    (This will of course warn under -Wuninitialized, as before.)

    <rdar://problem/11015883>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163962 91177308-0d34-0410-b5e6-96231b3b80d8

commit 98e95bf1c84560684356088af7f4878bdacb5856
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Sat Sep 15 01:10:20 2012 +0000

    Allow disabling PCH validation when loading an AST file by checking
    an environment variable for debugging purposes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163958 91177308-0d34-0410-b5e6-96231b3b80d8

commit 12f5fe5f4ee9318a11e299f199f61eea05a2a450
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Fri Sep 14 21:30:17 2012 +0000

    compiler-rt/darwin: Install asan_osx_dynamic with the other runtime libraries.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163941 91177308-0d34-0410-b5e6-96231b3b80d8

commit 66dfef17b8da7c89e20f32d4f0f4a04691b79768
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Sep 14 21:17:41 2012 +0000

    In StringLiteral::setString make sure that we copy the number of
    bytes of the buffer and not the size of the string, otherwise we
    may overwrite the buffer if there is a mismatch between the size
    of the string and the CharByteWidth, and assertions are disabled.

    The bug where this could occur was fixed in r163931.
    Related to rdar://12069503

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163939 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7f1863326488813e7648845f3cec5225770b1a0b
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Fri Sep 14 20:24:53 2012 +0000

    [libclang] When loading an AST file, make sure to apply the language options
    to the target info.

    Related to rdar://12069503.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163931 91177308-0d34-0410-b5e6-96231b3b80d8

commit f8dcac5d6589414e646ae9cbf834f612510a08b1
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Sep 14 19:06:33 2012 +0000

    Utilize new build system support in Xcode 4.5 for easier interposition
    of a build without needing to use ccc-analyzer.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163927 91177308-0d34-0410-b5e6-96231b3b80d8

commit a778d710e2c62d62e0b78d120254764142801196
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Fri Sep 14 18:59:03 2012 +0000

    scan-build: Determine the location of the clang binary before printing help.

    We need the clang executable to print the list of available checkers.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163925 91177308-0d34-0410-b5e6-96231b3b80d8

commit b3cd3c0c8a234803dcb9b9c0dfe10106674141cd
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Sep 14 18:27:01 2012 +0000

    Fix some dead stores which the static analyzer warned about. No functionality
    change (the problematic cases in ParseDecl.cpp are currently impossible).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163920 91177308-0d34-0410-b5e6-96231b3b80d8

commit a6ddea6adbef22d4e2673dbb7236186ac5b14e09
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Fri Sep 14 18:21:10 2012 +0000

    When diagnosing multiple mem-initializers in a delegating ctor, point to the delegating initializer, not to the first initializer. For good measure, also highlight the other initializer.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163919 91177308-0d34-0410-b5e6-96231b3b80d8

commit 15dfcbf9da7acba1d1881961048f6982430fe22e
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Sep 14 17:51:34 2012 +0000

    Test removed.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163918 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6f5a2ec123ffebfb27f74a024ec3dccd65be5e83
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Fri Sep 14 17:48:35 2012 +0000

    objective-C arc: remove -Warc-abi in its entirety.
    // rdar://10554025

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163917 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1e1d6e90b5401eed14da8f31e76a434e456f1dd2
Merge: fd44955 210d8aa
Author: Stephen Hines <srhines@google.com>
Date:   Fri Sep 14 10:29:48 2012 -0700

    am 210d8aa7: Forgot about CommentHTMLTags.td, which I had a stale copy of.

    * commit '210d8aa7162e928d81d3f284b5ca7bc6bb3a9ba7':
      Forgot about CommentHTMLTags.td, which I had a stale copy of.

commit fd44955c7bb3900c8be74cf234675340331884b0
Merge: 822abbc e5cc4c9
Author: Stephen Hines <srhines@google.com>
Date:   Fri Sep 14 10:29:32 2012 -0700

    am e5cc4c96: Merge up through LLVM r163557.

    * commit 'e5cc4c967178669dd19832bc0fb03b293d5d969f':
      Merge up through LLVM r163557.

commit 822abbc6c88231fd39b88376f82e9ab5276c458c
Merge: 8664a09 9f0b132
Author: Stephen Hines <srhines@google.com>
Date:   Fri Sep 14 10:29:30 2012 -0700

    am 9f0b1324: Merge branch \'upstream\' into merge-2012_09_10

    * commit '9f0b1324a5352713337c75ef4a5acffd96609c6c': (452 commits)
      Fix PR13784: instantiation of an abstract class in a conditional operator.
      Move the null check outside of the loop, no functionality change.
      [PCH] When loading fields from external storage make sure to also load in the IndirectField declarations as well.
      [analyzer] Make the defaults explicit for each of the new config options.
      [analyzer] For now, don't inline C++ standard library functions.
      Remove redundant semicolons which are null statements.
      Comment AST: TableGen'ize all command lists in CommentCommandTraits.cpp.
      Remove clang man page reference to -Oz.  It's not an option we want people to use, and is around for historical reasons.
      Thread-safety analysis: differentiate between two forms of analysis; a precise analysis that may give false positives because it is confused by aliasing, and a less precise analysis that has fewer false positives, but may have false negatives.  The more precise warnings are enabled by -Wthread-safety-precise. An additional note clarify the warnings in the precise case.
      Now that I have a test file to work with, disable the Filecheck part of this test.
      Correctly 'cat' out test files.
      Fix another case where we should be using isBeforeInTranslationUnit().
      Add a few more cases where we should be using isBeforeInTranslationUnit().
      As a debugging aid to unbreak the buildbots, cat the plist files so I can view them on different builders.
      More tweaking and  test cases for call to super annotations. // rdar://6386358
      Re-enable FileCheck testing of retain-release.m test, and force a C++ dialect.  Let's see if this is the portability issue with this test.
      objective-C: Improving diagnostocs for missing call to super's annotated methods. // rdar://6386358
      Temporarily disable FileCheck part of this test.
      Allow vector types in pseudo-destructor expressions. Fixes PR13798.
      Workaround for MacOSX build failure with gcc <= 4.4
      ...

commit 7b7e2c4596d902e2fdea87ee0bcd692bf88049d9
Author: Ted Kremenek <kremenek@apple.com>
Date:   Fri Sep 14 17:20:56 2012 +0000

    Fix copy-paste error in manpage.  Should be -stdlib=library.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163914 91177308-0d34-0410-b5e6-96231b3b80d8

commit 867c179ed3b5f338537a84da658ecac25addb9f7
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Sep 14 16:38:59 2012 +0000

    Add missing test from r163874.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163910 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8c05da3fd8db98af482826ba059ab1ad6d58010f
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Fri Sep 14 16:35:35 2012 +0000

    Comment parsing: don't parse comment marker followed by a digit as a command
    since no Doxygen command starts with a digit.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163909 91177308-0d34-0410-b5e6-96231b3b80d8

commit 388a594cd04aae78be452f6eacb9ca6be239c1f8
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Fri Sep 14 15:37:29 2012 +0000

    Comment parsing: support the "\invariant" command.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163905 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7a9188833a6a09d574144334c9584c417b809007
Author: Simon Atanasyan <satanasyan@mips.com>
Date:   Fri Sep 14 11:27:24 2012 +0000

    Do not use "lib32" directory to create a library/object files
    paths when target is MIPS 32-bit.

    The patch reviewed by Chandler Carruth.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163898 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2c8e81e0d7ccf5880bc24fb8e2b1abcd7ea4f9a4
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Sep 14 05:10:40 2012 +0000

    Fix warning on qualified typedef with 'unused' attribute, from Jason Haslam!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163874 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6db351abf27e907b4a01570a6aa8e7b898522449
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Sep 14 04:35:37 2012 +0000

    In debugger mode, allow comparisons between pointers and integers
    without a cast. Fixes <rdar://problem/11830912>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163873 91177308-0d34-0410-b5e6-96231b3b80d8

commit dd084276526db1d53edf2b6fc8c4c8187e6ab540
Author: Douglas Gregor <dgregor@apple.com>
Date:   Fri Sep 14 04:20:37 2012 +0000

    As we do with base and member initializers in a dependent class, delay
    type checking for non-static data member initializers in a dependent
    class, because our ASTs lose too much information to when
    type-checking an initializer. Fixes <rdar://problem/11974632>,
    although the result is still rather unsatisfactory.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163871 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6f85b1e7906f7a03cbede1f730ba19b28a5f85e8
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Fri Sep 14 03:35:42 2012 +0000

    Improve the driver title as shown in the --help message. <rdar://12297538>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163870 91177308-0d34-0410-b5e6-96231b3b80d8

commit 82bad6bbb6c04ec6e34562988d0d1f9e450a7279
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Fri Sep 14 01:45:09 2012 +0000

    Fix thunk emission for covariant virtual functions in cases which require
    both a virtual and a non-virtual offset. PR13832.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163866 91177308-0d34-0410-b5e6-96231b3b80d8

commit cf15f17f04995766883f5c5c76cb82bb25617e6d
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Fri Sep 14 01:19:01 2012 +0000

    Fix line endings.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163865 91177308-0d34-0410-b5e6-96231b3b80d8

commit b3b6c22401047c18987dd9850e2fb29dd162f44f
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Fri Sep 14 00:51:36 2012 +0000

    Fix abbreviation for CharacterLiteral in AST serialization.  PR13806.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163863 91177308-0d34-0410-b5e6-96231b3b80d8

commit 84dd82e2088b1ea629f54f62a816f1155c78bb94
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Sep 13 23:40:46 2012 +0000

    When computing the decltype of an expression, consider Objective-C
    ivar and property references as member accesses and produce the actual
    type of the declaration. Fixes <rdar://problem/12031582>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163858 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7fcd13658e00e4d9e66cc86899e2c2973ee510fa
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Sep 13 22:10:19 2012 +0000

    Fix incorrect comment.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163850 91177308-0d34-0410-b5e6-96231b3b80d8

commit b5ea91c8c4e64a937ba1f8239faa4ec017d49058
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Sep 13 22:03:58 2012 +0000

    Fix up after r163846. Sorry!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163849 91177308-0d34-0410-b5e6-96231b3b80d8

commit bed51fef5773f043db2ad13aa2b6d2f8a8bdbdba
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Sep 13 22:01:49 2012 +0000

    Actually rebuild function types properly when adjusting the function
    type of an instantiation.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163848 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2bcb984df975c75130f2320c935fae1143c2a5cc
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Sep 13 22:00:12 2012 +0000

    Revert r163829. The world (or libstdc++, at least) is not ready.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163846 91177308-0d34-0410-b5e6-96231b3b80d8

commit 71074fdf40a8f5b53810712102b58c27efc30759
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Sep 13 21:56:43 2012 +0000

    When we substitute into the type of a function based on the
    TypeSourceInfo, we may have lost some adjustments made to the type of
    that function due to declaration merging. Adjust the resulting type
    correspondingly. Fixes PR12948 / <rdar://problem/11552434>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163845 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7b4362ec118bb69d0d2aaee01941cb85a36efa79
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Thu Sep 13 21:32:58 2012 +0000

    Comment to XML conversion: we try not to emit empty <Discussion> elements, but
    it is not possible to guarantee that without duplicating logic or buffering
    <Discussion> element contents.  So, allow empty <Discussion> elements in schema.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163842 91177308-0d34-0410-b5e6-96231b3b80d8

commit e7ff9191f39fa5a0f48168f51f55f1f7556d5993
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Sep 13 21:18:54 2012 +0000

    Implement C++11 [conv.prom]p4: an enumeration with a fixed underlying type has
    integral promotions to both its underlying type and to its underlying type's
    promoted type. This matters now that boolean conversions aren't permitted in
    converted constant expressions (a la DR1407): an enumerator with a fixed
    underlying type of bool still can be.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163841 91177308-0d34-0410-b5e6-96231b3b80d8

commit ae19fbba559d8199d1f2b7154863180b0ae22ac7
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Sep 13 21:01:57 2012 +0000

    Don't perform template argument deduction against invalid templates;
    it's likely to lead to a crash later on. Fixes PR12933 /
    <rdar://problem/11525335>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163838 91177308-0d34-0410-b5e6-96231b3b80d8

commit abcf0dccc9cd4c802f4e7797bf452c6808d2226f
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Thu Sep 13 20:36:01 2012 +0000

    Comment parsing: handle \deprecated command.  It is a block command, but it
    should be fine to use it without further explanations in the attached
    paragraph, so the warning about empty paragraph was turned off for it.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163836 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9fb6f7939c4b76b444b7f7b2761b130e7709ac08
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Sep 13 20:26:40 2012 +0000

    remove duplicate code.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163833 91177308-0d34-0410-b5e6-96231b3b80d8

commit 75379455fc88ca1f021e55ffe1cab3a9c2b2a37a
Author: Douglas Gregor <dgregor@apple.com>
Date:   Thu Sep 13 20:16:20 2012 +0000

    Promote the warning about extra qualification on a declaration from a
    warning to an error. C++ bans it, and both GCC and EDG diagnose it as
    an error. Microsoft allows it, so we still warn in Microsoft
    mode. Fixes <rdar://problem/11135644>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163831 91177308-0d34-0410-b5e6-96231b3b80d8

commit ceb07622bacde3184b19caf0957f5eeba5cb6784
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Sep 13 19:55:13 2012 +0000

    Remove speculative fix for C++ core issue 1407, since it was resolved as NAD.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163829 91177308-0d34-0410-b5e6-96231b3b80d8

commit 45b76bad757d8b9f93df2b21ca012c309810d206
Author: Ted Kremenek <kremenek@apple.com>
Date:   Thu Sep 13 19:48:51 2012 +0000

    Fix grammar.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163828 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3686c71ff92e4357a78993a16a27185f16ab6234
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Sep 13 19:12:50 2012 +0000

    Recover properly after a parse error in a static_assert declaration.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163826 91177308-0d34-0410-b5e6-96231b3b80d8

commit a406849092567a448b6cef37df83df3c2b36f3ca
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Sep 13 19:10:51 2012 +0000

    Use a "better" unicode character, to avoid buildbot breakage on bots which can print some unicode characters.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163825 91177308-0d34-0410-b5e6-96231b3b80d8

commit a1a32f7f5966edf47c1e22bcbeb2a09bc462ff0b
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Sep 13 18:53:14 2012 +0000

    Move back the stuff about missing ownership attribute warning
    to SemaDeclObjC and apply some simplification per John's
    comment. // rdar://12280826

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163824 91177308-0d34-0410-b5e6-96231b3b80d8

commit c7bb384d608aeae23a6c95114569da0c3eae10fe
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Sep 13 18:37:50 2012 +0000

    Make TextDiagnostic more robust against SourceLocations which point into the
    middle of UTF-8 characters, and avoid walking to such positions when adjusting
    column ranges for display. Fixes a couple of hangs when rendering diagnostics.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163820 91177308-0d34-0410-b5e6-96231b3b80d8

commit be879727893994532b4a643bfae6fb656742057f
Author: Ted Kremenek <kremenek@apple.com>
Date:   Thu Sep 13 18:18:37 2012 +0000

    When warning about unsafe uses of dispatch_once, specially handle the
    crazy case where dispatch_once gets redefined as a macro that calls
    _dispatch_once (which calls the real dispatch_once).  Users want to
    see the warning in their own code.

    Fixes <rdar://problem/11617767>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163816 91177308-0d34-0410-b5e6-96231b3b80d8

commit ca5c4c9bfeb4b1ac645b04723c0319b0fc96073e
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Thu Sep 13 17:29:07 2012 +0000

    Move no explicit ownership warning to SemaType.cpp.
    // rdar://12280826

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163813 91177308-0d34-0410-b5e6-96231b3b80d8

commit 67330f197270d857e79d5da8309b9348f80da38d
Author: Ted Kremenek <kremenek@apple.com>
Date:   Thu Sep 13 17:25:51 2012 +0000

    Add tests for r163778.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163812 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2df67ea86f64c2a94b973d8fda2e3c1fd53fc84d
Author: Silviu Baranga <silviu.baranga@arm.com>
Date:   Thu Sep 13 15:06:00 2012 +0000

    This patch introduces A15 as a target in Clang.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163804 91177308-0d34-0410-b5e6-96231b3b80d8

commit 760402327bd688bb477b1d8084e34be81db5baf0
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Sep 13 14:28:23 2012 +0000

    ASTMatchersMacros.h: Appease msvc.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163798 91177308-0d34-0410-b5e6-96231b3b80d8

commit a7564433191601cb8851196b8dde39392c9c05ee
Author: Daniel Jasper <djasper@google.com>
Date:   Thu Sep 13 13:11:25 2012 +0000

    Create initial support for matching and binding NestedNameSpecifier(Loc)s.

    Review: http://llvm-reviews.chandlerc.com/D39

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163794 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1824d54df85a462ada812dadda18130f951d40f3
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Thu Sep 13 13:11:20 2012 +0000

    Fix Doxygen misuse: refer to parameter names in paragraphs correctly (\arg is
    not what most people want -- it starts a new paragraph).

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163793 91177308-0d34-0410-b5e6-96231b3b80d8

commit 30c8a1f79f6d0b61235f5c2762c9077af70d426d
Author: Manuel Klimek <klimek@google.com>
Date:   Thu Sep 13 12:44:47 2012 +0000

    Add missing accessor.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163792 91177308-0d34-0410-b5e6-96231b3b80d8

commit 127ff2ea6440c3da4b47f9c8b3b190254a97e7b5
Author: Ted Kremenek <kremenek@apple.com>
Date:   Thu Sep 13 06:41:18 2012 +0000

    Conditionally parse documentation comments in system headers by
    passing -fretain-comments-from-system-headers.  By default, the
    compiler no longer parses such documentation comments, as they
    can result in a noticeable compile time/PCH slowdown.

    Fixes <rdar://problem/11860820>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163778 91177308-0d34-0410-b5e6-96231b3b80d8

commit dc6cc87ab68091a714526b391e2a1291d84d485e
Author: Eric Christopher <echristo@apple.com>
Date:   Thu Sep 13 06:32:34 2012 +0000

    Properly link libpthread_p when using profiling on OpenBSD.

    Patch by Brad Smith.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163777 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1696bc28f4460c187ab80f3b20b1507f58a4ef2f
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Sep 13 05:53:23 2012 +0000

    InitHeaderSearch.cpp: [mingw] Handle DOSish paths only on Win32 hosts.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163776 91177308-0d34-0410-b5e6-96231b3b80d8

commit e5b89ed6b54271623a358b3cd087f2d463a16c1b
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Thu Sep 13 05:53:17 2012 +0000

    clang/lib/Analysis/ObjCNoReturn.cpp: Fix [-Wnewline-eof]

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163775 91177308-0d34-0410-b5e6-96231b3b80d8

commit 670941c28c0683ecc251dafdf093a71629625dc9
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Sep 13 02:11:15 2012 +0000

    Format strings: offer a fixit for Darwin's %D/%U/%O to ISO %d/%u/%o.

    <rdar://problem/12061922>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163772 91177308-0d34-0410-b5e6-96231b3b80d8

commit 275b6f52c7bcafc1f3cf291813b5c60ee776965a
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Thu Sep 13 02:11:03 2012 +0000

    Format strings: %D, %U, and %O are valid on Darwin (same as %d, %u, %o).

    These will warn under -Wformat-non-iso, and will still be rejected
    outright on other platforms.

    <rdar://problem/12061922>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163771 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5f7c0add1ea1d8e1d2f920d77fd1a7b6160c2d93
Author: Anna Zaks <ganna@apple.com>
Date:   Thu Sep 13 00:37:12 2012 +0000

    [analyzer] Don't reimplement an existing function.

    Thanks Jordan.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163762 91177308-0d34-0410-b5e6-96231b3b80d8

commit 25c1d57fc906e895535fb5c7e6dde80219f353b5
Author: Ted Kremenek <kremenek@apple.com>
Date:   Thu Sep 13 00:21:35 2012 +0000

    Teach -Wuninitialized to recognize common "noreturn" idioms in
    Objective-C related to NSException.

    Fixes <rdar://problem/12287498>

    I debated whether or not this logic should be sunk into the CFG
    itself.  It's not clear if we should, as different analyses may
    wish to have different policies.  We can re-evaluate this in the
    future.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163760 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4ef19205b6912316296db74a9073ad6fa60e4cca
Author: Ted Kremenek <kremenek@apple.com>
Date:   Thu Sep 13 00:21:31 2012 +0000

    Refactor logic in ExprEngine for detecting 'noreturn' methods
    in NSException to a helper object in libAnalysis that can also
    be used by Sema.  Not sure if the predicate name 'isImplicitNoReturn'
    is the best one, but we can massage that later.

    No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163759 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3ef95a55769278858ad586bd2b592fd50288a1ac
Author: Chad Rosier <mcrosier@apple.com>
Date:   Thu Sep 13 00:20:37 2012 +0000

    Add a few FIXMEs.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163758 91177308-0d34-0410-b5e6-96231b3b80d8

commit b55e602e1dc7952edc7545fab7bb7b15047378f3
Author: Chad Rosier <mcrosier@apple.com>
Date:   Thu Sep 13 00:06:55 2012 +0000

    [ms-inline asm]  Handle the enumeration of input and output expressions in a
    more robust way to address a few FIXMEs.

    The initial implementation, r163342, built the IR asm string and then tried to
    patch things on the fly without enough context.  Specifically, it didn't skip
    mnemonics nor did it track with assembly instruction an expression was related
    to.  The new implementation patches the operands and then builds the final
    IR string.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163756 91177308-0d34-0410-b5e6-96231b3b80d8

commit d5a73dca6297a8bc5ab3fc41e2cc0e8474072616
Author: Eric Christopher <echristo@apple.com>
Date:   Wed Sep 12 23:36:49 2012 +0000

    Reapply:

        Make clang emit a flag for DW_AT_object_pointer for the artificial
        args where it should (implicit first arguments). FileCheck-ize a
        test as well and update tests to take into account the object
        pointer flag.

        rdar://9797999

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163755 91177308-0d34-0410-b5e6-96231b3b80d8

commit e6f18c3e6a28229b5871007858b8c30882494b09
Author: Richard Trieu <rtrieu@google.com>
Date:   Wed Sep 12 23:13:31 2012 +0000

    Add two new functions to Qualifiers.

    static Qualifiers removeCommonQualifiers(Qualifiers &L, Qualifiers &R)
    Removes the common qualifiers from L and R and returns them in a new Qualifier.
    This will be used in template diffing.

    void removeQualifiers(Qualifiers Q)
    Removes the qualifiers in Q from the current qualifier.
    This replaces the current underlying implementation of operator- and
    operator -= which only performed bit masking.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163752 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1fa1e0cbf91de6f9a23fc2940e3eca4bc7d99589
Author: Chad Rosier <mcrosier@apple.com>
Date:   Wed Sep 12 23:03:48 2012 +0000

    Whitespace.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163751 91177308-0d34-0410-b5e6-96231b3b80d8

commit 16e6a7cb41319459ded69b4d47f405c1035dd347
Author: Anna Zaks <ganna@apple.com>
Date:   Wed Sep 12 22:57:40 2012 +0000

    [analyzer] Do not report use of undef on "return foo();" when the return type is void.

    Fixes a false positive found by analyzing LLVM code base.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163750 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9dc298bf8e4001978e44e7f1872f337fe5805960
Author: Anna Zaks <ganna@apple.com>
Date:   Wed Sep 12 22:57:34 2012 +0000

    [analyzer] Fix another false positive in malloc realloc logic.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163749 91177308-0d34-0410-b5e6-96231b3b80d8

commit 522fc21f3adc647817edc8017e6928a64c96899b
Author: Anna Zaks <ganna@apple.com>
Date:   Wed Sep 12 22:57:30 2012 +0000

    [analyzer] Teach UndefOrNullArgVisitor to track parent regions.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163748 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1a7bcc41efb73d80fd45eb71494b073f388d333c
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Sep 12 22:48:08 2012 +0000

    [analyzer] Fix another use of the address of a temporary, like r163402.

    Again, GCC is more aggressive about reusing temporary space than we are,
    leading to Release build crashes for this undefined behavior.

    PR13710 (though it may not be the only problem there)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163747 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3225d072a348658cb67c45cdb46a981b09d1f562
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Sep 12 21:50:56 2012 +0000

    [analyzer] Re-add reinterpret_cast virtual call test case from r163644.

    We mostly just don't want to crash analyzing this test case; it's likely
    the code found here will actually crash if compiled and run.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163746 91177308-0d34-0410-b5e6-96231b3b80d8

commit d66b3c56a5da1cbaf5ec12811ee7221231b6c301
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Sep 12 21:48:17 2012 +0000

    [analyzer] Handle when the dynamic type is worse than the static type.

    Currently we don't update the dynamic type of a C++ object when it is
    cast. This can cause the situation above, where the static type of the
    region is now known to be a subclass of the dynamic type.

    Once we start updating DynamicTypeInfo in response to the various kinds
    of casts in C++, we can re-add this assert to make sure we don't miss
    any cases. This work is tracked by <rdar://problem/12287087>.

    In -Asserts builds, we will simply not return any runtime definition
    when our DynamicTypeInfo is known to be incorrect like this.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163745 91177308-0d34-0410-b5e6-96231b3b80d8

commit fe3769dbb448edf8e5ece13b14017608558d4763
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Wed Sep 12 21:48:13 2012 +0000

    Revert "[analyzer] Use the static type for a virtual call if the dynamic type is worse."

    Using the static type may be inconsistent with later calls. We should just
    report that there is no inlining definition available if the static type is
    better than the dynamic type. See next commit.

    This reverts r163644 / 19d5886d1704e24282c86217b09d5c6d35ba604d.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163744 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4a295308783a049c86c45d29cdaafe434cbee29c
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Sep 12 21:27:26 2012 +0000

    objective-C++ test for my previous patch.
    // rdar://12280826

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163741 91177308-0d34-0410-b5e6-96231b3b80d8

commit 63d88728d862f8a69b3291e533d193d1d8513f5a
Author: Daniel Jasper <djasper@google.com>
Date:   Wed Sep 12 21:14:15 2012 +0000

    Rename isA to isSameOrDerivedFrom.

    There are two evils we can choose from:
    - Name overlap between isA-matcher and llvm::isa<>()
    - Bad name for what the isA-matcher currently does

    After some discussion we have agreed to go with the latter evil.

    Review: http://llvm-reviews.chandlerc.com/D40

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163740 91177308-0d34-0410-b5e6-96231b3b80d8

commit 00024796eaa29055e76fc99ffdc668c702e6fe9d
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Wed Sep 12 20:34:47 2012 +0000

    objective-C arc: don't issue no explicit ownership warning when
    __autoreleasing is explicitely added to param type.
    // rdar://12280826

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163738 91177308-0d34-0410-b5e6-96231b3b80d8

commit a912649ebfc9b06918060286f889822f72fabb01
Author: Chad Rosier <mcrosier@apple.com>
Date:   Wed Sep 12 20:13:11 2012 +0000

    Fix test case for Release builds.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163737 91177308-0d34-0410-b5e6-96231b3b80d8

commit 22b617fbfdd17e8cadd9c541857751ae1cb6cabb
Author: Eric Christopher <echristo@apple.com>
Date:   Wed Sep 12 18:42:10 2012 +0000

    Revert "Make clang emit a flag for DW_AT_object_pointer for the artificial"
    this should be done on the subprogram, not the variable.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163733 91177308-0d34-0410-b5e6-96231b3b80d8

commit 47fa9991c5ff7b2221801444c00006b7212fd305
Author: Chad Rosier <mcrosier@apple.com>
Date:   Wed Sep 12 18:34:34 2012 +0000

    [ms-inline asm] Add a test case.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163731 91177308-0d34-0410-b5e6-96231b3b80d8

commit 808a1d0f5ad71b5a3a6c9445b67e149b7a82c011
Author: Chad Rosier <mcrosier@apple.com>
Date:   Wed Sep 12 18:25:06 2012 +0000

    [ms-inline asm] Test case for r163729.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163730 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7f9678b513f926dae27234858ed2586a6eb03b7b
Author: Chad Rosier <mcrosier@apple.com>
Date:   Wed Sep 12 18:14:25 2012 +0000

    [ms-inline asm] If we have a single asm operand that maps to multiple
    MCOperands then iterate over all of then when computing clobbers, inputs and
    outputs.

    On x86 the 1-to-many mapping is a memory operand that includes a BaseReg(reg),
    MemScale(imm), MemIndexReg(reg), an Expr(MCExpr or imm) and a MemSegReg(reg).
    Invalid register (Op.getReg() == 0) are not considered when computing clobber.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163728 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0841a07498af164a9702f943ab2f517e23eecc77
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Wed Sep 12 17:02:40 2012 +0000

    Comment parsing: recognize more Doxygen commands

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163723 91177308-0d34-0410-b5e6-96231b3b80d8

commit e23fb90712233bdfa04387e48b54a7168e23cb3e
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Wed Sep 12 17:01:48 2012 +0000

    Fix a couple of Doxygen issues pointed out by -Wdocumentation.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163722 91177308-0d34-0410-b5e6-96231b3b80d8

commit b648cf02f13ae74ec346f8d22933298f9977e4e0
Author: Ted Kremenek <kremenek@apple.com>
Date:   Wed Sep 12 16:50:35 2012 +0000

    Revert "objective-C: warn under a flag if missing argument"

    We plan on discussing this more, but we shouldn't have it in the compiler
    in an incomplete state.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163720 91177308-0d34-0410-b5e6-96231b3b80d8

commit e62b1295ec71d4f0ca05b973e88d4b4e858eb96e
Author: Ted Kremenek <kremenek@apple.com>
Date:   Wed Sep 12 16:50:30 2012 +0000

    Revert "objective-C: warn if selector has nothing but bare"

    We plan on discussing this more.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163719 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0098d23677f498e650c5ecc5ee7425d81bf6117b
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Wed Sep 12 14:26:42 2012 +0000

    clang/test: [PR13820] Suppress LLP64-incompatible tests for ObjC with +Asserts.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163709 91177308-0d34-0410-b5e6-96231b3b80d8

commit a0fed126a92f09bb2f1996e29a43369aabda1b37
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Wed Sep 12 14:26:34 2012 +0000

    clang/test/CodeGen/2008-01-25-ZeroSizedAggregate.c: [PR8833] Add REQUIRES: LP64. It fails with +Asserts for Win64.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163708 91177308-0d34-0410-b5e6-96231b3b80d8

commit 53b43a78d575e9e8d0af7a3f4b0a744679d65994
Author: Joerg Sonnenberger <joerg@bec.de>
Date:   Wed Sep 12 13:51:14 2012 +0000

    Claim --param ssp-buffer-size, even if the stack protector is not
    active.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163705 91177308-0d34-0410-b5e6-96231b3b80d8

commit 92b7c3996457660b37e4665542229b7b4e736fd0
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Wed Sep 12 10:45:52 2012 +0000

    clang/test/CodeGenObjC: [PR13820] Suppress LLP64-incompatible tests.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163701 91177308-0d34-0410-b5e6-96231b3b80d8

commit db3353f6c9f3ffd291ce9e314e996071252c4285
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Wed Sep 12 10:45:46 2012 +0000

    clang/test/SemaCXX/dcl_ambig_res.cpp: [PR13819] It requires LP64 for now due to __SIZE_TYPE__.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163700 91177308-0d34-0410-b5e6-96231b3b80d8

commit b774d73540ba62a5e6a8e9217b320b27a946cfad
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Wed Sep 12 10:45:40 2012 +0000

    clang/test: [PR8833] Introduce the feature "LP64" to suppress LLP64-incompatible tests.

    I think some of them could be rewritten to fit also LLP64.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163699 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4d59422415cb94b6034c5489ebbc7aa57193068d
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Wed Sep 12 10:38:08 2012 +0000

    clang/test/PCH/missing-file.cpp: Try to suppress accidental false on Windows.

    %t.h might be touched by scanners as a hot file on Windows, to fail to remove %.h with single run.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163697 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5e3d24ca559ca2d3dccaeca2d2fe0ca614435ff5
Author: NAKAMURA Takumi <geek4civic@gmail.com>
Date:   Wed Sep 12 10:38:03 2012 +0000

    clang/test/lit.cfg: Fix a typo in comment.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163696 91177308-0d34-0410-b5e6-96231b3b80d8

commit ad5dc101b725494ae4db69a0efbe85cedf228974
Author: Evgeniy Stepanov <eugeni.stepanov@gmail.com>
Date:   Wed Sep 12 09:39:37 2012 +0000

    Fix a test failure.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163691 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8ba7541f12b39aeef4cdb104566dd0503321f48f
Author: Evgeniy Stepanov <eugeni.stepanov@gmail.com>
Date:   Wed Sep 12 09:09:08 2012 +0000

    Make -faddress-sanitizer on Android link to the new-style runtime.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163689 91177308-0d34-0410-b5e6-96231b3b80d8

commit cca178014377d5ee756afba47edb93d76a100b06
Author: Ted Kremenek <kremenek@apple.com>
Date:   Wed Sep 12 06:50:29 2012 +0000

    Convert a few more getAs cases to castAs where we immediately call a member function.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163684 91177308-0d34-0410-b5e6-96231b3b80d8

commit f57a2aa02c0578c5bd834fec0d44c16ad9908620
Author: Ted Kremenek <kremenek@apple.com>
Date:   Wed Sep 12 06:22:18 2012 +0000

    Fix regression where "looping back to the head of" PathDiagnosticEvents
    were not emitted.

    Fixes <rdar://problem/12280665>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163683 91177308-0d34-0410-b5e6-96231b3b80d8

commit 44ca53f34deb5efe9fc6f246781f66f1ed83eabc
Author: Ted Kremenek <kremenek@apple.com>
Date:   Wed Sep 12 05:53:43 2012 +0000

    Teach -Wuninitialized to recognize __attribute__((analyzer_noreturn))
    for halting the propagation of uninitialized value tracking along
    a path.  Unlike __attribute__((noreturn)), this attribute (which
    is used by clients of the static analyzer) can be used to annotate
    functions that essentially never return, but in rare cares may be
    allowed to return for (special) debugging purposes.  This attribute
    has been shown in reducing false positives in the static analyzer
    by pruning false postives, and is equally applicable here.

    Handling this attribute in the CFG itself is another option, but
    this is not something all clients (e.g., possibly -Wunreachable-code)
    would want to see.

    Addresses <rdar://problem/12281583>.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163681 91177308-0d34-0410-b5e6-96231b3b80d8

commit f1c7060076ef0c17fcc1ed12a098f25e53771adc
Author: Ted Kremenek <kremenek@apple.com>
Date:   Wed Sep 12 05:11:29 2012 +0000

    Post new checker build.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163680 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1b22cec353bc6112653d50b060a1d78d70c51527
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Wed Sep 12 01:11:10 2012 +0000

    Adjust some analyzer tests to place widely shared inputs inside of an
    'Inputs' subdirectory.

    The general desire has been to have essentially all of the non-test
    input files live in such directories, with some exceptions for obvious
    and common patterns like 'foo.c' using 'foo.h'.

    This came up because our distributed test runner couldn't find some of
    the headers, for example with stl.cpp.

    No functionality changed, just shuffling around here.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163674 91177308-0d34-0410-b5e6-96231b3b80d8

commit 93040b75251f3d8e27ff06bf3d0437cc8e0be1b4
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Wed Sep 12 01:11:05 2012 +0000

    Fix up more "$t"s in this test that should be "%t"s.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163673 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9a4db032ecd991626d236a502e770126db32bd31
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Sep 12 00:56:43 2012 +0000

    PR13811: Add a FunctionParmPackExpr node to handle references to function
    parameter packs where the reference is not being expanded but the pack has
    been. Previously, Clang would segfault in such cases.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163672 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2b6eb9db86252ddde0e79a1d97054de6cbe1b284
Author: Eric Christopher <echristo@apple.com>
Date:   Wed Sep 12 00:27:32 2012 +0000

    Make clang emit a flag for DW_AT_object_pointer for the artificial
    args where it should (implicit first arguments). FileCheck-ize a
    test as well and update tests to take into account the object
    pointer flag.

    rdar://9797999

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163668 91177308-0d34-0410-b5e6-96231b3b80d8

commit 80da77edee263ce7afb1e1320496fc3619fe12c4
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Sep 11 23:53:48 2012 +0000

    [ms-inline asm] isDef/NumDefs in this context only refer to register definitions, not memory definitions.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163666 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8742d7c84a45988b9d6e1f6ad38b2242b800c2bd
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Sep 11 23:48:00 2012 +0000

    [ms-inline asm] As of r163657 this check is unnecessary.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163665 91177308-0d34-0410-b5e6-96231b3b80d8

commit fb700265b6e452a3cfd3abc73102fef11d103d4a
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Sep 11 23:13:15 2012 +0000

    [ms-inline asm] Don't consider tokens or immediates when computing clobbers, inputs and outputs.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163657 91177308-0d34-0410-b5e6-96231b3b80d8

commit f9ee0bacd27085417dedf1a9f5df8a4cb5a758c1
Author: DeLesley Hutchins <delesley@google.com>
Date:   Tue Sep 11 23:04:49 2012 +0000

    Thread-safety analysis: fix bug in expression matching code.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163656 91177308-0d34-0410-b5e6-96231b3b80d8

commit 10d65cd8c8974d71ade0f926ab0578fc7dc325e9
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Sep 11 21:27:45 2012 +0000

    objective-C: warn if selector has nothing but bare
    ':' in its name. // rdar://8366823

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163650 91177308-0d34-0410-b5e6-96231b3b80d8

commit e9f1f234932e80bb83be9b094e163ca4c47a3086
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Tue Sep 11 20:26:49 2012 +0000

    Revert "[analyzer] Disable STL inlining. Blocked by PR13724."

    While PR13724 is still an issue, it's not actually an issue in the STL.
    We can keep this option around in case there turn out to be widespread
    false positives due to poor modeling of the C++ standard library functions,
    but for now we'd like to get more data.

    This reverts r163633 / c6baadceec1d5148c20ee6c902a102233c547f62.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163647 91177308-0d34-0410-b5e6-96231b3b80d8

commit b0b8a96df25660cbdbf35d23c3ff5887c33f82f9
Author: Dmitri Gribenko <gribozavr@gmail.com>
Date:   Tue Sep 11 19:22:03 2012 +0000

    Comment parsing: handle non-builtin commands correctly.  After semantic
    analysis registers a command, it becomes a "known" command for the lexer, since
    it has an ID.  Having this freedom of choice to register a command is a good
    thing since BriefParser does not need this.

    But the parser should still invoke the correct semantic analysis method
    (actOnUnknownCommand) in this case.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163646 91177308-0d34-0410-b5e6-96231b3b80d8

commit 19d5886d1704e24282c86217b09d5c6d35ba604d
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Tue Sep 11 18:47:13 2012 +0000

    [analyzer] Use the static type for a virtual call if the dynamic type is worse.

    reinterpret_cast does not provide any of the usual type information that
    static_cast or dynamic_cast provide -- only the new type. This can get us
    in a situation where the dynamic type info for an object is actually a
    superclass of the static type, which does not match what CodeGen does at all.
    In these cases, just fall back to the static type as the best possible type
    for devirtualization.

    Should fix the crashes on our internal buildbot.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163644 91177308-0d34-0410-b5e6-96231b3b80d8

commit c9e418c21c7a05ac90fd8013a19c6d1a86b052ee
Author: DeLesley Hutchins <delesley@google.com>
Date:   Tue Sep 11 18:32:12 2012 +0000

    Fix warning from r163642

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163643 91177308-0d34-0410-b5e6-96231b3b80d8

commit 24a6c9459a50248e502884f129c789d452f70acc
Author: DeLesley Hutchins <delesley@google.com>
Date:   Tue Sep 11 18:27:46 2012 +0000

    Thread safety analysis: fix bug related to lock_returned attribute
    on templates.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163642 91177308-0d34-0410-b5e6-96231b3b80d8

commit 92faee71f4fa01565c1c1eab617e936a01d56276
Author: Fariborz Jahanian <fjahanian@apple.com>
Date:   Tue Sep 11 17:24:26 2012 +0000

    objective-C: warn under a flag if missing argument
    name results in unintended selector name.
    // rdar://12263549

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163634 91177308-0d34-0410-b5e6-96231b3b80d8

commit c6baadceec1d5148c20ee6c902a102233c547f62
Author: Anna Zaks <ganna@apple.com>
Date:   Tue Sep 11 17:15:39 2012 +0000

    [analyzer] Disable STL inlining. Blocked by PR13724.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163633 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4e0d3cb72f37f46e62df9bbf5a5f3eb910de3f5b
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Tue Sep 11 14:17:47 2012 +0000

    Fix namespace nesting and remove windows line endings.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163620 91177308-0d34-0410-b5e6-96231b3b80d8

commit a74e4afa5764ffa8c335dea3d0047a00a17e7a24
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Tue Sep 11 10:40:21 2012 +0000

    Just revert r163605 for now. It broke the build and had some
    questionable elements to the patch.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163609 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6d445a6ad64302f0aac584fe8767934a1993cdd3
Author: David Chisnall <csdavec@swan.ac.uk>
Date:   Tue Sep 11 09:58:54 2012 +0000

    Select the correct, or, failing that, compatible, dialect when invoked as cc,
    c89, c99, and so on.  No change to the default dialect when invoked as clang /
    clang++.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163605 91177308-0d34-0410-b5e6-96231b3b80d8

commit a13cdf4780a885c0d3726fe8d3562b9bc770b7ec
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Sep 11 07:19:42 2012 +0000

    Switch a SmallPtrSet/SmallVector pair over to SetVector.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163600 91177308-0d34-0410-b5e6-96231b3b80d8

commit 04992c7d8e74adff8ad7ca7e6b3e2fe96c47acda
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Sep 11 06:33:46 2012 +0000

    Remove unused macro definition

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163598 91177308-0d34-0410-b5e6-96231b3b80d8

commit fb7669ee725ec699e2b49b8359c4652536949739
Author: Douglas Gregor <dgregor@apple.com>
Date:   Tue Sep 11 06:30:16 2012 +0000

    Fix typo in comment

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163597 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1b5c336fc7b2013a619a50895d7a43f3f4334515
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Tue Sep 11 05:51:06 2012 +0000

    Remove some redundancy from constant aggregate emission. No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163595 91177308-0d34-0410-b5e6-96231b3b80d8

commit 59cabd7101d3871519019efdff008378a985dae9
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Tue Sep 11 02:17:21 2012 +0000

    [libclang] Fix getting a cursor inside an angled #include directive.

    Fixed by pointing the end location of the preprocessed entity for the #include
    at the closing '>', instead of the start of '<'.

    rdar://11113134

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163588 91177308-0d34-0410-b5e6-96231b3b80d8

commit 85f90bd579ee83d3061715ad0dcb7575832e4fe9
Author: Eric Christopher <echristo@apple.com>
Date:   Tue Sep 11 01:36:56 2012 +0000

    Update comment and space.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163586 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3ed6b913781b2a754087764f5b3abdfc5e3cc495
Author: Eric Christopher <echristo@apple.com>
Date:   Tue Sep 11 01:36:54 2012 +0000

    The type of the self and cmd variables should be artificial. (Note
    that the types aren't artificial the args are, but this is currently
    represented by an artificial type.)

    Found by inspection.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163585 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4de971651ba09009d4a7cc6d2fbc978dd7092263
Author: Chad Rosier <mcrosier@apple.com>
Date:   Tue Sep 11 00:51:28 2012 +0000

    [ms-inline asm] Add $$ before numeric constants in the IR.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163581 91177308-0d34-0410-b5e6-96231b3b80d8

commit 116bb09882bc1c9281cd84dd07496201feb18d18
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Tue Sep 11 00:36:26 2012 +0000

    Fix buffer overflow.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163578 91177308-0d34-0410-b5e6-96231b3b80d8

commit 00b4f64ecb26b031c1f4888f39be6c706156356a
Author: Jordan Rose <jordan_rose@apple.com>
Date:   Tue Sep 11 00:31:02 2012 +0000

    [analyzer] Member function calls that use qualified names are non-virtual.

    C++11 [expr.call]p1: ...If the selected function is non-virtual, or if the
      id-expression in the class member access expression is a qualified-id,
      that function is called. Otherwise, its final overrider in the dynamic type
      of the object expression is called.

    <rdar://problem/12255556>

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163577 91177308-0d34-0410-b5e6-96231b3b80d8

commit e08dcbe75eb9b3ffe6f1f60ac2b216b4c878606a
Author: Anna Zaks <ganna@apple.com>
Date:   Mon Sep 10 23:59:02 2012 +0000

    [analyzer] Turn stl inlining back on.

    The one reported bug, which was exposed by stl inlining, is addressed in
    r163558.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163574 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4ea9b89ff6dc50d5404eb56cad5e5870bce49ef2
Author: Anna Zaks <ganna@apple.com>
Date:   Mon Sep 10 23:35:11 2012 +0000

    [analyzer] Do not count calls to small functions when computing stack
    depth.

    We only want to count how many substantial functions we inlined. This
    is an improvement to r163558.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163571 91177308-0d34-0410-b5e6-96231b3b80d8

commit 73c87d0c7e34c4bd33f2bb3674687a9d46c8dfec
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Mon Sep 10 23:28:22 2012 +0000

    [PCH] Add a null check to avoid crashing.

    Unfortunately, no test case. rdar://11960120

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163566 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1b76fbc5b711efc03c1fe924db6756ec1590577a
Author: David Blaikie <dblaikie@gmail.com>
Date:   Mon Sep 10 23:06:08 2012 +0000

    Provide fixed target triples to make test results consistent across ARM hosts.

    Patch by David Tweed, review by myself and John McCall.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163564 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3bed3d196dbb5ad2ea7442da4b6c2fbf6bb5fcc6
Author: Argyrios Kyrtzidis <akyrtzi@gmail.com>
Date:   Mon Sep 10 22:58:04 2012 +0000

    [libclang] Do index 'extern' declarations inside functions.

    rdar://12257073

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163563 91177308-0d34-0410-b5e6-96231b3b80d8

commit 57330eed3fbe530cb05996e4a346cc5fc217c0d9
Author: Anna Zaks <ganna@apple.com>
Date:   Mon Sep 10 22:56:41 2012 +0000

    [analyzer] Add an option to enable/disable objc inlining.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163562 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8a198a078e22665deb0a442eb6ba187a230f733a
Author: Ted Kremenek <kremenek@apple.com>
Date:   Mon Sep 10 22:50:05 2012 +0000

    Revert "Remove clang man page reference to -Oz.  It's not an option we want people to use, and is around for historical reasons."

    This should be discussed more first.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163560 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7229d0011766c174beffe6a846d78f448f845b39
Author: Anna Zaks <ganna@apple.com>
Date:   Mon Sep 10 22:37:19 2012 +0000

    [analyzer] Add ipa-always-inline-size option (with 3 as the default).

    The option allows to always inline very small functions, whose size (in
    number of basic blocks) is set using -analyzer-config
    ipa-always-inline-size option.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163558 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8664a0977a4eaaf85b7a296b909a7c663c276ae1
Merge: 3c16da7 8eba6f1
Author: Stephen Hines <srhines@google.com>
Date:   Wed Sep 5 22:33:37 2012 -0700

    am 8eba6f19: Add new files for merge to upstream r162325.

    * commit '8eba6f194484c38ed724375aeab27de556113a84':
      Add new files for merge to upstream r162325.

commit 3c16da7990e516ba6113b7f2e696f7c38a850335
Merge: 00fe719 80ea4bc
Author: Stephen Hines <srhines@google.com>
Date:   Wed Sep 5 22:33:35 2012 -0700

    am 80ea4bc9: Merge branch \'upstream\' into merge_2

    * commit '80ea4bc944eb01c220eeaa004b21ad709ba928e1': (597 commits)
      Add an llvm_unreachable to pacify GCC's -Wreturn-type.
      make test pass on linux platforms.
      [ms-inline asm] Have buildMSAsmString build a vector of unmodified AsmStrings. Add a new static function, buildMSAsmPieces, that will break these strings down into mnemonic and operands.  Upon a match failure, the idea is to use the ErrorInfo from MatchInstructionImpl to inspect the mnemonic/operand and decide a course of action.  Unfortunately, there's no easy way to test this at the moment.
      change function name in my last patch. // rdar://12103400
      objective-C: Change rules for overriding properties in class extensions a little. clang now allows readonly property with no ownership rule (assign, unsafe_unretained, weak, retain, strong, or copy) with a readwrite property with an ownership rule. // rdar://12103400
      [analyzer] Set the default IPA mode to 'basic-inlining', which excludes C++.
      [analyzer] -analyzer-ipa=inlining is now the default. Remove it from tests.
      Update comment to match the reality.
      CommentBriefParser: allow paragraphs to be separated by line of whitespace. Skip paragraphs that contain only whitespace.
      [analyzer] Push "references are non-null" knowledge up to the common parent.
      [ms-inline asm] Do not report a Parser error when matching inline assembly.
      Modern objc translator: Fixes a crash in rewriter when rewriting the API for structure valued method messaging. // rdar://12142241
      Use LLVM_BUILTIN_TRAP instead of lame volatile int traps.
      Reduce the amount of state in the Option class by relying on the data from OptTable::Info.
      Switch some realignment calculations over to llvm::RoundUpToAlignment.
      [ms-inline asm] Expose the ErrorInfo from the MatchInstructionImpl.  In general, this is the index of the operand that failed to match.
      DeclPrinter, terse mode: don't print function bodies
      Rename PrintingPolicy::DontRecurseInDeclContext to PrintingPolicy::TerseOutput to reflect the intention, not the implementation.
      [ms-inline asm] Append identifier for better debugging.
      [ms-inline asm] Remove this test case and the associated special case code.
      ...

commit 00fe71978b9ce47a939184dff2994b35ed7c9c33
Merge: f8b73be 9551afd
Author: Joe Onorato <joeo@google.com>
Date:   Fri Aug 17 00:18:38 2012 -0700

    am 9551afd5: am 514cf309: Merge "This module doesn\'t build. Remove it."

    * commit '9551afd52f54a105629028f2bb8e4ca0f24aed1b':
      This module doesn't build. Remove it.

commit f8b73bebb42a87b0ae9196e700a25a68aa344c0c
Author: Joe Onorato <joeo@google.com>
Date:   Fri May 18 20:06:44 2012 -0700

    This module doesn't build. Remove it.

    Change-Id: I553fd9050a1a2a23f01920d28add43c4572ce6a1

Change-Id: I86884cc69815cdcf30f95faa986f678cd8330faa