Changeset 78f0422c in mainline
- Timestamp:
- 2023-10-22T17:27:09Z (14 months ago)
- Branches:
- master, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 133461c
- Parents:
- 71b4444 (diff), dfb16c4 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
abi/include/_bits/decls.h
r71b4444 r78f0422c 61 61 #endif /* __cplusplus */ 62 62 63 /* 64 * __CONSTEXPR for headers shared by C and C++. Headers that are purely for 65 * C++ sources should use constexpr directly. 66 */ 67 #ifdef __cplusplus 68 #define __CONSTEXPR constexpr 69 #else 70 #define __CONSTEXPR 71 #endif 72 63 73 #endif 64 74 -
abi/include/_bits/uchar.h
r71b4444 r78f0422c 38 38 #include <stdint.h> 39 39 40 /* 41 * char8_t became part of C++ with C++20. 42 * It is part of C23 hence we define it for C compilations only. 43 */ 44 #ifndef __cplusplus 40 45 typedef uint8_t char8_t; 46 #endif 47 41 48 typedef uint32_t char32_t; 42 49 -
kernel/generic/src/interrupt/interrupt.c
r71b4444 r78f0422c 58 58 #include <trace.h> 59 59 60 /* 61 * If IVT_ITEMS is zero (e.g. for special/abs32le) we hide completely any 62 * access to the exception table array and panic if the function is called 63 * at all. It also silences (correct) compiler warnings about possible 64 * out-of-bound array access. 65 */ 66 60 67 exc_table_t exc_table[IVT_ITEMS]; 61 68 IRQ_SPINLOCK_INITIALIZE(exctbl_lock); … … 77 84 #if (IVT_ITEMS > 0) 78 85 assert(n < IVT_ITEMS); 79 #endif80 86 81 87 irq_spinlock_lock(&exctbl_lock, true); … … 91 97 92 98 return old; 99 #else 100 panic("No space for any exception handler, cannot register."); 101 #endif 93 102 } 94 103 … … 103 112 #if (IVT_ITEMS > 0) 104 113 assert(n < IVT_ITEMS); 105 #endif106 114 107 115 /* Account user cycles */ … … 152 160 irq_spinlock_unlock(&THREAD->lock, false); 153 161 } 162 #else 163 panic("No space for any exception handler, yet we want to handle some exception."); 164 #endif 154 165 } 155 166 -
uspace/app/tester/fault/fault1.c
r71b4444 r78f0422c 30 30 #include "../tester.h" 31 31 32 #pragma GCC diagnostic ignored "-Warray-bounds" 33 32 34 const char *test_fault1(void) 33 35 { -
uspace/app/tester/print/print5.c
r71b4444 r78f0422c 38 38 */ 39 39 #pragma GCC diagnostic ignored "-Wformat" 40 #pragma GCC diagnostic ignored "-Wformat-overflow" 40 41 41 42 #include <stdio.h> -
uspace/lib/c/generic/rtld/symbol.c
r71b4444 r78f0422c 135 135 modules_untag(start->rtld); 136 136 137 /* Insert root (the program) into the queue and tag it */ 137 /* 138 * Insert root (the program) into the queue and tag it. 139 * 140 * We disable the dangling-pointer warning because the compiler incorrectly 141 * assumes that we leak local address (queue) to a parent scope (to start 142 * argument). However, we always empty the list so the pointer cannot 143 * actually escape. Probably the compiler can never statically analyze that 144 * correctly. 145 */ 138 146 list_initialize(&queue); 139 147 start->bfs_tag = true; 148 #pragma GCC diagnostic push 149 #if defined(__GNUC__) && (__GNUC__ >= 12) 150 #pragma GCC diagnostic ignored "-Wdangling-pointer" 151 #endif 140 152 list_append(&start->queue_link, &queue); 153 #pragma GCC diagnostic pop 141 154 142 155 /* If the symbol is found, it will be stored in 'sym' */ -
uspace/lib/c/generic/thread/fibril_synch.c
r71b4444 r78f0422c 160 160 { 161 161 check_fibril_for_deadlock(oi, fibril_self()); 162 }163 164 void fibril_mutex_initialize(fibril_mutex_t *fm)165 {166 fm->oi.owned_by = NULL;167 fm->counter = 1;168 list_initialize(&fm->waiters);169 162 } 170 163 -
uspace/lib/c/include/adt/list.h
r71b4444 r78f0422c 183 183 * 184 184 */ 185 _NO_TRACE static inline void list_initialize(list_t *list)185 _NO_TRACE static inline __CONSTEXPR void list_initialize(list_t *list) 186 186 { 187 187 list->head.prev = &list->head; -
uspace/lib/c/include/fibril_synch.h
r71b4444 r78f0422c 153 153 extern void __fibril_synch_fini(void); 154 154 155 extern void fibril_mutex_initialize(fibril_mutex_t *); 155 /** Initialize fibril mutex. 156 * 157 * Kept as in-line to allow constexpr marker for C++ library where this 158 * is used by C++ mutex type (list initialization are two assignments 159 * so it is actually reasonable to have this inlined). 160 */ 161 static inline __CONSTEXPR void fibril_mutex_initialize(fibril_mutex_t *fm) 162 { 163 fm->oi.owned_by = NULL; 164 fm->counter = 1; 165 list_initialize(&fm->waiters); 166 } 167 156 168 extern void fibril_mutex_lock(fibril_mutex_t *); 157 169 extern bool fibril_mutex_trylock(fibril_mutex_t *); -
uspace/lib/c/test/string.c
r71b4444 r78f0422c 799 799 PCUT_TEST(strndup_nonempty_short) 800 800 { 801 #pragma GCC diagnostic push 802 // Intentionally checking it works with _longer_ size than actual 803 #if defined(__GNUC__) && (__GNUC__ >= 11) 804 #pragma GCC diagnostic ignored "-Wstringop-overread" 805 #endif 801 806 char *d = strndup("abc", 5); 807 #pragma GCC diagnostic pop 802 808 PCUT_ASSERT_NOT_NULL(d); 803 809 PCUT_ASSERT_TRUE(d[0] == 'a'); -
uspace/lib/cpp/include/__bits/algorithm.hpp
r71b4444 r78f0422c 1110 1110 InputIterator2 last2) 1111 1111 { 1112 while ((first1 != last1) && (first2 != last2)) 1113 { 1114 if (*first1 < *first2) 1115 return true; 1116 if (*first2 < *first1) 1117 return false; 1118 1119 ++first1; 1120 ++first2; 1121 } 1122 1112 1123 /** 1113 * *first1 and *first2 can have different types1114 * so we use a transparent comparator.1124 * Up until now they are same, so we have to check 1125 * if we reached the end on one. 1115 1126 */ 1116 return lexicographical_compare( 1117 first1, last1, first2, last2, 1118 less<void>{} 1119 ); 1127 return (first1 == last1) && (first2 != last2); 1120 1128 } 1121 1129 -
uspace/lib/cpp/include/__bits/thread/threading.hpp
r71b4444 r78f0422c 87 87 struct mutex 88 88 { 89 static void init(mutex_type& mtx)89 static constexpr void init(mutex_type& mtx) 90 90 { 91 91 ::helenos::fibril_mutex_initialize(&mtx); -
uspace/srv/hid/display/test/window.c
r71b4444 r78f0422c 1109 1109 PCUT_ASSERT_EQUALS(wnd->display->cursor[dcurs_arrow], wnd->cursor); 1110 1110 1111 // Check that invalid cursors cannot be set: ignore enum conversions 1112 // as we are out-of-bounds 1113 #pragma GCC diagnostic push 1114 #if defined(__GNUC__) && (__GNUC__ >= 10) 1115 #pragma GCC diagnostic ignored "-Wenum-conversion" 1116 #endif 1111 1117 rc = ds_window_set_cursor(wnd, dcurs_limit); 1112 1118 PCUT_ASSERT_ERRNO_VAL(EINVAL, rc); … … 1116 1122 PCUT_ASSERT_ERRNO_VAL(EINVAL, rc); 1117 1123 PCUT_ASSERT_EQUALS(wnd->display->cursor[dcurs_arrow], wnd->cursor); 1124 #pragma GCC diagnostic pop 1118 1125 1119 1126 rc = ds_window_set_cursor(wnd, dcurs_size_lr);
Note:
See TracChangeset
for help on using the changeset viewer.