Remove a nonsense friend declaration.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214136 91177308-0d34-0410-b5e6-96231b3b80d8
Add a location to MS inline asm blobs

This isn't nearly as elaborate as the GCC inline asm which emits an
array of source locations, but it's very, very hard to trigger backend
diagnostics in MS inline asm because we parse it up front with good
source information, unlike GCC inline asm.

Currently I can trigger a "inline assembly requires more registers than
available" diagnostic with this code:

  void foo();
  void bar() {
    __asm pusha
    __asm call foo
    __asm popa
  }

However, if I committed that as a test case, I would have to remove it
once I fix PR20052.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214141 91177308-0d34-0410-b5e6-96231b3b80d8
Fix up handling of ARM options for controlling strict alignment.

The -mstrict-align option was originally added in r167619 as a target-
independent option. It was then changed in r167623 to be implemented with an
ARM-specific backend option, even though the code remained in the
target-independent Clang::ConstructJob function. This means that if you used
the -mstrict-align option with a non-ARM target, you would still get the
-arm-strict-align option getting passed to the backend, which was harmless
but gross. The driver option was then replaced by the GCC-compatible
-m[no-]unaligned-access option (r189175) and modified to work with AArch64
(r208075). However, in the process, the help text for -mstrict-align was
incorrectly changed to show it as only being supported for AArch64. Even worse,
the logic for handling these options together with -mkernel was wrong for
AArch64, where -mkernel does not currently imply strict alignment.

This patch fixes up all of those things. Besides the obvious change to the
option help text, it moves the logic into the ARM and AArch64-specific parts
of the driver, so that the option will be correctly ignored for non-ARM
targets. <rdar://problem/17823697>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214148 91177308-0d34-0410-b5e6-96231b3b80d8
[modules] Add missing #include, found by modules build. We need a class
definition in order to apply isa<...>.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214151 91177308-0d34-0410-b5e6-96231b3b80d8
Revert accidentally-committed files in r214151.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214152 91177308-0d34-0410-b5e6-96231b3b80d8
[modules] Add testcase for a bug reduced from a selfhost issue. This bug was
never present in Clang trunk, but was present in some of my development work,
and it seems like a useful test to have.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214154 91177308-0d34-0410-b5e6-96231b3b80d8
Emit column debug information for loads

This allows us to give more precise diagnostics.

Diego kindly tested the impact on debug info size: "The increase on average
debug sizes is 0.1%. The total file size increase is ~0%."

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214162 91177308-0d34-0410-b5e6-96231b3b80d8
Revert "Emit column debug information for loads"

This broke the following gdb tests:

gdb.base__annota1.exp
gdb.base__consecutive.exp
gdb.python__py-symtab.exp
gdb.reverse__consecutive-precsave.exp
gdb.reverse__consecutive-reverse.exp

I will look into this.

This reverts commit 214162.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214163 91177308-0d34-0410-b5e6-96231b3b80d8
3.5 => 3.6

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214164 91177308-0d34-0410-b5e6-96231b3b80d8
[OPENMP] Additional comments for implicit 'flush' clause + removed unused parameter from method classof().


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214172 91177308-0d34-0410-b5e6-96231b3b80d8
AArch64: Resolve some FIXMEs in CGBuiltin left over from backend merge

Merge vrshr_n_v and vqshlu_n_v with ARM.

Remove FIXME comments for others as they can't actually be shared.

NFC.

Differential Revision: http://reviews.llvm.org/D4697


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214173 91177308-0d34-0410-b5e6-96231b3b80d8
DataflowWorklist.h - "We should have a description here of what this code does, not just where it's used."

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214183 91177308-0d34-0410-b5e6-96231b3b80d8
Modify how the loop hint attribute is printed as a lead-up to supporting constant expression values.

Reviewed by Aaron Ballman


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214185 91177308-0d34-0410-b5e6-96231b3b80d8
[Debug Info] update testing case due to change in DIBuilder.

This is the paired commit with llvm r214189.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214190 91177308-0d34-0410-b5e6-96231b3b80d8
Fix PR10177 where non-type template arguments to alias templates are not marked as used in dependent contexts. The fix actually forces non-dependent names to be checked at template definition time as expected from the standard.

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214193 91177308-0d34-0410-b5e6-96231b3b80d8
Fix test case in r214190. (It failed on my end.)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214198 91177308-0d34-0410-b5e6-96231b3b80d8
Revert "Fix test case in r214190. (It failed on my end.)"

This was an accident.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214202 91177308-0d34-0410-b5e6-96231b3b80d8
Provide warning name for property attribute warning
mismatch. //rdar://17845264


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214203 91177308-0d34-0410-b5e6-96231b3b80d8
Support LIBRARY_PATH on all Darwin targets.

r197490 changed the behavior of LIBRARY_PATH to try to match GCC's behavior
for cross compilers and make clang work better on "bare metal" targets.
Unfortunately that change is breaking a number of MacPorts projects because
the LIBRARY_PATH environment variable is being ignored when compiling on a
64-bit host for a 32-bit target. Because the host and target architectures
differ, isCrossCompiling returns true. This does not make sense for Darwin,
where multiple architectures are supported natively via "fat" Mach-O slices
and where development is generally done against SDKs regardless. This patch
fixes the problem by overriding isCrossCompiling to return false for Darwin
toolchains.

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