Author: echristo Date: Mon Mar 20 17:31:33 2017 New Revision: 298318 URL: http://llvm.org/viewvc/llvm-project?rev=298318&view=rev Log: Fix parsing of htmxlintrin.h in C++ mode - Fix a variable naming mismatch - Fix gcc extension pointer arithmetic on void to cast to char *. - Test that the header (and htmintrin.h) parse.
Added: cfe/trunk/test/Headers/htm-header.c Modified: cfe/trunk/lib/Headers/htmxlintrin.h Modified: cfe/trunk/lib/Headers/htmxlintrin.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Headers/htmxlintrin.h?rev=298318&r1=298317&r2=298318&view=diff ============================================================================== --- cfe/trunk/lib/Headers/htmxlintrin.h (original) +++ cfe/trunk/lib/Headers/htmxlintrin.h Mon Mar 20 17:31:33 2017 @@ -35,14 +35,10 @@ extern "C" { #endif -#define _TEXASR_PTR(TM_BUF) \ - ((texasr_t *)((TM_BUF)+0)) -#define _TEXASRU_PTR(TM_BUF) \ - ((texasru_t *)((TM_BUF)+0)) -#define _TEXASRL_PTR(TM_BUF) \ - ((texasrl_t *)((TM_BUF)+4)) -#define _TFIAR_PTR(TM_BUF) \ - ((tfiar_t *)((TM_BUF)+8)) +#define _TEXASR_PTR(TM_BUF) ((texasr_t *)((char *)(TM_BUF) + 0)) +#define _TEXASRU_PTR(TM_BUF) ((texasru_t *)((char *)(TM_BUF) + 0)) +#define _TEXASRL_PTR(TM_BUF) ((texasrl_t *)((char *)(TM_BUF) + 4)) +#define _TFIAR_PTR(TM_BUF) ((tfiar_t *)((char *)(TM_BUF) + 8)) typedef char TM_buff_type[16]; @@ -178,7 +174,7 @@ extern __inline long __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) __TM_is_conflict(void* const __TM_buff) { - texasru_t texasru = *_TEXASRU_PTR (TM_buff); + texasru_t texasru = *_TEXASRU_PTR (__TM_buff); /* Return TEXASR bits 11 (Self-Induced Conflict) through 14 (Translation Invalidation Conflict). */ return (_TEXASRU_EXTRACT_BITS (texasru, 14, 4)) ? 1 : 0; Added: cfe/trunk/test/Headers/htm-header.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Headers/htm-header.c?rev=298318&view=auto ============================================================================== --- cfe/trunk/test/Headers/htm-header.c (added) +++ cfe/trunk/test/Headers/htm-header.c Mon Mar 20 17:31:33 2017 @@ -0,0 +1,19 @@ +// RUN: %clang_cc1 -triple powerpc64le-unknown-unknown -target-feature +htm -DHTM_HEADER -ffreestanding -emit-llvm -o - %s | FileCheck %s +// RUN: %clang_cc1 -triple powerpc64le-unknown-unknown -target-feature +htm -DHTM_HEADER -ffreestanding -emit-llvm -x c++ -o - %s | FileCheck %s +// RUN: %clang_cc1 -triple powerpc64le-unknown-unknown -target-feature +htm -DHTMXL_HEADER -ffreestanding -emit-llvm -o - %s | FileCheck %s +// RUN: %clang_cc1 -triple powerpc64le-unknown-unknown -target-feature +htm -DHTMXL_HEADER -ffreestanding -emit-llvm -x c++ -o - %s | FileCheck %s + +#ifdef HTM_HEADER +#include <htmintrin.h> +#endif + +#ifdef HTMXL_HEADER +#include <htmxlintrin.h> +#endif + +// Verify that simply including the headers does not generate any code +// (i.e. all inline routines in the header are marked "static") + +// CHECK: target triple = "powerpc64 +// CHECK-NEXT: {{^$}} +// CHECK-NEXT: {{llvm\..*}} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits