From abf1b13e6bf9943565f371ea91b6291eca071c39 Mon Sep 17 00:00:00 2001 From: Martin Oberhuber Date: Thu, 30 Nov 2017 16:14:07 +0100 Subject: [PATCH] Bug 527959 - Fix argument lists for some builtins - Add volatile variant for __atomic_clear and __atomic_test_and_set - Add missing parameters for __builtin_fmax and related Change-Id: Ib31d1a410b8749f5672d70d7d02ca1dff962c38b Signed-off-by: Martin Oberhuber --- .../dom/parser/GCCBuiltinSymbolProvider.java | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/GCCBuiltinSymbolProvider.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/GCCBuiltinSymbolProvider.java index 1b46bfd772e..a3d89df57e3 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/GCCBuiltinSymbolProvider.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/GCCBuiltinSymbolProvider.java @@ -177,7 +177,9 @@ public class GCCBuiltinSymbolProvider implements IBuiltinBindingsProvider { function(type, "__atomic_fetch_nadd", typePtr, type, "int"); } function("bool", "__atomic_test_and_set", "void*", "int"); + function("bool", "__atomic_test_and_set", "volatile void*", "int"); function("void", "__atomic_clear", "bool*", "int"); + function("void", "__atomic_clear", "volatile bool*", "int"); function("void", "__atomic_thread_fence", "int"); function("void", "__atomic_signal_fence", "int"); function("bool", "__atomic_always_lock_free", "size_t", "void*"); @@ -263,24 +265,24 @@ public class GCCBuiltinSymbolProvider implements IBuiltinBindingsProvider { function("double", "__builtin_fabs", "double"); function("float", "__builtin_fabsf", "float"); function("long double", "__builtin_fabsl", "long double"); - function("double", "__builtin_fdim", "double"); - function("float", "__builtin_fdimf", "float"); - function("long double", "__builtin_fdiml", "long double"); + function("double", "__builtin_fdim", "double", "double"); + function("float", "__builtin_fdimf", "float", "float"); + function("long double", "__builtin_fdiml", "long double", "long double"); function("int", "__builtin_ffs", "unsigned int"); function("int", "__builtin_ffsl", "unsigned long"); function("int", "__builtin_ffsll", "unsigned long long"); function("double", "__builtin_floor", "double"); function("float", "__builtin_floorf", "float"); function("long double", "__builtin_floorl", "long double"); - function("double", "__builtin_fma", "double"); - function("float", "__builtin_fmaf", "float"); - function("long double", "__builtin_fmal", "long double"); - function("double", "__builtin_fmax", "double"); - function("float", "__builtin_fmaxf", "float"); - function("long double", "__builtin_fmaxl", "long double"); - function("double", "__builtin_fmin", "double"); - function("float", "__builtin_fminf", "float"); - function("long double", "__builtin_fminl", "long double"); + function("double", "__builtin_fma", "double", "double", "double"); + function("float", "__builtin_fmaf", "float", "float", "float"); + function("long double", "__builtin_fmal", "long double", "long double", "long double"); + function("double", "__builtin_fmax", "double", "double"); + function("float", "__builtin_fmaxf", "float", "float"); + function("long double", "__builtin_fmaxl", "long double", "long double"); + function("double", "__builtin_fmin", "double", "double"); + function("float", "__builtin_fminf", "float", "float"); + function("long double", "__builtin_fminl", "long double", "long double"); function("double", "__builtin_fmod", "double", "double"); function("float", "__builtin_fmodf", "float", "float"); function("long double", "__builtin_fmodl", "long double", "long double");