<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en" style='--code-editor-font: var(--default-mono-font, "GitLab Mono"), JetBrains Mono, Menlo, DejaVu Sans Mono, Liberation Mono, Consolas, Ubuntu Mono, Courier New, andale mono, lucida console, monospace;'>
<head>
<meta content="text/html; charset=US-ASCII" http-equiv="Content-Type">
<title>
GitLab
</title>

<style data-premailer="ignore" type="text/css">
a { color: #1068bf; }
</style>

<style>img {
max-width: 100%; height: auto;
}
body {
font-size: .875rem;
}
body {
-webkit-text-shadow: rgba(255,255,255,.01) 0 0 1px;
}
body {
font-family: "GitLab Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Ubuntu,Cantarell,"Helvetica Neue",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; font-size: inherit;
}
</style>
</head>
<body style='font-size: inherit; -webkit-text-shadow: rgba(255,255,255,.01) 0 0 1px; font-family: "GitLab Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Ubuntu,Cantarell,"Helvetica Neue",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";'>
<div class="content">

<p class="details" style="font-style: italic; color: #737278;">
<a href="https://gitlab.rtems.org/joel">Joel Sherrill</a> created an issue: <a href="https://gitlab.rtems.org/rtems/rtos/rtems/-/issues/5242">#5242</a>
</p>
<div class="md" style="position: relative; z-index: 1; color: #28272d; word-wrap: break-word;">
<h2 dir="auto" style="font-size: 1.5em; font-weight: 600; padding-bottom: .3em; border-bottom-width: 1px; border-bottom-color: #bfbfc3; border-bottom-style: solid; color: #28272d; margin: 0 0 16px;" align="initial">
<a href="#summary" aria-hidden="true" class="anchor" id="user-content-summary" style="margin-top: 0; float: left; margin-left: -20px; text-decoration: none; outline: none;"></a>Summary</h2>
<p dir="auto" style="color: #28272d; margin: 0 0 16px;" align="initial">The uC5282 BSP's bspstart.c file has a handful of warnings that are from using a subscript that is outside the array bounds. This is part of the output compiling with GCC 14.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
<pre class="code highlight js-syntax-highlight language-plaintext" v-pre="true" style='display: block; font-size: 14px; color: #28272d; line-height: 1.6em; overflow-x: auto; border-radius: .25rem; position: relative; font-family: "GitLab Mono","JetBrains Mono","Menlo","DejaVu Sans Mono","Liberation Mono","Consolas","Ubuntu Mono","Courier New","andale mono","lucida console",monospace; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; margin: 0 0 16px; padding: 12px; border: 1px solid #dcdcde;'><code style='font-size: inherit; color: inherit; word-wrap: normal; word-break: keep-all; background-color: inherit; border-radius: .25rem; white-space: pre; margin-top: 0; font-family: "GitLab Mono","JetBrains Mono","Menlo","DejaVu Sans Mono","Liberation Mono","Consolas","Ubuntu Mono","Courier New","andale mono","lucida console",monospace; vertical-align: bottom; overflow-wrap: normal; padding: unset;'><span id="LC1" class="line" lang="plaintext" style="margin-top: 0;">../../../bsps/m68k/uC5282/start/bspstart.c: In function 'bsp_start':</span>
<span id="LC2" class="line" lang="plaintext">../../../bsps/m68k/uC5282/start/bspstart.c:183:13: warning: array subscript 0 is outside array bounds of 'void (*[0])(int)' [-Warray-bounds=]</span>
<span id="LC3" class="line" lang="plaintext">  183 |   if ( 0 == *((void (**)(int))((32+2) * 4)) )</span>
<span id="LC4" class="line" lang="plaintext">      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~</span>
<span id="LC5" class="line" lang="plaintext">cc1: note: source object is likely at address zero</span>
<span id="LC6" class="line" lang="plaintext">../../../bsps/m68k/uC5282/start/bspstart.c:184:5: warning: array subscript 0 is outside array bounds of 'void (*[0])(int)' [-Warray-bounds=]</span>
<span id="LC7" class="line" lang="plaintext">  184 |     *((void (**)(int))((32+2) * 4)) = bsp_fake_syscall;</span>
<span id="LC8" class="line" lang="plaintext">      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~</span>
<span id="LC9" class="line" lang="plaintext">cc1: note: source object is likely at address zero</span>
<span id="LC10" class="line" lang="plaintext">../../../bsps/m68k/uC5282/start/bspstart.c: In function 'handler':</span>
<span id="LC11" class="line" lang="plaintext">../../../bsps/m68k/uC5282/start/bspstart.c:109:9: warning: array subscript -1 is outside array bounds of 'int[1]' [-Warray-bounds=]</span>
<span id="LC12" class="line" lang="plaintext">  109 |     int info = p[-1];</span>
<span id="LC13" class="line" lang="plaintext">      |         ^~~~</span>
<span id="LC14" class="line" lang="plaintext">../../../bsps/m68k/uC5282/start/bspstart.c:100:25: note: at offset -4 into object 'pc' of size 4</span>
<span id="LC15" class="line" lang="plaintext">  100 | static void handler(int pc)</span></code></pre>
<copy-code></copy-code><insert-code-snippet></insert-code-snippet>
</div>
<p dir="auto" style="color: #28272d; margin: 0 0 16px;" align="initial">The warnings around line 109 are from taking the address of the first parameter and negatively indexing from that to get information from the stack. It is using negative array indices in some places. This may be able to be resolved by defining a structure that maps onto that area of the stack and calculating the starting address of that.</p>
<p dir="auto" style="color: #28272d; margin: 0 0 16px;" align="initial">The warnings at line 183/184 can possibly be resolved by using a type instead of those ugly casts. The function _CPU_ISR_install_raw_handler() in cpukit/score/cpu/m68k/cpu.c seems to include code to do this without a cast. That should be able to be used as a model for the fix.</p>
<h2 dir="auto" style="font-size: 1.5em; font-weight: 600; padding-bottom: .3em; border-bottom-width: 1px; border-bottom-color: #bfbfc3; border-bottom-style: solid; color: #28272d; margin: 24px 0 16px;" align="initial">
<a href="#steps-to-reproduce" aria-hidden="true" class="anchor" id="user-content-steps-to-reproduce" style="margin-top: 0; float: left; margin-left: -20px; text-decoration: none; outline: none;"></a>Steps to reproduce</h2>
<h3 dir="auto" style="font-size: 1.3em; margin: 24px 0 0;" align="initial">
<a href="#pre-set-options" aria-hidden="true" class="anchor" id="user-content-pre-set-options" style="margin-top: 0; float: left; margin-left: -20px; text-decoration: none; outline: none;"></a>Pre-set options</h3>
</div>

</div>
<div class="footer" style="margin-top: 10px;">
<p style="font-size: small; color: #737278;">

<br>
<a href="https://gitlab.rtems.org/rtems/rtos/rtems/-/issues/5242">View it on GitLab</a>.
<br>
You're receiving this email because of your account on <a target="_blank" rel="noopener noreferrer" href="https://gitlab.rtems.org">gitlab.rtems.org</a>. <a href="https://gitlab.rtems.org/-/sent_notifications/7dca7d371b99a9f0ea61afeb84d99ea6/unsubscribe" target="_blank" rel="noopener noreferrer">Unsubscribe</a> from this thread · <a href="https://gitlab.rtems.org/-/profile/notifications" target="_blank" rel="noopener noreferrer" class="mng-notif-link">Manage all notifications</a> · <a href="https://gitlab.rtems.org/help" target="_blank" rel="noopener noreferrer" class="help-link">Help</a>
<script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","action":{"@type":"ViewAction","name":"View Issue","url":"https://gitlab.rtems.org/rtems/rtos/rtems/-/issues/5242"}}</script>


</p>
</div>
</body>
</html>