// or pointers to the same identifier). // Identifiers starting with W are weakrefs; those with p are // pointers; those with g are global definitions; those with l are // local definitions; those with w are expected to be weak undefined // in the symbol table; those with u are expected to be marked as // non-weak undefined in the symbol table. #include <stdlib.h> #define USED __attribute__((used)) typedef int vtype; extern vtype wv1; static vtype Wv1a __attribute__((weakref ("wv1"))); static vtype *pv1a USED = &Wv1a; vtype gv2; static vtype Wv2a __attribute__((weakref ("gv2"))); static vtype *pv2a USED = &Wv2a; static vtype lv3; static vtype Wv3a __attribute__((weakref ("lv3"))); static vtype *pv3a USED = &Wv3a; extern vtype uv4; static vtype Wv4a __attribute__((weakref ("uv4"))); static vtype *pv4a USED = &Wv4a; static vtype *pv4 USED = &uv4;
*/ extern "C" void ICACHE_RAM_ATTR app_entry_redefinable(void) __attribute__((weak)); extern "C" void ICACHE_RAM_ATTR app_entry_redefinable(void) { /* Allocate continuation context on this SYS stack, and save pointer to it. */ cont_t s_cont __attribute__((aligned(16))); g_pcont = &s_cont; /* Call the entry point of the SDK code. */ call_user_start(); } static void ICACHE_RAM_ATTR app_entry_custom (void) __attribute__((weakref("app_entry_redefinable"))); extern "C" void ICACHE_RAM_ATTR app_entry (void) { return app_entry_custom(); } extern "C" void user_init(void) { struct rst_info *rtc_info_ptr = system_get_rst_info(); memcpy((void *) &resetInfo, (void *) rtc_info_ptr, sizeof(resetInfo)); uart_div_modify(0, UART_CLK_FREQ / (115200)); init(); initVariant();
/* PR c++/57945 */ /* { dg-do compile } */ extern int j; static int i __attribute__((weakref("j"))); int foo (void) { return &i ? i : 0; }
extern "C" { #include "inc/openpilot.h" #include <uavobjectsinit.h> /* Task Priorities */ #define PRIORITY_TASK_HOOKS (tskIDLE_PRIORITY + 3) /* Global Variables */ /* Local Variables */ /* Prototype of PIOS_Board_Init() function */ extern void PIOS_Board_Init(void); extern void Stack_Change(void); static void Stack_Change_Weak() __attribute__((weakref("Stack_Change"))); /* Local Variables */ #define INIT_TASK_PRIORITY (tskIDLE_PRIORITY + configMAX_PRIORITIES - 1) // max priority #define INIT_TASK_STACK (1024 / 4) // XXX this seems excessive static xTaskHandle initTaskHandle; /* Function Prototypes */ static void initTask(void *parameters); /* Prototype of generated InitModules() function */ extern void InitModules(void); } /** * OpenPilot Main function:
static void __init acpi_table_initrd_scan(void) { } #endif /* CONFIG_ACPI_TABLE_UPGRADE */ acpi_status acpi_os_physical_table_override(struct acpi_table_header *existing_table, acpi_physical_address *address, u32 *table_length) { return acpi_table_initrd_override(existing_table, address, table_length); } #ifdef CONFIG_ACPI_CUSTOM_DSDT static void *amlcode __attribute__ ((weakref("AmlCode"))); static void *dsdt_amlcode __attribute__ ((weakref("dsdt_aml_code"))); #endif acpi_status acpi_os_table_override(struct acpi_table_header *existing_table, struct acpi_table_header **new_table) { if (!existing_table || !new_table) return AE_BAD_PARAMETER; *new_table = NULL; #ifdef CONFIG_ACPI_CUSTOM_DSDT if (!strncmp(existing_table->signature, "DSDT", 4)) { *new_table = (struct acpi_table_header *)&amlcode;
/* * References to the weakref function are converted into references of the * target name. If the target name is not defined in the current translation * unit and it is not referenced directly or otherwise in a way that requires * a definition of the target, for example if it is only referenced by using * weakref functions, the reference is weak. */ static __attribute__ ((weakref("test"))) void foo(); int main() { if (foo) foo(); }
#include <signal.h> #include <stdlib.h> #include <stdio.h> #include <stdint.h> #include <sys/time.h> #include <time.h> #define RO 1 #define RW 0 #if defined(TM_GCC) # include "../../abi/gcc/tm_macros.h" #elif defined(TM_DTMC) # include "../../abi/dtmc/tm_macros.h" /* Make erand48 pure for DTMC (transaction_pure should work too). */ static double tanger_wrapperpure_erand48(unsigned short int __xsubi[3]) __attribute__ ((weakref("erand48"))); #elif defined(TM_INTEL) # include "../../abi/intel/tm_macros.h" #elif defined(TM_ABI) # include "../../abi/tm_macros.h" #endif /* defined(TM_ABI) */ #if defined(TM_GCC) || defined(TM_DTMC) || defined(TM_INTEL) || defined(TM_ABI) # define TM_COMPILER /* Add some attributes to library function */ TM_PURE void exit(int status); TM_PURE void perror(const char *s); #else /* Compile with explicit calls to tinySTM */
// RUN: %dragonegg -S %s -o - | FileCheck %s int foo(int x) { return x; } static void function_weakref(void) __attribute__ ((weakref("foo"))); void *use_function = (void *)function_weakref; // CHECK: @use_function = unnamed_addr global {{.*}} @foo
* TAG * Logging tag for module name */ #define TAG PCF("UMUTEX") #ifdef __ANDROID__ /** * Android has pthread_condattr_setclock() only in version >= 5.0, older * version do have a function called __pthread_cond_timedwait_relative() * which waits *for* the given timespec, this function is not visible in * android version >= 5.0 anymore. This is the same way as it is handled in * QT 5.5.0 in * http://code.qt.io/cgit/qt/qtbase.git/tree/src/corelib/thread/qwaitcondition_unix.cpp?h=v5.5.0#n54 */ static int camutex_condattr_setclock(pthread_condattr_t *, clockid_t) __attribute__ ((weakref("pthread_condattr_setclock"))); static int camutex_cond_timedwait_relative(pthread_cond_t*, pthread_mutex_t*, const struct timespec*) __attribute__ ((weakref("__pthread_cond_timedwait_relative"))); #endif /* __ANDROID__ */ static const uint64_t USECS_PER_SEC = 1000000; static const uint64_t NANOSECS_PER_USECS = 1000; static const uint64_t NANOSECS_PER_SEC = 1000000000L; typedef struct _tagMutexInfo_t { pthread_mutex_t mutex; } ca_mutex_internal; typedef struct _tagEventInfo_t
// RUN: %clang_cc1 -emit-llvm -triple i386-linux-gnu -o %t %s // RUN: FileCheck --input-file=%t %s // CHECK: declare extern_weak void @test1_f() void test1_f(void); static void test1_g(void) __attribute__((weakref("test1_f"))); void test1_h(void) { test1_g(); } // CHECK: define void @test2_f() void test2_f(void) {} static void test2_g(void) __attribute__((weakref("test2_f"))); void test2_h(void) { test2_g(); } // CHECK: declare void @test3_f() void test3_f(void); static void test3_g(void) __attribute__((weakref("test3_f"))); void test3_foo(void) { test3_f(); } void test3_h(void) { test3_g(); } // CHECK: define void @test4_f() void test4_f(void); static void test4_g(void) __attribute__((weakref("test4_f"))); void test4_h(void) {